我在“sales_order_place_after”事件上创建了一个事件观察者,当用户在 Magento 的结帐中下订单时触发。该事件触发了我的观察者,它需要获取以下信息,然后将其发送到外部库存管理系统。
所需信息:订单上每个产品的 SKU 和数量
我在下面包含了我的观察者模型的一部分。我正在访问订单对象。我可以获取订单中的所有商品,但是如何获取构成订单的每个商品的 SKU。例如,对于一个简单的产品,这很容易。 但是,对于捆绑或可配置的产品,我不知道如何访问构成该捆绑产品的子项及其 SKU 和数量。 这就是我需要的捆绑产品和可配置产品的信息。我需要选择的孩子的 SKU 和数量。对于我的生活,我无法弄清楚要调用什么方法来访问该信息。我希望有类似的东西:$item->getBundleChildrenSkuQuantity();
$order = $observer->getEvent()->getOrder();
$joomecomPacket = array();
if ($order->getTotalItemCount() > 0) {
$items = $order->getAllItems();
foreach ($items as $item) {
$productType = $item->getProductType();
switch ($productType) {
case 'bundle':
break;
case 'configurable':
default: // simple products
if (isset($joomecomPacket[$item['sku']])) {
$joomecomPacket[$item['sku']] += $item['qty_ordered'];
} else {
$joomecomPacket[$item['sku']] = $item['qty_ordered'];
}
break;
}
}
}