Ersparnis auf der Produktseite anzeigen

AP205
Neues Mitglied
2 0 0

Hallo,

ich würde gerne die Ersparnisse auf der Produktseite anzeigen lassen.

Folgenden Code verwende ich aktuell dafür:

{%- if settings.discount_saved -%}
<div class="discount_saved">
<div id="DiscountSaved">

{% for variant in product.variants %}
{% capture discount_saved %}
{% if settings.sale_type == "amount" %}
{{ variant.compare_at_price | minus: variant.price | money_without_trailing_zeros }}
{% elsif settings.sale_type == "percentage" %}
{{ variant.compare_at_price | minus: variant.price | times: 100 | divided_by: variant.compare_at_price }}%
{% endif %}
{% endcapture %}
{% if variant.compare_at_price <= variant.price %}
<span style="display:none;" class="number-discount_saved discount_saved-{{ variant.id }}">{{ "products.general.save_html" | t: saved_amount: discount_saved }}</span>
{% else %}
<span style="display:inline;" class="number-discount_saved discount_saved-{{ variant.id }}">{{ "products.general.save_html" | t: saved_amount: discount_saved }}</span>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}

Es funktioniert soweit, dass die Ersparnisse angezeigt werden. Allerdings werden bei Produkten mit mehreren Varianten auch von allen Varianten die Ersparnisse gleichzeitig angezeigt (s. Bild).

Hat jemand eine Lösung dafür?

Vielen Dank.

Screenshot (57).png

3 ANTWORTEN 3
DP_Development
Pfadfinder
83 11 17

Du lässt im For-Loop alle Varianten durchlaufen und die entsprechende Ersparnis berechnen. Ich würde das nur für die ausgewählte Variante empfehlen. Dazu müsstest du vorher definieren, dass die Ersparnis nur beim aktuellen Produkt angezeigt werden soll:

{%- assign current_product = product.selected_or_first_available_variant -%}

Wenn du die Variable hast, müsstest du deine Berechnung nur noch für current_product durchführen und anzuzeigen. Dann sollte es passen :) 

Software Engineer and Frontend Developer
Fast, cheap and straightforward solutions! Shall I do this for you? Just send me a message!
Please click on like and "accepted solution" if my answer helped you.
AP205
Neues Mitglied
2 0 0

Hey @DP_Development,

vielen Dank schon einmal für deine Antwort. Ich habe mir schon gedacht, dass es irgendwas mit der ausgewählten Variante zu tun haben muss.

Es funktioniert jetzt, dass nur noch der Rabatt für eine Variante angezeigt wird. Allerdings wird dieser nicht aktualisiert, wenn man die Variante wechselt.

Hättest du da eventuell noch einen Tipp?

Danke!

DP_Development
Pfadfinder
83 11 17

Ich vermute, du berechnest jetzt die Ersparnis lediglich statisch auf das erste Produkt und nicht dynamisch in Abhängigkeit zur gewählten Variante. 

Software Engineer and Frontend Developer
Fast, cheap and straightforward solutions! Shall I do this for you? Just send me a message!
Please click on like and "accepted solution" if my answer helped you.