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.