Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SaveSourceForShipmentPlugin.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 
16 {
20  private $saveShipmentSource;
21 
25  private $defaultSourceProvider;
26 
31  public function __construct(
32  SaveShipmentSource $saveShipmentSource,
33  DefaultSourceProviderInterface $defaultSourceProvider
34  ) {
35  $this->saveShipmentSource = $saveShipmentSource;
36  $this->defaultSourceProvider = $defaultSourceProvider;
37  }
38 
46  public function afterSave(
47  ShipmentResource $subject,
50  ) {
51  if (!empty($shipment->getExtensionAttributes())
52  && $shipment->getExtensionAttributes()->getSourceCode()) {
53  $sourceCode = $shipment->getExtensionAttributes()->getSourceCode();
54  } else {
55  $sourceCode = $this->defaultSourceProvider->getCode();
56  }
57  $this->saveShipmentSource->execute((int)$shipment->getId(), $sourceCode);
58 
59  return $result;
60  }
61 }
$sourceCode
Definition: inventory.phtml:11
afterSave(ShipmentResource $subject, ShipmentResource $result, AbstractModel $shipment)
__construct(SaveShipmentSource $saveShipmentSource, DefaultSourceProviderInterface $defaultSourceProvider)
foreach($order->getItems() as $orderItem) $shipment