Template-Änderung beim Artikel-Export

Ich exportiere meine Artikel für Check24 und nutze dafür den Artikelexport von Shopware. Nun werden meine Lieferzeiten aber nicht korrekt ausgegeben. Im Template steht, dass bei Artikeln “in Stock” ein fester Wert exportiert wird. Da sich aber die Lieferzeiten einiger meiner Artikel unterscheiden, wird das von Check24 nicht übernommen und es steht immer ein Standard-Wert drin. Ich bin jetzt mit Templates nicht so fit, aber wie müsste ich das Template ändern, dass die Lieferzeit exportiert wird, die im Backend bei der Lieferzeit steht?

Bzw. wie kann ich bei Artikeln, die nicht instock sind, einen Wert eingeben wie “Lieferzeit auf Anfrage”?

Hier der Inhalt des Templates:

{strip}
{$sArticle.ordernumber}{#S#}
{$sArticle.supplier|escape}{#S#}
{$sArticle.suppliernumber|escape}{#S#}
{$sArticle.ean|escape}{#S#}
{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape}{#S#}
{$sArticle.description_long|strip_tags|strip|trim|truncate:900:"...":true|html_entity_decode|escape}{#S#}
{$sArticle.articleID|category:">"|escape}{#S#}
{$sArticle.price|escape:number}{#S#}
{if $sArticle.purchaseunit}{$sArticle.price/$sArticle.purchaseunit*$sArticle.referenceunit|escape:number} {"\x80"} / {$sArticle.referenceunit} {$sArticle.unit}{/if}{#S#}
{$sArticle.articleID|link:$sArticle.name|escape}{#S#}
{$sArticle.image|image:2}{#S#}
{if $sArticle.instock}1-3 Werktage{elseif $sArticle.shippingtime}{$sArticle.shippingtime} Werktage{else}14 Tage{/if}{#S#}
{$sArticle|@shippingcost:"prepayment":"de"|escape:number}{#S#}

{/strip}{#L#}

 

Hier findest Du alle Felder: Shopware 5 - Marketing & Einkaufswelten - Produktexporte

{$sArticle.shippingtime} = Lieferzeit (In Tagen)

{$sArticle.instock} = Bestand in Stück

In Deinem Beispiel übergibst Du bei positivem Bestand „1-3 Werktage“ ansonsten wenn die Lieferzeit gesetzt ist, die Lieferzeit in Werktagen oder ansonsten „14 Tage“

Du könntest also die „14 Tage“ in „Lieferzeit auf Anfrage“ ändern.

Du könntest auch eine Spalte „Lieferzeit“ hinzufügen und dort {$sArticle.shippingtime} exportieren.

Da sind also viele Kombinationen möglich. 

Hallo NextMike,

vielen Dank für Deine Antwort. Wie müsste der Code aussehen, damit bei positivem Lagerbestand die in Shopware gesetzte Lieferzeit in Werktagen ausgegeben wird? Also nicht fest 1-3 Werktage, sondern das was ich im Backend bei Shopware eingestellt habe (z.B. 4-5 Werktage). Und bei Artikel in Stock <1 dann „Lieferzeit auf Anfrage“?

Vereinfacht, weil es nicht berücksichtigt, ob die Lieferzeit gesetzt ist

{if $sArticle.instock}{$sArticle.shippingtime} Werktage{else}Lieferzeit auf Anfrage{/if}{#S#}

 

1 „Gefällt mir“

VIELEN DANK!!!  Smile Thumb-Up

Gern, gutes Gelingen! Die 4-5 Werktage etc. kannst Du so umsetzen, wenn Du mit einer Zahl im Feld shippingtime arbeitest.

{if $sArticle.instock}{$sArticle.shippingtime}-{$sArticle.shippingtime +1} Werktage{else}Lieferzeit auf Anfrage{/if}{#S#}

 

Danke, aber 4-5 habe ich da immer schon eingetragen, weil das auch im Shop so angezeigt werden soll.

Muss nochmal nachhaken. Wenn das Feld Lieferzeit leer ist, wird nun " Werktage" übermittelt. Normalerweise zeigt mir Shopware hier „1-3 Werktage“ an. Wie muss ich den Code ergänzen, dass das richtig exportiert wird? Sofern eine Ganzzahl eingetragen ist, funktioniert es einwandfrei, nur eben einem leeren Feld nicht.

Was ist richtig? Schreib mal alle Bedingungen und Fälle hin.

Wenn keine Lieferzeit eingetragen ist, setzt mir Shopware in meinen Shop automatisch “1-3 Werktage” rein. Wenn eine Zahl eingetragen ist, dann eben die Anzahl der Tage. Also wenn ich 3 eingetragen habe, setzt Shopware “3 Werktage”. Wenn ich 4-5 eingebe, “4-5 Werktage”. So soll es auch exportiert werden. Alles im Fall, dass der Artikel lagernd ist. Ist der Artikel nicht lagernd, soll “ca. 3-4 Wochen” exportiert werden. “Auf Anfrage” ist hinfällig, da Check24 eine Lieferzeit haben will.

Es ist unerheblich, was das Frontend zeigt. Es geht um die Produktexporte. Wie Du schreibst, geht es hier um 2 Felder, Bestand und Lieferzeit. Formuliere Deine Anforderung unter Berücksichtigung der beiden Felder. Bei 2 Feldern sind es 4 Fälle.

Wenn Du etwas tiefer in das, was das Frontend tut, einsteigen möchtest, hier ist es sehr gut beschrieben: https://docs.shopware.com/de/shopware-5-de/produkte-und-kategorien/lagerbestands-und-lieferzeitanzeige#anzeige-der-lieferzeit-in-der-storefront

@NextMike schrieb:

Formuliere Deine Anforderung unter Berücksichtigung der beiden Felder. Bei 2 Feldern sind es 4 Fälle.

Und wie formulieren? Das ist ja die Frage. Wenn wir jetzt mal das Frontend außen vor lassen, brauche ich ja eine Formel, die ausdrückt, If Article.instock dann setze shippingtime auf X Werktage. Wenn shippingtime-Feld leer ist, setze 1-3 Werktage. Wenn Artikel nicht instock, setze Lieferzeit in jedem Fall auf 3-4 Wochen, egal, was im Feld Lieferzeit steht. Vereinfacht ausgedrückt… 

So müsste es passen (ungetestet)

{if $sArticle.instock}{if $sArticle.shippingtime}{$sArticle.shippingtime} Werktage{else}1-3 Werktage{/if}{else}3-4 Wochen{/if}{#S#}