Rabattcode

Hallo,

leider weiß ich nicht, wie ich folgenden Rabattcode mit dieser Logik implementieren kann, weshalb ich fragen wollte, ob mir da jemand helfen könnte:

Wir wollen unseren Kunden Rabatt auf jedes weitere Produkt in einer bestimmten Kategorie geben. D.h. hat der Kunde mind. 2 Produkte aus einer bestimmten Kategorie im Warenkorb, erhält er auf das 2. Produkt einen Discount von 5€. Das Angebot soll aber auch auf weitere Produkte in dersselben Kategorie 5€ Rabatt geben (z.B. 3 Produkte aus dersselben Kategorie: 10€, 4: 15€). Es sollte aber niemals das erste Produkt rabattiert werden. Hier ein paar Beispiele, damit die Logik des Rabattcodes verständlicher wird:

Kategorie 1: 5€ Rabatt

Kategorie 2: kein Rabatt

Im Warenkorb ist:
Produkt 1 (Kategorie 1, kein Rabatt)

Im Warenkorb ist:
Produkt 1 (Kategorie 1, kein Rabatt), Produkt 2 (Kategorie 2, kein Rabatt)

Im Warenkorb ist:
Produkt 1 (Kategorie 1, kein Rabatt), Produkt 2 (Kategorie 1, 5€ Rabatt)

Im Warenkorb ist:
Produkt 1 (Kategorie 1, kein Rabatt), Produkt 2 (Kategorie 1, 5€ Rabatt), Produkt 3 (Kategorie 1, 5€ Rabatt)

Im Warenkorb ist:
Produkt 1 (Kategorie 1, kein Rabatt), Produkt 2 (Kategorie 1, 5€ Rabatt), Produkt 3 (Kategorie 1, 5€ Rabatt), Produkt 4 (Kategorie 2, kein Rabatt)

Dabei kann Produkt 1 auch das gleiche Produkt, wie Produkt 2 oder 3 sein (bis auf Beispiel 2 natürlich). Ich habe es nur nummeriert, damit es verständlicher ist, wie viele Produkte sich im Warenkorb befinden.

Leider kann man die Rabattierung zwar auf jedes Produkt einstellen, nicht jedoch das erste Produkt in derselben Kategorie ausschließen. Das Problem ist allerdings, dass sich der zu sparenden Betrag bei weiteren Produkten unterscheidet.

Slogan: Spare 5€ auf jedes weitere Produkt in dieser Kategorie

1 Produkt (0€ Rabatt pro Produkt)

2 Produkte (2,5€ Rabatt pro Produkt)

3 Produkte (3,33€ Rabatt pro Produkt)

4 Produkte (5€ Rabatt pro Produkt)

Würde mich freuen, wenn jemand dazu eine Lösung hätte.

LG

Sharp

Hey Sharp! @Sharpno

Danke für die ausführliche Beschreibung und schauen wir hier wie ihr am besten euer Ziel erreichen könnt. An erster Stelle wird das scheinbar eine komplex Coding Lösung verlangen was du beschreibst und gerne kann ich Shopify Experten empfehlen die das für euch anschauen können, wenn ihr das im Shop implementieren wollt.

Im Grunde um das Rabattsystem zu erzielen dass du beschreibst, wirst du eine Code Lösung mit einer Funktions-Logik benötigen, die den Warenkorb analysiert und den entsprechenden Rabatt berechnet. Ich werde hier etwas Code aus unseren Developer Docs entnommen zeigen, wie das erreichen werden könnte, denn diese Rabatt-Logik kann man m. E. nicht direkt über die Benutzeroberfläche oder per einer App erstellen. Man kann eine App wie “Automatic Discounts” testen aber ich denke diese Apps werden auch an deren Grenzen stossen leider. Oder eben eine benutzerdefinierte Lösung entwickeln, indem man die Shopify-API verwendet und ein Skript erstellt, das diese Logik implementiert. Hier ist ein beispiel JavaScript, das man als Ausgangspunkt in einer Testumgebung testen könnte. Es verwendet auch die Shopify API, um die gewünschte Rabatt Logik zu implementieren:

const discountAmount = 5; // Rabattbetrag in Euro
const targetCategory = "Kategorie 1"; // Die Kategorie, auf die der Rabatt angewendet werden soll

function applyDiscount(cart) {
  const eligibleProducts = cart.items.filter(
    (item) => item.category === targetCategory
  );

  if (eligibleProducts.length < 2) {
    return; // Wenn weniger als 2 Produkte aus der Kategorie im Warenkorb sind, wird kein Rabatt angewendet.
  }

  const discountPerProduct = discountAmount / (eligibleProducts.length - 1);

  eligibleProducts.slice(1).forEach((product) => {
    product.discount = discountPerProduct;
    product.price -= discountPerProduct;
  });
}

Hierfür muss man aber eine eigene benutzerdefinierte App bauen (mehr dazu hier) und diese mit dem Shop verbinden. Weiteres zum Abrufen von API-Schlüsseln: Shopify API Dokumentation.

Verwende also die Shopify-API, um auf den Warenkorb des Benutzers zuzugreifen und die Warenkorbdaten an die applyDiscount-Funktion in diesem Skript zu übergeben. Nachdem der Rabatt angewendet wurde, aktualisiere den Warenkorb des Benutzers mithilfe der Shopify-API, um die aktualisierten Preise anzuzeigen.

Bitte beachte, dass dieses Skript nur ein Beispiel ist und möglicherweise angepasst werden muss, um die Anforderungen deines Shops und die Datenstruktur der Produkte zu erfüllen. Ich empfehle also sehr bei weiteren Fragen, einen Entwickler hinzuziehen, um sicherzustellen, dass die Implementierung korrekt und sicher ist.