Verschiedene Lieferzeiten trotz Lagerware möglich?

Hallo,

wie kann ich verschiedene Lieferzeiten trotz Lagerware definieren?

Ich habe hier Artikel, die schnell in 1-2 Tagen verschickt werden können. Andere Artikel (auch auf Lager) benötigen hingegen 5-6 Tage, da von Spedition transportiert.

Vielen Dank

Den Textbaustein um eine IF / Else Abgfrage auf ein Attribut erweitern, und wenn vorhanden, die “Tage” aus dem Freitext nehmen.
Ich habe es in einem Shop so:

Lieferzeit {if $sArticle.attr1}{$sArticle.attr1}{else}3-5{/if} Werktage ab Werk

 

Hallo,

hast du eine Lösung gefunden? Ich habe ein ähnlichen Problem.

Mit folgender Abfrage funktioniert es super.

{if $sArticle.attr5 == "true"}Lieferzeit: 1-2 Wochen **{else}Sofort versandfertig, Lieferzeit: 3-5 Werktage** {/if}

// attr5 ist bei mir ein Artikel-Freitextfeld (Checkbox=“Speditionsversand”)

Allerdings gibt es im Warenkorb bzw Checkout einen Fehler.

Dort wird immer Sofort versandfertig, Lieferzeit: 3-5 Werktage** angezeigt.

Auf der Artikeldetailseite klappt es ein einwandfrei.

LG

Hallo,

die Variable heißt im Checkout auch anders. Siehe hier: https://forum.shopware.com/discussion/comment/117481/#Comment_117481

Moritz

1 „Gefällt mir“

@Moritz Naczenski schrieb:

Hallo,

die Variable heißt im Checkout auch anders. Siehe hier: https://forum.shopware.com/discussion/comment/117481/#Comment_117481

Moritz

Vielen Dank! Ich habe folgenden Code eingefügt:

{if $sArticle.attr5 == "1" || $sBasketItem.additional_details.attr5}{if $sArticle.attr5 == "1"}Lieferzeit: 1-2 Wochen **{else if $sBasketItem.additional_details.attr5}Lieferzeit: 1-2 Wochen** {/if}{else}Sofort versandfertig, Lieferzeit: 3-5 Werktage**{/if}

Ich weiß nicht ob dieser 100%ig sauber ist, aber anscheinend funktioniert es :D 

1 „Gefällt mir“

Entweder habe ich was auf den Augen, oder das innere if / else-if ist doppelt gemoppelt, weil schon durch das „oder“ im äusserem if abgefragt wird ?!?

1 „Gefällt mir“

@sonic schrieb:

Entweder habe ich was auf den Augen, oder das innere if / else-if ist doppelt gemoppelt, weil schon durch das „oder“ im äusserem if abgefragt wird ?!?

Sonic, da hast du recht. Sollte so ausreichend sein:

{if $sArticle.attr5 == "1" || $sBasketItem.additional_details.attr5}Lieferzeit: 1-2 Wochen **{else}Sofort versandfertig, Lieferzeit: 3-5 Werktage** {/if}

Ist nur die Frage was in der Datenbank steht wenn die Checkbox mal deaktiviert wird, ob da dann eine „0“ in der Datenbank ist.

Dann müsste die Abfrage eher so aussehen:

{if $sArticle.attr5 == "1" || $sBasketItem.additional_details.attr5 == "1"}Lieferzeit: 1-2 Wochen **{else}Sofort versandfertig, Lieferzeit: 3-5 Werktage** {/if}

Uwe

2 „Gefällt mir“

Vielen Dank für eure Korrektur!  Smile

Für den Fall, dass ich es mal im Shop benötige (habe es nur im Katalog ohne Warenkorb), sage ich doch mal Danke für die weitere Ausarbeitung.  Thumb-Up

Hallo,

auf der Artikeldetailseite und im Checkout funktioniert es ja super. 

Nun möchte ich gerne in der sOrder Mail diese Lieferzeiten auch passend anzeigen.

Wenn $details.attr5 == „1“ und $details.instock > 0 soll „1-2 Wochen“ angezeigt werden oder

wenn $details.attr5 == „0“ und $details.instock > 0 soll „3-5 Werktage“ angezeigt werden,

sonst „max. 8 Wochen“.

Ich habe einige Varianten ausprobiert, leider ohne Erfolg… Vielleicht liegt es auch dran, dass Freitag ist :smiley:

Der Standard-Code laut Shopware lautet:

{if $details.modus == '0'}
  {if isset($details.active)&&!$details.active}
     nicht verfügbar
  {elseif $details.sReleaseDate && $details.sReleaseDate|date_format:"%Y%m%d" > $smarty.now|date_format:"%Y%m%d"}
     lieferbar ab: {$details.sReleaseDate|date:'date_long'}
  {elseif $details.esd}
     als Sofortdownload verfügbar
  {elseif $details.instock > 0}
     sofort lieferbar
  {elseif $details.shippingtime}
     lieferbar in {$details.shippingtime} Werktagen
  {else}
     aktuell nicht lieferbar
  {/if}
{/if}

 

Habe wohl die falsche Variable genutzt…

mit 

{elseif $details.instock > 0 && $details.additional_details.attr5 == '0'} 3-5 Werktage {elseif $details.instock > 0 && $details.additional_details.attr5 == '1'} 1-2 Wochen

funktioniert es anscheinend