Am besten schaust du mal in der Tabelle order_line_item nach, ob die Daten da vorhanden sind. Oftmals in der Spalte Payload, dann kannsrt du auch darauf zugreifen.
a.) Problem. Ausgabe von “wesentliche Merkmale” auf der Bestellbestätigung
In der Spalte “payload” gibt es “features” und dort finde ich auch die Eigenschaft “Auslieferung Band” mit der Ausprägung “ohne Dornschließe”. Was für einen Quellcode brauche ich um “Auslieferung Band” und “ohne Dornschließe” auszugeben? Sieht nach einer Schleife aus, um mehrfache Einträge auszulesen.
b.) Problem Ausgabe der “Lieferzeit” jedes Produktes auf der Bestellbestätigung
Wie man unten sieht, steht kein Eintrag dafür in der Spalte “payload”.
In jedem Artikeldetail und in der Warenkorbzusammenfassung sieht man die Lieferzeiten eines jeden Artikels.
Jeder Onlineshopbetreiber bekommt täglich Anrufe von Kunden, die nach der Lieferung Ihrer Ware fragen. Man verweist dann darauf, das man im Artikeldetail stehen hat z.B. 4 - 8 Tage und deshalb 2 Tage nach Bestellung nichts da sein. Schön wäre es, wenn man diese Information auf die Bestellbestätigung bringen könnte, in der Hoffnung das der Kunde diese Information liest und dadurch weniger Anrufe entstehen. Der Shopbetreiber könnte selbst entscheiden, ob er die Informationen in seinem Template einbaut oder nicht. Sind mehrere Artikel mit unterschiedlichen Lieferzeiten in der Bestellung hat der Kunde einen Hinweis das es eine gesplitte Lieferung geben kann oder die Lieferung erst komplett zum späteren Zeitpunkt kommt.
Ein Ticket eröffnen für die Ausgabe der Lieferzeit in order_line_item, Spalte payload?
{% if lineItem.payload.features is defined and lineItem.payload.features|length >= 1 %}
{% for features in lineItem.payload.features %}
{% if features.value is defined and features.value is iterable %}
{{ features.label }}:
{% for values in features.value %}
{{ values.name }}
{% endfor %}
{% else %}
{{ features.label }}: {{ features.value }}
{% endif %}
{% if lineItem.payload.features|last != features %}
{% endif %}
{% endfor %}
{% endif %}
Ich habe mir dazu beispielswiese eine eigene Spalte angelegt:
Wir haben aktuell nur die Lieferzeit pro Lieferung in der Datenbank, nicht pro Artikel. Entsprechend kannst du das aktuell nicht ausgeben lassen. Könntest ein Ticket aufmachen, dass man das pro Artikel mitspeichert.
Guten Abend Moritz! Danke für die Antwort. Wo steckt den die Lieferzeit pro Lieferung? In der Tabelle „order“ ist sie mir eigentlich nicht ins Auge gefallen. Wie wird den diese Lieferzeit errechnet - die längste Lieferzeit aller Positionen? Für die Lieferzeit pro Position werde ich ein Ticket aufmachen.
hallo, wenn ich das richtig sehe, ist das aber nicht die auf den artikel bezogene lieferzeit, oder? wir bräuchten die LZ pro artikel. da finde ich aktuell nichts, sonst wer? viele grüße!
@UhrenZietz Kannst du uns mal das entsprechende Ticket verlinken?
Ich sehe bei der order.deliveries.first.shippingDateEarliest und order.deliveries.first.shippingDateLatest das Problem, dass keine Wochenenden/Feiertage/Betriebsferien oder ähnliches beachtet werden. Das Shopware System behandelt jeden Tag als Arbeitstag. Das kann, je nach Lieferzeit und Bestellzeitpunkt, zu mehreren Tagen Versatz zum tatsächlichen Lieferzeitfenster führen.
Fazit: Nicht zu gebrauchen!
Mögliche Lösung für unseren Shop:
Die Lieferzeitangaben wie auf der Artikeldetailseite (Ampel). Diese sind allerdings im Checkout Finish nicht verfügbar. Sie müssten zu jeder Position einer Bestellung gespeichert werden, dann können diese Daten auch in Mailings verwendet werden und man umgeht die Angabe eines konkreten Lieferdatums, dass aktuell noch nicht richtig berechnet werden kann.
Noch wichtig bei dem ganzen Thema: https://issues.shopware.com/issues/NEXT-25350
Aktuell werden Liefertermine auf Mo-So berechnet, es können keine Tage ausgeschlossen werden.
Gerne mal mit Voten, dass sich das hoffentlich bald ändert. Das würde einige Probleme auch in diesem Thema beseitigen.
Das funktioniert so in der aktuellen Version nicht. Nach dem Einfügen wird die E-Mail wird nicht mehr versendet. Gab’s da vielleicht einige Änderungen am Code?
Hier der Original-Code, bei dem ja nur der Grundpreis angezeigt wird:
{% if nestedItem.payload.features is defined and nestedItem.payload.features|length >= 1 %}
{% set referencePriceFeatures = nestedItem.payload.features|filter(feature => feature.type == 'referencePrice') %}
{% if referencePriceFeatures|length >= 1 %}
{% set referencePriceFeature = referencePriceFeatures|first %}
<div>
{{ referencePriceFeature.value.purchaseUnit }} {{ referencePriceFeature.value.unitName }}
({{ referencePriceFeature.value.price|currency(currencyIsoCode) }}* / {{ referencePriceFeature.value.referenceUnit }} {{ referencePriceFeature.value.unitName }})
</div>
{% endif %}
{% endif %}
wir stecken gerade in den letzten Zügen des Wechsels von SW5 zu SW6 und ich bin, um es gelinde auszudrücken, entsetzt. Eine so elementare und meiner Meinung nach selbstverständliche Funktion wie die Anzeige der Lieferzeiten in der Bestellbestätigung des Kunden scheint in SW6 weder enthalten zu sein, noch einfach zu implementieren.
In der heutigen Zeit, wo Transparenz und Kundenzufriedenheit an erster Stelle stehen, halte ich das für ein absolutes Muss. Die Anzeige war in der alten SW5 problemlos möglich. Warum ist das in der „supermega tollen“ (Ironie) SW6 nicht machbar?
Oder gibt es mittlerweile eine Lösung, die ich übersehen habe? Jede Hilfe oder Einsicht wäre enorm geschätzt, da diese Funktion für unser Geschäft unerlässlich ist.
Vielen Dank im Voraus für eure Unterstützung und teilt gerne eure Gedanken und Erfahrungen mit mir!
ich habe dazu eine kleine Erweiterung geschrieben die mir die DeliveryTime, AvailableStock und MinPurchase ins Payload das lineItem der order packt, so dass ich an diesen die Lieferzeit nach Regeln ausgeben kann.
Habe mich dazu per eigenem Subscriber an das BeforeLineItemAddedEvent angekoppelt und dort die benötigten Daten aus dem Produkt, bzw. wenn am Produkt nicht gestezt, aus dem Vater, geholt und ins Payload gepackt. Damit stehen die Daten dann auch in der Bestell-Mail zur Verfügung.
Wenn jemand dabei Unterstützung braucht, gerne schreiben.