Magento: Изменить порядок по индивидуальной цене, цена всегда 0 - PullRequest
0 голосов
/ 05 марта 2012

У меня есть товар с индивидуальными ценами. В зависимости от выбранного варианта применяется формула, которая добавляет плату к продукту, поэтому цена никогда не бывает одинаковой. У меня проблема в том, что при повторном заказе цена измененного заказа всегда равна 0.

В продажах / контроллерах / OrderController, в переупорядочении функций, есть это:

$order = Mage::registry('current_order');
$items = $order->getItemsCollection();
foreach ($items as $item) {
    try {
        $cart->addOrderItem($item);
        ...

Если я добавлю эти строки, я смогу получить пользовательскую цену, но не смогу найти способ отредактировать элемент так, чтобы это цена была добавлена ​​в повторный заказ.

$options = $item->getProductOptions();
$options = $options['info_buyRequest'];
$customPrice = $options['custom_price'];

Есть то, что я пробовал (в цикле, перед $ cart-> addOrderItem ($ item)), но безуспешно.

$item->setSpecialPrice($customPrice);
$item->setCustomPrice($customPrice);
$item->setOriginalPrice($customPrice);
$item->setBaseOriginalPrice($customPrice);
$item->setBaseCost($customPrice);
$item->setBaseRowInvoiced($customPrice);
$item->setRowInvoiced($customPrice);
$item->save();

Любая помощь?

1 Ответ

3 голосов
/ 05 марта 2012

Несколько возможностей.Я бы попробовал наблюдателя на событие checkout_cart_product_add_after.

// observer method:
public function checkoutCartProductAddAfter(Varien_Event_Observer $observer)
{
    $action = Mage::app()->getFrontController()->getAction();
    if ($action->getFullActionName() == 'sales_order_reorder')
    {
        $buyInfo = $observer->getQuoteItem()->getBuyRequest();
        if ($customPrice = $buyInfo->getCustomPrice())
        {
            $observer->getQuoteItem()->setCustomPrice($customPrice)
                 ->setOriginalCustomPrice($customPrice);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...