saljipoklon.com Posted January 18, 2015 Share Posted January 18, 2015 Bonjour, Je créer un module de carte de vœux que j'ai accrochés au step 4 (hookDisplayBeforeCarrier) Il y a un form avec un champ pour écrire une carte de vœux et un bouton submit rien de sorcier ! Comment est ce que je peux lier l'id du message a order et ainsi pouvoir le récupérer dans la commande du back office si le payement passe bien sur ! Je présume qu’il faut faire aussi commit rollbak mais je suis novice sur prestashop alors j’attends une repose d'expert Link to comment Share on other sites More sharing options...
loulou66 Posted January 18, 2015 Share Posted January 18, 2015 Coucou L'id_ordrer n'est créé qu’après la validation du paiement donc bien après le step 4 (hookDisplayBeforeCarrier) dans le fichier classes/paymentModules.php dans la fonction validateOrder ( ligne 259) il va donc falloir que tu fasse un override de validateOrder pour la class PaymentModules donc ce que tu peut faire sur ton hookDisplayBeforeCarrier lorsque le client click sur le bouton enregistrer de ton formulaire tu envoie via un objetModel ou une requete SQL(au choix) les donnée dans un table cree expres pour ton module ensuite sur l'override tu rajoutes dans cette tables l'id_order que tu pourra récupérré pour le hookDisplayAdminOrder pour la BO @++ Loulou66 Link to comment Share on other sites More sharing options...
J. Danse Posted January 18, 2015 Share Posted January 18, 2015 Bonsoir, Je pense qu'avant de penser et de passer par une surcharge, il serait bénéfique de voir au niveau des hooks. Surtout si on compare la logique de base d'un panier (retenez bien ce mot) et par exemple du message que l'on y associe. Où je veux en venir ? Disons qu'il est possible d'enregistrer votre donnée dans une table externe (grâce à deux hooks: affiche + traitement) en y associant l'id_cart donné par le contexte. Vous pourrez, si vous le souhaitez, enregistrer l'id_order par la suite (via un autre hook, ceci dit ce n'est pas forcément nécessaire - l'id_cart étant associé à une ligne de order). Ensuite, via un ultime hook, il vous est possible de récupérer/afficher le message en question dans le Back Office. C'est donc, via 3 à 4 hooks un traitement réalisable. Le tout sans surcharges. Et plus on peut éviter celles-ci, mieux c'est ! Link to comment Share on other sites More sharing options...
loulou66 Posted January 18, 2015 Share Posted January 18, 2015 Coucou oui j'y avais bien pensé mais en cas de panier abandonné l' id_order ne serra pas egal a id cart dans le nouveau panier non ? sinon oui c'est bien plus simple effectivement avec la variable $params ou le Context on toute les infos @++ Loulou66 Link to comment Share on other sites More sharing options...
J. Danse Posted January 19, 2015 Share Posted January 19, 2015 Il sera rarement égal, d'ailleurs. Disons que, malheureusement, il existera toujours une bonne partie de paniers abandonnés ou encore, si jamais, il y aura toujours un client ayant constitué un panier après un autre mais passant commande avant (l'id_cart serait par exemple de 3 et 4 mais l'id_order serait de - respectivement - 3 et 2). Comme je le disais, si on analyse le processus d'ajout au panier (au niveau DB) et la création d'une commande, on réalise assez vite que l'id_order n'est déterminé que par la suite (logique, ceci dit). Et l'id_cart y est associé, vu qu'il est unique, il n'y a pas de soucis même si l'on associe pas l'id_order dans la nouvelle table externe, sur le coup. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now