Liquid, JavaScript, Themes
Hi ! leuts, ich hab mich mit Blackbox.ai und so weiter mal in den Code getraut...
es geht um den free-shipping-bar.liquid
der sieht so aus:
{%- liquid
assign calculated_total_price = 0
for line_item in cart.items
if line_item.requires_shipping
assign calculated_total_price = calculated_total_price | plus: line_item.final_line_price
endif
endfor
-%}
<free-shipping-bar class="free-shipping-bar" threshold="{{ settings.cart_free_shipping_threshold | times: 100.0 }}" total-price="{{ calculated_total_price }}" reached-message="{{ 'cart.free_shipping_bar.limit_reached_html' | t | escape }}" unreached-message="{{ 'cart.free_shipping_bar.limit_unreached_html' | t | escape }}">
{%- comment -%}The span below is the placeholder where the content will be inserted in JS{%- endcomment -%}
<span> </span>
<progress-bar class="progress-bar" role="progressbar" aria-valuemin="0" style="--progress: 0"></progress-bar>
</free-shipping-bar>
und der rechnet aus wie viel Warenwert noch nötig ist, dass man die Promotion bekommt:
Ich werde gleich den modifizierten Code posten.. Unser Ziel ist es das line_item mit einem Filter zu versehen. Damit nur die Produkte mit dem Tag BACandles zum Free Shipping Bar gezählt werden.
et voilà:
{%- liquid
assign calculated_total_price = 0
for line_item in cart.items
if line_item.requires_shipping
for tag in line_item.product.tags
if tag == "BACandles"
assign calculated_total_price = calculated_total_price | plus: line_item.final_line_price
endif
endfor
endif
endfor
-%}
<free-shipping-bar class="free-shipping-bar" threshold="{{ settings.cart_free_shipping_threshold | times: 100.0 }}" total-price="{{ calculated_total_price }}" reached-message="{{ 'cart.free_shipping_bar.limit_reached_html' | t | escape }}" unreached-message="{{ 'cart.free_shipping_bar.limit_unreached_html' | t | escape }}">
{%- comment -%}The span below is the placeholder where the content will be inserted in JS{%- endcomment -%}
<span> </span>
<progress-bar class="progress-bar" role="progressbar" aria-valuemin="0" style="--progress: 0"></progress-bar>
</free-shipping-bar>
Siehst du den kleinen aber feinen Unterschied? true/false? haha nein, leider nach einigen Stunden probieren und verzweifeln komme ich nicht zu einer Lösung die klappt. Es zählt immer noch alle Produkte genau gleich zusammen bis CHF 200.-- Ich finde, das wäre richtig cool, wenn wir hier zusammen eine Lösung ausarbeiten. Die Damen der BA Candles freuts dann natürlich am meisten, wenn Sie durch unsere Hilfe mehr Kerzen verkaufen könnten. Bei Fragen gerne einfach Bescheid geben. Ich danke dir vorab. !!!
Hey @egiflex
Danke für die Angaben und ich sehe, du versuchst, den Shopify-Code so anzupassen, dass nur Produkte mit dem spezifischen Tag "BACandles" zur Berechnung des Mindestbetrags für kostenlosen Versand beitragen. Der modifizierte Code sollte theoretisch korrekt sein, da er über die Tags der Produkte iteriert und nur den Preis der Produkte mit dem entsprechenden Tag zur Gesamtsumme hinzufügt.
Jedoch funktioniert der Code nicht wie erwartet, wie du sagst? Wenn ja, es könnte sein, dass das Problem irgendwo anders im Ablauf liegt. Zum Beispiel könnte es sein, dass die Tags nicht korrekt ausgewertet werden, oder dass es irgendwo einen Fehler in der Logik gibt, der nicht offensichtlich ist. Hast du mit den Hextom App Entwickler darüber gesprochen? Die können hier bestimmt die besten Pro-Tipps abgeben! 😉
Vielleicht könntest du den Code, der sich auf das Rendering der Free-Shipping-Bar bezieht, und die dazugehörige JavaScript-Logik mit den App Entwickler mit einer 🔎 👀... Es ist möglich, dass der 🪱 in der berechneten Gesamtsumme die dann im Frontend verarbeitet wird, sitzt... 😉
{%- liquid
assign calculated_total_price = 0
for line_item in cart.items
if line_item.requires_shipping
for tag in line_item.product.tags
if tag == "BACandles"
assign calculated_total_price = calculated_total_price | plus: line_item.final_line_price
endif
endfor
endif
endfor
-%}
Diese FOR-Loop macht ja folgendes:
calculated_total_price
mit 0.line_item
im Warenkorb.line_item
, das Versand benötigt, durchgeht sie dann alle tags
des Produktes.final_line_price
des line_item
zur calculated_total_price
.Hier sind ein paar Dinge, die zu beachten sind oder die möglicherweise Probleme verursachen könnten:
line_item.product.tags
tatsächlich die Tags des Produkts enthält. Manchmal können sich Tags in einer anderen Eigenschaft befinden oder die Tags sind nicht richtig gesetzt.if tag == "BACandles"
nur dann den Preis hinzufügt, wenn der Tag exakt "BACandles" ist. Es ist case-sensitive, was bedeutet, dass "bacandles" oder "BA Candles" nicht als Übereinstimmung zählen würden.Es gibt auch eine andere Möglichkeit, wie dieser Code scheitern könnte:
line_item.requires_shipping
auf false
gesetzt ist, wird der Preis dieses Artikels nicht hinzugefügt. Stelle sicher, dass requires_shipping
korrekt für die Produkte gesetzt ist, die du zählen möchtest.final_line_price
nicht der Wert ist, den du verwenden möchtest. Es gibt verschiedene Preisattribute für Line-Items in Shopify, wie z.B. line_price
, original_line_price
, final_line_price
etc., und manchmal kann es sein, dass man ein anderes Attribut verwenden muss, um die korrekte Preislogik zu bekommen.Es könnte auch nützlich sein, zusätzliche Debugging-Informationen auszugeben, um zu überprüfen, welche Line-Items berücksichtigt werden. Du könntest zum Beispiel vorübergehende Ausgaben in deinen Code einfügen, um zu überprüfen, welche Produkte und Tags verarbeitet werden:
{%- liquid
assign calculated_total_price = 0
for line_item in cart.items
if line_item.requires_shipping
for tag
in line_item.product.tags
# Debug-Ausgabe des Tags
echo "Verarbeitung des Tags: ", tag, "\n"
if tag == "BACandles"
# Debug-Ausgabe des Preises, der zum totalen Preis hinzugefügt wird
echo "Hinzufügen des Preises: ", line_item.final_line_price, "\n"
assign calculated_total_price = calculated_total_price | plus: line_item.final_line_price
endif
endfor
endif
endfor
-%}
calculated_total_price
` nicht korrekt verarbeitet oder gerendert wird.Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Mit dem Lernpfad der Shopify Academy und dem Verified Skills-Badge Expanding Your Sho...
By Shopify Feb 7, 2025Den Verkauf im Großhandel steigern: In der Shopify Academy lernst du, wie das geht, zum...
By Shopify Feb 3, 2025Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024