我正在尝试使用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()));
}
有人可以帮忙!!!非常感谢。
答案 0 :(得分:1)
您可以在报价上设置超级模式。这告诉Magento报价由管理员创建,并且将跳过许多检查(如股票检查)。只需搜索getIsSuperMode
的代码库,看看它是如何工作的。
因此,为了避免该异常并强制将您的产品添加到购物车,请在报价上添加setIsSuperMode(true)
。