"ab {geringster Preis}" zu "{geringster Preis} - {höchster Preis}"

Hallo liebe Community,

wie im Titel beschrieben, möchte ich die Anzeige im Listing so anpassen, dass statt „ab {geringster Preis}“ zu „{geringster Preis} - {höchster Preis}“ angezeigt wird.

Dafür würde ich gerne das Template anpassen, aber ich durchschaue es einfach nicht.

Ich habe im Forum leider nur Einträge gefunden, die Shopware 5 betreffen.

M.E. geht es um price-unit.html.twig:

        {% block component_product_box_price %}
            <div class="product-price-wrapper">
                {% set price = real %}
                {% set isListPrice = price.listPrice.percentage > 0 %}
                {% set isRegulationPrice = price.regulationPrice != null %}

                <div class="product-cheapest-price{% if isListPrice and price.regulationPrice.price and not displayFrom %} with-list-price{% endif %}{% if isRegulationPrice and displayFrom %} with-regulation-price{% endif %}">
                    {% if cheapest.unitPrice != real.unitPrice %}
                        <div>{{ "listing.cheapestPriceLabel"|trans|sw_sanitize }}<span class="product-cheapest-price-price"> {{ cheapest.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}</span></div>
                    {% endif %}
                </div>

                {% if displayFrom %}
                    {{ "listing.listingTextFrom"|trans|sw_sanitize }}
                {% endif %}

                <span class="product-price{% if isListPrice and not displayFrom %} with-list-price{% endif %}">
                    {{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}

                    {% if isListPrice and not displayFrom %}
                        {% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %}
                        {% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %}
                        {% set hideStrikeTrough = beforeListPriceSnippetExists or afterListPriceSnippetExists %}

                        <span class="list-price{% if hideStrikeTrough %} list-price-no-line-through{% endif %}">
                            {% if beforeListPriceSnippetExists %}{{ "listing.beforeListPrice"|trans|trim|sw_sanitize }}{% endif %}

                            <span class="list-price-price">{{ price.listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span>

                            {% if afterListPriceSnippetExists %}{{ "listing.afterListPrice"|trans|trim|sw_sanitize }}{% endif %}

                            <span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': price.listPrice.percentage })|sw_sanitize }}</span>
                        </span>
                    {% endif %}
                </span>
                {% if isRegulationPrice %}
                    <span class="product-price with-regulation-price">
                        {% if isListPrice %}<br/>{% endif %}<span class="regulation-price">{{ "general.listPricePreviously"|trans({'%price%': price.regulationPrice.price|currency }) }}{{ "general.star"|trans|sw_sanitize }}</span>
                    </span>
                {% endif %}
            </div>
        {% endblock %}

Über Hinweise wie sich das in Shopware 6 lösen ließe, wäre ich sehr dankbar.

Hier steht dein ab Preis. cheapest ist sehr wahrscheinlich eine Variable, die zuvor über {% set cheapest = ??? %} gesetzt wurde. Entsprechend kannst du über das gleiche Verfahren den maximalen Preis setzen und ausgeben lassen.

Die Frage ist nur, ob Shopware den maximalen Preis irgendwo ausgibt oder ob du per Schleife alle Preise durchgehen müsstest und diesen selbst bestimmen.

Alternativ könntest du den maximalen Preis per Extension oder customFields an das Frontend übermitteln.

Mit {{ dump() }} im dev-Modus siehst du alle Variablen, die Shopware an das Frontend übergibt.