Teilen Sie die Bestellung in separate Bestellungen auf und berechnen Sie den Versand separat mit Ups und Fedex und verschiedenen Ursprungsadressen


8

Wenn ein Kunde in unser Geschäft kommt und mehrere Artikel auscheckt, muss ich ein Modul schreiben, um den Versand anhand mehrerer Faktoren zu berechnen. Ich habe aus meiner Forschung festgestellt, dass Folgendes passieren sollte:

Zuerst muss ich die Warenkorbartikel für die Versandberechnung in verschiedene Bestellungen aufteilen. Ich möchte, dass die Bestellungen nach dem Attributwert "Lieferant" sortiert werden. "Anbieter" ist ein Attribut, das wir dem System hinzugefügt haben und das für alle einfachen Produkte gilt. Nehmen wir also an, im Einkaufswagen befindet sich ein rosa Hemd mit dem "Verkäufer" -Wert "1", ein Bleistift mit dem "Verkäufer" -Wert "1" und ein blaues Hemd mit dem "Verkäufer" -Wert "2". Alle Artikel mit dem "Lieferanten" -Wert "1" müssen eine Bestellung sein, während der Artikel mit dem "Lieferanten" -Wert "2" eine andere Bestellung sein muss. Ich sehe, dass diese andere Frage dieses Dilemma beantwortet, aber dann eine andere aufwirft.

Zweitens muss ich den Versand mit den Standard-UPS- und Fedex-Versandfunktionen von Magento berechnen, jedoch mit einer Ursprungsadresse, die durch die Wertnummer des "Lieferanten" bestimmt wird (in einer separaten Datenbanktabelle gespeichert). Anregungen willkommen!

Ich verwende Codefragmente, um von hier und hier loszulegen .

Ich werde wahrscheinlich mehrere Fragen haben, aber die ersten sind die oben fett gedruckten.

UPDATE Ich entschied, dass es am besten ist, das Magento-Kernmodul für mehrere Sendungen zu überschreiben, um das zu tun, was ich versuche. Bitte helfen Sie mir, herauszufinden, wo und was Sie einsetzen müssen, um die Multishipping-Magento-Funktionalität zu manipulieren und die Artikel einer Bestellung basierend auf dem Attribut "Anbieter" in Sendungen aufzuteilen! Ich kämpfe damit.


1
Magentos Multishipping erledigt dies nativ. Vielleicht können Sie die Multishipping-Funktion nutzen, ohne sie dem Kunden anzuzeigen?
Philwinkle

Off Topic: Würde es Ihnen etwas ausmachen, Antworten auf Ihre alten offenen Fragen zu akzeptieren oder diese zu schließen? Wir bemühen uns, die Antwortrate während der Beta zu erhöhen. Vielen Dank.
Philwinkle

1
Ich werde jetzt sowohl die Multishipping- als auch die nicht akzeptierten Antworten untersuchen. Oft habe ich nicht akzeptiert, weil ich zu etwas anderem übergegangen bin und darauf zurückkommen werde. Trotzdem werde ich schauen und sehen, ob ich welche verpasst habe
CaitlinHavener

Eine andere Alternative besteht darin, etwas wie Unirgy uDropship zu implementieren, das auch die vom Hersteller geschriebene Funktionalität enthält, die Sie gerade schreiben. Aber es bietet Anbietern ein Portal für den Versand, generiert Versandetiketten und vieles mehr. Ich arbeite nicht für und werde von Unirgy nicht unterstützt.
Philwinkle

1
Ich möchte keine Dropship-Erweiterung verwenden. Es gibt viele Faktoren, warum ich nicht kann.
CaitlinHavener

Antworten:


3

Hierbei ist zu berücksichtigen, dass Sie möglicherweise nur einige kosmetische Front-End-Änderungen an den Multishipping-Vorlagen ( template/checkout/multishipping/) vornehmen müssen, damit die beiden Bestellungen dem Kunden einfach als eine Bestellung angezeigt werden . Die Vorlagen shipping.phtmlund overview.phtmlteilen die beiden Bestellungen mit jeweils einer Kopfzeile (Adresse 1 von 2 usw.) und einer anderen Kopie auf, um anzuzeigen, dass es sich um zwei Bestellungen handelt.

Anstelle der Standardeinstellung kann ich vorschlagen, diese Vorlagen ein wenig kreativ zu gestalten, damit die beiden Bestellungen einfach aufgeteilt werden und einfach als zwei separate Werbebuchungen angezeigt werden.

Das nächste Bit wäre, unterschiedliche Versandursprünge basierend auf dem Lieferantenattribut zu behandeln. Dies könnte möglicherweise in Mage_Shipping_Model_Shipping erfolgen. Ganz oben sehen Sie, wo Magento die Versandursprungsadresse aus der Konfiguration abruft und dann weiter unten in der requestToShipment()Methode die Ursprungsadresselemente der Versandanforderung zugewiesen werden (von der ich annehme, dass sie später abhängig von der Versandmethode verwendet wird namens).

Das könnte zumindest eine Richtung sein, in die Sie gehen sollten. Wenn ich Ihre Frage und Ihr Update durchlese, habe ich den Eindruck, dass Sie dies schwieriger machen als nötig. Denken Sie immer daran, dass es im Allgemeinen am besten ist, Magento tun zu lassen, was es tun möchte, und nur kleine Teile zu ändern, um Ihre speziellen Fälle zu behandeln. Ein Großteil dessen, was Sie benötigen, ist bereits im Kern erledigt, daher erscheint es etwas albern, die Multi-Shipping-Komponenten neu zu schreiben, wenn es einfachere Optionen gibt.


Wie würde es dann den Versand für jede Sendung berechnen, die nach Lieferantenattributen gebündelt ist?
CaitlinHavener

Die Versandberechnungen würden sich nicht ändern, da Mage_Shipping_Model_Shippinglediglich die Ursprungsadresse in der Versandanfrage durch den diesem Lieferanten zugewiesenen Ursprung ersetzt würde. Magento würde dann sein Geschäft fortsetzen und alle Versandkosten abrufen, die für diese Bestellung gelten würden. Ich könnte möglicherweise sehen, dass eines der WebShopApps-Versandmodule hier nützlich ist, da Sie damit Versandmethoden anhand verschiedener Kriterien zuweisen können. - Auch dies ist alles in der Theorie, ich habe so etwas noch nie gemacht, daher kann es einige Einschränkungen geben (es gibt immer). -
Pspahn

Ich überprüfe diese Webshopapp-Erweiterungen. Ich denke, was mich in diesem Moment verwirrt ... ist, was die Klasse / Methode der Mage_Shipping_Model_Shipping-Klasse sagt "Hey, hier ist eine Bestellung und das sind die Elemente darin". Wo finde ich das?
CaitlinHavener

1
Schauen Sie sich das an /app/code/core/Mage/Sales/Model/Quote.php- Denken Sie daran, dass Magento nicht ganz so linear ist wie andere Einkaufswagen. Gehen Sie in den Kaninchenbau und sehen Sie, wie Angebote in Bestellungen (und Credits usw.) geändert werden. Irgendwann finden Sie die Methode (n), die Sie ändern möchten. Wie ich bereits sagte, ist es oftmals von Vorteil, einfach in ein hochwertiges Backend-Modul (und ebenso wichtig in den Support) zu investieren, mit dem Sie schnell das erreichen, was Sie benötigen. Einige Schrauben und Muttern mögen es nicht, gewechselt zu werden.
pspahn

Wenn Sie weitere Informationen benötigen, helfen Sie uns bitte! Vielen Dank für die Hilfe auch hier. Du rettest mich! Dies ist das schwierigste Magento-Projekt, das ich bisher hatte! magento.stackexchange.com/questions/7635/…
CaitlinHavener
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.