6 declare(strict_types=1);
29 private $reservationBuilder;
34 private $appendReservations;
39 private $getStockBySalesChannel;
44 private $getProductTypesBySkus;
49 private $isSourceItemManagementAllowedForProductType;
59 private $salesEventToArrayConverter;
79 $this->reservationBuilder = $reservationBuilder;
80 $this->appendReservations = $appendReservations;
81 $this->getStockBySalesChannel = $getStockBySalesChannel;
82 $this->getProductTypesBySkus = $getProductTypesBySkus;
83 $this->isSourceItemManagementAllowedForProductType = $isSourceItemManagementAllowedForProductType;
85 $this->salesEventToArrayConverter = $salesEventToArrayConverter;
97 $stockId = $this->getStockBySalesChannel->execute($salesChannel)->getStockId();
109 $currentSku =
$item->getSku();
111 if ($skuNotExistInCatalog ||
112 $this->isSourceItemManagementAllowedForProductType->execute(
$productTypes[$currentSku])) {
113 $reservations[] = $this->reservationBuilder
114 ->setSku(
$item->getSku())
115 ->setQuantity((
float)
$item->getQuantity())
116 ->setStockId($stockId)
117 ->setMetadata($this->serializer->serialize($this->salesEventToArrayConverter->execute($salesEvent)))
121 $this->appendReservations->execute($reservations);
__construct(ReservationBuilderInterface $reservationBuilder, AppendReservationsInterface $appendReservations, GetStockBySalesChannelInterface $getStockBySalesChannel, GetProductTypesBySkusInterface $getProductTypesBySkus, IsSourceItemManagementAllowedForProductTypeInterface $isSourceItemManagementAllowedForProductType, SerializerInterface $serializer, SalesEventToArrayConverter $salesEventToArrayConverter)
foreach($websiteCodes as $websiteCode) $skus
execute(array $items, \Magento\InventorySalesApi\Api\Data\SalesChannelInterface $salesChannel, \Magento\InventorySalesApi\Api\Data\SalesEventInterface $salesEvent)