2016-12-30 18 views
0

我試圖創建一個使用API​​,但得到致命錯誤重新排序:未捕獲的異常「Mage_Core_Exception」有消息「不是所有的產品都可以在請求的數量」magento - 如何使用API​​創建重新排序?

,但我仍然希望將使用重新排序在車中的物品,這裏是我的代碼 -

require_once '../app/Mage.php'; 
Mage::app('default'); 

$orderId = $_REQUEST['order_id']; 

try { 
    $order = Mage::getModel('sales/order')->load($orderId); 
    if (!Mage::helper('sales/reorder')->canReorder($order)) { 
     return 'reorder not allowed'; 
    } 

    if ($order->getId()) { 
     $order->setReordered(true); 
     Mage::getSingleton('adminhtml/session_quote')->setUseOldShippingMethod(true); 
     $reorder = Mage::getSingleton('adminhtml/sales_order_create')->initFromOrder($order); 

     //We needed additional logic for shipping rates 
     $reorder->getQuote()->getShippingAddress() 
       ->setShippingMethod($order->getShippingMethod()) 
       ->setCollectShippingRates(true) 
       ->collectShippingRates() 
       ->collectTotals() 
       ->save(); 
     $reorder->createOrder(); 
    } 

    echo json_encode(array('status' => true , 
     'order_id' => $new_order, 
     'message' => 'Order created successfully')); 

} catch (SoapFault $e) { 
    echo json_encode(array('status' => false , 'message' => $e->getMessage())); 
} 

任何人都可以幫忙請!!!非常感謝。

回答

0

您可以在報價上設置超級模式。這告訴Magento該報價是由管理員創建的,並且會跳過很多檢查(如股票檢查)。只需在代碼庫中搜索getIsSuperMode即可瞭解其工作原理。

因此,爲避免這種例外情況並強制將您的產品添加到購物車,請在報價上添加setIsSuperMode(true)

+0

可以請您發佈工作代碼嗎?或任何參考鏈接?非常感謝! –