Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]


 Поделиться

Рекомендованные сообщения

2 часа назад, tim21701 сказал:

Система стоит "голая" не установлено ни одного дополнения - всё "из коробки".

 

 "Какие ваши доказательства?!!!"    ))))))))))))))))))))))) 

 

Таблицу product_description проверьте .

Изменено пользователем Demon85
Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 5,1k
  • Создано
  • Последний ответ

Лучшие авторы в этой теме

2 часа назад, Demon85 сказал:

 "Какие ваши доказательства?!!!"    ))))))))))))

Я уже слишком стар для этого д*рьма )))))
 

2 часа назад, Gmp сказал:

есть другие проблемы?


В остальном нет, разве что сосед достал))
Товар импортируется отлично, (закидывал по крону). База с 17к товарами проглатывает на ура.
Вот бы еще мета починить - было бы совсем отлично, а то настройки есть а они не работают. Тупо всё сыпется в duplicate entry.
 

Спойлер

product_desc.thumb.png.d0bdb947726470118784dee5d141d750.png

 

Ссылка на комментарий
Поделиться на других сайтах

В 14.11.2020 в 04:58, 26rus сказал:

проблема такова что в товарах что в производителей , что сделать нужно... Получается когда товары или производители выгружаются на некоторых норм стоят " а в некоторых получается такая иероглифы выходят " вместо " 

Помогите пожалуйста )

 

   Я так и не смог понять по вашим постам . 

У вас &QUOT   вставляется в названия товара и производителя или при генерации SEO url в ЧПУ ссылку ? 

Ссылка на комментарий
Поделиться на других сайтах

В 20.11.2020 в 18:36, Gmp сказал:

неофициальный баг-фикс релиз от меня: версия 1.6.4.8.

 

На Гит залили ?

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, Demon85 сказал:

 

   Я так и не смог понять по вашим постам . 

У вас &QUOT   вставляется в названия товара и производителя или при генерации SEO url в ЧПУ ссылку ? 

когда выгрузку делаю с 1с, то в производителей выводится этот иероглиф. Еще заметил когда пишешь описание в 1с и жмешь enter с новой строки то там фигня выходит \n1 почему-то _-_ 

Еще проблема подключил simple модуль, ну и в 1с не показывает доставка почему-то _-_ может кто подправил это может скинуть решение по 3 проблемам??

Изменено пользователем 26rus
Ссылка на комментарий
Поделиться на других сайтах


23 часа назад, 26rus сказал:

когда выгрузку делаю с 1с, то в производителей выводится этот иероглиф.

 

Я сразу извиняюсь , не хочу вас обидеть . Вы русский язык хорошо понимаете ? Я у вас уточняю , а вы мне одно и тоже пишете . 

 

Цитата

то в производителей выводится этот иероглиф.

 

Где именно , в поле Название категории или в поле SEO URL  ?

Ссылка на комментарий
Поделиться на других сайтах

51 минуту назад, Demon85 сказал:

 

Я сразу извиняюсь , не хочу вас обидеть . Вы русский язык хорошо понимаете ? Я у вас уточняю , а вы мне одно и тоже пишете . 

 

 

Где именно , в поле Название категории или в поле SEO URL  ?

в название категории

Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, 26rus сказал:

в название категории

 

Ну эта функция , которую вы пытались изменить :
 

В 24.11.2020 в 11:15, 26rus сказал:

А код вот так


private function translit($s, $space = '-') {

 

Она отвечает за SEO часть . Транслиетрирует RUS->ENG. Советую вам всё вернуть назад и копать в другом месте кода .
 

Ссылка на комментарий
Поделиться на других сайтах

17 минут назад, Demon85 сказал:

 

Ну эта функция , которую вы пытались изменить :
 

 

Она отвечает за SEO часть . Транслиетрирует RUS->ENG. Советую вам всё вернуть назад и копать в другом месте кода .
 

такс, вот смотрите может вы не поняли меня. Заходишь в производители во вкладку и там вот список вылетает производителей и там где написан к примеру "Яндекс" с кавычками то он выдает ероглифы вот так &QUOTЯндекс&QUOT.

 

А eng язык удалил вообще с магазина

Изменено пользователем 26rus
Ссылка на комментарий
Поделиться на других сайтах


13 минут назад, 26rus сказал:

с кавычками то он выдает ероглифы вот так &QUOTЯндекс&QUOT.

 

У вас в 1С названия    Производителя  или   Категории    "Яндекс"   ?

Изменено пользователем Demon85
Ссылка на комментарий
Поделиться на других сайтах

19 минут назад, Demon85 сказал:

 

У вас в 1С названия    Производителя  или   Категории    "Яндекс"   ?

производитель именно. Заходишь в производитель - там весь список производителей. И там текст производителя выдает &QUOTЯндекс&QUOT. 

 

Не seo url , я про url слово не говорил.

Ссылка на комментарий
Поделиться на других сайтах


11 минут назад, 26rus сказал:

я про url слово не говорил.

 

да но изначально вы написали ,что проблема в этой функции :  
 

 

Ссылка на комментарий
Поделиться на других сайтах

12 минут назад, 26rus сказал:

производитель именно

 

Уже легче . Надо будет найти место в коде где идёт запись из .XML файла в БД этих самых производителей , которые у вас идут в двойных кавычках .

Ссылка на комментарий
Поделиться на других сайтах

36 минут назад, Demon85 сказал:

 

Уже легче . Надо будет найти место в коде где идёт запись из .XML файла в БД этих самых производителей , которые у вас идут в двойных кавычках .

??? это где и что нужно поменять?)

Изменено пользователем 26rus
Ссылка на комментарий
Поделиться на других сайтах


Господа Товарищи, а как подтянуть "файлы" которые в 1С прикреплены к товару? Здесь это не реализовано? :shock:
Модуль обмена из 1С их выгружает, но этот модуль я так полагаю их вообще игнорирует? Или как их на страницу товара то выводить, прям беда-дела!

В одной из Категорий в 1С ко всем товарам прикреплен pdf-файл с сертификатами (+ ГОСТы), и на сайте они быть просто обязаны, ан нЭту! (( Это чтож, теперь к 1,5к товарам вручную документы прописывать?)) 

Ссылка на комментарий
Поделиться на других сайтах

Не выгружаются новые позиции. хотя старые все обноляются. В 1с стоит как положено все разрешения- Выгрузка на сайт описания на сайт . В самом модуле разрешения стоят на выгрузке новых позиций. Подскажите в чем может быть проблема.

Ссылка на комментарий
Поделиться на других сайтах


В 27.11.2020 в 16:02, 26rus сказал:

??? это где и что нужно поменять?)

 

Для Категорий


Откройте файл по пути  admin/model/extension/exchange1c.php  и найдите там функцию
 

Спойлер

 


/**
	 * ver 9
	 * update 2018-06-11
	 * Парсит группы в классификаторе в XML
	 */
	private function parseClassifierCategories($xml, $parent_id = 0, &$num_categories) {

		foreach ($xml->Группа as $xml_category) {
			if ($xml_category->Ид && $xml_category->Наименование) {

				$num_categories++;

				$guid = (string)$xml_category->Ид;

				$category_id = isset($this->CATEGORIES[$guid]) ? $this->CATEGORIES[$guid]['category_id'] : 0;

				$data = array(
					'parent_id'		=> $parent_id,
					'name'			=> htmlspecialchars(trim((string)$xml_category->Наименование), ENT_NOQUOTES, 'UTF-8'),
					'version'		=> $xml_category->НомерВерсии ? (string)$xml_category->НомерВерсии : "",
					'guid'			=> $guid
				);

				// Сортировка категории (по просьбе Val)
				if ($xml_category->Сортировка) {
					$data['sort_order']	= (int)$xml_category->Сортировка;
				}

				// Картинка категории (по просьбе Val)
				if ($xml_category->Картинка) {
					$data['image']		= (string)$xml_category->Картинка;
				}

				// Если пометка удаления есть, значит будет отключен
				if ((string)$xml_category->ПометкаУдаления == 'true') {
					$data['status']		= 0;
				} elseif ($category_id && $this->config->get('exchange1c_category_exist_status_enable') == 1) {
					// Включить существующие категории
					$data['status'] = 1;
				}

				if ($category_id) {
					// Прочитаем данные существующей категории
					$this->updateCategory($category_id, $data);
					$this->CATEGORIES[$guid]['update'] = true;

				} else {

					if ($this->config->get('exchange1c_category_new_no_create') == 1) {
						$this->log("Включен запрет на создание новых категорий", 2);
						continue;

					} else {

						//$this->log($data, 2);
						$category_id = $this->addCategory($data);

						$this->CATEGORIES[$guid] = array(
							'category_id'	=> $category_id,
							'version'		=> $data['version'],
							'update'		=> true
						);
					}
				}
			} // if ($xml_category->Ид && $xml_category->Наименование)

			if ($xml_category->Группы) {
				$this->parseClassifierCategories($xml_category->Группы, $category_id, $num_categories);
				if ($this->ERROR) return false;
			}

			$this->log("Категория: '" . $data['name'] . "'");

		} // foreach

		return true;

	} // parseClassifierCategories()

 

 

 

 

в этой функции я поменял строку : 

'name'            => htmlspecialchars(trim((string)$xml_category->Наименование)),

на : 

'name'            => htmlspecialchars(trim((string)$xml_category->Наименование), ENT_NOQUOTES, 'UTF-8'),

 

 

 

Вот для производителя
 

Ищем функцию : 

 

Откройте файл по пути  admin/model/extension/exchange1c.php  и найдите там функцию
 

Спойлер

/**
	 * ver 4
	 * update 2018-05-09
	 * Читает реквизиты товара из XML в массив данных
	 */
	private function parseRequisite($xml, &$data) {

		$this->log("Начато чтение реквизитов...", 2);
		//$this->log($xml, 2);
		$count = 0;
		foreach ($xml->ЗначениеРеквизита as $requisite) {
			//$this->log($requisite, 2);
			$count	++;
			$name 	= trim((string)$requisite->Наименование);
			$value 	= trim((string)$requisite->Значение);

			switch ($name){
				case 'Вес':
					$data['weight'] = $value ? (float)str_replace(',','.',$value) : 0;
					$this->log("> Реквизит: " . $name. " => weight",2);
				break;
				case 'ОписаниеВФорматеHTML':
					if ($value && $this->config->get('exchange1c_product_description_no_import') != 1) {
						$data['description'] =  $value;
						$this->log("> Реквизит: " . $name, 2);
					}
				break;
				case 'Полное наименование':
					if ($value && $this->config->get('exchange1c_product_name') == 'fullname') {
						$data['name'] = htmlspecialchars($value);
						$this->log("Наименование товара установлено из реквизита: " . $name . " = " . $value, 2);
					}
				break;
				case 'Производитель':
					// Устанавливаем производителя из свойства только если он не был еще загружен в секции Товар
					if ($this->config->get('exchange1c_product_manufacturer_no_change') == 0 && empty($data['manufacturer_id'])) {
						$data['manufacturer_name'] = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');
						$data['manufacturer_id'] = $this->setManufacturer($data['manufacturer_name']);
						$this->log("> Реквизит: " . $name . " = " . $data['manufacturer_name'], 2);
					}
				break;
				case 'Код':
					$data['code'] = $this->parseCode($value);
					$this->log("> Реквизит: " . $name . " преобразован в " . $data['code'], 2);
				break;
				case 'ISBN':
					$data['isbn'] = htmlspecialchars($value);
					$this->log("> Реквизит: " . $name . " = " . $data['isbn'], 2);
				break;
			} // switch
		} // foreach()

		$this->log("Реквизитов прочитано: " . $count, 2);

	} // parseRequisite()

 

 

 

в этой функции я поменял строку : 

$data['manufacturer_name'] = htmlspecialchars($value);

на : 

$data['manufacturer_name'] = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');

Изменено пользователем Demon85
  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

В 28.11.2020 в 02:13, tim21701 сказал:

Модуль обмена из 1С их выгружает

 

Можно образец вашего .xml файла ?

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, Demon85 сказал:

 

Для Категорий


Откройте файл по пути  admin/model/extension/exchange1c.php  и найдите там функцию
 

  Показать контент

 



/**
	 * ver 9
	 * update 2018-06-11
	 * Парсит группы в классификаторе в XML
	 */
	private function parseClassifierCategories($xml, $parent_id = 0, &$num_categories) {

		foreach ($xml->Группа as $xml_category) {
			if ($xml_category->Ид && $xml_category->Наименование) {

				$num_categories++;

				$guid = (string)$xml_category->Ид;

				$category_id = isset($this->CATEGORIES[$guid]) ? $this->CATEGORIES[$guid]['category_id'] : 0;

				$data = array(
					'parent_id'		=> $parent_id,
					'name'			=> htmlspecialchars(trim((string)$xml_category->Наименование), ENT_NOQUOTES, 'UTF-8'),
					'version'		=> $xml_category->НомерВерсии ? (string)$xml_category->НомерВерсии : "",
					'guid'			=> $guid
				);

				// Сортировка категории (по просьбе Val)
				if ($xml_category->Сортировка) {
					$data['sort_order']	= (int)$xml_category->Сортировка;
				}

				// Картинка категории (по просьбе Val)
				if ($xml_category->Картинка) {
					$data['image']		= (string)$xml_category->Картинка;
				}

				// Если пометка удаления есть, значит будет отключен
				if ((string)$xml_category->ПометкаУдаления == 'true') {
					$data['status']		= 0;
				} elseif ($category_id && $this->config->get('exchange1c_category_exist_status_enable') == 1) {
					// Включить существующие категории
					$data['status'] = 1;
				}

				if ($category_id) {
					// Прочитаем данные существующей категории
					$this->updateCategory($category_id, $data);
					$this->CATEGORIES[$guid]['update'] = true;

				} else {

					if ($this->config->get('exchange1c_category_new_no_create') == 1) {
						$this->log("Включен запрет на создание новых категорий", 2);
						continue;

					} else {

						//$this->log($data, 2);
						$category_id = $this->addCategory($data);

						$this->CATEGORIES[$guid] = array(
							'category_id'	=> $category_id,
							'version'		=> $data['version'],
							'update'		=> true
						);
					}
				}
			} // if ($xml_category->Ид && $xml_category->Наименование)

			if ($xml_category->Группы) {
				$this->parseClassifierCategories($xml_category->Группы, $category_id, $num_categories);
				if ($this->ERROR) return false;
			}

			$this->log("Категория: '" . $data['name'] . "'");

		} // foreach

		return true;

	} // parseClassifierCategories()

 

 

 

 

в этой функции я поменял строку : 

'name'            => htmlspecialchars(trim((string)$xml_category->Наименование)),

на : 

'name'            => htmlspecialchars(trim((string)$xml_category->Наименование), ENT_NOQUOTES, 'UTF-8'),

 

 

 

Вот для производителя
 

Ищем функцию : 

 

Откройте файл по пути  admin/model/extension/exchange1c.php  и найдите там функцию
 

  Показать контент


/**
	 * ver 4
	 * update 2018-05-09
	 * Читает реквизиты товара из XML в массив данных
	 */
	private function parseRequisite($xml, &$data) {

		$this->log("Начато чтение реквизитов...", 2);
		//$this->log($xml, 2);
		$count = 0;
		foreach ($xml->ЗначениеРеквизита as $requisite) {
			//$this->log($requisite, 2);
			$count	++;
			$name 	= trim((string)$requisite->Наименование);
			$value 	= trim((string)$requisite->Значение);

			switch ($name){
				case 'Вес':
					$data['weight'] = $value ? (float)str_replace(',','.',$value) : 0;
					$this->log("> Реквизит: " . $name. " => weight",2);
				break;
				case 'ОписаниеВФорматеHTML':
					if ($value && $this->config->get('exchange1c_product_description_no_import') != 1) {
						$data['description'] =  $value;
						$this->log("> Реквизит: " . $name, 2);
					}
				break;
				case 'Полное наименование':
					if ($value && $this->config->get('exchange1c_product_name') == 'fullname') {
						$data['name'] = htmlspecialchars($value);
						$this->log("Наименование товара установлено из реквизита: " . $name . " = " . $value, 2);
					}
				break;
				case 'Производитель':
					// Устанавливаем производителя из свойства только если он не был еще загружен в секции Товар
					if ($this->config->get('exchange1c_product_manufacturer_no_change') == 0 && empty($data['manufacturer_id'])) {
						$data['manufacturer_name'] = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');
						$data['manufacturer_id'] = $this->setManufacturer($data['manufacturer_name']);
						$this->log("> Реквизит: " . $name . " = " . $data['manufacturer_name'], 2);
					}
				break;
				case 'Код':
					$data['code'] = $this->parseCode($value);
					$this->log("> Реквизит: " . $name . " преобразован в " . $data['code'], 2);
				break;
				case 'ISBN':
					$data['isbn'] = htmlspecialchars($value);
					$this->log("> Реквизит: " . $name . " = " . $data['isbn'], 2);
				break;
			} // switch
		} // foreach()

		$this->log("Реквизитов прочитано: " . $count, 2);

	} // parseRequisite()

 

 

 

в этой функции я поменял строку : 

$data['manufacturer_name'] = htmlspecialchars($value);

на : 

$data['manufacturer_name'] = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');

а то что описание идет к примеру пишу текст и потом пишу с новом строки описание товара в 1с и потом выгружаю и текст идет так мой текст /n вот это не понятно это где исправить можно? и второй вопрос в комментарии не пишет в выгрузках товара "Адрес доставки" стоит модуль симпл и тут можете помочь плиз??

ну и также я поменял на это что вы скинули, тоже самое выходит производитель "ООО "Яндекс""

Изменено пользователем 26rus
Ссылка на комментарий
Поделиться на других сайтах


25 минут назад, 26rus сказал:

ну и также я поменял на это что вы скинули, тоже самое выходит производитель "ООО "Яндекс""

 

 Скиньте ваш файл xml .

Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, Demon85 сказал:

 

 Скиньте ваш файл xml .

а где он находится файл xml ???думаю этот

exchange1c.php

Изменено пользователем 26rus
Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, 26rus сказал:

а где он находится файл xml ???думаю этот

 

В 1С сделайте выгрузку не на сайт , а  в папку . Там появятся два файла. Нам нужен import.xml 

Изменено пользователем Demon85
Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, Demon85 сказал:

 

В 1С сделайте выгрузку не на сайт , а  в папку . Там появятся два файла. Нам нужен import.xml 

я вам завтра пришлю тогда, в личку. Щас не у компьютера уже.

Ссылка на комментарий
Поделиться на других сайтах


10 часов назад, Demon85 сказал:

Можно образец


канешь)
https://yadi.sk/d/qBWbbelf4iXWPw

Сертификат в PDF прикреплен в номенклатуре 1С к товару, но (при ручной выгрузке) на сайте его нет.
Ни на странице товара (вкладка Связи > Загрузки), ни ссылки в Описании товара. Вообще ничего.
Такое впечатление, что прикрепление файлов к товару в модуле просто не реализовано. :(
У почти 1,5к товаров они должны быть выложены, и как теперь с этим быть - просто ума не приложу...

пример файла import.xml: (pdf в папке import_files/2b присутствует)

Спойлер

pdf_not_import.thumb.jpg.ea46814948aa76b2789ae31b36c00600.jpg


скрины:

Спойлер

product_page_wishout_pdf.jpg.5fd46dbb4219ff2aa5b2ce38ba466879.jpg

no_download_pdf.jpg.2b41af4335101065411709b81520c3fa.jpg

description_no_link_pdf.jpg.9933b9dc304296fab7b0639e0a8d3612.jpg

 

Ссылка на комментарий
Поделиться на других сайтах

  • dinox изменил заголовок на Модуль обмена для opencart v2.3 с учетной системой по стандарту CommerceML [Поддержка]

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.