6 declare(strict_types=1);
14 use Magento\Sales\Api\Data\ShipmentExtensionFactory;
29 private $shipmentExtensionFactory;
34 private $stockByWebsiteIdResolver;
39 private $getSourcesAssignedToStockOrderedByPriority;
44 private $defaultSourceProvider;
55 ShipmentExtensionFactory $shipmentExtensionFactory,
61 $this->shipmentExtensionFactory = $shipmentExtensionFactory;
62 $this->stockByWebsiteIdResolver = $stockByWebsiteIdResolver;
63 $this->getSourcesAssignedToStockOrderedByPriority = $getSourcesAssignedToStockOrderedByPriority;
78 $sourceCode = $this->request->getParam(
'sourceCode');
81 $stockId = $this->stockByWebsiteIdResolver->execute((
int)
$websiteId)->getStockId();
82 $sources = $this->getSourcesAssignedToStockOrderedByPriority->execute((
int)$stockId);
84 if (!empty($sources) && count($sources) == 1) {
87 $sourceCode = $this->defaultSourceProvider->getCode();
90 $shipmentExtension =
$shipment->getExtensionAttributes();
92 if (empty($shipmentExtension)) {
93 $shipmentExtension = $this->shipmentExtensionFactory->create();
96 $shipment->setExtensionAttributes($shipmentExtension);
__construct(RequestInterface $request, ShipmentExtensionFactory $shipmentExtensionFactory, StockByWebsiteIdResolverInterface $stockByWebsiteIdResolver, GetSourcesAssignedToStockOrderedByPriorityInterface $getSourcesAssignedToStockOrderedByPriority, DefaultSourceProviderInterface $defaultSourceProvider)
foreach($order->getItems() as $orderItem) $shipment
afterCreate(ShipmentFactory $subject, ShipmentInterface $shipment, Order $order)