@mangola
Wow klasse Arbeit und so kommen wir hoffentlich einen Schritt näher zu einer Lösung, oder wenigstens zu einem Workaround. Manchmal wenn das System zu sehr in so einem Use-Case limitiert ist, muss man auch manchmal zurück zum Tisch und schauen ob ein ganz anderer Ansatz ggf. besser wäre in Erwägung zu ziehen. Das würde bedeuten, dass ihr sogar euer ganzes Geschäftsmodell nochmal “revisited”. Die derzeitige Logik der Shopify Versandprofile von Shopify ist halt der Bedürfnisse der Mehrheit aller globalen Shopify Merchants angepasst, was bedeuten kann, dass es immer eine Minderheit an Handler und Use-Cases gibt, die andere Anforderungen haben, die das das derzeitige Systemverhalten leider nicht passen oder sprengen.
Die Probleme, die du beschreibst, zeigen tatsächlich eine der Herausforderungen der nativ-eingebauten Versandprofilen. Obwohl diese Funktion in vielen Fällen hilfreich ist, sind die nativen Regeln für das Zusammenspiel verschiedener Profile in Mischbestellungen nicht immer intuitiv oder passend für alle Use-Cases.
Im Kern scheint das Problem darin zu liegen, dass Shopify den Gesamtwert des Warenkorbs betrachtet, wenn es darum geht, die Anwendbarkeit kostenloser Versandoptionen zu prüfen - nicht den Wert der Artikel innerhalb jedes Versandprofils. Das führt zu den inkorrekten Berechnungen in Mischbestellung 2 und 3.
Somit bietet Shopify keine eingebaute Möglichkeit, die Versandkosten so zu berechnen, wie du es benötigst. Hast du Erfahrung mit anderen Plattformen die das besser können, wie Shopware oder Woocommerce? Wenn ja, wie haben die das gelöst?
Die Plattform erlaubt es also nicht, bei Mischbestellungen den Warenkorbwert pro Versandprofil zu betrachten, um kostenfreien Versand zu gewähren oder zu verweigern. Wie bereits erwähnt, könnte man dies umgehen, indem man einen höheren Mindestbestellwert für kostenfreien Versand für den gesamten Shop festlegt. Diese Lösung ist jedoch nicht ideal und könnte sich negativ auf die Kundenzufriedenheit auswirken.
Eine andere mögliche Lösung könnte sein, eine App zu verwenden, die eine detailliertere und flexiblere Kontrolle über die Versandkostenberechnung ermöglicht. Apps wie “Advanced Shipping Rules”, “Better Shipping” oder “Intuitive Shipping” bieten erweiterte Funktionen, die möglicherweise besser zu eurem Use-Case und Bedürfnissen passen.
Alternativ könnte man auch über die Beauftragung einer maßgeschneiderten Lösung nachdenken, wenn der Budget dies zulässt. Ein Shopify-Experte könnte in der Lage sein, ein Skript oder eine App zu erstellen, die genau zu den Anforderungen passt.
Man könnte ein ein benutzerdefiniertes Skript schreiben, das die Warenkorbdaten analysiert, um zu bestimmen, welche Versandkosten auf der Grundlage der spezifischen Regeln gelten sollten. Dieses Skript müsste in der Lage sein, den Warenkorb zu durchlaufen, um die Gesamtkosten für Produkte aus jeder Produktgruppe zu berechnen und dann die entsprechenden Versandkosten anzuwenden.
Ein sehr vereinfachter Skript könnte in etwa so aussehen:
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
if product.tags.include? 'Produktgruppe A'
if line_item.line_price < Money.new(cents: 15000)
line_item.change_shipping_price(Money.new(cents: 500))
else
line_item.change_shipping_price(Money.new(cents: 0))
end
elsif product.tags.include? 'Produktgruppe B'
if line_item.line_price < Money.new(cents: 50000)
line_item.change_shipping_price(Money.new(cents: 1000))
else
line_item.change_shipping_price(Money.new(cents: 0))
end
end
end
Output.cart = Input.cart
Dieser Code durchläuft jede Zeile im Warenkorb und ändert die Versandkosten je nach Produktgruppe und Preis der Zeile. Es geht davon aus, dass die Produktgruppen mit Produkt-Tags identifiziert werden. Die Methode change_shipping_price dient nur zur Veranschaulichung.
Die Scripts API bietet tatsächlich nur begrenzte Möglichkeiten zur Änderung der Versandkosten. Mit der API könnte man versuchen Versandtarife zu erstellen, löschen oder ändern (create, delete, edit), aber nicht die Versandkosten für einzelne Produkte oder Zeilen im Warenkorb ändern. Eine vollständige Lösung erfordert daher wahrscheinlich eine Kombination von Anpassungen auf der Ebene des Warenkorbs und auf der Ebene des Versandtarifs.