2012-01-12 18 views
5

मैं Magento, जहां मैं अपने भुगतान मॉडल में getCheckoutRedirectUrl() पद्धति लागू लिए अपने खुद के भुगतान मॉड्यूल को लागू कर रहा हूँ के दौरान Magento भुगतान मॉड्यूल में वर्तमान OrderID प्राप्त करें।चेकआउट

class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {} 

इस विधि सिर्फ भुगतान गेटवे जहां उपयोगकर्ता पर भेज दिया जाएगा का URL वापस जाने के लिए माना जाता है, लेकिन मैं यह भी इस URL पर वर्तमान OrderID संलग्न करना होगा।

समस्या है OrderID प्राप्त करने में सक्षम नहीं हूँ। मैं पहले से ही accepted here

$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId(); 

के रूप में समाधान करने की कोशिश की, लेकिन मैं खाली $ OrderID मिलता है। तो यह मेरी विधि में काम नहीं कर रहा है। कॉल त्रुटि नहीं पैदा करता, तो मैं एक वस्तु (उदाहरण के दाना :: getSingleton के लिए ('चेकआउट/सत्र') -> getQuote() -> getSubtotal() आदेश राशि देता है) मिलता है, लेकिन OrderID खाली है।

मैं भी करने की कोशिश की:

$order = Mage::getModel('sales/order'); 
$order->load(Mage::getSingleton('sales/order')->getLastOrderId()); 
$orderId = $order->getIncrementId(); 

जो फिर खाली $ OrderID देता है।

कोई विचार?

उत्तर

15

आपका प्रश्न, प्रश्न के लिखित रूप में, अतार्किक है।

कोई आदेश आईडी चेकआउट के दौरान होती है। जब आप जांच कर रहे हों, Magento sales/quote ऑब्जेक्ट बनाता है। इस वस्तु का उपयोग उद्धरण वस्तुओं का ट्रैक रखने के लिए किया जाता है। यह तब तक नहीं है जब तक चेकआउट पूरा नहीं हो जाता है कि sales/order ऑब्जेक्ट उद्धरण से बनाया गया है।

कारण getLastOrderId खाली लौटा रहा है क्योंकि कोई आदेश दिया जा चुका है।

आपके प्रश्न को उस चेकआउट प्रक्रिया में बिंदु के साथ बहाल करना, और आप ऑर्डर आईडी के साथ क्या करने का प्रयास कर रहे हैं, किसी को उस जानकारी के टुकड़े के साथ आने में मदद कर सकता है जिसे आप नहीं जानते ।

शुभकामनाएं!


लेखक का समाधान:

समस्या चेकआउट/सत्र से पहले हो रही उद्धरण आईडी के आधार पर हल किया गया था: उद्धरण आईडी के आधार पर

Mage::getSingleton('checkout/session')->getQuoteId(); 

और फिर बोली वस्तु:

$quote = Mage::getModel("sales/quote")->load($quoteId); 
+0

यह क्या मेरा अनुमान आदेश अभी तक अस्तित्व में नहीं है, मुझे यह स्पष्ट करने के लिए धन्यवाद, मैंने सोचा कि ऑर्डर पहले ही डीबी में सहेजा गया है। लेकिन मुझे किसी प्रकार का पहचानकर्ता चाहिए जिसके द्वारा मैं एक अलग स्वतंत्र अनुरोध (कुकीज़ के बिना) में ऑर्डर जानकारी (जैसे राशि) प्राप्त कर सकता हूं, जो भुगतान गेटवे पृष्ठभूमि में बनाता है। शायद मैं सत्र आईडी पास कर सकता हूं और सत्र सेट कर सकता हूं, इसलिए मुझे उद्धरण (कार्ट में ऑर्डर) तक पहुंच हो सकती है? – KoviNET

+3

उद्धरण, और उद्धरण आइटम, डेटाबेस के साथ भी जारी हैं। इस तरह Magento ट्रैक गाड़ियां छोड़ दिया। मैं उन सूचनाओं को प्राप्त करने के लिए उन वस्तुओं का उपयोग करने पर ध्यान केंद्रित करूंगा जो आप चाहते हैं। –

+3

मैंने उद्धरण पास करके मेरी समस्या हल की है भुगतान गेटवे (मैगे :: getSingleton ('चेकआउट/सत्र') -> getQuoteId();) और फिर मैं अलग अनुरोध में उद्धरण डेटा प्राप्त करने में सक्षम था: $ quote = mage: : getModel ("बिक्री/उद्धरण") -> लोड ($ quoteId); धन्यवाद! – KoviNET

संबंधित मुद्दे