コードの特定の時点で注文ステータスを手動で変更して完了させようとしています。これは私がこれまでに持っているものです:
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true, 'Pedido completado exitosamente.', true, false)->save();
私がそれをすると、エラーが発生します:
The Order state 'complete' must not be set manually.
わかりましたので、これを試しました:
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setStatus("complete");
$order->save();
私がそれをすると、エラーが発生します:
Call to a member function getMethodInstance() on a non-object
注文ステータスを手動で完了に設定するにはどうすればよいですか。
の次の行をコメントアウトして、最初のものを試しましたSales/Order.php
。
if ($shouldProtectState) {
if ($this->isStateProtected($state)) {
Mage::throwException(
Mage::helper('sales')->__('The Order State "%s" must not be set manually.', $state)
);
}
}
しかし、うまくいきません。上記のエラーを完了しない設定がまだあります。
Magento 1.7.0.2 を使用しています。