Teil 1: Wie eine versteckte Logik 600 Gutscheine unbrauchbar machte


600 Gutscheine und keiner geht mehr – was war da los?

„Mein Gutschein funktioniert nicht.“
Okay, kommt vor. Vielleicht ein Tippfehler, falscher Code, irgendwas. Doch beim Test zeigt sich: Der Gutschein ist korrekt – aber WooCommerce sagt trotzdem Nein. Keine Fehlermeldung. Kein Hinweis. Einfach: kein Rabatt.

Dabei lag es nicht am Kunden. Auch nicht am Produkt. Sondern an einer stillen Logik im Hintergrund, die fast keiner kennt – aber alle betrifft, die mit festen Warenkorbrabatten arbeiten.

Das Problem

Ein Blick in den Warenkorb: Einer der Artikel im Warenkorb war im Produkt-Backend von Gutscheinen ausgeschlossen.
Das Problem: Ein einzelnes solches Produkt blockiert den gesamten festen Warenkorb-Rabatt. Auch dann, wenn alle anderen Produkte rabattfähig wären.

Der Gegentest

Ich wiederholte das Szenario – gleicher Warenkorb, aber diesmal mit einem Prozent-Gutschein statt einem festen Warenkorb-Rabatt.

Ergebnis: Der Rabatt wurde gewährt und auf den Rabattfähigen Artikel angewendet.
Konkret: Ein Artikel zu 99 €, 4 % Rabatt → 3,96 € Ersparnis. Alles wie erwartet.

Unterschiedliche Rabattlogiken verstehen

Die Verrechnung von Gutscheinen folgt in WooCommerce zwei grundverschiedenen Logiken:

Gutschein Typ Verhalten bei ausgeschlossenen Artikeln
Fester Warenkorb-Rabatt ❌ Wird komplett blockiert
Prozentualer Rabatt ✅ Wird auf erlaubte Artikel angewendet

Diese Logik ist nicht dokumentiert, aber technisch gewollt. Quelle: WooCommerce-Doku → Coupon Restrictions

Warum das 600 Gutscheine unbrauchbar machte

In meinem Fall wurden die Gutscheine im ERP generiert und synchronisiert. Doch beim Einlösen blockierte ein einziger „kritischer“ Artikel im Warenkorb die gesamte Gutschein-Anwendung.

Plugins kamen für mich nicht infrage – und zwar aus gutem Grund:
Die Gutscheine werden zentral im ERP verwaltet, WooCommerce dient nur als Frontend. Jede Plugin-Lösung hätte neue Datenstrukturen und API-Felder erfordert, was unweigerlich zu Synchronisationsproblemen geführt hätte.

Kurz gesagt: Ein Plugin hätte ein Datenchaos ausgelöst und die Wartung zum Albtraum gemacht.

Gibt es eine alternative Möglichkeit?

Bisher habe ich nur getestet, Artikel von Gutscheinen auszuschließen. Ich kann das ganze aber auch über die Gutscheine selbst versuchen zu steuern.

Angebotsartikel ausschließen

In den Gutscheinen gibt es die Möglichkeit Produkte, die im Angebot sind, auszuschließen. Hiermit wäre es möglich das verhalten wie gewünscht zu steuern. Allerdings sind damit die Möglichkeiten eingeschränkt wenn ich Produkte ausschließen möchte, die eben keine Angebotsartikel sind.

✅ Einfach einzurichten
❌ Funktioniert nur bei rabattierten Produkten
❌ Keine Steuerung über normale Artikel → zu unflexibel

Einzelne Produkte im Gutschein ausschließen

Ich kann im Gutschein auch einstellen, dass bestimmte Produkte ausgeschlossen werden. Allerdings würde das bedeuten, dass sobald ein Artikel ausgeschlossen werden soll, Alle entsprechenden Gutscheine angepasst werden müssen!

✅ Funktioniert
❌ Hoher manueller Aufwand – jeder neue Artikel erfordert Anpassungen an jedem betroffenen Gutschein

Die Lösung: Semantische Kategorien als Kontrollschalter

Ich stand vor einer echten Herausforderung:
Rabattierte Artikel sollten mit festen Rabattgutscheinen rabattiert werden können, aber gleichzeitig von Prozentgutscheinen ausgeschlossen sein.

Deshalb musste ich eine klare Trennung schaffen: Produkte, die von Prozentgutscheinen ausgeschlossen sind, dürfen die festen Rabatte nicht behindern. Nur so lassen sich beide Rabattarten sinnvoll und parallel einsetzen.

Das ist komplizierter, als es klingt. Denn: Wenn ich Artikel einfach von Gutscheinen ausschließe, blockiert WooCommerce dadurch auch die festen Rabattgutscheine – ein Verhalten, das viele nicht kennen und das die Flexibilität stark einschränkt.

Mein Lösungsansatz:

  • Ich habe die Gutscheine so konfiguriert, dass nur die Prozentgutscheine eine bestimmte Ausschlusskategorie verwenden, um rabattierte Artikel gezielt auszuschließen.
  • Die festen Rabattgutscheine bleiben davon unberührt und funktionieren weiterhin auf allen Artikeln, auch den rabattierten.

Das bedeutete für mich, dass ich über 600 Prozentgutscheine anpassen musste, um diese Ausschlusskategorie zu hinterlegen.
Die Produkte, die keinen Rabatt von Prozentgutscheinen bekommen sollen, werden einfach dieser Kategorie zugewiesen.

So habe ich eine flexible, zentrale Steuerung geschaffen, die ohne großen Aufwand Änderungen erlaubt – und die gleichzeitig voll kompatibel mit der ERP-Anbindung bleibt.

ACHTUNG: Damit die Kategorie „KEINRABATTGUTSCHEIN“ nicht ungewollt im Shop oder in Menüs auftaucht, nutze ich ein Plugin um die Kategorie im Frontend zu verstecken. (Hide Categories and Products for Woocommerce)

Konfiguration Warenkorb % Gutschein (mit Ausschluss-Kategorie) 10€ Gutschein (ohne Ausschluss-Kategorie)
Kategorie-Ansatz Artikel mit Ausschlusskategorie + normale Artikel ✅ Rabatt auf erlaubte Artikel ✅ Funktioniert (kein Ausschluss definiert)
Nur Artikel mit Ausschlusskategorie ❌ Gutschein nicht einlösbar ✅ Funktioniert (kein Ausschluss definiert)
Produkt-Flag-Ansatz Artikel mit „von Gutscheinen ausgeschlossen“ + normale Artikel ✅ Rabatt auf erlaubte Artikel ❌ Gutschein nicht einlösbar
Nur Artikel mit „von Gutscheinen ausgeschlossen“ ❌ Gutschein nicht einlösbar ❌ Gutschein nicht einlösbar

Inhaltsverzeichnis