2011-10-13 16 views
8

में विफल रहता है Magento API V1.0 के माध्यम से नया ऑर्डर बनाने का प्रयास करते समय मुझे एक अजीब त्रुटि मिल रही है। यहां मेरे कोड का मूल वर्कफ़्लो है:एपीआई के माध्यम से ऑर्डर सृजन Magento

  1. cart.create विधि का उपयोग करके शॉपिंग कार्ट बनाएं।
  2. cart_customer.set विधि का उपयोग कर ग्राहक को 'अतिथि' के रूप में सेट करें।
  3. cart_product.add विधि का उपयोग कर कार्ट में उत्पादों को जोड़ें।
  4. cart.order विधि का उपयोग कर ऑर्डर बनाएं।

इस बिंदु पर, cart.order विधि संदेश के साथ एक SoapFault अपवाद फेंकता है "एक सदस्य समारोह setFinalPrice() एक गैर वस्तु पर करने के लिए कॉल करें"। विधि को cart.info या cart_product.list जैसी अन्य विधियों के साथ प्रतिस्थापित करने के लिए एक ही अपवाद फेंक दिया गया है।

चूंकि अपवाद का संदेश बहुत वर्णनात्मक प्रतीत नहीं होता है, इसलिए मैं सोच रहा था कि किसी और ने कभी इसमें इस पर टक्कर लगी है।

धन्यवाद।

अद्यतन: समस्या इस तथ्य के कारण है कि मैं cart_product.add विधि को कॉल करते समय अपने एसकेयू का उपयोग कर कार्ट में उत्पादों को जोड़ रहा हूं। एसकेयू के बजाय उत्पाद आईडी का उपयोग करते समय अपवाद अब नहीं फेंक दिया गया है (मुझे संदेह है कि यह एक बग हो सकता है)। हालांकि, इस बिंदु पर cart.order विधि झूठी लौटाती है, इसलिए आदेश अभी भी नहीं बनाया गया है।

+0

आपके पास कौन से Magento संस्करण हैं? एपीआई में आईडी/स्कू (जब स्कू संख्यात्मक है, अगर मुझे गलत नहीं है) के साथ एक त्रुटि हुई थी। इसे सीई 1.6/ईई 1.11 में तय किया जाना चाहिए था। 'Cart.order' को कॉल करने से पहले आपको ग्राहक पते जोड़ना होगा, भुगतान और शिपिंग विधियां सेट करनी होंगी। आधिकारिक देखें [उदाहरण] (http://www.magentocommerce.com/wiki/doc/webservices-api/api/cart#example)। – Zyava

+0

@ ज़्यावा: मैं पुष्टि कर सकता हूं कि त्रुटि अभी भी Magento CE 1.6.0.0 में मौजूद है। जब मैं एसकेयू के बजाय आईडी का उपयोग करता हूं तो सब कुछ ठीक काम करता है। – Epicurus

+0

रुको, चलिए समस्या को स्पष्ट करते हैं। जब आप संख्यात्मक स्कू के साथ कार्ट में जोड़ते हैं: '$ प्रॉक्सी-> कॉल ($ sessionId," cart_product.add ", सरणी ($ shoppingCartId, सरणी (" sku "=>" 111 ")); 'उत्पाद नहीं है कार्ट में जोड़ा गया? – Zyava

उत्तर

3

कार्ट.ऑर्डर विधि से पहले, आपको अपने कार्ट में भुगतान और शिपिंग पता असाइन करना होगा।

यह Magento में ऑर्डर बनाने की मानक प्रक्रिया है।

चरणों इस तरह होना चाहिए:

  • खरीदारी की टोकरी बनाएं cart.create पद्धति का उपयोग करके।
  • कार्ट_customer.set विधि का उपयोग कर ग्राहक को 'अतिथि' के रूप में सेट करें।
  • कार्ट_product.add विधि का उपयोग कर कार्ट में उत्पाद जोड़ें।

कॉल करने के लिए कोशिश cart_shipping.method और cart_payment.method इससे पहले कि आप cart.order

  • फोन cart.order पद्धति का उपयोग करके आदेश बनाएँ।
+0

मैं एक ही प्रक्रिया का पालन करता हूं, लेकिन यह मुझे दिखाता है "अनकॉट सोपफॉल्ट अपवाद: [1002] ऑपरेशन नहीं कर सकता क्योंकि उद्धरण मौजूद नहीं है" हर बार जब मैं cart.create के लिए कॉल करता हूं। मैं जाँच की है सभी कॉल्स गाड़ी कॉल बनाने के करने से पहले परिणाम और सब कुछ cart_product.add का उपयोग कर "एपीआई 2) create.cart 3) सेटअप ग्राहक 4) सेटअप पता 5) जोड़ने के उत्पादों के साथ ठीक 1) लॉगिन काम कर रहा है " 6) cart_shipping.method 7) ccsave – p4pravin

+5

इसका मतलब है कि आप गलत उद्धरण आईडी डालते हैं। –

+0

मैंने कुछ ट्रेसिंग किया और पाया कि बोली आईडी सही है, लेकिन यह डेटाबेस तालिका में निष्क्रिय दिख रही है। यह 'सक्रिय' फ़ील्ड दिखा रहा है 0. – p4pravin

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