getAssignedSalesChannelsForStock = $getAssignedSalesChannelsForStock; } /** * Return all sales channels witch will be unassigned from the saved stock * * @param StockInterface $stock * @return \Magento\InventorySales\Model\SalesChannel[] */ public function execute(StockInterface $stock): array { $newWebsiteCodes = $result = []; $assignedSalesChannels = $this->getAssignedSalesChannelsForStock->execute((int)$stock->getStockId()); $extensionAttributes = $stock->getExtensionAttributes(); $newSalesChannels = $extensionAttributes->getSalesChannels() ?: []; foreach ($newSalesChannels as $salesChannel) { if ($salesChannel->getType() === SalesChannel::TYPE_WEBSITE) { $newWebsiteCodes[] = $salesChannel->getCode(); } } foreach ($assignedSalesChannels as $salesChannel) { if ($salesChannel->getType() === SalesChannel::TYPE_WEBSITE && !in_array($salesChannel->getCode(), $newWebsiteCodes, true) ) { $result[] = $salesChannel; } } return $result; } }