Magento 1.9 magento,销售订单保存后如何正确更新订单数据

Magento 1.9 magento,销售订单保存后如何正确更新订单数据,magento-1.9,Magento 1.9,一旦下了订单,我就必须改变状态,但这对我不起作用 我使用销售\订单\保存\事件后 我有这个密码,但它不适合我 public function salesOrderSaveAfter($event){ //check for fires twice if(!Mage::registry('backorder_daniilkrok_observer')){ $order = $event->getOrder();

一旦下了订单,我就必须改变状态,但这对我不起作用

我使用销售\订单\保存\事件后

我有这个密码,但它不适合我

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();
                }
            }
        }
    }
公共函数salesOrderSaveAfter($event){
//检查两次火灾
if(!Mage::registry('backorder\u danilkrok\u observer')){
$order=$event->getOrder();
$orderIncrementId=$order->getIncrementId();
Mage::寄存器('backorder_daniilkrok_observer',true);
Mage::log('i here');
foreach($order->getAllVisibleItems()作为$item){
$oldQty=(int)$item->getProduct()->getStockItem()->getQty();
$qtyOrdered=(int)$item->getQtyOrdered();
$differenceQty=$oldQty-$qtyOrdered;
//把价格提高25%
如果($oldQty>0和$differenceQty加载($item->getProductId());
$price=$product_model->getPrice();
$newPrice=$price+($price*25)/100);
$product\U model->setPrice($NEWPICE);
$product_model->save();
//更新订单的状态
$order=Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
$state='new';
$status=‘缺货状态’;
$isCustomerNotified=true;
$order->setState($state,$status,$isCustomerNotified);
$order->save();
}
}
}
}

如何正确地更新订单状态?

我可以知道日志文件中打印的文本“我在这里”吗?该文本在我的日志中出现两次,这意味着在下订单时,观察者会被触发两次您想要的两种状态,如挂起新订单?$order->setState(Mage_Sales_Model_order::state_new,true)->save();