Ladenprodukte werden von verschiedenen Anbietern geliefert. Es ist erforderlich, für jeden Lieferanten mehrere Bestellungen basierend auf seinen Produkten im Warenkorb während einer Kaufabwicklung zu erstellen. Gibt es eine Erweiterung, um diese Aufgabe zu erfüllen, oder sollte ich mit der Entwicklung eines benutzerdefinierten Checkout-Moduls beginnen? Was ist mit Hot Points für die Erstellung einer solchen Erweiterungsvision von erfahrenen Entwicklern von Magento? Können Sie mir eine kurze Checkout-Ablaufarchitektur erklären, die Magento-freundlich ist (so gut wie Codeebene)? Vielen Dank!
checkout
code
order-splitting
mageUz
quelle
quelle
Antworten:
Mit einem Umschreiben des
checkout/type_onepage
Modells ist dies recht einfach möglich .In dieser Klasse überschreiben Sie die
saveOrder()
Methode wie folgt:Beachten Sie jedoch, dass in Magento eine Zahlung mit einer Rechnung verknüpft ist und jede Rechnung mit einer Bestellung verknüpft ist.
Infolgedessen bedeutet dies, dass Sie, sobald Sie mehrere Bestellungen haben, auch die Zahlungen aufgeteilt haben . Dies ist also nur möglich, wenn die Zahlungsmethode keine Benutzerinteraktion während der Zahlung erfordert.
UPDATE : Die delegierte
parent::save()
ursprüngliche Antwort, an die gesendet werden mussteparent:saveOrder()
. Es ist jetzt im Beispielcode behoben.quelle
saveOrder
ist in Magento CE 1.9 immer noch vorhanden und aktiv, so wie es immer war.Folgendes wird in CE Version 1.9.0.x getestet
WICHTIG Sie müssen Ihre Zahlungsmethoden anpassen, um die Gesamtsumme aus dem Angebot abzurufen.
quelle
$group[] = $item; // all other items in one order
Kann mehrere Artikel pro Bestellung enthalten, können Sie einfach so ändern, dass jeder Anbieter seinen eigenen hat$group
.$quote->Mage::getModel('sales/quote')->load($lastOrder->getQuoteId())
. Dann gibt es viele Summen$quote
, von denen Sie abrufen können , von denen eine ist$quote->getGrandTotal()