kossik Posted March 7, 2018 Report Share Posted March 7, 2018 (edited) Добрый день.При импорте товара происходит автозамена одного товара на другой, при этом товары имеют разный артикул! Одинаковое у товаров - только название.Получается например у меня в файле 50 товаров с названием "Чулки", с разными артикулами, а после импорта получаем только 1 товар "Чулки", при этом с 50-ю разными фотографиями.Как это исправить?Какой файл обрабатывает импорт? Может там поменять проверку на одинаковое имя, либо добавить проверку на артикул?Версия Simpla - 2.3.8 Edited March 7, 2018 by kossik Quote Link to post Share on other sites
kossik Posted March 7, 2018 Author Report Share Posted March 7, 2018 (edited) Покопался в файлах, в 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']);То есть получается мы не проходим проверку на наличие и названия и артикула одновременно, а тупо заменяем товары с одинаковыми названиями, даже если определены артикулы. Как разработчики могли пропустить такой момент? Edited March 7, 2018 by kossik Quote Link to post Share on other sites
Noxter Posted March 7, 2018 Report Share Posted March 7, 2018 Файл обрабатывающий импорт simpla/ajax/import.php Quote Link to post Share on other sites
kossik Posted March 7, 2018 Author Report Share Posted March 7, 2018 (edited) Вылечил проблему убиранием проверки на отсутствие названия товара, а именно вот так стало: 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']); Получается сам задал вопрос, сам на него и ответил Хорошо хоть в коде разработчики комментарии ставили, это очень упростило поиски Edited March 7, 2018 by kossik Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.