6 declare(strict_types=1);
17 use Psr\Log\LoggerInterface;
27 private $replaceSalesChannelsOnStock;
37 private $getAssignedSalesChannelsForStock;
42 private $defaultStockProvider;
47 private $getUnassignedSalesChannelsForStock;
58 LoggerInterface $logger,
63 $this->replaceSalesChannelsOnStock = $replaceSalesChannelsOnStock;
65 $this->getAssignedSalesChannelsForStock = $getAssignedSalesChannelsForStock;
66 $this->defaultStockProvider = $defaultStockProvider;
67 $this->getUnassignedSalesChannelsForStock = $getUnassignedSalesChannelsForStock;
87 $unAssignedSalesChannels = $this->getUnassignedSalesChannelsForStock->execute(
$stock);
90 $this->replaceSalesChannelsOnStock->execute(
$salesChannels, $stockId);
92 if (count($unAssignedSalesChannels)) {
93 $mergedSalesChannels = array_merge(
94 $unAssignedSalesChannels,
95 $this->getAssignedSalesChannelsForStock->execute($this->defaultStockProvider->getId())
97 $this->replaceSalesChannelsOnStock->execute(
99 $this->defaultStockProvider->getId()
102 }
catch (\Exception $e) {
103 $this->logger->error($e->getMessage());
afterSave(StockRepositoryInterface $subject, int $stockId, StockInterface $stock)
__construct(ReplaceSalesChannelsForStockInterface $replaceSalesChannelsOnStock, LoggerInterface $logger, GetAssignedSalesChannelsForStockInterface $getAssignedSalesChannelsForStock, DefaultStockProviderInterface $defaultStockProvider, GetUnassignedSalesChannelsForStock $getUnassignedSalesChannelsForStock)