Получите настраиваемую цену продукта из Простого продукта в заказе Magento
Мы пишем синхронизацию ERP-системы Magento и MAS90. Мы переводим заказы из Magento в ERP-систему. Мы добавили наблюдателя для order_save_after
.
Каждый из простых продуктов Magento имеет код UPC, необходимый для добавления элемента в ERP-систему.
Простой products are automatically added to Magento Order based on configurable item
, но проблема в том, что реальная цена, количество, сумма налога этого простого продукта...хранятся в настраиваемом продукте, но UPC хранится в простом продукте.
Для решения этой проблемы мы решаем приобрести простые продукты из заказа Magento (чтобы получить правильный UPC).
Наш вопрос заключается в том, как получить ПРАВИЛЬНУЮ цену, количество, сумму налога автоматически добавляемого простого продукта. (Как в заказе Magento связаны настраиваемый продукт и автоматически добавляется простой продукт.)
Вот фрагмент кода, который получает продукты.
foreach ($order->getAllItems() as $orderItem){
$tmpMAS90OrderItem = NULL;
if($orderItem->getProductType() == 'simple'){
$tmpMAS90OrderItem = $orderItem -> getUpc();
}
if($tmpMAS90OrderItem != NULL) {
$setChildValuesArray = array(
'ItemCode' => $tmpMAS90OrderItem,
'UnitPrice' => $orderItem -> getPrice(), // THIS IS WRONG PRICE, right price is in configurable item
'QuantityOrdered' => $orderItem -> getQtyToInvoice()
);
$querySO->setChildFieldValues($setChildValuesArray,$childSequence); //child sequence ( line sequence )
$childSequence++;
$linesTaxAmountSum += $orderItem->getTaxAmount(); // THIS IS WRONG TAX AMOUNT, right amount is in configurable item
}
}
1 answers
В этом случае вам нужно использовать вызов строки родительского элемента().Согласно magento, когда configurable product
равно ordered
, то есть two rows has been saved
в sales_flat_order_item
. Один - это настраиваемые данные продукта product_id и цены на товары заказа, а другой - simple products details
.Поэтому нужны данные fetch data from Configurable products
.
Так что нужно меняться
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
От
UnitPrice' => $orderItem -> getPrice(),
Также К:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
От:
$linesTaxAmountSum += $orderItem->getTaxAmount();