Автор Тема: Импорт комбинаций - дублируются  (Прочитано 77 раз)

31 Мая 2016, 09:23:12
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Импорт комбинаций делаю так:
1) выбираю файл
2) Ставлю галочку "Использовать артикул товара в качестве ключа"
3) импортирую

Если такая комбинация уже была то она не перезаписывается, а добавляется как новая (видно только в админке то что несколько одинаковых комбинаций)

Если при импорте ставить галочку "Удалить все комбинации перед импортом" то удаляются не только комбинации но и все атрибуты (это не правильно)..


Возможно ли это решить? Чтобы при импорте комбинаций одинаковые комбинации не добавлялись, а перезаписывались...

31 Мая 2016, 09:52:28
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2149
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Если id указать в файле импорта, тогда при совпадении id данные будут перезаписываться.
31 Мая 2016, 10:43:45
Ответ #2
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ого..
Спасибо за ответ!
Но например в 1С всегда будут добавляться новые "комбинации" и не факт что порядок нумерации будет такой-же как и в предыдущей выгрузке т.к. что-то добавляется, а что-то удаляется..

Костыля какого то нету? Может кто-то уже "боролся" с этим?
31 Мая 2016, 10:52:39
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 2149
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Только такой способ. По другому никак.
02 Июня 2016, 11:04:30
Ответ #4
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня такое решение сделано.
Если через  1с тогда делаю так.
Считываю информацию по  товару .
Соответственно они могут меняться.
Перед записью новых комбинаций удаляю старую информацию по комбинациям.
Таблица атрибутов:
Стр ="SELECT c1.* FROM `ps_product_attribute` c1
| WHERE c1.`id_product` = "+Д4+"
|";

Д4 =   Это id товара
Строка.id_product_attribute – Из таблицы арибутов.

Стр ="DELETE FROM ps_product_attribute_combination WHERE ps_product_attribute_combination.id_product_attribute = "+Строка(Формат(Строка.id_product_attribute,"ЧГ="));
   
Стр ="DELETE FROM ps_product_attribute_shop WHERE ps_product_attribute_shop.id_product_attribute = "+Строка(Формат(Строка.id_product_attribute,"ЧГ="));

Стр ="DELETE FROM ps_stock_available WHERE ps_stock_available.id_product = '"+Д4+"'"+" AND ps_stock_available.id_product_attribute = '"+ Строка(Формат(Строка.id_product_attribute,"ЧГ="))+"'";


Стр ="DELETE FROM ps_attribute_impact WHERE ps_attribute_impact.id_product = '"+Д4+"'";

Стр ="DELETE FROM ps_product_attribute WHERE ps_product_attribute.id_product = '"+Д4+"'"+" AND ps_product_attribute.id_product_attribute = '"+ Строка(Формат(Строка.id_product_attribute,"ЧГ="))+"'";


Стр ="DELETE FROM ps_product_supplier WHERE ps_product_supplier.id_product = '"+Д4+"'";


Формирую новые комбинации. Ну и конечно указывается количество товара при формировании.
Тогда нет никаких дублей. Практически это как формирование первоначальных комбинаций.
Можно и другим вариантом.
Считывание информации с номенклатуры товара, формирование таблицы комбинаций.
Считывание информации комбинаций с сайта по этому товару.
Сравнение первой и второй таблицы.
Удаляются записи с сайта комбинации которых нет, и добавляются новые комбинации.
Второй вариант это фактически синхронизация сайта с 1с.
Можно автоматом, можно каждый по отдельности выборочно.