2010-08-18 28 views
7

मैं वर्तमान में एक मॉड्यूल बना रहा हूं जिसके लिए मुझे ऑर्डर ऑब्जेक्ट लेने और इसे स्वयं को पुन: व्यवस्थित करने की आवश्यकता है .. इस प्रकार, बैकएंड में सटीक वही आइटम और क्रेडेंशियल्स के साथ एक नया ऑर्डर बनाना।Magento - प्रोग्रामेटिक रूप से

यह वह कोड है जो मेरे पास अब तक है ... ऐसा लगता है कि यह आइटम को पुन: व्यवस्थित नहीं करता है या कोई अन्य बैकएंड ऑर्डर नहीं देता है।

$personsOrder = Mage::getModel(’sales/order’); 
$personsOrder->loadByIncrementId($order[’model_order_id’]); 

$order_model = Mage::getSingleton(’adminhtml/sales_order_create’); 
$personsOrder->setReordered(true); 

$order_model->initFromOrder($personsOrder); 

/* 
$order_model->save(); 

$order_model->place(); 
$order_model->sendNewOrderEmail(); 
*/ 

किसी भी मदद की बहुत सराहना की जाती है !!

उत्तर

3

मेरा पहला विचार यह है कि आपको $order->getIncrementId()$order['model_order_id'] के बजाय लाइन 2 पर उपयोग करना चाहिए, लेकिन मुझे यकीन नहीं है कि आपको पहले स्थान से $order कहां मिल रहा है। क्या आपने जांच की है कि $order['model_order_id'] वास्तव में वैध वृद्धि आईडी लौटा रहा है? मुझे model_order_id डेटाबेस में किसी भी क्षेत्र के रूप में नहीं दिखता है ...

मैं सुझाव दे रहा हूं कि आप अपना आईडीई और एक्सडीबग काम कर रहे हैं ताकि आप ऑब्जेक्ट का निरीक्षण कर सकें जब आप उनके साथ काम करते हैं और समझते हैं कि क्या हो रहा है ।

चीयर्स, जद

7
$orderId= $YOUR_ORDER_NUMBER; 
$personsOrder = Mage::getModel('sales/order')->load($orderId); 
$order_model = Mage::getSingleton('adminhtml/sales_order_create'); 
$personsOrder->setReordered(true); 
$order_model->initFromOrder($personsOrder); 
$order_model->createOrder(); 
1

आदेश है कि आप पहली बार रखा है भी और कोडिंग के माध्यम से बनाया गया है, तो नहीं की दुकान सामने से तो आप यकीन है कि आप में एक प्रविष्टि जोड़ लिया है बनाने की जरूरत है sales_flat_quote_item तालिका। अन्यथा उस आदेश को फिर से नहीं किया जा सकता है। तो सुनिश्चित करें कि यह आपके आदेश निर्माण के मामले में नहीं है।

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