Hey @Rofl
Bezüglich deiner Frage zu GraphQL und der Möglichkeit, einen Rabatt zu erstellen, der nur gültig ist, wenn eine bestimmte Produkt-ID nicht im Warenkorb liegt: Shopify’s GraphQL API bietet viele Möglichkeiten, aber spezifische Logiken wie die, die du beschreibst, sind oft nicht direkt über die API implementierbar. So bietet sie zwar umfangreiche Möglichkeiten zur Manipulation von Produkten, Bestellungen und Rabatten, eine direkte Möglichkeit, einen Rabatt zu deaktivieren, wenn ein bestimmtes Produkt im Warenkorb liegt, ist mir jedoch nicht bekannt. Die API fokussiert sich eher auf das Erstellen, Aktualisieren und Abfragen von Daten, als auf bedingte Logiken im Checkout-Prozess.
Ein Beitrag im Shopify Community Forum bietet ein Script-Beispiel, das Rabattcodes für spezifische Produkte basierend auf deren Produkt-ID blockiert. Dieses Script läuft durch die Artikel im Warenkorb und lehnt den Rabattcode ab, wenn ein bestimmtes Produkt gefunden wird. Wichtig zu beachten ist, dass dieses Skript den Rabattcode für alle Produkte im Warenkorb ablehnt, wenn das spezifische Produkt vorhanden ist, was nicht deinem idealen Szenario entspricht, aber es bietet einen Ansatzpunkt für die Anpassung.
Ein anderer Blogbeitrag erklärt die generelle Nutzung von Shopify Scripts, um Rabattcodes automatisch aus dem Warenkorb zu entfernen. Obwohl der Artikel nicht direkt auf dein spezifisches Problem eingeht, bietet er Einblick in die Möglichkeiten, die Shopify Scripts für die Anpassung von Rabattlogiken bieten.
Ein weiterer Beitrag im Shopify Community Forum diskutiert einen Ansatz, um Rabattcodes für Produkte mit einem bestimmten Tag zu deaktivieren, während für alle anderen Produkte Rabatte zugelassen werden. Dieser Ansatz nutzt eine detaillierte Script-Struktur, um Produkte basierend auf Tags zu identifizieren und entsprechende Rabattaktionen zuzulassen oder abzulehnen.
Wenn du bereits eine App auf dem Basistemplate für Rabattcodes aufsetzt, könntest du versuchen, deine Logik so anzupassen, dass sie als Teil des Checkout-Prozesses fungiert, möglicherweise durch das Überprüfen des Warenkorbinhalts vor der Anwendung eines Rabatts. Dies könnte jedoch Limitationen haben, basierend auf dem Zugriff, den Apps auf den Checkout-Prozess haben.
Du könntest einen Webhook verwenden, der ausgelöst wird, wenn ein Checkout erstellt oder aktualisiert wird. Die Logik deiner Anwendung könnte dann prüfen, ob das spezifische Produkt im Warenkorb ist, und entsprechend handeln. Dies könnte allerdings komplex in der Umsetzung sein und würde externe Serverlogik erfordern.
Oder die Logik umkehren und Rabatte nur für bestimmte Produkte oder Kollektionen zu aktivieren, anstatt zu versuchen, sie explizit zu deaktivieren. Dies kann über die Shopify-Oberfläche einfacher konfiguriert werden, löst aber möglicherweise nicht genau das von dir beschriebene Problem.
Hoffe das hilft dir weiter - lass wissen falls nicht! 