Перейти к содержанию
Официальный форум поддержки Simpla

При выгрузке с 1С группировать варианты


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

Добрый день.

 

Штатно файл обработчик 1c_exchange.php грузит все товары по отдельности из xml файла.

 

В файле обработчика 1c_exchange.php есть код:

	if(empty($variant_id))
		$simpla->variants->add_variant($variant);
	else	
		$simpla->variants->update_variant($variant_id, $variant);

 

Код должен обновлять вариант товара, если нашел нужный вариант или добавить новый вариант товара.

 

НО данный код не срабатывает у меня. У меня всегда создаются новые товары (даже если создаю тестовый товар и в товаре указываю варианты и артикула). 

 

Т.е. например:

 

Чайник электрический UNIT синий

Чайник электрический UNIT белый

Чайник электрический UNIT зеленый

 

Все это по сути один товар, с разными вариантами, но разными артикулами. 

 

Делаю новый товар, например: Чайник электрический UNIT и делаю 3 варианта товара (синий, белый, зеленый и ставлю каждому из вариантов разные артикула). 

 

В результате при синхронизации все равно создаются новые товары. И на варианты товара не переносятся остатки и цены.

 

Понимаю, что надо делать проверку по полю sku, при проверке на варианты:

 

if(empty($variant_id) && !empty($variant_1c_id))
		{
			$simpla->db->query('SELECT id FROM __variants WHERE external_id=? AND product_id=?', $variant_1c_id, $product_id);
			$variant_id = $simpla->db->result('id');
		}
		elseif(empty($variant_id) && empty($variant_1c_id))
		{
			$simpla->db->query('SELECT id FROM __variants WHERE product_id=?', $product_id);
			$variant_id = $simpla->db->result('id');		
		}

 

 

 

И дальше обновлять варианты:

 

	if(empty($variant_id))
	{
		$variant->product_id = $product_id;
		$variant->stock = 0;
		$variant_id = $simpla->variants->add_variant($variant);
	}
	elseif(!empty($variant_id))
	{
		$simpla->variants->update_variant($variant_id, $variant);
	} 

 

Simpla штатная без допилов.

Но сломал уже голову. Кто сможет помочь в реализации, или натолкнуть в нужное направление.

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

Покажите ваш offers.xml из 1С который прилетает

 

Во вложении.

 

Дело не в offers.xml, а в обработчике.

 

Т.к. в обработчике надо делать условие, по типу: Если есть $variant->sku и он совпадает с $xml_product->Артикул - то обновлять остатки и цену у данного варианта.

 

Само поле Артикула, в файле import.xml. По умолчанию, оно без проблем грузится в одиночные товары (которые не имеет вариантов).

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

Делаю новый товар, например: Чайник электрический UNIT и делаю 3 варианта товара (синий, белый, зеленый и ставлю каждому из вариантов разные артикула). 

В результате при синхронизации все равно создаются новые товары.

 

Очень сильно зависит от того, что означает "Делаю". Если создаете новый товар в админке вручную, а потом хотите, чтоб работало при обмене, то так зачастую не идет.

 

И вообще вопрос не простой, зависит от многого. Примитивным методом тыка вряд ли получится. По моим наблюдениям, в таких ситуациях в 90% причина совсем не в том месте, где ее обычно ищут методом тыка...

 

 

Дело не в offers.xml, а в обработчике.

Т.к. в обработчике надо делать условие, по типу...

 

Результат зависит и от обработчика и от файла. А если считаете, что все дело в условии, так пишите условие. Если после этого наладится, то, значит, Вы были правы...

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...