Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Создайте сразу и индекс на этом поле.

...

Это поле в программе можно заполнять или вручную, при создании зависимых товаров, или автоматически с помощью запроса:

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
languagesql
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 - код поля, в которое вы записали ИД родителя товара сайта.

Для пользовательских полей код поля можно посмотреть здесь:

...