Verwendung in Shopware-Productexporten (Product Feeds) v3.0.x
Für die Templates der Produktexporte wird die Variable $sArticle durch Aufschlag-/Rabattinformationen ergänzt:
$sArticle.mnd_addcharge
Diese Variable enthält ein Objekt mit Aufschlags-/Rabattinformationen.
In diesem Objekt sind folgende Infos enthalten:
| Variable | Beschreibung | Beispiel | Type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| name | Der "Interne Name" des Aufschlages/Rabattes. | dosenpfand_1 | string | ||||||||||||
| display_name | Der Name der im Frontend für den Endkunden sichtbar ist. | Mehrweg Dosenpfand | string | ||||||||||||
| description | Die Beschreibung des Aufschlages/Rabattes. Die description kann Zeilenumbrüche enthalten. Sie müssen den Wert für CSV daher ggf. entsprechend mit Smarty anpassen. | Das in Deutschland übliche Dosenpfand | string | ||||||||||||
| price | Der Bruttopreis des Aufschlages/Rabattes in der für den Export eingestellten Währung. | 0.25 | float | ||||||||||||
| tax | Der Steuersatz des Aufschlages/Rabattes | 19.00 | float | ||||||||||||
| type | Die Aufschlags-/Rabattart. Hier gibt es drei Möglichkeiten.
| multi | single | basket | string | ||||||||||||
| optional | Ob es sich bei dem Aufschlag/Rabatt um einen optionalen Aufschlag/Rabatt handelt, oder nicht. | true | false | boolean |
Beispiele für Integration in Productfeed-Template
Aufschlags-/Rabattinformationen als Text ausgeben
Zunächst erweitern wir den Productexport um eine Spalte in der alle Aufschläge/Rabatte als Fließtext aufgezählt werden.
[...]
Aufschläge{#S#}
[...]
[...]
{assign var="output" value=null}
{foreach $sArticle.mnd_addcharge AS $data}{append 'output' "zzgl. {$data.price|format:"number"} {$sCurrency.currency} {$data.display_name}"}{/foreach}
{", "|implode:$output}{#S#}
[...]
Ergebnis:
zzgl. 0,25 EUR Test Zuschlag, zzgl. 3,21 EUR Zweiter Test Zuschlag
Erklärung:
{assign var="output" value=null}Zuerst erstellen wir eine Variable, die wir mit unseren Daten befühlen wollen. (Diese Zeile führt noch nicht zu einer Ausgabe)
{foreach $sArticle.mnd_addcharge AS $data}{append 'output' "zzgl. {$data.price|format:"number"} {$sCurrency.currency} {$data.display_name}"}{/foreach}Nun wird jeder Aufschlag/Rabatt herangezogen und in das Array "output" gespeichert.
{$data.price|format:"number"} Hiermit werden die Preise entsprechend der ausgewählten Einstellungen formatiert.
{", "|implode:$output}Zuletzt werden alle Einzelteile verbunden mit einem "Komma" ausgegeben.
Es kann auch anhand der Aufschlags-/Rabattart ein Text ausgegeben werden.
Hierfür muss eine Abfrage auf den 'typ' hinzugefügt werden.
[...]
{foreach $sArticle.mnd_addcharge AS $data}
{if $data.type == 'basket'}
Dieser Artikel enthält einen Aufschlag der einmalig für den Warenkorb berechnet wird.
{break}
{/if}
{/foreach}
[...]
Preis von Aufschlägen/Rabatten zu Artikelpreis hinzuaddieren
[...]
Preis inkl Aufschläge{#S#}
{/strip}{#L#}
[...]
{assign var="priceIncl" value=$sArticle.price}
{foreach $sArticle.mnd_addcharge AS $data}{assign var="priceIncl" value=$priceIncl+$data.price}{/foreach}
{$priceIncl}
Ergebnis:
123.41
{assign var="priceIncl" value=$sArticle.price}Zunächst erstellen wie eine Variable, dieser Variable geben wir den Preis des Artikels mit.{foreach $sArticle.mnd_addcharge AS $data}{assign var="priceIncl" value=$priceIncl+$data.price}{/foreach}Nun wird jeder Aufschlag/Rabatt herangezogen und dem Artikelpreis hinzuaddiert{$priceIncl}Zuletzt wird der Preis ohne Formatierung ausgegeben.