Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GetSourceItemsDataBySku.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
17 {
21  private $sourceItemRepository;
22 
26  private $sourceRepository;
27 
31  private $searchCriteriaBuilder;
32 
39  public function __construct(
40  SourceItemRepositoryInterface $sourceItemRepository,
41  SourceRepositoryInterface $sourceRepository,
42  SearchCriteriaBuilder $searchCriteriaBuilder
43  ) {
44  $this->sourceItemRepository = $sourceItemRepository;
45  $this->sourceRepository = $sourceRepository;
46  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
47  }
48 
54  public function execute(string $sku): array
55  {
56  $sourceItemsData = [];
57 
58  $searchCriteria = $this->searchCriteriaBuilder
59  ->addFilter(SourceItemInterface::SKU, $sku)
60  ->create();
61  $sourceItems = $this->sourceItemRepository->getList($searchCriteria)->getItems();
62 
63  $sourcesCache = [];
64  foreach ($sourceItems as $sourceItem) {
65  $sourceCode = $sourceItem->getSourceCode();
66  if (!isset($sourcesCache[$sourceCode])) {
67  $sourcesCache[$sourceCode] = $this->sourceRepository->get($sourceCode);
68  }
69 
70  $source = $sourcesCache[$sourceCode];
71 
72  $sourceItemsData[] = [
76  SourceInterface::NAME => $source->getName(),
77  'source_status' => $source->isEnabled(),
78  ];
79  }
80 
81  return $sourceItemsData;
82  }
83 }
$source
Definition: source.php:23
$searchCriteria
__construct(SourceItemRepositoryInterface $sourceItemRepository, SourceRepositoryInterface $sourceRepository, SearchCriteriaBuilder $searchCriteriaBuilder)
$sourceItems
$sourceCode
Definition: inventory.phtml:11
$searchCriteriaBuilder
$sourceRepository
Definition: source.php:20
$sourceItemRepository