Erscheinungsdatum im Warenkorb

Hallo alle zusammen,

wenn man ein Erscheinungsdatum im Artikel hinterlegt hat, wird das bei der Lieferzeitangabe im Warenkorb überhaupt nicht berücksichtigt. Dort gibt er dann die normale Wiederauffüllzeit plus Lieferzeit an obwohl das Produkt noch gar nicht erhältlich ist.

Weiß jemand wie man das Erscheinungsdatum im Warenkorb ausgeben kann?

Ich hatte es mit Folgendem versucht, hat aber leider nicht geklappt :frowning:

{% sw_extends ‚@Storefront/storefront/component/line-item/element/delivery-date.html.twig‘ %}

{% block component_line_item_delivery_date %}
{% set deliveryPosition = null %}

{% if page.cart.deliveries.count > 0 %}
    {% set delivery = page.cart.deliveries.first %}

    {% set deliveryPosition = delivery.positions.get(lineItem.id) %}
{% endif %}

{% if releaseDate|date('U') > "now"|date('U') %}
        <div class="line-item-delivery-date">
            {{ "general.deliveryShipping"|trans|sw_sanitize }} {{ product.releaseDate|format_date('long', locale=app.request.locale) }}
        </div>

{% else %}
    {% block component_line_item_delivery_date_inner %}
        <div class="line-item-delivery-date">
            {{ "checkout.lineItemDeliveryDate"|trans({
                '%earliest%': deliveryPosition.deliveryDate.earliest|format_date('short', locale=app.request.locale),
                '%latest%': deliveryPosition.deliveryDate.latest|format_date('short', locale=app.request.locale)
            })|sw_sanitize }}
        </div>
    {% endblock %}
{% endif %}

{% endblock %}

Moin.

Ich hab das so gelöst:

{% sw_extends '@Storefront/storefront/component/line-item/element/delivery-date.html.twig' %}
{% block component_line_item_delivery_date_inner %}
    <div class="line-item-delivery-date">
        {% set gap = lineItem.payload.releaseDate|date('U') - "now"|date('U') %}
        {% set earliestnew = deliveryPosition.deliveryDate.earliest|date('U') + gap %}
        {% set latestnew = deliveryPosition.deliveryDate.latest|date('U') + gap %}
        {{ "checkout.lineItemDeliveryDate"|trans({
            '%earliest%': earliestnew|format_date('short', locale=app.request.locale),
            '%latest%': latestnew|format_date('short', locale=app.request.locale)
        })|sw_sanitize }}
    </div>
{% endblock %}

Kurze Erläuterung:
Ich berechne die Differenz zwischen heute und dem Releasedate und addiere das zu earliest und latest und verwende das Ergebnis für die Ausgabe. Wenn es kein Releasedate gibt, ergibt die Berechnung 0 und es passiert im Grunde nix.

Darf gern verwendet werden.

@Shopware: Ist im Grunde jetzt nicht SOOO schwer, diesen Fehler zu beheben, oder? Jährlich die Tickets zu schliessen, ist mehr Aufwand.

2 „Gefällt mir“

Danke für die Antwort. Leider ändert das bei mir die Anzeige im Warenkorb nicht und es steht immer noch die selbe Lieferzeit da, wie bei Artikeln die kein Erscheinungsdatum haben :frowning: Hab es 1:1 von dir übernommen :thinking:

Schau mal in Deine Nachrichten. Vielleicht kann ich helfen.

1 „Gefällt mir“

@pram16359 und ich haben zusammen die Lösung ein wenig optimiert.

Ab Shopware 6.5 muss das folgende in die Datei
{{ThemePfad}}/src/Resources/views/storefront/component/line-item/element/delivery-date.html.twig

{% sw_extends '@Storefront/storefront/component/line-item/element/delivery-date.html.twig' %}
{% block component_line_item_delivery_date_inner %}
    <div class="line-item-delivery-date">
        {% set gap = lineItem.payload.releaseDate|date('U') - "now"|date('U') %}
        {% if gap > 0 %}
            {% set earliestnew = deliveryPosition.deliveryDate.earliest|date('U') + gap %}
            {% set latestnew = deliveryPosition.deliveryDate.latest|date('U') + gap %}
        {% else %}
            {% set earliestnew = deliveryPosition.deliveryDate.earliest|date('U') %}
            {% set latestnew = deliveryPosition.deliveryDate.latest|date('U') %}
        {% endif %}
        {{ "checkout.lineItemDeliveryDate"|trans({
            '%earliest%': earliestnew|format_date('short', locale=app.request.locale),
            '%latest%': latestnew|format_date('short', locale=app.request.locale)
        })|sw_sanitize }}
    </div>
{% endblock %}

Bis Shopware 6.4 muss die Datei
Resources/views/storefront/page/checkout/checkout-item.html verwendet werden.

2 „Gefällt mir“

Vielen Dank für deine Hilfe Nils! :clap:

schließe mich an, bist ein Schatz :wink:

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.