6 declare(strict_types=1);
14 use Magento\InventorySourceSelectionApi\Api\Data\ItemRequestInterfaceFactory;
15 use Magento\InventorySourceSelectionApi\Api\Data\InventoryRequestInterfaceFactory;
24 private $itemRequestFactory;
29 private $inventoryRequestFactory;
34 private $stockByWebsiteIdResolver;
39 private $getSkuFromOrderItem;
48 ItemRequestInterfaceFactory $itemRequestFactory,
49 InventoryRequestInterfaceFactory $inventoryRequestFactory,
53 $this->itemRequestFactory = $itemRequestFactory;
54 $this->inventoryRequestFactory = $inventoryRequestFactory;
55 $this->stockByWebsiteIdResolver = $stockByWebsiteIdResolver;
56 $this->getSkuFromOrderItem = $getSkuFromOrderItem;
67 $stockId = (int)$this->stockByWebsiteIdResolver->execute((
int)
$websiteId)->getStockId();
71 $itemSku = $this->getSkuFromOrderItem->execute(
$orderItem);
77 || $this->isZero((
float)$qtyToDeliver)
83 $requestItems[] = $this->itemRequestFactory->create([
85 'qty' => $qtyToDeliver
89 return $this->inventoryRequestFactory->create([
90 'stockId' => $stockId,
91 'items' => $requestItems
102 private function isZero(
float $floatNumber): bool
104 return $floatNumber < 0.0000001;
__construct(ItemRequestInterfaceFactory $itemRequestFactory, InventoryRequestInterfaceFactory $inventoryRequestFactory, StockByWebsiteIdResolverInterface $stockByWebsiteIdResolver, GetSkuFromOrderItemInterface $getSkuFromOrderItem)