stockRepository = $stockRepository; $this->defaultStockProvider = $defaultStockProvider; $this->salesChannelFactory = $salesChannelFactory; $this->storeManager = $storeManager; } /** * @inheritdoc * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \Magento\Framework\Exception\CouldNotSaveException * @throws \Magento\Framework\Validation\ValidationException * @throws \Magento\Framework\Exception\LocalizedException */ public function execute() { $websiteCode = $this->storeManager->getWebsite()->getCode(); $defaultStockId = $this->defaultStockProvider->getId(); $defaultStock = $this->stockRepository->get($defaultStockId); $extensionAttributes = $defaultStock->getExtensionAttributes(); $salesChannels = $extensionAttributes->getSalesChannels(); $salesChannels[] = $this->createSalesChannelByWebsiteCode($websiteCode); $extensionAttributes->setSalesChannels($salesChannels); $this->stockRepository->save($defaultStock); } /** * Create the sales channel by given website code * * @param string $websiteCode * @return SalesChannelInterface */ private function createSalesChannelByWebsiteCode(string $websiteCode): SalesChannelInterface { $salesChannel = $this->salesChannelFactory->create(); $salesChannel->setCode($websiteCode); $salesChannel->setType(SalesChannelInterface::TYPE_WEBSITE); return $salesChannel; } }