Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

8 годин назад, Espresso.Doktor сказав:

 

Дописал код, обмен прошел успешно, но не сработало, уже и кеш чистил, и модификатор обновлял.

Вообще товары у которых выставил значение "Минимальное количество в упаковке" вообще не парсятся :?

Вечером, хочу проверить или 1С-ка выгружает эти артикулы, ибо стоит полная выгрузка.

При этом в exchange1c.log не вижу что бы парсились эти артикулы.

Если закоментить эти строки, то они появляются в exchange1c.log

 

Еще я обратил внимание на поле в карточке товара "начало продаж", то есть его тоже можно использовать для нового товара.

Правда еще не тестировал, как сама дата начала продаж работает, и что происходит на витрине.

 

Смотрите правильный ли синтаксис кода, я Вам показал логику 

Надіслати
Поділитися на інших сайтах


17 часов назад, Espresso.Doktor сказал:

 

Дописал код, обмен прошел успешно, но не сработало, уже и кеш чистил, и модификатор обновлял.

Вообще товары у которых выставил значение "Минимальное количество в упаковке" вообще не парсятся :?

Вечером, хочу проверить или 1С-ка выгружает эти артикулы, ибо стоит полная выгрузка.

При этом в exchange1c.log не вижу что бы парсились эти артикулы.

Если закоментить эти строки, то они появляются в exchange1c.log

 

Еще я обратил внимание на поле в карточке товара "начало продаж", то есть его тоже можно использовать для нового товара.

Правда еще не тестировал, как сама дата начала продаж работает, и что происходит на витрине.

 

Напишите какой тип у свойства "multipleminimumqty" и вы уверены что оно называется в таблице товара именно "multipleminimumqty" ?

Пример:

min.png.caae86f2b9e7e762be87097ca4a62054.png

Надіслати
Поділитися на інших сайтах


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

Напишите какой тип у свойства "multipleminimumqty" и вы уверены что оно называется в таблице товара именно "multipleminimumqty" ?

Пример:

min.png.caae86f2b9e7e762be87097ca4a62054.png

 

Вроде называется так же и в таблице "multipleminimumqty"  

 

Спойлер

2374faebb5.jpg

 

Надіслати
Поділитися на інших сайтах


32 минуты назад, Espresso.Doktor сказал:

 

Вроде называется так же и в таблице "multipleminimumqty"  

 

  Скрыть контент

2374faebb5.jpg

 

 

В файле \admin\model\extension\exchange1c.php найдите функцию private function prepareQueryProduct($data, $mode = 'set') {

В конце функции перед строкой return implode(($mode = 'set' ? ', ' : ' AND '),$sql);

Вставьте вот этот код:

        if (isset($data['multipleminimumqty']))
             $sql[] = $mode == 'set'        ? "`multipleminimumqty` = '" .        (int)$data['multipleminimumqty'] . "'"                    : "`multipleminimumqty`";

В итоге функция должна выглядеть вот так:

Спойлер

	/**
	 * ver 3
	 * update 2018-03-25
	 * Подготавливает запрос для товара
	 */
	private function prepareQueryProduct($data, $mode = 'set') {

		$sql = array();
		if (isset($data['model']))
	 		$sql[] = $mode == 'set'		? "`model` = '" .				$this->db->escape($data['model']) . "'"				: "`model`";
		if (isset($data['sku']))
	 		$sql[] = $mode == 'set'		? "`sku` = '" .					$this->db->escape($data['sku']) . "'"				: "`sku`";
		if (isset($data['upc']))
	 		$sql[] = $mode == 'set'		? "`upc` = '" .					$this->db->escape($data['upc']) . "'"				: "`upc`";
		if (isset($data['ean']))
	 		$sql[] = $mode == 'set'		? "`ean` = '" .					$this->db->escape($data['ean']) . "'"				: "`ean`";
		if (isset($data['jan']))
	 		$sql[] = $mode == 'set'		? "`jan` = '" .					$this->db->escape($data['jan']) . "'"				: "`jan`";
		if (isset($data['isbn']))
	 		$sql[] = $mode == 'set'		? "`isbn` = '" .				$this->db->escape($data['isbn']) . "'"				: "`isbn`";
		if (isset($data['mpn']))
	 		$sql[] = $mode == 'set'		? "`mpn` = '" .					$this->db->escape($data['mpn']) . "'"				: "`mpn`";
		if (isset($data['location']))
	 		$sql[] = $mode == 'set'		? "`location` = '" .			$this->db->escape($data['location']) . "'"			: "`location`";
		if (isset($data['quantity']))
	 		$sql[] = $mode == 'set'		? "`quantity` = '" .			(float)$data['quantity'] . "'"						: "`quantity`";
		if (isset($data['unit_id']))
	 		$sql[] = $mode == 'set'		? "`unit_id` = '" .				(int)$data['unit_id'] . "'"							: "`unit_id`";
		if (isset($data['minimum']))
	 		$sql[] = $mode == 'set'		? "`minimum` = '" .				(float)$data['minimum'] . "'"						: "`minimum`";
		if (isset($data['subtract']))
	 		$sql[] = $mode == 'set'		? "`subtract` = '" .			(int)$data['subtract'] . "'"						: "`subtract`";
		if (isset($data['stock_status_id']))
	 		$sql[] = $mode == 'set'		? "`stock_status_id` = '" .		(int)$data['stock_status_id'] . "'"					: "`stock_status_id`";
		if (isset($data['image']))
	 		$sql[] = $mode == 'set'		? "`image` = '" .				$this->db->escape($data['image']) . "'"				: "`image`";
		if (isset($data['date_available']))
	 		$sql[] = $mode == 'set'		? "`date_available` = '" .		$this->db->escape($data['date_available']) . "'"	: "`date_available`";
		if (isset($data['date_modified']))
	 		$sql[] = $mode == 'set'		? "`date_modified` = '" .		$this->db->escape($data['date_modified']) . "'"		: "`date_modified`";
		if (isset($data['manufacturer_id']))
	 		$sql[] = $mode == 'set'		? "`manufacturer_id` = '" .		(int)$data['manufacturer_id'] . "'"					: "`manufacturer_id`";
		if (isset($data['shipping']))
	 		$sql[] = $mode == 'set'		? "`shipping` = '" .			(int)$data['shipping'] . "'"						: "`shipping`";
		if (isset($data['price']))
	 		$sql[] = $mode == 'set'		? "`price` = '" .				(float)$data['price'] . "'"							: "`price`";
		if (isset($data['points']))
	 		$sql[] = $mode == 'set'		? "`points` = '" .				(int)$data['points'] . "'"							: "`points`";
		if (isset($data['length']))
	 		$sql[] = $mode == 'set'		? "`length` = '" .				(float)$data['length'] . "'"						: "`length`";
		if (isset($data['width']))
	 		$sql[] = $mode == 'set'		? "`width` = '" .				(float)$data['width'] . "'"							: "`width`";
		if (isset($data['weight']))
	 		$sql[] = $mode == 'set'		? "`weight` = '" .				(float)$data['weight'] . "'"						: "`weight`";
		if (isset($data['height']))
	 		$sql[] = $mode == 'set'		? "`height` = '" .				(float)$data['height'] . "'"						: "`height`";
		if (isset($data['status']))
	 		$sql[] = $mode == 'set'		? "`status` = '" .				(int)$data['status'] . "'"							: "`status`";
		if (isset($data['noindex']))
	 		$sql[] = $mode == 'set'		? "`noindex` = '" .				(int)$data['noindex'] . "'"							: "`noindex`";
		if (isset($data['tax_class_id']))
	 		$sql[] = $mode == 'set'		? "`tax_class_id` = '" .		(int)$data['tax_class_id'] . "'"					: "`tax_class_id`";
		if (isset($data['sort_order']))
	 		$sql[] = $mode == 'set'		? "`sort_order` = '" .			(int)$data['sort_order'] . "'"						: "`sort_order`";
		if (isset($data['length_class_id']))
	 		$sql[] = $mode == 'set'		? "`length_class_id` = '" .		(int)$data['length_class_id'] . "'"					: "`length_class_id`";
		if (isset($data['weight_class_id']))
	 		$sql[] = $mode == 'set'		? "`weight_class_id` = '" .		(int)$data['weight_class_id'] . "'"					: "`weight_class_id`";
		if (isset($data['multipleminimumqty']))
	 		$sql[] = $mode == 'set'       ? "`multipleminimumqty` = '" .  (int)$data['multipleminimumqty'] . "'"            : "`multipleminimumqty`";

		return implode(($mode = 'set' ? ', ' : ' AND '),$sql);

	} // prepareQueryProduct()

 

Далее в том месте, где мы вам до этого советовали, вставьте этот код:

Спойлер

                case 'Кількість в упаковці':
                    $this->log("Мінімальна кількість в упаковці из свойства");
                    $search = array(',', ' ');
                    $replace = array('.', '');
                    $data['minimum'] = str_replace($search, $replace, $attribute_value);
                    if($data['minimum'] > 1){
                       $data['multipleminimumqty'] = 1;
                    }
                break;

 

Змінено користувачем Maximis
  • +1 3
Надіслати
Поділитися на інших сайтах


22 часа назад, Espresso.Doktor сказал:

На сколько будет быстрее работать модуль обмена 1С с сайтом через API, от классического обмена Битрикс ?  

 

В Opencart по дефолту нет контроллера API для работы с товаром , по крайне мере в OC3 точно нет . Но можно написать самому . 

 

Вот что есть из коробки :
 

Снимок экрана 2021-03-14 172807.jpg

Змінено користувачем Dmytro85
Надіслати
Поділитися на інших сайтах

14 минут назад, Dmytro85 сказал:

 

В Opencart по дефолту нет контроллера API для работы с товаром , по крайне мере в OC3 точно нет . Но можно написать самому . 

 

Вот что есть из коробки :
 

Снимок экрана 2021-03-14 172807.jpg

Есть api и этого достаточно, просто во многих движках даже этого нет.

Написать функции для api не так сложно, вопрос в том, что например для 1С придется дополнительно разрабатывать расширение или обработку для обмена по api, а вот тут сложности, они очень часто перерабатывают конфигурации, переименовывают реквизиты и перелапачивают штатные функции... И поддерживать все это будет намного сложней. 

Змінено користувачем Maximis
Надіслати
Поділитися на інших сайтах


20 минут назад, Dmytro85 сказал:

Автор вроде выложил какие-то исправления за 2020 год.  oc2.3-exchange1c_1.6.4.7.  И обещал вот-вот версию 2.0 выложить .

 

Ну он обещал его на платной основе, ну мы все хотим развития данного проекта, чтобы он был бесплатным в первую очередь, в этом вся прелесть, а вот сущности могут быть уже и платными и бесплатными. Может быть развитие дополнительного функционала как платным, так и бесплатным.. Больше возможностей. , 

Змінено користувачем Maximis
Надіслати
Поділитися на інших сайтах


1 час назад, Maximis сказал:

 

В файле \admin\model\extension\exchange1c.php найдите функцию private function prepareQueryProduct($data, $mode = 'set') {

В конце функции перед строкой return implode(($mode = 'set' ? ', ' : ' AND '),$sql);

Вставьте вот этот код:

        if (isset($data['multipleminimumqty']))
             $sql[] = $mode == 'set'        ? "`multipleminimumqty` = '" .        (int)$data['multipleminimumqty'] . "'"                    : "`multipleminimumqty`";

В итоге функция должна выглядеть вот так:

  Скрыть контент


	/**
	 * ver 3
	 * update 2018-03-25
	 * Подготавливает запрос для товара
	 */
	private function prepareQueryProduct($data, $mode = 'set') {

		$sql = array();
		if (isset($data['model']))
	 		$sql[] = $mode == 'set'		? "`model` = '" .				$this->db->escape($data['model']) . "'"				: "`model`";
		if (isset($data['sku']))
	 		$sql[] = $mode == 'set'		? "`sku` = '" .					$this->db->escape($data['sku']) . "'"				: "`sku`";
		if (isset($data['upc']))
	 		$sql[] = $mode == 'set'		? "`upc` = '" .					$this->db->escape($data['upc']) . "'"				: "`upc`";
		if (isset($data['ean']))
	 		$sql[] = $mode == 'set'		? "`ean` = '" .					$this->db->escape($data['ean']) . "'"				: "`ean`";
		if (isset($data['jan']))
	 		$sql[] = $mode == 'set'		? "`jan` = '" .					$this->db->escape($data['jan']) . "'"				: "`jan`";
		if (isset($data['isbn']))
	 		$sql[] = $mode == 'set'		? "`isbn` = '" .				$this->db->escape($data['isbn']) . "'"				: "`isbn`";
		if (isset($data['mpn']))
	 		$sql[] = $mode == 'set'		? "`mpn` = '" .					$this->db->escape($data['mpn']) . "'"				: "`mpn`";
		if (isset($data['location']))
	 		$sql[] = $mode == 'set'		? "`location` = '" .			$this->db->escape($data['location']) . "'"			: "`location`";
		if (isset($data['quantity']))
	 		$sql[] = $mode == 'set'		? "`quantity` = '" .			(float)$data['quantity'] . "'"						: "`quantity`";
		if (isset($data['unit_id']))
	 		$sql[] = $mode == 'set'		? "`unit_id` = '" .				(int)$data['unit_id'] . "'"							: "`unit_id`";
		if (isset($data['minimum']))
	 		$sql[] = $mode == 'set'		? "`minimum` = '" .				(float)$data['minimum'] . "'"						: "`minimum`";
		if (isset($data['subtract']))
	 		$sql[] = $mode == 'set'		? "`subtract` = '" .			(int)$data['subtract'] . "'"						: "`subtract`";
		if (isset($data['stock_status_id']))
	 		$sql[] = $mode == 'set'		? "`stock_status_id` = '" .		(int)$data['stock_status_id'] . "'"					: "`stock_status_id`";
		if (isset($data['image']))
	 		$sql[] = $mode == 'set'		? "`image` = '" .				$this->db->escape($data['image']) . "'"				: "`image`";
		if (isset($data['date_available']))
	 		$sql[] = $mode == 'set'		? "`date_available` = '" .		$this->db->escape($data['date_available']) . "'"	: "`date_available`";
		if (isset($data['date_modified']))
	 		$sql[] = $mode == 'set'		? "`date_modified` = '" .		$this->db->escape($data['date_modified']) . "'"		: "`date_modified`";
		if (isset($data['manufacturer_id']))
	 		$sql[] = $mode == 'set'		? "`manufacturer_id` = '" .		(int)$data['manufacturer_id'] . "'"					: "`manufacturer_id`";
		if (isset($data['shipping']))
	 		$sql[] = $mode == 'set'		? "`shipping` = '" .			(int)$data['shipping'] . "'"						: "`shipping`";
		if (isset($data['price']))
	 		$sql[] = $mode == 'set'		? "`price` = '" .				(float)$data['price'] . "'"							: "`price`";
		if (isset($data['points']))
	 		$sql[] = $mode == 'set'		? "`points` = '" .				(int)$data['points'] . "'"							: "`points`";
		if (isset($data['length']))
	 		$sql[] = $mode == 'set'		? "`length` = '" .				(float)$data['length'] . "'"						: "`length`";
		if (isset($data['width']))
	 		$sql[] = $mode == 'set'		? "`width` = '" .				(float)$data['width'] . "'"							: "`width`";
		if (isset($data['weight']))
	 		$sql[] = $mode == 'set'		? "`weight` = '" .				(float)$data['weight'] . "'"						: "`weight`";
		if (isset($data['height']))
	 		$sql[] = $mode == 'set'		? "`height` = '" .				(float)$data['height'] . "'"						: "`height`";
		if (isset($data['status']))
	 		$sql[] = $mode == 'set'		? "`status` = '" .				(int)$data['status'] . "'"							: "`status`";
		if (isset($data['noindex']))
	 		$sql[] = $mode == 'set'		? "`noindex` = '" .				(int)$data['noindex'] . "'"							: "`noindex`";
		if (isset($data['tax_class_id']))
	 		$sql[] = $mode == 'set'		? "`tax_class_id` = '" .		(int)$data['tax_class_id'] . "'"					: "`tax_class_id`";
		if (isset($data['sort_order']))
	 		$sql[] = $mode == 'set'		? "`sort_order` = '" .			(int)$data['sort_order'] . "'"						: "`sort_order`";
		if (isset($data['length_class_id']))
	 		$sql[] = $mode == 'set'		? "`length_class_id` = '" .		(int)$data['length_class_id'] . "'"					: "`length_class_id`";
		if (isset($data['weight_class_id']))
	 		$sql[] = $mode == 'set'		? "`weight_class_id` = '" .		(int)$data['weight_class_id'] . "'"					: "`weight_class_id`";
		if (isset($data['multipleminimumqty']))
	 		$sql[] = $mode == 'set'       ? "`multipleminimumqty` = '" .  (int)$data['multipleminimumqty'] . "'"            : "`multipleminimumqty`";

		return implode(($mode = 'set' ? ', ' : ' AND '),$sql);

	} // prepareQueryProduct()

 

Далее в том месте, где мы вам до этого советовали, вставьте этот код:

  Скрыть контент


                case 'Кількість в упаковці':
                    $this->log("Мінімальна кількість в упаковці из свойства");
                    $search = array(',', ' ');
                    $replace = array('.', '');
                    $data['minimum'] = str_replace($search, $replace, $attribute_value);
                    if($data['minimum'] > 1){
                       $data['multipleminimumqty'] = 1;
                    }
                break;

 

 

Благодарю, отработало :-o

Протестировал на новом товаре, все отлично!

 

P.S. Бегу за пивом, Вам брать ?

 

 

Надіслати
Поділитися на інших сайтах


В основном тут индивидуальные вопросы, каждому индивидуально можно в этом помочь, но это уже даже не энтузиазм, а раб работа и каждому помогать устанешь. Я надеюсь, кому смог помог, пока болел и было скучно, теперь отключаюсь и переключаюсь в режим наблюдателя. Если будут предложения, пишите в личку, я всегда доступен и за продолжение истории.

Надіслати
Поділитися на інших сайтах


8 минут назад, Espresso.Doktor сказал:

 

Благодарю, отработало :-o

Протестировал на новом товаре, все отлично!

 

P.S. Бегу за пивом, Вам брать ?

 

 

Рад был помочь :D

Только поставьте еще условие, "иначе", когда у multipleminimumqty значение должно быть не 1.

Змінено користувачем Maximis
Надіслати
Поділитися на інших сайтах


56 минут назад, Dmytro85 сказал:

Автор вроде выложил какие-то исправления за 2020 год.  oc2.3-exchange1c_1.6.4.7.  И обещал вот-вот версию 2.0 выложить .

 

А тут такое можно прочитать:

 

Спойлер

ae3ce82233.jpg

 

Что как бы намекает, что уже ждать не стоит :(

 

Надіслати
Поділитися на інших сайтах


В 13.03.2021 в 19:29, Espresso.Doktor сказал:

 

То есть у меня сейчас товаров условно 3к в 1С полная выгрузка без фото, занимает от 1,5 до 2,3 минут.

С фото около 5-6 минут.

В 1с нет настроек выгружать только обновления? Чтоб не гонять в пустую товары.

Надіслати
Поділитися на інших сайтах


В 13.03.2021 в 17:41, Espresso.Doktor сказал:

 

По этому возможно буду искать другую CRM которая будет дружить с 1С-кой и с OpenCart, но это в планах.

Гляньте бизнеРу неплохая срм и по протоколу комерц работает. И нет сложностей как с 1с. И можно будет вообще уйти от 1с.

Змінено користувачем Ivanzo
Надіслати
Поділитися на інших сайтах


305893792_.png.44dbb85eff5d179fba6df4945a6187b3.png

Если загружаю пустые опции для товара, то минимальная цена для товара не меняется. Если я правильно понял нужно изменить данную фунцию

Прихований текст

private function getProductFeaturesQuantityPrice($product_id) {

		$data_quantity = array();
		$data_price = array();
		$price_min = 0;
		$price_max = 0;
		$quantity_total = 0;

		$query = $this->query("SELECT `product_feature_id`,`quantity`,`price` FROM `" . DB_PREFIX . "product_feature` WHERE `product_id` = '" . $product_id . "'");
    	if ($query->num_rows) {

    		foreach ($query->rows as $feature) {

    			// Значения
   				$data_value = array();
    			$query_value = $this->query("SELECT `product_option_id`,`product_option_value_id` FROM `" . DB_PREFIX . "product_feature_value` WHERE `product_feature_id` = '" . $feature['product_feature_id'] . "'");
   				foreach ($query_value->rows as $value) {
    				$data_value[$value['product_option_value_id']] = array(
    					'product_option_id'			=> $value['product_option_id'],
    					'product_option_value_id'	=> $value['product_option_value_id'],
    					'price'						=> $feature['price']
					);
					
					//*****					
					if ($price_min > $feature['price'] || $price_min == 0) {
						$price_min = $feature['price'];
					}					
					//*****
					if ($price_max < $feature['price']) {
						$price_max = $feature['price'];
					}
   				}
    			$data_quantity[$feature['product_feature_id']] = $feature['quantity'];
    			$quantity_total += $feature['quantity'];
				$data_price[$feature['product_feature_id']] = $data_value;

    		}
    	}

    	$data = array(
    		'quantity'	=> $data_quantity,
    		'price'		=> $data_price,
    		'price_min'	=> $price_min,
    		'price_max'	=> $price_max,
    		'quantity_total' => $quantity_total
		);

		return $data;

	} // getProductFeaturesQuantityPrice()

 

 

Надіслати
Поділитися на інших сайтах


22 часа назад, Maximis сказал:

Не совсем понял о чем речь, но если правильно понял, то 1С тут не причем, тут скорей всего проблема в настройках сервера, где лежит ваш сайт..

 

При обмене 1С с OpenCart, с сайта прилетает ответы в 1С-ку, ответ прилетает из контролера

site.ru\admin\controller\extension\module\exchange1c.php

 

		if ($error) {
			$this->echo_message(0, $error);
		} else {
			$this->echo_message(1, "Successfully import catalog");
		}

 

В 1С-ке в Служебных сообщениях это отображается

 

Спойлер

da471e29be.png

 

Это без фото выгрузка, хочу прописать, что то на подобии файл import.xml успешно обработан, и так далее.

 

Надіслати
Поділитися на інших сайтах


1 час назад, Ivanzo сказал:

Гляньте бизнеРу неплохая срм и по протоколу комерц работает. И нет сложностей как с 1с. И можно будет вообще уйти от 1с.

 

От 1С-ки пока не буду уходить, ибо пока все устраивает, не смотря на проект РЕТРО :cry:

1С-ка много задач закрывает, по этому и хочется максимально из 1С-ки управлять сайтом, а потом уже буду изучать CRM.

Но за подсказку Благодарю!

Надіслати
Поділитися на інших сайтах


5 часов назад, Maximis сказал:

В основном тут индивидуальные вопросы, каждому индивидуально можно в этом помочь, но это уже даже не энтузиазм, а раб работа и каждому помогать устанешь. Я надеюсь, кому смог помог, пока болел и было скучно, теперь отключаюсь и переключаюсь в режим наблюдателя. Если будут предложения, пишите в личку, я всегда доступен и за продолжение истории.

 

Каждое направления имеет свои рабочие моменты.

Как например у меня обмен заказами OpenCart & 1C так и не запустился, хотя это можно считать так званым коробочным решением..

 

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

Модуль обмена должен жить, ибо это реальная автоматизация рабочего процесса.

 

P.S. За эти пару дней, на форуме самая активная тема, в которой идет общение.

Надіслати
Поділитися на інших сайтах


5 часов назад, Ivanzo сказал:

В 1с нет настроек выгружать только обновления? Чтоб не гонять в пустую товары.

 

Есть, почему нету?

Правда, еще не тестировал данную функцию :oops:

Надо что бы обмен заказами работал на все 100%, тогда можно уже переходить на данный функционал. 8-)

 

Спойлер

4a1a211673.png

 

Надіслати
Поділитися на інших сайтах


8 часов назад, Espresso.Doktor сказал:

 

От 1С-ки пока не буду уходить, ибо пока все устраивает, не смотря на проект РЕТРО :cry:

1С-ка много задач закрывает, по этому и хочется максимально из 1С-ки управлять сайтом, а потом уже буду изучать CRM.

Но за подсказку Благодарю!

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

Надіслати
Поділитися на інших сайтах


Всем добрый день. 

Подскажите, пожалуйста, по модулю.

Использую модуль версии 1.6.3.11 на ocStore 2.1.0.2.1. (последний стабильный модуль для 2.1.0.2.1)

У меня проблема с производителями, при каждой выгрузке товара на сайт дублируются производители, т.е. создаются новые, не происходит проверка на дубль. Насколько понял в следующей версии модуля для 2.3 это исправили.

Есть возможность помочь исправить эту проблему для моей версии сайта? Или хотя-бы ткнуть куда смотреть.

Сайт не вывозит, с дублями около 107к производителей при 40к товаров на сайте..

Заранее благодарен!

Надіслати
Поділитися на інших сайтах


45 минут назад, Shkodich сказал:

Всем добрый день. 

Подскажите, пожалуйста, по модулю.

Использую модуль версии 1.6.3.11 на ocStore 2.1.0.2.1. (последний стабильный модуль для 2.1.0.2.1)

У меня проблема с производителями, при каждой выгрузке товара на сайт дублируются производители, т.е. создаются новые, не происходит проверка на дубль. Насколько понял в следующей версии модуля для 2.3 это исправили.

Есть возможность помочь исправить эту проблему для моей версии сайта? Или хотя-бы ткнуть куда смотреть.

Сайт не вывозит, с дублями около 107к производителей при 40к товаров на сайте..

Заранее благодарен!

 

Если правильно Вас понял, то проверьте у себя настройки модуля обмена, закладка Номенклатура

 

Спойлер

a1d7398548.jpg

 

И у меня код в файле admin/model/extension/exchange1c.php  выглядит вот так:

 

			// ПРОИЗВОДИТЕЛЬ
			$manufacturer_tag = 'Производитель';
			if ($this->config->get('exchange1c_product_manufacturer_tag'))
				$manufacturer_tag = $this->config->get('exchange1c_product_manufacturer_tag');

			// Читаем изготовителя, добавляем/обновляем его в базу
			if ($product->Изготовитель) {
				$data['manufacturer_name'] = trim((string)$product->Изготовитель->Наименование);
			} elseif ($product->Производитель) {
				$data['manufacturer_name'] = trim((string)$product->Производитель);
			} elseif ($product->$manufacturer_tag) {
	        	$data['manufacturer_name'] = trim((string)$product->$manufacturer_tag->Наименование);
			}

 

 

Надіслати
Поділитися на інших сайтах


1 час назад, Espresso.Doktor сказал:

Если правильно Вас понял, то проверьте у себя настройки модуля обмена, закладка Номенклатура

У меня нет такого в модуле, есть только запрет на обновление производителя, но это полное отключение выгрузки производителя, а мне они необходимы :/ 

Поля для сопоставления название элемента производителя нет в моей версии модуля.

1 час назад, Espresso.Doktor сказал:

И у меня код в файле admin/model/extension/exchange1c.php  выглядит вот так:

И по коду из Вашего примера тоже не вижу такого. 

Думаю у Вас для версии oc 2.3, у меня этот файл находится по пути admin/model/tool/exchange1c.php, у меня версия модуля 1.6.3.11 для oc 2.1

Надіслати
Поділитися на інших сайтах


35 минут назад, Shkodich сказал:

У меня нет такого в модуле, есть только запрет на обновление производителя, но это полное отключение выгрузки производителя, а мне они необходимы :/ 

Поля для сопоставления название элемента производителя нет в моей версии модуля.

И по коду из Вашего примера тоже не вижу такого. 

Думаю у Вас для версии oc 2.3, у меня этот файл находится по пути admin/model/tool/exchange1c.php, у меня версия модуля 1.6.3.11 для oc 2.1

 

Сори, точно у меня уже версия 1.6.4.8, а до этого была 1.6.4.8.

Ищите "private function setManufacturer" там код который отвечает за запись производителя, выкладывайте сюда, думаю там есть баг

Змінено користувачем Espresso.Doktor
Надіслати
Поділитися на інших сайтах


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

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.