/** * Performs all processes to be performed after the order creation * * Flushes all loaded order and related entities. * * @param OrderLineOnCreatedEvent $event Event * * @return null */ public function updateStock(OrderLineOnCreatedEvent $event) { $purchasable = $event->getCartLine()->getPurchasable(); $stock = $purchasable->getStock(); if ($stock === ElcodiProductStock::INFINITE_STOCK) { return null; } $quantityPurchased = $event->getCartLine()->getQuantity(); $newStock = $stock - $quantityPurchased; $newStock = max($newStock, 0); $purchasable->setStock($newStock); $this->flushPurchasable($purchasable); }
/** * Performs all processes to be performed after the order creation * * Flushes all loaded order and related entities. * * @param OrderLineOnCreatedEvent $event Event */ public function updatePurchasableStockByCartLine(OrderLineOnCreatedEvent $event) { $this->cartLineStockUpdater->updatePurchasableStockByCartLine($event->getCartLine()); }