Получите настраиваемую цену продукта из Простого продукта в заказе 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
        }
    }
Author: Teja Bhagavan Kollepara, 2015-05-07

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(); 
 1
Author: Amit Bera, 2015-05-07 07:44:54