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

Обновить через импорт артикулы


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

Есть импорт в csv , изначально не было артикулов, далее проставил артикулы нужные через файл, а потом попытался обновить их по названию. Как итог - почему то добавляются товары как новые. Хотел что товар обновлялся по уникальному названию продукта, и добавлял артикул, также и с вариантами. Уже оставил 3 поля 

Имя товара, артикул, вариант.

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

Ссылка на сообщение
Поделиться на другие сайты
4 minutes ago, shooroop said:

откройте import.php и посмотрите его логику сразу станет все понятно

К примеру есть товар "Товар 1" без артикула.

Я создаю в csv файл "Товар 1" c артикулом "123" и пробую импортировать. Появляется новый товар , а хотел чтоб артикул просто обновлялся в товаре.

по логике я нашел только 

// Если задан артикул варианта, найдем этот вариант и соответствующий товар
		if(!empty($variant['sku']))
		{ 
			$this->db->query('SELECT v.id as variant_id, v.product_id FROM __variants v, __products p WHERE v.sku=? AND v.product_id = p.id LIMIT 1', $variant['sku']);
			$result = $this->db->result();
			if($result)
			{
				// и обновим товар
				if(!empty($product))
					$this->products->update_product($result->product_id, $product);
				// и вариант
				if(!empty($variant))
					$this->variants->update_variant($result->variant_id, $variant);
				
				$product_id = $result->product_id;
				$variant_id = $result->variant_id;
				// Обновлен
				$imported_item->status = 'updated';
			}
		}

Думаю это нужно убрать полностью.

Ну и самое сложное это наверное SQL запрос, логику которого не совсем понимаю

if(!empty($variant['sku']) && empty($variant['name']))
				$this->db->query('SELECT v.id as variant_id, p.id as product_id FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE v.sku=? LIMIT 1', $variant['sku']);	

 

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

это означает что есть название артикула но нет название варианта

if(!empty($variant['sku']) && empty($variant['name']))

 

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

Ссылка на сообщение
Поделиться на другие сайты
9 hours ago, shooroop said:

это означает что есть название артикула но нет название варианта


if(!empty($variant['sku']) && empty($variant['name']))

 

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

 

получается 2 кусок кода трогать не надо, надо только sql запрос поменять тут?

$this->db->query('SELECT v.id as variant_id, v.product_id FROM __variants v, __products p WHERE v.sku=? AND v.product_id = p.id LIMIT 1', $variant['sku']);

 

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

if(!empty($variant['sku']) && empty($variant['name']))
                $this->db->query('SELECT v.id as variant_id, p.id as product_id FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE p.name=? LIMIT 1', $product['name']);

Ссылка на сообщение
Поделиться на другие сайты
В 27.09.2020 в 01:01, shooroop сказал:

это означает что есть название артикула но нет название варианта


if(!empty($variant['sku']) && empty($variant['name']))

 

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

Благодарствую за толчек в нужное направление, теперь работает как надо.

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

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

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

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

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

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

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

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

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

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