getProductSalableQty = $getProductSalableQty; $this->stockRepository = $stockRepository; $this->getAssignedStockIdsBySku = $getAssignedStockIdsBySku; $this->getStockItemConfiguration = $getStockItemConfiguration; } /** * @param string $sku * @return array */ public function execute(string $sku): array { $stockInfo = []; $stockIds = $this->getAssignedStockIdsBySku->execute($sku); if (count($stockIds)) { foreach ($stockIds as $stockId) { $stockId = (int)$stockId; $stock = $this->stockRepository->get($stockId); $stockItemConfiguration = $this->getStockItemConfiguration->execute($sku, $stockId); $isManageStock = $stockItemConfiguration->isManageStock(); $stockInfo[] = [ 'stock_name' => $stock->getName(), 'qty' => $isManageStock ? $this->getProductSalableQty->execute($sku, $stockId) : null, 'manage_stock' => $isManageStock, ]; } } return $stockInfo; } }