Loading...
Navigation überspringen
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 folgende neue Felder:

  • Auf Lager
  • Lagermenge.
  • Überverkäufe zulassen

Wenn du das Feld Auf Lager aktivierst, wird die Logik zum Verringern der Lagermenge aktiviert. Das Feld Lagermenge legt fest, wie viele Stück dieses Produkts noch bestellbar sind.Mit der Einstellung Überverkäufe zulassen kannst du festlegen, dass die Lagermenge auch negativ werden kann. Du lässt somit Überverkäufe zu und teilst deinem Käufer ggf. eine längere Versandzeit mit.

Verwendung in Fluid

In Fluid können folgende Eigenschaften am Produkt verwendet werden:

  • {product.inStock} gibt true zurück, wenn die Lager-Logik für das Produkt aktiviert ist.

  • {product.stockAmount} gibt die aktuelle Lagermenge des Produktes als Integer zurück.

  • {product.stockAmountAsString} gibt die aktuelle Lagermenge des Produktes als String zurück.

  • {product.stockAllowBackorders} gibt true zurück, wenn Überverkäufe für dieses Produkt zulässig sind.

  • {product.isBuyable} gibt true zurück, wenn das Produkt bestellt werden kann.

    flowchart TD
        A(["{product.isBuyable}"]) --> B{isDigitalProduct}
        B -- Yes --> T1([return true<br/>Digital product: always buyable])
        B -- No --> C{isStockAllowBackorders}
        C -- No --> D{getStockAmount > 0}
        D -- Yes --> T2([return true<br/>Stock available])
        D -- No --> E{isInStock}
        E -- No --> T3([return true<br/>Stock logic disabled])
        E -- Yes --> F([return false<br/>No stock & stock logic enabled])
        C -- Yes --> T4([return true<br/>Backorders enabled: always buyable])
    

Lagerverwaltung im Warenkorb-Checkout

Wenn du den Standard-Warenkorb und -Checkout nutzt, wird die Lagermenge 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. Diese Prüfung und ggf. Reduzierung passiert in jedem Step des Checkouts.

Beim Abschluss des Checkouts (in dem Moment, wo der Käufer auf "Bestätigen und Bestellen" klickt) wird via BasketOrderController->orderAction der DecreaseStockAmountsEventListener ausgeführt.

Er prüft zunächst, ob es sich um ein digitales Produkt handelt – digitale Produkte werden übersprungen, da sie keine Lagermenge haben. Anschließend überprüft er, ob die Einstellung Auf Lager aktiviert ist; ist dies der Fall, verringert der Event Listener die Lagermenge des Produktes entsprechend der Bestellmenge.

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.

Dokumentation
TYPO3 Shop Erweiterung

TYPO3 Shop

Diese Erweiterung ist eine umfangreiche Shop-Erweiterung für TYPO3 zur Umsetzung von Webshops, Online-Shops oder Abo-Systemen (vergleicbar mit tt_products, Quick-Shop oder Aimeos).

Menü

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
5____________J_______
B_O____U____5Z____XO2
I8Q___KPP____5_______
__9____D_____F____M1N
__8_________73R______