我正在研究运输方法的自动化,它似乎工作得很好,但问题是:
每隔2个订单就会出现相同的错误:“请指定发货方式”
会不会是会话错误?变量应该通过get-post发送还是以其他方式从Magento检索?
下面是一个代码:
<?php
$customer = Mage::getSingleton('customer/session')->getCustomer();
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
echo $customAddress = Mage::getModel('customer/address')->load($customer->getDefaultBilling());
$quote = Mage::getSingleton('checkout/session')->getQuote()->setBillingAddress(Mage::getSingleton('sales/quote_address')->importCustomerAddress($customAddress));
$cart = Mage::getSingleton('checkout/cart');
$storeId = Mage::app()->getStore()->getId();
$checkout = Mage::getSingleton('checkout/type_onepage');
$checkout->initCheckout();
$checkout->saveCheckoutMethod('register');
$checkout->saveShippingMethod('matrixrate_matrixrate_35');
$checkout->savePayment(array('method'=>'pay'));
Mage::getSingleton('checkout/type_onepage')->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35');
try {
if ($checkout->saveOrder()) {echo "SUCCESSSSS!!!";}}
catch (Exception $ex) {
echo $ex->getMessage();
}
/* Clear the cart */
$cart->truncate();
$cart->save();
$cart->getItems()->clear()->save();
Mage::getSingleton('checkout/session')->clear();它使用名为Pay的自定义支付网关,我正在使用matrixrate扩展来发货,尽管在flatrate_flatrate上也有同样的错误,所以我不会认为它是扩展问题。
谢谢!
亚当
发布于 2013-09-24 17:14:03
问题:订单拆分后购物车项目仍然显示
1.在发货方式步骤中保存报价集合。
$quote->collectTotals()->save();2.在订单拆分的最后一节中添加以下步骤。
$quote->setIsActive(false);
$quote->save();发布于 2013-08-02 00:59:54
解决了问题。
看起来会话/时间有问题,服务器没有一次处理所有事情。
我不得不在购物车-总计页面上添加:
$checkout->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35');
$checkout->saveShippingMethod('matrixrate_matrixrate_35');要确保已设置发货,还请执行以下操作:
会话在成功页面手动清除。
有一个总报价数量的错误,所以我只是重新设计了脚本,以正确计算它。
非常感谢您的帮助!
亚当
https://stackoverflow.com/questions/17995118
复制相似问题