Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SourceDeductionRequestFromShipmentFactory.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 use Magento\InventorySalesApi\Api\Data\SalesEventInterfaceFactory;
14 use Magento\InventorySalesApi\Api\Data\SalesChannelInterfaceFactory;
16 use Magento\InventorySourceDeductionApi\Model\SourceDeductionRequestInterfaceFactory;
18 
20 {
24  private $sourceDeductionRequestFactory;
25 
29  private $salesChannelFactory;
30 
34  private $salesEventFactory;
35 
39  private $websiteRepository;
40 
47  public function __construct(
48  SourceDeductionRequestInterfaceFactory $sourceDeductionRequestFactory,
49  SalesChannelInterfaceFactory $salesChannelFactory,
50  SalesEventInterfaceFactory $salesEventFactory,
51  WebsiteRepositoryInterface $websiteRepository
52  ) {
53  $this->sourceDeductionRequestFactory = $sourceDeductionRequestFactory;
54  $this->salesChannelFactory = $salesChannelFactory;
55  $this->salesEventFactory = $salesEventFactory;
56  $this->websiteRepository = $websiteRepository;
57  }
58 
65  public function execute(
67  string $sourceCode,
68  array $items
70  $websiteId = $shipment->getOrder()->getStore()->getWebsiteId();
71 
72  $salesEvent = $this->salesEventFactory->create([
75  'objectId' => $shipment->getOrderId()
76  ]);
77 
78  $websiteCode = $this->websiteRepository->getById($websiteId)->getCode();
79  $salesChannel = $this->salesChannelFactory->create([
80  'data' => [
82  'code' => $websiteCode
83  ]
84  ]);
85 
86  return $this->sourceDeductionRequestFactory->create([
87  'sourceCode' => $sourceCode,
88  'items' => $items,
89  'salesChannel' => $salesChannel,
90  'salesEvent' => $salesEvent
91  ]);
92  }
93 }
$sourceCode
Definition: inventory.phtml:11
__construct(SourceDeductionRequestInterfaceFactory $sourceDeductionRequestFactory, SalesChannelInterfaceFactory $salesChannelFactory, SalesEventInterfaceFactory $salesEventFactory, WebsiteRepositoryInterface $websiteRepository)
if(!isset($_GET['website_code'])) $websiteCode
Definition: website.php:11
foreach($order->getItems() as $orderItem) $shipment
$items