Jump to content

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


Recommended Posts

Добрый день.

 

Штатно файл обработчик 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 штатная без допилов.

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

Edited by artbe
Link to post
Share on other sites

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

 

Во вложении.

 

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

 

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

 

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

Link to post
Share on other sites

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

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

 

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

 

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

 

 

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

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

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...