@Domenik
Bzgl. Rabatte stapeln, ist eigentlich keine Good Practice. Aber wenn schon, hat dir das hier nicht weiterhelfen können? Wenn nein, an welcher Stelle in der Anleitung genau kommst du nicht weiter? Und hast du Apps wie Quantity Breaks oder Discount Ninja ausprobiert um das zu lösen? Du kannst beispielsweise Produkt- und Versandrabatte sowie Bestell- und Produktrabatte miteinander kombinieren. Jedoch können zwei Versandrabatte oder verschiedene Rabatte nicht immer zusammen genutzt werden. Ein häufiger Trick in der Community ist, dasselbe Rabattcode für verschiedene Kampagnen zu verwenden, um die Verwaltung zu erleichtern und Kombinationen zu ermöglichen (Shopify Community), (Shopify Community). Und diese Kombinationsrabatte können deine Profitabilität untergraben, besonders wenn die Rabatte sich zu stark summieren (Froonze Portal), (Convert2Customers). Ausserdem kann durch die Nutzung mehrerer Rabatte eine “false economy” entstehen, wenn Kunden Rabattkombinationen nur nutzen, um den niedrigsten Preis zu erzielen, anstatt langfristige Kundenbindung zu schaffen. Rabatte sollten eigentlich dazu dienen, Kunden anzulocken und Umsatz zu generieren, aber wenn sie nicht gut durchdacht sind, könnten sie dazu führen, dass Kunden nur dann kaufen, wenn Rabatte angeboten werden, was deine langfristigen Geschäftsziele beeinträchtigt (Convert2Customers).
Da du schon ein Eingabefeld für den Rabatt im Warenkorb-Drawer implementiert hast, dann den Code mit etwas JavaScript auch wieder entfernen wie mit der Shopify AJAX API → füge neben deinem Eingabefeld einen Button ein, der eine JavaScript-Funktion aufruft.
Nutze die Shopify AJAX API, um den Rabatt zu entfernen, ohne die Seite neu zu laden.
function removeDiscount() {
fetch('/cart.js', {
method: 'GET'
})
.then(response => response.json())
.then(cart => {
if (cart.discount_codes && cart.discount_codes.length > 0) {
fetch('/cart/update.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
discount_code: ''
})
})
.then(response => response.json())
.then(() => {
// Optional: Warenkorb-Drawer aktualisieren
alert('Rabatt erfolgreich entfernt.');
window.location.reload(); // Seite neu laden oder UI anpassen, je nach Bedarf
});
}
});
}
Diese Funktion löscht den angewendeten Rabatt aus dem Warenkorb. Du kannst die Funktion noch weiter anpassen, damit der Warenkorb ohne Neuladen der Seite aktualisiert wird, je nachdem, wie Dein Warenkorb-Drawer aufgebaut ist.