Я создал наблюдатель событий для события «sales_order_place_after», которое срабатывает, когда пользователь размещает заказ в кассе Magento. Это событие запускает моего наблюдателя, которому необходимо получить следующую информацию, которая затем отправляется во внешнюю систему управления запасами.
Необходимая информация: Артикул и количество каждого продукта в заказе
Я включил часть моей модели наблюдателя ниже. Я получаю доступ к объекту заказа. Я могу получить все товары в заказе, но как мне получить артикул для каждого продукта, составляющего заказ? Например, с простым продуктом это сделать очень просто. Однако в случае связанного или настраиваемого продукта я не знаю, как получить доступ к дочерним элементам, составляющим этот связанный продукт, с указанием их артикулов и количества. Это информация, которая мне нужна как для связанных, так и для настраиваемых продуктов. Мне нужен артикул и количество выбранных детей. Да хоть убей, я не могу понять, какой метод вызвать для доступа к этой информации. Хотелось бы, чтобы было что-то вроде: $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;
}
}
}