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
sonic
13. September 2016 um 11:55
2
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“
sonic
4. November 2016 um 18:11
6
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“
useg
4. November 2016 um 18:18
7
@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!
sonic
4. November 2016 um 19:56
9
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.
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
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