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?
}
}
?>