Перейти к содержимому


Фото
* * * * * 1 голосов

Автозамена товара при импорте

импорт

  • Чтобы отвечать, сперва войдите на форум
3 ответов в теме

#1 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 07.03.2018 - 13:31

Добрый день.

При импорте товара происходит автозамена одного товара на другой, при этом товары имеют разный артикул! Одинаковое у товаров - только название.

Получается например у меня в файле 50 товаров с названием "Чулки", с разными артикулами, а после импорта получаем только 1 товар "Чулки", при этом с 50-ю разными фотографиями.

Как это исправить?

Какой файл обрабатывает импорт? Может там поменять проверку на одинаковое имя, либо добавить проверку на артикул?

Версия Simpla - 2.3.8


Изменено: kossik, 07.03.2018 - 13:31


#2 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 07.03.2018 - 13:48

Покопался в файлах, в import.php нашел вот такую часть кода на строке 221:

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']);			
elseif(isset($item['variant']))
	$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 AND v.name=? WHERE p.name=? LIMIT 1', $item['variant'], $item['name']);
else
	$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', $item['name']);

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


Изменено: kossik, 07.03.2018 - 13:50


#3 Noxter

Noxter
  • Фрилансер
  • 64 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 07.03.2018 - 13:48

Файл обрабатывающий импорт simpla/ajax/import.php

#4 kossik

kossik
  • Пользователь
  • 36 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 07.03.2018 - 14:17

Вылечил проблему убиранием проверки на отсутствие названия товара, а именно вот так стало:

if(!empty($variant['sku']))
	$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']);	

Получается сам задал вопрос, сам на него и ответил  :D

Хорошо хоть в коде разработчики комментарии ставили, это очень упростило поиски


Изменено: kossik, 07.03.2018 - 14:27






Также с меткой «импорт»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых