Jump to content

liaison module avec order


Recommended Posts

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

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

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

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 :P avec la variable $params ou le Context on  toute les infos 

 

@++

 

Loulou66

Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...