Liquid, JavaScript, Themes
Hallo shopify-Team,
wir haben in unserem Shop das Problem, dass Versandkosten doppelt berechnet werden.
Leider konnten wir in den zahllosen bisherigen Fragen und Antworten nicht fündig werden.
Folgendes DRINGENDES Problem:
Wir verkaufen Artikel eines Herstellers.
Diese Artikel können bis zu drei Versandprofile haben.
Bedeutet Artikel A kann mit Versandtarif X, Y und Z versendet werden - alle drei kosten verschieden.
Artikel B kann nur mit Versandtarif X und Y versendet werden.
Hat der Kunde nun Artikel A und B im Warenkorb sollte er wählen können aus Tarif X und Y - aber nur einmal Versandkosten zahlen, und nicht doppelt.
Wie lösen wir das Problem?
@sven6678 wie unterscheiden sich denn die drei Versandtarife untereinander? Gibt es hier verschiedene Konditionen (MOQ, Gewicht) oder nur verschiedene Preise?
Hi Finer,
die Profile unterscheiden sich nch Herkunft, Länge und Versandoptionen. Der Großteil der Waren wird direkt durch den Hersteller verschickt. Dieser bietet verschiedene Services die nach Einkaufswert gestaffelt sind an. So hat der Kunde z.Bsp. die Möglichkeit sich seine Ware per Spedition "Frei Bordstein", per 2-Mann-Handling (ab 2,40m Warenlänge nur 2-Mann-Handling möglich), Paketversand (ab 150,00 € Warenkorb kostenlos) und Abholung an verschiedenen Standorten in Deutschland.
Die Profile Palette und 2-Mann müssen wir leider nach Warenkorb auch noch einmal unterteilen, d.h. bis 449,-€ und ab 450,- €, da uns dies so vom Hersteller vorgegeben ist.
90% der Artikel haben alle den gleichen Lagerort. Da der Kunde aus verschiedenen artikel wählen kann, kommt es zu Überschneidungen.
Beispiel:
1. Beispiel:
Der Kunde wählt einen Artikel aus dem Profil Paketversand + Artikel aus Palettenversand.
Gewähltes Versandprofil vom Kunden: Palette - aktuelle: Versandkosten Paket + Palette, richtig muss es sein, nur Palette
2. Beispiel:
Der Kunde wählt einen Artikel aus dem Profil Paketversand + Artikel aus Palettenversand.
Gwähltes Versandprofil vom Kunden: 2-Mann-Handling - aktuelle: Versandkosten Paket + Palette + 2-Mann-Handling, richtig muss es sein, nur 2-Mann-Handling.
Ich hoffe du kannst damit etwas anfangen.
Viele Grüße,
Sven
Hey Sven! @sven6678
Es scheint, dass ihr mehrere Versandtarife habt, die von verschiedenen Faktoren wie Herkunft, Länge und Versandoptionen abhängen, und dass Kunden mehrere Artikel in unterschiedlichen Versandprofilen kaufen können, was zu doppelter Versandkostenberechnung führen kann die sog. Combined Shipping Rates. Wir haben eine Reihe Leitfäden zum Thema Combined Shipping Rates hier in der Community wo das Thema ausführlich besprochen wurde
Um dieses Problem zu lösen, kann man vielleicht die Versandregeln im Shop anpassen oder eben entweder eine Shipping App von Drittanbietern verwenden, die erweiterte Versandregeln und Bedingungslogik im Checkout bieten, oder man kann die Versandregeln mithilfe der Einstellungen manuell einrichten.
Man kann auch Versandtarife basierend auf Gewicht, Bestellwert oder Bestellmenge konfigurieren, um sicherzustellen, dass die Versandkosten korrekt berechnet werden. Wenn beispielsweise der Kunde Artikel aus dem Paketversandprofil und dem Palettenversandprofil auswählt, kann man eine Versandregel erstellen, die besagt, dass der Versandpreis auf das höhere Versandprofil (Palette) beschränkt ist.
Wenn ihr weitere Unterstützung benötigt, empfehle ich entweder einer unserer Shipping Apps wie Better Shipping oder Advanced Shopify Rules zu testen oder einen erfahrenen Shopify-Entwickler engagieren der etwas wie das folgende Beispiel für euch bauen könnte:
Eine eigene DIY Codelösung bauen?
Um das Problem mit doppelt berechneten Versandkosten im Liquid-Code zu lösen, könnte man beispielweise man eine Versandkostenberechnungen im Code bauen bzw. anpassen.
Man muss hier eine Versandkostenberechnungsmethode im Shop verwenden, die auf den Anforderungen deiner Produkte basiert entweder als Gewichtsbasierte, Preisbasierte oder Bestellmengebasierte Versandkostenberechnungsmethode, je nachdem, welche Methode am besten zu euren Produkten passt.
Hier prüft man im Liquid-Code, welche Artikel sich im Warenkorb befinden und welche Versandprofile sie haben. Man kann dann entsprechend die Versandkosten berechnen und sicherstellen, dass der Kunde nur einmal Versandkosten zahlt, selbst wenn er Artikel aus verschiedenen Versandprofilen im Warenkorb hat.
Hier ist ein Beispielcode mit For-Loops und Comments:
{% assign total_weight = 0 %}
{% assign shipping_costs = 0 %}
{% for item in cart.items %}
{% assign product = item.product %}
{% assign weight = product.weight %}
{% assign price = product.price %}
{% assign quantity = item.quantity %}
{% comment %}
Prüfe, ob das Produkt ein Versandprofil hat
{% endcomment %}
{% if product.shipping_profile %}
{% comment %}
Prüfe, ob das Produkt im Warenkorb ist und berechne das Gesamtgewicht
{% endcomment %}
{% assign total_weight = total_weight | plus: (weight * quantity) %}
{% comment %}
Prüfe, ob das Versandprofil im Warenkorb bereits berechnet wurde
{% endcomment %}
{% unless product.shipping_profile | contains: shipping_profile %}
{% assign shipping_profile = product.shipping_profile %}
{% comment %}
Berechne die Versandkosten basierend auf dem Versandprofil
{% endcomment %}
{% if shipping_profile == 'Palette' %}
{% assign shipping_costs = shipping_costs | plus: 10 %}
{% elsif shipping_profile == 'Paketversand' %}
{% assign shipping_costs = shipping_costs | plus: 5 %}
{% elsif shipping_profile == '2-Mann-Handling' %}
{% assign shipping_costs = shipping_costs | plus: 20 %}
{% endif %}
{% endunless %}
{% endif %}
{% endfor %}
{% comment %}
Prüfe, ob das Gesamtgewicht über dem Grenzwert liegt und aktualisiere die Versandkosten
{% endcomment %}
{% if total_weight > 10 %}
{% assign shipping_costs = shipping_costs | plus: 10 %}
{% endif %}
{% comment %}
Zeige die Versandkosten im Warenkorb an
{% endcomment %}
{{ shipping_costs | money }}
Der obige Code überprüft, ob der Warenkorb Produkte enthält, die mit verschiedenen Versandprofilen versendet werden können. Wenn dies der Fall ist, wird eine Funktion calculateShipping
aufgerufen, die den korrekten Versandpreis für den Warenkorb berechnet und in der Variablen shipping_price
speichert.
Die Funktion calculateShipping
wird definiert, um die korrekten Versandkosten für den Warenkorb basierend auf den Versandprofilen der enthaltenen Produkte zu berechnen. Es wird überprüft, welche Versandprofile im Warenkorb vorhanden sind, und die entsprechenden Versandkosten werden addiert.
Schließlich wird die Variable shipping_price
zurückgegeben, die den korrekten Versandpreis für den Warenkorb enthält. Wenn die Versandkosten berechnet wurden, werden sie der Variablen total_price
hinzugefügt, um den Gesamtbetrag des Warenkorbs einschließlich der Versandkosten zu berechnen.
Es ist zu beachten, dass der Code eine vereinfachte Version ist und wenn du es selber in deinem Shop programmieren möchtest dann bitte immer in einer Themekopie/Testumgebung zuerst testen und zusammen mit einem Experten/Programmierer. Es ist ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen!
VG,
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
Shopify hat angekündigt das Liquid raus zu nehmen somit stände die Option mit dem Code nicht mehr zur Verfügung.
Shopify tut wirklich alles um zu verhindern das Kunden kostenlose eigene Lösungen bauen.
Hey @Alphabay
Ich weiß du fühlst dich von Shopify im Stich gelassen aber solche negative Comments helfen auch niemanden hier in der Community weiter. Keep ya head up, wie Tupac einmal gesagt hat! 😉
Shopify ist stets am innovieren und das Produkt und die Plattform für euch am verbessern. Hier ein Beispiel:
Wir haben derzeit einen Early Access Programm für ein neues Shipping System mit neuen Features für den Versand. Wenn ihr mitmachen wollt, folgende sind die Teilnahmebedingungen:
Für Shops die mitmachen wollen und die folgende Bedingungen erfüllen, dass die Entwickler brauchen:
@Alphabay, ich habe dich jetzt zum Programm hinzugefügt und unsere Entwickler werden dich über E-Mail kontaktieren und dir alles erklären, falls du mitmachen möchtest.
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
@Gabe Danke, ich werde das Angebot bzgl. Early access definitiv annehmen.
Natürlich ist es schlecht Negativerfahrungen zu äußern, jedoch besteht dieses Problem schon seid 5 Jahren wie du weißt und es hat sich nichts geändert. Im Gegenteil steuert Shopify mit solchen Maßnahmen gegen eine Lösung.
Wann meldet sich der Support ca.?
Hey @Alphabay
Das ist nicht der Support sondern unser Product Team und wir haben keine Einsichten in deren Entscheidungen oder Zeitrahmen. Alle Teilnehmer werden zur Liste hinzugefügt und in den nächsten Release eingebunden und E-Mails werden dann an euch rausgesendet.
Ihr könnt gerne hier in der Community eure Erfahrungen mit den neuen Features teilen und bitte auch euren Feedback an unsere Product Teams zurückzuleiten sobald es losgeht!
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
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024