magento - 如何使用api创建重新排序?

时间:2016-12-30 07:04:24

标签: php magento

我正在尝试使用API​​创建重新排序但获取致命错误:未捕获的异常' Mage_Core_Exception'消息'并非所有产品都以请求的数量提供

但我仍然希望使用重新排序将商品放入购物车,这是我的代码 -

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()));
}

有人可以帮忙!!!非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在报价上设置超级模式。这告诉Magento报价由管理员创建,并且将跳过许多检查(如股票检查)。只需搜索getIsSuperMode的代码库,看看它是如何工作的。

因此,为了避免该异常并强制将您的产品添加到购物车,请在报价上添加setIsSuperMode(true)