Im Produkt Listing die Lieferzeit in Tagen nicht anzeigen, wenn Erscheinungsdatum noch nicht eingetroffen ist

Hallo,

ich probiere aktuell die Ansicht im Produkt Listing so anzupassen, dass die Lieferzeit ($sArticle.shippingtime) nicht angezeigt wird, wenn es einen Erscheinungstermin ($sArticle.sReleaseDate) gibt welcher noch in der Zukunft liegt.
Dafür habe ich eine angepasste delivery_informations.tpl in meinem Theme hinterlegt und auch schon andere Dinge angepasst.

In dem letzten elseif vor dem else habe ich es so angepasst aber es werden weiterhin Erscheinungsdatum UND Lieferzeit angezeigt:

{elseif $sArticle.shippingtime}
		{if $sArticle.sReleaseDate && $sArticle.sReleaseDate|date_format:"%Y%m%d" > $smarty.now|date_format:"%Y%m%d"}

			<link itemprop="availability" href="http://schema.org/PreOrder" />
            		<p class="delivery--information">
                		<span class="delivery--text delivery--text-more-is-coming">
                    			<i class="delivery--status-icon delivery--status-more-is-coming"></i>
                    			{s name="DetailDataInfoShipping"}{/s} {$sArticle.sReleaseDate|date:'date_long'}
                		</span>
            		</p>
		{else}
			<link itemprop="availability" href="http://schema.org/LimitedAvailability" />
            		<p class="delivery--information">
                		<span class="delivery--text delivery--text-more-is-coming">
                   			<i class="delivery--status-icon delivery--status-more-is-coming"></i>
                   			{s name="DetailDataShippingtime"}{/s} {$sArticle.shippingtime} {s name="DetailDataShippingDays"}{/s}
                		</span>
            		</p>
		{/if}

Leider kenne ich mich weder gut mit Shopware , noch mit Smarty oder programmieren generell aus und hoffe, dass ihr mir helfen könnt.

Verstehe ich nicht - das ist doch bereits im Shopware Standard so. Wenn Release-Datum in der Zukunft, wird anstelle der Lieferzeit ein Text „Erscheint am ….“ angezeigt. Da hast du wohl irgendwas verschlimmbessert - schau dir mal das Original an: shopware/delivery_informations.tpl at a9a4e2927d992c55748c9f3f0f1e3e3d1afacc5d · shopware/shopware · GitHub - alle Zweige liegen in {elseif}, werden also nur geprüft, wenn keine vorherige Abfrage zutraf. In der Reihenfolge kommt „Releasedate“ vor „Instock“ und danach „Shippingtime“. Da muss man also normalerweise nichts anpassen. Hast du evtl. ein Plugin am Start, das hier reinfunkt?

LG Phil

Hallo Phil,
vielen Dank für deine Antwort.
Du hast natürlich recht, dass es von „Werk“ aus funktioniert aber leider nur in der Produkt Detailansicht (also auf der Produktseite).
Im Listing (Kategorien, Herstellerseite oder Suche) geben wir diese Information auch aus und dort funktioniert es eben nicht, dort werden immer sowohl shippingtime als auch Release Date angegeben.
Genau dort will ich es anpassen wahrscheinlich ist die delivery_informations.tpl gar nicht die richtige Datei dafür?
Vielleicht hast du oder jemand anders noch einen Hinweis oder gar eine Lösung?

Im Listing stammt die Produktanzeige aus /frontend/listing/box_article.tpl, welches die TPLs aus dem product_box Folder über includes einbindet. Lieferzeitanzeige gibt es im Standard-Theme m.W. nicht.

Du kannst natürlich dein Theme anpassen und auch in der product box des Listings die Lieferzeit mit ausgeben, indem Du z.B. unter dem Block mit dem Preis die delivery_informations.tpl inkludierst, also so wie das bei detail/data.tpl im Block frontend_detail_data_delivery gemacht wird:

{include file="frontend/plugins/index/delivery_informations.tpl" sArticle=$sArticle}

Die <link> Einträge kann man sich m.E. im Listing sparen, das sind ja Auszeichnungen für SEO und die bekommt die Suchmaschine ja auf der Detail-Seite. Und so funktioniert das natürlich nur bei Nicht-Variantenartikeln bzw. wenn bereits eine Variante ausgewählt wurde - denn jede Variante kann ja eine andere Lieferzeit haben. Ggf. übernimmst du also auch noch das vorangehende {if} aus der data.tpl

LG Phil

Hallo Phil,
vielen Dank für die Antwort. Das hatten wir ursprünglich schon so hinterlegt hat aber nicht gegriffen (inculde file="frontend/plugins…), es wurden also sowohl Shippingtime als auch ReleaseDate ausgegeben obwohl es in der frontend/plugins/index/delivery_informations.tpl richtig angegeben war.
Nach deinem Hinweis habe ich aber den Inhalt der delivery_informations.tpl händisch angepasst und in der box_article.tpl hinzugefügt.
Jetzt funktioniert es so wie ich es mir vorgestellt habe.
Also vielen Dank für deine Hilfe und viele Grüße!