v3.4.x Verwendung in Shopware-Productexporten (Product Feeds)
Für die Templates der Produktexporte wird die Variable $sArticle durch Aufschlag-/Rabattinformationen ergänzt:
$sArticle.mnd_addchargeDiese 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.
header
[...]
Aufschläge{#S#}
[...]template
[...]
{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:
Ergebnis
zzgl. 0,25 EUR Test Zuschlag, zzgl. 3,21 EUR Zweiter Test ZuschlagErklä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.
template
[...]
{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
header
[...]
Preis inkl Aufschläge{#S#}
{/strip}{#L#}template
[...]
{assign var="priceIncl" value=$sArticle.price}
{foreach $sArticle.mnd_addcharge AS $data}{assign var="priceIncl" value=$priceIncl+$data.price}{/foreach}
{$priceIncl}
Ergebnis:
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.