6 declare(strict_types=1);
14 use Magento\Framework\Api\SearchCriteriaBuilderFactory;
34 private $isSourceItemManagementAllowedForProductType;
39 private $sourceItemsProcessor;
44 private $isSingleSourceMode;
49 private $defaultSourceProvider;
54 private $searchCriteriaBuilderFactory;
59 private $sourceItemRepository;
74 SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory,
77 $this->isSourceItemManagementAllowedForProductType = $isSourceItemManagementAllowedForProductType;
78 $this->sourceItemsProcessor = $sourceItemsProcessor;
79 $this->isSingleSourceMode = $isSingleSourceMode;
81 $this->searchCriteriaBuilderFactory = $searchCriteriaBuilderFactory;
95 if ($this->isSourceItemManagementAllowedForProductType->execute(
$product->getTypeId()) ===
false) {
101 $singleSourceData =
$productData[
'quantity_and_stock_status'] ?? [];
103 if (!$this->isSingleSourceMode->execute()) {
104 $sources =
$controller->getRequest()->getParam(
'sources', []);
105 $assignedSources = $sources[
'assigned_sources'] ?? [];
106 $this->sourceItemsProcessor->process(
$productData[
'sku'], $assignedSources);
107 }
elseif (!empty($singleSourceData)) {
111 $isInStock = $singleSourceData[
'is_in_stock'] ?? (empty(
$stockItem) ? 1 : (int)
$stockItem->getIsInStock());
112 $defaultSourceData = [
130 private function getSourceItemsWithoutDefault(
string $sku): array
140 $sourceItemData = [];
143 $sourceItemData[] = [
151 return $sourceItemData;
elseif(isset( $params[ 'redirect_parent']))
__construct(IsSourceItemManagementAllowedForProductTypeInterface $isSourceItemManagementAllowedForProductType, SourceItemsProcessor $sourceItemsProcessor, IsSingleSourceModeInterface $isSingleSourceMode, DefaultSourceProviderInterface $defaultSourceProvider, SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory, SourceItemRepositoryInterface $sourceItemRepository)
execute(Observer $observer)