Order Deatils erweitern

Hallo,

wie kann ich die Order Details eines Produkts erweitern?

Ich möchte individuelle Produktdaten auf der Rechnung haben. Diese Daten befinden sich bereits in der Tabelle s_article_attributes sollen aber beim Bestellen auch in die s_order_detail_attributes.

Danke.

Hallo,
wir haben etwas ähnliches für einen Produkt-Konfigurator gemacht, bei dem die Daten aus den Artikelattributen in die Bestellpositionsattribute überführt werden sollten.

Dazu haben wir ein Plugin geschrieben, in dem das Event Shopware_Modules_Order_SaveOrder_ProcessDetails referenziert wird. Bei Bestellabschluss holen wir uns dann darüber die Positionen in der Bestellung, suchen die passenden Artikel raus und schreiben das gesuchte Attribut rein.

Die Daten lassen sich dann auch auf den Dokumenten nutzen.

Reicht das als Denkanstoß?

Ganz so einfach ist das nicht, denn es müssen ein paar Dinge beachtet werden:

Zunächst ist ein Plugin erforderlich, welches die Daten von einer Datenbank Tabelle zur anderen Datenbank Tabelle überträgt. Mit Shopware eigenen Mitteln geht das nicht automatisch.

Dann muss beachtet werden, dass die Attribute bei Artikeln von attr1 bis attr20 gehen, und bei Bestellungen nur von attr1 bis attr6. Hinzu kommt, dass bei Artikel Attributen 1 und 2 meist schon vorbelegt sind und die Einträge dann hier auch auf der Detailseite zu sehen sind. Heißt also, einfach irgendwas wo einfügen geht so nicht.

Was die Rechnungen betrifft, so muss das Template (index.tpl) der Rechnung natürlich angepasst werden. Auch die Mailvorlagen müssen um die Ausgabe der Attribute angepasst werden. Je nachdem welche Attribute man auslesen möchte.

Bei den Rechnungen (index.tpl) könnte das zum Beispiel so aussehen:

{extends file="parent:documents/index.tpl"}

{block name="document_index_amount"}
{$smarty.block.parent}
{if $Order._order.attributes.attribute1}<p>{$Order._order.attributes.attribute1}</p>{/if}
{if $Order._order.attributes.attribute2}<p>{$Order._order.attributes.attribute2}</p>{/if}
{if $Order._order.attributes.attribute3}<p>{$Order._order.attributes.attribute3}</p>{/if}
{if $Order._order.attributes.attribute4}<p>{$Order._order.attributes.attribute4}</p>{/if}
{if $Order._order.attributes.attribute5}<p>{$Order._order.attributes.attribute5}</p>{/if}
{if $Order._order.attributes.attribute6}<p>{$Order._order.attributes.attribute6}</p>{/if}
{/block}

Setzt natürlich auch voraus, dass ein eigenes Theme vorhanden ist damit das ganze Updatesicher ist.