/** * @param CreateProduct $createProduct * * @throws \Exception */ public function handle(CreateProduct $createProduct) { $this->products->add(new Product(new SKU($createProduct->sku()), new Price($createProduct->amount(), $createProduct->currency(), $createProduct->precision()), $createProduct->isInStock())); }
/** * @param RemoveProductFromStock $command * @throws ProductNotFound */ public function handle(RemoveProductFromStock $command) { $product = $this->products->getBySku(new SKU($command->sku())); $product->removeFromStock(); }
/** * @param PutBackProductToStock $command * @throws ProductNotFound */ public function handle(PutBackProductToStock $command) { $product = $this->products->getBySku(new SKU($command->sku())); $product->putBackToStock(); }