Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GetSalableQuantityDataBySku.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 
19 {
23  private $getProductSalableQty;
24 
28  private $stockRepository;
29 
33  private $getAssignedStockIdsBySku;
34 
38  private $getStockItemConfiguration;
39 
46  public function __construct(
47  GetProductSalableQtyInterface $getProductSalableQty,
48  StockRepositoryInterface $stockRepository,
49  GetAssignedStockIdsBySku $getAssignedStockIdsBySku,
50  GetStockItemConfigurationInterface $getStockItemConfiguration
51  ) {
52  $this->getProductSalableQty = $getProductSalableQty;
53  $this->stockRepository = $stockRepository;
54  $this->getAssignedStockIdsBySku = $getAssignedStockIdsBySku;
55  $this->getStockItemConfiguration = $getStockItemConfiguration;
56  }
57 
62  public function execute(string $sku): array
63  {
64  $stockInfo = [];
65  $stockIds = $this->getAssignedStockIdsBySku->execute($sku);
66  if (count($stockIds)) {
67  foreach ($stockIds as $stockId) {
68  $stockId = (int)$stockId;
69  $stock = $this->stockRepository->get($stockId);
70  $stockItemConfiguration = $this->getStockItemConfiguration->execute($sku, $stockId);
71  $isManageStock = $stockItemConfiguration->isManageStock();
72  $stockInfo[] = [
73  'stock_name' => $stock->getName(),
74  'qty' => $isManageStock ? $this->getProductSalableQty->execute($sku, $stockId) : null,
75  'manage_stock' => $isManageStock,
76  ];
77  }
78  }
79  return $stockInfo;
80  }
81 }
$stockRepository
Definition: stock.php:19
$stock
__construct(GetProductSalableQtyInterface $getProductSalableQty, StockRepositoryInterface $stockRepository, GetAssignedStockIdsBySku $getAssignedStockIdsBySku, GetStockItemConfigurationInterface $getStockItemConfiguration)