Variantenpreise "Ab" in Produktlisten

Hallo zusammen!

Da ich selbst nach stundenlangem Probieren die Lösung des in der Folge beschriebenen Problems gefunden habe, möchte ich diese für Leute, denen es evtl. ähnlich geht, hier kurz beschreiben:

Problem
Nach der Migration von Shopware 5 auf Shopware 6 werden in den Produktlisten der Kategorien bei Varianten-Produkten, deren Varianten unterschiedliche Preise haben, keine „Ab“-Preise mehr angezeigt. (bei mir wurden bei einigen Produkten „Ab“-Preise angezeigt, bei anderen nicht)

Lösung
Der Preis des Elternartikels (Artikelnummer endet mit „M“) darf nicht dem Preis günstigsten Variante entsprechen!

In unserem Fall war das bei fast allen Varianten-Artikeln so, die aus Shopware 5 übernommen wurden, weil dort in der Vergangenheit immer erst die günstige Variante (kleinste Gebindegröße) angelegt wurde und auf deren Grundlage dann die anderen Varianten erzeugt wurden.

Am einfachsten ist es, bei allen Elternartikeln sowohl Preis als auch Streichpreis zu entfernen (Speichern nicht vergessen!)

… vielleicht erspart das dem/der ein oder anderen ja ein paar Stunden Sucherei und den Kauf eines Plugins. :wink:

Viele Grüße
Christoph

2 „Gefällt mir“

Oh wir haben im Template einfach die Position ausgeblendet :smiley:

@stan_o kannst Du bitte genauer beschreiben wo Du was ausgeblendet hast, danke.

Moin,
wir haben in unserem eigenem Template bei views/storefront/component/product/card/price-unit.html.twig den Part für den günstigsten Preis ausgeklammert.

{#


{% if cheapest.unitPrice != real.unitPrice %}
{{ „listing.cheapestPriceLabel“|trans|sw_sanitize }} {{ cheapest.unitPrice|currency }}{{ „general.star“|trans|sw_sanitize }}

{% endif %}

#}

Ich bin auch gerade dabei den SW5 auf SW6 zu bringen und frage mich immer mehr was die da zusammengeschrieben haben.

Wenn ich am Vater den Preis, so wie hier empfohlen, lösche, steht da zwar „Varianten ab 539 €“ aber drunter dann der Vater mit „Ab 0,00 €“.
Ich will im Listing ein Produkt anzeigen lassen und den Preis der billigsten Variante. Also so wie es im SW5 Standard war.
Die billigste Variante kostet 539 €, wenn das der Vater auch hat, dann fällt „Ab“ weg.
Setze ich den Preis des Vaters höher wird es noch schlimmer.

Sehe ich das also richtig, dass ich ohne eigene Programmierung keine ordentliche Anzeige mit „ab 539 €“ hinbekomme?
Dann muss ich mich echt fragen, was die da bei Shopware so machen.

Hei,
zuerst einmal muss ich mich entschuldigen, denn das beschriebene Vorgehen funktioniert so offensichtlich nicht im Standard-Theme, aber im von uns verwendeten Zenit-Theme! Dort scheint die entsprechende Klasse im Template bereits ausgeblendet zu sein.

Hier ein Lösungsansatz für das Standard-Theme:

Wenn Du Dir das folgende kostenlose Plugin installierst

und mit dessen Hilfe im CSS den Div-Container für die Cheapest-Price-Info ausblendest, sollte es funktionieren:

.product-cheapest-price {
    min-height: 0px;
    margin-bottom: 0px;
    visibility:hidden;
}

Diesen Eintrag musst Du im Plugin dann auch aktivieren und speichern&kompilieren.

Ich hoffe, das funktioniert und hilft.

Wollte nur sicher gehen, dass die da was ordentlich verbockt haben.

Danke. Aber die CSS Änderung nimmt ja gerade die Zeile „Varianten ab 539 €“ raus. Es würde also nur noch „Ab 0,00 €“ da stehen.

Mein Ziel ist ja: „Ab 539 €“

Ich programmiere dann selbst was. Ist nicht das erste was man in einem Shop benötigt und in dem Fall sogar entfernt wurde.

Wenn es gut funktioniert kommt es die Tage als Quelltext hier rein.

Das stimmt wohl. - Interessanterweise verhält es sich bei uns anders. Da wird der günstigste Preis beim „großen“ Ab-Preis angezeigt.

Wie hast Du denn die Storefront-Darstellung beim Elternartikel konfiguriert? Ist die auf „Einzelprodukt anzeigen“ und „Hauptprodukt“ eingestellt?

Und alles in allem muss ich Dir übrigens recht geben: Ich bin auch sehr verwundert, wie unausgegoren einige Dinge in SW6 nach der langen Zeit und bei Version 6.5.x noch sind! - Ich bin die Tage am Text-Editor gestrandet, der auch teilweise macht, was er will. Vor allem wenn man im HTML-Editor Dinge anpasst und speichert, verliert er bei uns gerne mal einfach den kompletten Code und man darf bei 0 anfangen, wenn man die Code nicht vorher kopiert hat. Scheinbar wird auch dort vorausgesetzt, dass man dafür noch ein Plugin für 130 Euro pro Jahr zukauft.

Ich hoffe, dass ich nicht noch auf mehrere solcher Baustellen stoße.

Habe mir angewöhnt nur in Notepad++ zu arbeiten und dann komplett zu kopieren.
Um Fair zu bleiben bereits weit vor Shopware 6.
Konnte mit diesen tiny editoren nie was anfangen

Ich hab folgende Datei angelegt:
custom/plugins/PLUGINNAME/src/Resources/views/storefront/component/product/card/price-unit.html.twig

Und das hier rein geschrieben.

{% sw_extends '@Storefront/storefront/component/product/card/price-unit.html.twig' %}
{% block component_product_box_price_info %}
    {% set cheapest = product.calculatedCheapestPrice %}

    {% set real = product.calculatedPrice %}
    {% if product.calculatedPrices.count > 0 %}
        {% set real = product.calculatedPrices.last %}
    {% endif %}

    {% set referencePrice = real.referencePrice %}

    {% set displayFrom = product.calculatedPrices.count > 1 %}
    {% set displayParent = product.variantListingConfig.displayParent and product.parentId === null %}

    {% if displayParent %}
        {% set displayFromVariants = displayParent %}
        {% set real = cheapest %}
    {% endif %}

     <div class="product-price-info">
       {% block component_product_box_price_unit %}
            {{ parent() }}
        {% endblock %}

        {% block component_product_box_price %}
        	{{ parent() }}
        {% endblock %}
    </div>
{% endblock %}

Ich hab nur in der Zeile
{% set displayFromVariants = displayParent and real.unitPrice !== cheapest.unitPrice %}
" and real.unitPrice !== cheapest.unitPrice" gelöscht
Somit erscheint das „ab“ vor einem Preis, wenn er Varianten hat.

Jetzt besteht durchaus die Möglichkeit, dass das „ab“ auch davor steht, wenn alle Varianten das gleiche kosten. Wenn man das nicht will, selbst nochmal etwas anpassen und hier posten oder mich fragen und ich schaue es mir nochmal an. Zur Zeit habe ich keinen solchen Artikel und von daher im Moment keine Lust.

Über die Textbausteine „listing.listingTextFrom“ bekommt man es dann noch klein geschrieben.

Bildschirmfoto 2024-02-20 um 10.41.16