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();