...
Создайте сразу и индекс на этом поле.
...
Это поле в программе можно заполнять или вручную, при создании зависимых товаров, или автоматически с помощью запроса:
Code Block |
---|
update product set f_4330u48hb =
(select pc.main_id from product_child pc
where pc.child_id = product.id limit 1) |
где f_4330u48hb
- код поля ИД родителя. Запрос должен выполняться перед действиями выгрузки на сайт.
Загрузка модификаций с сайта
Если у вас на сайте уже есть товары с модификациями, то при выгрузке у товара должно быть 2 поля, ID site и Parent ID site, т.е. ИД товара на сайте и ИД родительского товара на сайте. Для загрузки родительского ИД нужно создать отдельное поле с типом строка. Назвать его, например, “Parent ID сайт”. Поле создается аналогично полю “ИД родителя”.
В действие Quad.Magic полного обновления загрузки товаров с сайта нужно добавить действие “Выполнить запрос к БД”, этим запросом будут связываться товары-модификации , с товарами-родителями, если они еще не связаны (например, при загрузке модификаций из прайса). Действие должно выполняться перед обновлением ценпосле того как они загружены с сайта.
...
Запрос:
Code Block | ||
---|---|---|
| ||
update product set is_main = 1, child_price_func = 2, child_price_discont_func = 1 where exists(select 1 from product p2 where p2.f_3q0728833 = product.f_3o7h64mit); insert into product_child(main_id, child_id, unit_count) select p2.id, p.id, 1 from product p, product p2 where p.f_3q0728833 <> '' and p.f_3o7h64mit <> '' and p.f_3q0728833 = p2.f_3o7h64mit on conflict do nothing; |
...
f_3o7h64mit
- код поля, в которое вы записали ИД товара с сайта (если вы записали его не в пользовательское поле, а в Код, то вместо f_3o7h64mit
нужно использовать code). Встречается в тексте запроса 3 раза.
f_3q0728833
- код поля, в которое вы записали ИД родителя товара сайта.
Для пользовательских полей код поля можно посмотреть здесь:
...