我正在使用Magento的观察者钩子来挂钩订单保存过程.在订单设置完成并保存后,我想向Web服务发送消息.
但是我注意到Web服务经常收到重复的订单商品.
这是我的代码的简化版本,我知道它会出现问题:
<?PHP
class Name_Modulename_Model_Observer {
public function sales_order_save_commit_after($observer) {
// Gets the order which is being saved.
$order = $observer->getorder();
$status = $order->getStatus();
if($status != "complete") {
continue;
}
// PROBLEM - The number of Mage_Sales_Model_Order_Item
// in this array sometimes does not correspond with the
// The number of items in the basket.
$items = $order->getAllItems();
$itemsInorder = array();
foreach($items as $item) {
$product = $item->getProduct();
$itemsInorder[] = $product->name;
}
// At the end of the loop $itemsInorder can contain
// multiple name entries for the same line item. Why is this?
}
}
?>
解决方法:
如果订单包含可配置产品,则$order-> getAllItems();
将包含父产品和子产品,导致此产品类型的双元素数.使用$order-> getAllVisibleItems()更安全
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。