6 declare(strict_types=1);
23 private $getProductSalableQty;
28 private $stockRepository;
33 private $getAssignedStockIdsBySku;
38 private $getStockItemConfiguration;
52 $this->getProductSalableQty = $getProductSalableQty;
54 $this->getAssignedStockIdsBySku = $getAssignedStockIdsBySku;
55 $this->getStockItemConfiguration = $getStockItemConfiguration;
62 public function execute(
string $sku): array
65 $stockIds = $this->getAssignedStockIdsBySku->execute($sku);
68 $stockId = (int)$stockId;
69 $stock = $this->stockRepository->get($stockId);
70 $stockItemConfiguration = $this->getStockItemConfiguration->execute($sku, $stockId);
71 $isManageStock = $stockItemConfiguration->isManageStock();
73 'stock_name' =>
$stock->getName(),
74 'qty' => $isManageStock ? $this->getProductSalableQty->execute($sku, $stockId) :
null,
75 'manage_stock' => $isManageStock,
__construct(GetProductSalableQtyInterface $getProductSalableQty, StockRepositoryInterface $stockRepository, GetAssignedStockIdsBySku $getAssignedStockIdsBySku, GetStockItemConfigurationInterface $getStockItemConfiguration)