Stock

Lagerbestände eines Produktes laden

Mit dem Stock Provider werden die Bestände für ein Produkt geladen.

$stockProvider=new \Alvine\Application\Platform\Plugin\Commerce\Item\Stock\Provider();
$stockData=$stockProvider->getSaleableStockFromIIDWithFactory(1425, new \Alvine\Application\Platform\Plugin\Commerce\Item\Stock\Factory());

Die Strategy Factory holt sich aus der Plugin Konfiguration die Strategie Klasse.
Die Factory bekommt die zuvor geladenen Lagerbestände.

$strategyFactory = new \Alvine\Application\Platform\Plugin\Commerce\Logic\Stock\Strategy\Factory();
$strategyFactory->setStockCollection($stockData);

Wenn nun der Lagerbestand einer Variante bestimmt werden soll, muss die Factory diese Variante noch gesetzt bekommen.

$strategyFactory->setItemVariant('XL');

Nachdem alle Einschränkungen an der Factory definiert sind , kann die Strategy erstellt werden.

$strategy = $strategyFactory->createStockStrategy();

nun kann der der verfügbare Lagerbestand ermittelt werden.

$count = $strategy->getAvailableCount();

Traits

Restriction

Der Trait \Alvine\Application\Platform\Plugin\Commerce\Logic\Stock\Restriction beinhaltet die Standard einschränkungen der Lagertabelle.

injectItemIIDRestriction Produkt IID einschränkung
injectItemSKURestriction Produkt SKU einschränkung
injectCompaniesRestriction Mandanten berücksichtigen
injectCompaniesNoExport Export einschränkung berücksichtigen

Summary

Der Trait \Alvine\Application\Platform\Plugin\Commerce\Logic\Stock\Summary stellt Methoden zum für eine Zusammenfalssung der Bestände.

calcAvailableTotalCount berechnet die Summe aller verfügbaren Lagerbestände
calcAvailableCountMap berechnet eine Map pro Variante mit verfügbaren Lagerbestand
getValidAdvisedDate liefert das Datum zurück bis wann der Avisierte Lagerbestand gültig ist, diese Mehthode ist für calcAvailableCountMap wichtig bei Avisierten Lagerbestand