Bonjour à tous,
Question assez basique sur l’utilisation des triggers - j’aimerais que la modification de l’un des champs d’un objet de type produit mette à jour un champ de ce même produit.
Cependant on rentre dans un paradoxe (ou une belle boucle) si on suit cette logique : la modif de l’objet → appel au trigger → modif de l’objet → appel du trigger → etc etc
Comment puis-je me sortir de cette histoire ?
le snap du code incriminé :
// Products
case 'PRODUCT_CREATE':
case 'PRODUCT_MODIFY':
case 'PRODUCT_DELETE':
case 'PRODUCT_PRICE_MODIFY':
case 'PRODUCT_SET_MULTILANGS':
case 'PRODUCT_DEL_MULTILANGS':
$object->array_options['options_need_ecommerce_update'] = true;
$object->updateExtraField('need_ecommerce_update', true);
// Fin du trigger, renvoi >0
return 1;
Le workaround que j’ai trouvé est de faire une query en direct sur la table
$sql = 'UPDATE '.MAIN_DB_PREFIX.'product_extrafields SET need_ecommerce_update = 1 WHERE fk_object='.$object->id;
$result = $this->db->query($sql);
if ($result) { }
Mais bon, c’est moins top
D’avance merci !