Bonjour à tous.
Je suis en train de mettre en place une billeterie en ligne sous prestashop. (v 1.5)
Je me permet de soliciter la communauté , car je bloque sur une fonctionnalité particulière
(je suis intégrateur et novice en php).
Il faudrait que mon client puisse définir une date d'expiration pour chaques produits.
J'ai déjà mon champ personnalisé dans le BO sous forme de date picker + le champ dans la base de donnée.
Et voilà ce que je n'arrive pas à faire :
Si la date du jour est égale ou supérieure à la date d'expiration, le produit est désactiver (passe à 0 dans le champs "active" de table ps_product_shop).
Là, je ne sais vraiment pas comment m'y prendre.
Faut-il utiliser les overrides ? Faire un module ? Existe t-il une fonctionnalité native ?
En faisant le tour du web et des forums, la solution qui me semble la plus adequate est la création d'un trigger, mais tout ça est très flou pour moi. Voici le script en question, que je souhaiterais adapter :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DELIMITER $ CREATE TRIGGER `change_active_after_update` AFTER UPDATE ON `ps_stock_available` FOR EACH ROW BEGIN UPDATE ps_product_shop SET active=0 WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity=0) AND DATEDIFF(NOW(),date_upd)>30; UPDATE ps_product_shop SET active=1 WHERE id_product IN (SELECT id_product FROM ps_stock_available WHERE quantity>0); END $ /* Reset the delimiter back to ";" */ DELIMITER ;
J'ai une erreure à l'exécution de cette commande sous phpmyadmin (apparement, je n'ai pas les droits suffisants), je suis sous un ovh mutualisé.
Bref, est-ce la bonne voie ? Si quelqu'un peux m'aider, ce serais genial.
Merci d'avance
Partager