6 declare(strict_types=1);
14 use Magento\InventoryApi\Api\Data\StockInterfaceFactory;
25 private $stockFactory;
30 private $stockRepository;
35 private $stockSourceLinkProcessor;
40 private $dataObjectHelper;
45 private $eventManager;
55 StockInterfaceFactory $stockFactory,
63 $this->stockSourceLinkProcessor = $stockSourceLinkProcessor;
65 $this->eventManager = $eventManager;
77 if (
null === $stockId) {
78 $stock = $this->stockFactory->create();
80 $stock = $this->stockRepository->get($stockId);
83 $this->dataObjectHelper->populateWithArray(
$stock,
$requestData[
'general'], StockInterface::class);
84 $this->eventManager->dispatch(
85 'controller_action_inventory_populate_stock_with_data',
91 $stockId = $this->stockRepository->save(
$stock);
92 $this->eventManager->dispatch(
93 'save_stock_controller_processor_after_save',
102 && is_array(
$requestData[
'sources'][
'assigned_sources'])
105 $this->stockSourceLinkProcessor->process($stockId, $assignedSources);
process($stockId, RequestInterface $request)
__construct(StockInterfaceFactory $stockFactory, StockRepositoryInterface $stockRepository, StockSourceLinkProcessor $stockSourceLinkProcessor, DataObjectHelper $dataObjectHelper, EventManager $eventManager)