Obtenez de l'actuel n ° de commande dans magento module de paiement lors de votre commande
Je mets en place mon propre module de paiement pour Magento, où j'ai mis en place getCheckoutRedirectUrl() la méthode dans mon modèle de paiement.
class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {}
Cette méthode est censé juste de retour de l'URL de la passerelle de paiement, où l'utilisateur est redirigé vers, mais je dois aussi ajouter actuel n ° de commande pour cette URL.
Le problème est que ne suis pas en mesure d'obtenir n ° de commande. J'ai essayé la solution que déjà accepté ici
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
mais je reçois vide $n ° de commande. Donc, cela ne semble pas fonctionner dans ma méthode. L'appel ne produit pas d'erreur, donc, je reçois un objet (par exemple le Mage::getSingleton('checkout/session')->getQuote()->getSubtotal() renvoie le montant de la commande), mais n ° de commande est vide.
J'ai aussi essayé:
$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$orderId = $order->getIncrementId();
qui revient encore vide $n ° de commande.
Des Idées?
OriginalL'auteur KoviNET | 2012-01-12
Vous devez vous connecter pour publier un commentaire.
Votre question, comme l'écrit, est illogique.
Il n'y a pas de numéro de commande pendant la caisse. Pendant que vous êtes à la vérification, Magento crée un
sales/quote
objet. Cet objet est utilisé pour garder une trace de citation des articles. Il n'est pas jusqu'à ce que la caisse est terminée qu'unesales/order
objet est créé à partir de la citation.La raison
getLastOrderId
est de retour à vide est parce qu'aucune commande n'a été passée.Retraitement de votre question avec le point dans le processus de commande que vous en êtes, et ce que vous essayez de faire avec l'id de la commande peut aider quelqu'un à venir avec l'élément d'information que vous ne savez pas que vous avez besoin.
Bonne chance!
De l'auteur de la solution:
Le problème a été résolu par la première mise en citer ID de caisse/session:
et devis de l'objet par citer ID:
La citation, et de citer les articles, sont conservées dans la base de données. C'est comment magento pistes de paniers abandonnés. Je voudrais concentrer sur l'utilisation de ces objets pour obtenir les informations que vous souhaitez.
J'ai résolu mon problème en passant quoteId à la passerelle de paiement (Mage::getSingleton('checkout/session')->getQuoteId();) et puis j'ai été en mesure d'obtenir le devis de données dans le séparer de la demande: $quote = Mage::getModel("ventes/citation")->load($quoteId); Merci!
Je suis dans un module en essayant de capturer devis objet d'observateur. Mais ne pas obtenir de l'événement. $evt->getQuote()
c'est l'observateur qui a les objets -- essayez de var_dump($observateur->getData());
OriginalL'auteur Alan Storm