Markieren Sie einen Magento, um so vollständig programmgesteuert
Ich versuche zu markieren, eine "Verarbeitung" der Auftrag als Abgeschlossen, wenn ich eine bestimmte Antwort von einem Drittanbieter-Dienst. Ich hab alles eingerichtet, aber das problem ist nur, dass die Aufträge bleiben in der Verarbeitung Zustand.
Ich bin eine Rechnung zu erstellen (ich glaube nicht, ich brauche diese aber, da jedes Element markiert ist, als "Rechnung" im Magento-backend) und eine Sendung wie so:
$order = Mage::getModel('sales/order')... (etc)
$shipment = $order->prepareShipment($quantities);
$shipment->register();
$shipment->setOrder($order);
$shipment->save();
$invoice = $order->prepareInvoice($quantities);
$invoice->register();
$invoice->setOrder($order);
$invoice->save();
Scheint dies nicht zu sein, es zu tun, aber - ich bekomme keinen Fehler zurück-code, aber die Reihenfolge bleibt, wie die Verarbeitung. Im backend sehe ich noch das "Schiff" - Taste an der Spitze des Ordens, und jeder Artikel ist in der "Rechnung" Stand.
Irgendwelche Tipps würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen Blick auf dieser Artikel (in Russisch).
Hier ist der code aus dem Artikel:
Versuchen
Diese Methode ist in
app/code/local/Mage/Sales/Model/Order.php
(in v1.6.1)In Magento 1.7.0.0 diese Methode wurde entfernt. Versuchen Sie dies:
Call to a member function getMethodInstance() on a non-object
im 1.7.0.2Ich mache das so:
Code für die Verarbeitung, um programmgesteuert.
Werden kann, setzen Sie auf Erfolg-Ereignis oder cron
Magento automatisch markieren einer Bestellung als abgeschlossen, wenn:
Wenn Sie das nicht können, versuchen Sie, erstellen Sie eine benutzerdefinierte 'Staat' und, die. In der Zwischenzeit, um die Reihenfolge festzulegen, um die Verarbeitung, versuchen Sie dies:
Funktionieren sollte, ohne Fehler. Getestet in Magento 1.7.0.2
In meinem Fall, brauchte ich den end-Benutzer, um zu sehen, ausgefüllt in der Reihenfolge in der Startaufstellung, aber die Reihenfolge Staat wirklich keinen Unterschied gemacht. Also ich hab gerade ging
System->Order Status
Erstellen Sie eine neue Status-berufen Abgeschlossen (Hinweis: der d-so ist es leicht zu unterscheiden)
Weisen Sie diesen status, um den Status Processing/pending, was auch immer.
Dieser arbeitete für unsere Kunden-aber würde nicht funktionieren, wenn Sie stark davon abhängen, um Staat (Anders als order status).