2010-10-08 12 views
5

Ich baue ein Magento Geschäft mit einem einzigen Katalog über 4 Domains: 1 für die USA und 3 für Europa (UK, Französisch und Deutsch). Es gibt 1 Fulfillment-Warehouse in Europa, 1 in den USA und eine Art inoffizielles/internes "Warehouse" in den USA, wo Werbegeschenke und dergleichen erfüllt werden, und wir verfolgen keine Lagerbestände in Magento. Wir müssen bestimmte Transaktionstypen wie normale Webverkäufe zusammen mit internen/Admin-Aufträgen wie Nicht-Web-Verkäufen, Werbegeschenken, Messeaufträgen usw. verfolgen. Mein Plan ist es, das Kernbestellmodell zu erweitern und eine Art "Bestell-/Transaktionstyp" hinzuzufügen. Feld und dann bei der Auftragserteilung die Auftragsdaten verarbeiten und basierend auf der Filial-ID und dem Wert 'Auftragsart' bestimmen, an welches Warehouse es zur Erledigung geschickt wird.Magento benutzerdefinierte Reihenfolge Attribut/Felder? Schießen mich in den Fuß?

Sein neues, Magento, möchte ich, wenn diese Art von Einrichtung wissen, eine schlechte Idee, aus irgendeinem Grund. Schieße ich mich in den Fuß? Gibt es einen Grund, warum ein einzelner Katalog problematisch sein könnte? Gibt es einen leichteren oder besseren Weg, diesen Fluss zu bewältigen? Gibt es eine Möglichkeit, Bestellungen, wie Sie Produkte hinzufügen können, benutzerdefinierte Attribute hinzuzufügen?

Antwort

15

Sie in die richtige Richtung, aber (wie bei den meisten Dingen Magento), gibt es ein paar Optionen. Das wichtigste Prinzip hierbei ist, dass die Architektur der Modifikationen nicht dazu führen darf, dass Upgrades/Patches auf dem Core kompromittiert werden. Interessant ist, dass sich Magento von dem stark erweiterbaren und upgrade-sicheren (meist) EAV-Modell für Mage_Sales_Model_Order (und verwandte Objekte) in der aktuellen Version entfernt hat. Das macht es schwieriger, Attribute in einer upgrade-sicheren Weise hinzuzufügen, IMHO.

Ich würde empfehlen, dass Sie das Observer-System verwenden, um Ihre neue Attributwerte hinzuzufügen, aber in ein verwandtes Modell. Das heißt, anstatt das Attribut in das Auftragsmodell selbst hinzuzufügen, erstellen Sie ein Modell, das eine order_id und Ihre benutzerdefinierten Attribute enthält. Haken in das entsprechende Ereignis (wahrscheinlich sales_convert_quote_to_order für alle Bestellungen oder checkout_type_onepage_save_order_after für Frontend-Aufträge) und untersuchen Sie die Angebotspositionen die Werte in Ihrem benutzerdefinierten Modell einzustellen. Wenn Sie Ihren Prozess ausführen, um Aufträge an das Fulfillment-Haus zu übermitteln, können Sie die benutzerdefinierten Attribute über die order_id suchen.

+1

Ausgezeichnete Antwort. +1 für das Erstellen einer neuen Tabelle, um sicherzustellen, dass das Geschäft upgrade-sicher bleibt. – silvo

+0

Danke Jonathan, das klingt perfekt! –