v3.4.x Verwendung in Shopware-Productexporten (Product Feeds)

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_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.

Beschreibung

Kürzel

Berechnung

Aufschlags-/Rabattmenge gleich Artikelmenge

multi

Artikelmenge = Aufschlags-/Rabattmenge

Nur einmal pro Artikel

single

Nur 1x Aufschlag/Rabatt pro entsprechendem Artikel im Warenkorb

Nur einmal pro Warenkorb

basket

Der Aufschlag/Rabatt wird nur einmal pro Warenkorb hinzugefügt

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 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.

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.