Próbuję ręcznie zmienić status zamówienia, aby ukończyć w określonym punkcie mojego kodu. To, co mam tak daleko:Magento ręcznie zmienia status zamówienia na "kompletny"
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true, 'Pedido completado exitosamente.', true, false)->save();
Kiedy robię, że pojawia się błąd:
The Order state 'complete' must not be set manually.
Ok więc próbowałem to:
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setStatus("complete");
$order->save();
Kiedy robię, że mam błąd:
Call to a member function getMethodInstance() on a non-object
Jak mogę ręcznie ustaw status zamówienia, aby zakończyć.
Próbowałem z pierwszym zakomentowanie następujące wiersze w Sales/Order.php
:
if ($shouldProtectState) {
if ($this->isStateProtected($state)) {
Mage::throwException(
Mage::helper('sales')->__('The Order State "%s" must not be set manually.', $state)
);
}
}
Ale nie idź, ja nadal nie uzyskać ustawienie, aby zakończyć błąd powyżej.
Używam Magento 1.7.0.2.
Przepraszamy, ten rzut okaże się następujący: "Wywołanie funkcji member getMethodInstance() na obiekcie innym niż obiekt" – jfreak53
może być spowodowane innym błędem. 'GetMethodInstance()' zwykle występuje w przypadku metody płatności. Twój błąd mówi, że próbujesz uzyskać metodę płatności na obiekcie innym niż obiekt – Kalpesh
Próbuję ustawić status zamówienia na stronie powodzenia po dokonaniu pełnej płatności. Z jakiegoś powodu Magento nie ustala już statusu płatności po jej powrocie. Tak więc w moim module płatności próbuję ustawić płatność na stronie końcowego sukcesu. Jest na stronie powodzenia 'onestepcheckout', którą próbuję ustawić. Błąd pojawia się tylko wtedy, gdy dodaję te rzeczy do strony, jeśli nie dodaję żadnych błędów. – jfreak53