Liquid, JavaScript, Themes
Hallo Community,
ich habe zu diesem Thema zwar mehrere Chats gefunden manche aber bereits mehrere Jahre alt.
Keiner dieser enthielt aber eine Lösung bei diesem Thema.
Es geht um kaufmännisches korrektes Runden von Preisen wie dies in rechtlich erforderlich ist.
Diese Anforderung scheint in Shopify, bei der Rabattierung von Preisen mit Produkt oder Kollektionsrabatten nicht zu funktionieren. Es funktioniert nur richtig bei einem Bestellrabatt, also müsste es auch eine Möglichkeit geben, dies richtig bei anderen Rabatten darzustellen.
Gibt es eine Möglichkeit dies sicherzustellen?
Wie im Beispiel Original Preis 26,99 bei 20% Rabatt wären es 21,59€ Shopify gibt dies aber mit 21,60€ also ein Cent Abweichnung. Dies passiert bei jeder Position, gibt es nun eine Bestellung mit mehreren Positionen wird die Abweichnung signifikat.
Ich bin für jeden Tipp offen, vorallem da mich auch mein Steuerberater hingewiesen hat das dies so nicht korrekt ist und auch so nicht ausgeführt werden darf.
Grüße Markus
Steuerberater wechseln 😁
Welche Threads haben dir nicht weiterhelfen können genau? Shopify verwendet eigene Rundungslogiken die den meisten globalen Merchants auf Shopify am besten passen, die aber möglicherweise nicht ganz § 9 PAngV in Deutschland entsprechen leider.
Du kannst 'ne Rundungslogik im Liquid deines Themes definieren, wie z. B.:
{% assign rabatt = 20 %}
{% assign original_price = 26.99 %}
{% assign discounted_price = original_price | times: 1 | minus: (original_price | times: rabatt | divided_by: 100) %}
{% assign final_price = discounted_price | round: 2 %}
{{ final_price }}
Oder von hier entnommen den folgenden Code deinen Requirements entsprechend anpassen:
function formatWithDelimiters(number, precision = 3, thousands = ',', decimal = '.') {
if (isNaN(number) || number == null) { return 0; }
number = (number / 100.0).toFixed(precision);
const parts = number.split('.');
const dollars = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1' + thousands);
const cents = parts[1] ? decimal + parts[1] : '';
return dollars + cents;
}
Oder die Rabatte nur auf die Total sum des Warenkorbs anwenden (wie bei den Order Discounts) und damit wird der Rabatt auf den Gesamtbetrag angewandt und erst danach gerundet, wodurch Einzelpositionen nicht betroffen sind.
Ein paar interessante Threads zum Thema hier, und hier. Siehe da den Beitrag von @Gabe (2024). FAZIT: WaWi verwenden mit separaten Rechnungen außerhalb von Shopify. Oder die Rabattberechnung auf die Gesamtsumme des Warenkorbs anwenden.
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