magento的订单状态是不可以改变的,现在想要做的是,手动在后台修改订单的状态
1
在
app\code\core\Mage\Sales\Model\Order.php
970行处:
  if ($shouldProtectState) {
           // if ($this->isStateProtected($state)) {
               // Mage::throwException(
               //     Mage::helper('sales')->__('The Order State "%s" must not be set manually.', $state)
              //  );
           // }
        }
改成这样
然后
2
在文件app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid/php
181行处:
  $this->getMassactionBlock()->addItem('Complete', array(
                 'label'=> Mage::helper('sales')->__('Complete'),
                 'url'  => $this->getUrl('*/sales_order/success'),
            ));
3在文件
app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php
加入方法
 public function successAction()
    {
        $orderIds = $this->getRequest()->getPost('order_ids', array());
        $countSuccessOrder = 0;
        $countNonSuccessOrder = 0;
        foreach ($orderIds as $orderId) {
            $order = Mage::getModel('sales/order')->load($orderId);
            $order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save();
        }
       
        $this->_redirect('*/*/');
        
    }
即可,在后台的action处就可以看到conplete这个修改方式,然后提交就可以修改了!

