Podczas synchronizacji stanów produktów może zajść konieczność modyfikacji widoczności towarów w sklepie w zależności od ich dostępności. Można wtedy wykorzystać wyzwalacz w bazie danych, który natychmiast po modyfikacji stanu zmodyfikuje widoczność towaru w sklepie.
delimiter //
CREATE TRIGGER change_active_after_update AFTER UPDATE ON ps_stock_available
FOR EACH ROW
BEGIN
UPDATE ps_product_shop p SET
p.visibility=IF(
(SELECT s.quantity FROM ps_stock_available s WHERE s.id_product_attribute=0 and s.id_product=p.id_product)>0,'both','none')
WHERE p.id_product=NEW.id_product;
UPDATE ps_product p SET
p.visibility=IF(
(SELECT s.quantity FROM ps_stock_available s WHERE s.id_product_attribute=0 and s.id_product=p.id_product)>0,'both','none')
WHERE p.id_product=NEW.id_product;
END;
//
delimiter ;
Kod należy wykonać w managerze MySQL np poprzez stronę MySqlAdmin.
UWAGA. Nie ponosimy odpowiedzialności za nieprawidłowe działanie skryptu. Polecamy przekazanie tej informacji osobom doświadczonym.