J'essaie de changer manuellement l'état de la commande pour terminer à un certain point dans mon code. Voilà ce que j'ai jusqu'à présent:Magento changer manuellement le statut de la commande pour «terminer»
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true, 'Pedido completado exitosamente.', true, false)->save();
Quand je fais ce que je reçois l'erreur:
The Order state 'complete' must not be set manually.
Ok alors j'ai essayé ceci:
$order = Mage::getModel('sales/order')->load($_GET['orderid']);
$order->setStatus("complete");
$order->save();
Quand je fais ce que je reçois l'erreur:
Call to a member function getMethodInstance() on a non-object
Alors, comment puis-je définir manuellement le statut de la commande à compléter.
J'ai essayé avec le premier commentant les lignes suivantes dans Sales/Order.php
:
if ($shouldProtectState) {
if ($this->isStateProtected($state)) {
Mage::throwException(
Mage::helper('sales')->__('The Order State "%s" must not be set manually.', $state)
);
}
}
Mais pas aller, je reçois toujours le réglage de ne pas terminer erreur ci-dessus. Je utilise Magento 1.7.0.2.
Désolé, ceci lance l'erreur suivante 'Appel à une fonction membre getMethodInstance() sur un non-objet' – jfreak53
qui peut être à cause d'une autre erreur ..' getMethodInstance() 'se produit généralement pour la méthode de paiement. Votre erreur indique que vous essayez d'obtenir la méthode de paiement sur un non-objet – Kalpesh
J'essaie de définir le statut de l'ordre sur la page de succès après le paiement intégral. Pour une raison quelconque, Magento ne définit plus le statut du paiement quand il revient. Donc, dans mon module de paiement, j'essaie de régler le paiement sur la dernière page de succès. C'est sur la page de succès 'onestepcheckout' que j'essaie de le définir. L'erreur se produit seulement quand j'ajoute ce truc à la page, si je n'ajoute pas ce genre d'erreur. – jfreak53