![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-inventory-indexer/Indexer/SourceItem/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\InventoryIndexer\Indexer\SourceItem; use Magento\InventorySalesApi\Api\AreProductsSalableInterface; /** * Get salable statuses for products from array of SourceItems */ class GetSalableStatuses { /** * @var GetSkuListInStock */ private $getSkuListInStock; /** * @var AreProductsSalableInterface */ private $areProductsSalable; /** * @param GetSkuListInStock $getSkuListInStockToUpdate * @param AreProductsSalableInterface $areProductsSalable */ public function __construct( GetSkuListInStock $getSkuListInStockToUpdate, AreProductsSalableInterface $areProductsSalable ) { $this->getSkuListInStock = $getSkuListInStockToUpdate; $this->areProductsSalable = $areProductsSalable; } /** * Get salable statuses for products based on affected source items * * @param array $sourceItemIds * @return array */ public function execute(array $sourceItemIds) : array { $result = []; $skuListInStockList = $this->getSkuListInStock->execute($sourceItemIds); foreach ($skuListInStockList as $skuListInStock) { $stockId = $skuListInStock->getStockId(); $skuList = $skuListInStock->getSkuList(); $salableStatusList = $this->areProductsSalable->execute($skuList, $stockId); foreach ($salableStatusList as $salableStatusItem) { $result[$salableStatusItem->getSku()] = [$stockId => $salableStatusItem->isSalable()]; } } return $result; } }