magento, заказ на продажу сохранить после того, как правильно обновить данные заказа - PullRequest
0 голосов
/ 21 января 2020

как только заказ сделан, мне нужно изменить статус, но он не работает для меня

Я использую событие sales_order_save_after

У меня есть этот код, но он не работает для меня

public function salesOrderSaveAfter($event){

        //check for fires twice 
        if(!Mage::registry('backorder_daniilkrok_observer')){
            $order = $event->getOrder();
            $orderIncrementId = $order->getIncrementId();
            Mage::register('backorder_daniilkrok_observer',true);

            Mage::log('i here');
            foreach ($order->getAllVisibleItems() as $item){
                $oldQty = (int)$item->getProduct()->getStockItem()->getQty();
                $qtyOrdered = (int)$item->getQtyOrdered();

                $differenceQty = $oldQty - $qtyOrdered;

                //increase the price by 25%
                if($oldQty > 0 AND $differenceQty <= 0 ){
                    $product_model = Mage::getModel('catalog/product')->load($item->getProductId());
                    $price = $product_model->getPrice();
                    $newPrice = $price + (($price * 25) / 100);
                    $product_model->setPrice($newPrice);
                    $product_model->save();

                    //update status for order
                    $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
                    $state = 'new';
                    $status = 'backorder_status';
                    $isCustomerNotified = true;
                    $order->setState($state, $status, $isCustomerNotified);
                    $order->save();
                }
            }
        }
    }

Как правильно обновить статус для заказа?

...