Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Lagerverwaltung
Die Shop-Erweiterung bietet eine einfache Lagerlogik für Produkte.
Zunächst musst du die Lagerfelder für dein Produkt aktivieren, indem du den Produkttyp konfigurierst. Anschließend findest du in allen Produkten dieses Typs zwei neue Felder: Auf Lager und Lager Menge.
Wenn du das Feld Auf Lager aktivierst, wird die Logik zum Verringern der Lager Menge aktiviert. Das Feld Lager Menge legt fest, wie viele Stück dieses Produkts noch bestellbar sind.
Lagerverwaltung im Warenkorb-Checkout
Wenn du den Standard-Warenkorb und -Checkout nutzt, wird die Lager Menge zuerst in der Warenkorbansicht überprüft. Versucht der Nutzer, eine Menge zu bestellen, die nicht verfügbar ist, reduziert die Warenkorbansicht die Bestellung automatisch auf die maximal verfügbare Menge.
Beim Abschluss des Checkouts wird der DecreaseStockAmountsEventListener
ausgeführt. Er prüft zunächst, ob es sich um ein digitales Produkt handelt – digitale Produkte werden übersprungen, da sie keine Lager Menge haben. Anschließend überprüft er, ob die Einstellung Auf Lager aktiviert ist; ist dies der Fall, verringert der Event Listener die Lager Menge des Produkts.
Lagerverwaltung bei Stripe-Abonnements
Die Lagerverwaltung bei Stripe-Abonnements funktioniert etwas anders. Sie greift nur, wenn du einem Produkt eine Stripe-Preis-ID zugewiesen hast.
Anwendungsfall: Du legst reguläre Produkte mit zugewiesener Stripe-Preis-ID an, aktivierst die Abonnement-Buttons und deaktivierst den Warenkorb-Button. So kannst du deine Produkte als Abonnement-Artikel verwenden.
Die Logik hört auf das StripeSubscriptionCreatedEvent
und fängt es im StripeSubscriptionCreatedDecreaseStockAmountsEventListener
auf. Dieses Event verwendet das Stripe-Abonnement-Objekt, um alle Abonnement-Artikel zu identifizieren. Jeder Abonnement-Artikel enthält die Preis-ID und die zu verringernde Menge.
Bei einem neuen Abonnement durchläuft der Listener alle Abonnement-Artikel, ermittelt den zugehörigen Produkt-Datensatz und – falls dieser das Feld Auf Lager aktiviert hat – verringert die Menge des Abonnement-Artikels.