Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SourceItemImporter.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
11 use Magento\InventoryApi\Api\Data\SourceItemInterfaceFactory;
15 
17 {
23  private $sourceItemsSave;
24 
30  private $sourceItemFactory;
31 
37  private $defaultSource;
38 
46  public function __construct(
47  SourceItemsSaveInterface $sourceItemsSave,
48  SourceItemInterfaceFactory $sourceItemFactory,
50  ) {
51  $this->sourceItemsSave = $sourceItemsSave;
52  $this->sourceItemFactory = $sourceItemFactory;
53  $this->defaultSource = $defaultSourceProvider;
54  }
55 
70  public function afterImport(
72  $result,
73  array $stockData
74  ) {
75  $sourceItems = [];
76  foreach ($stockData as $sku => $stockDatum) {
77  $inStock = (isset($stockDatum['is_in_stock'])) ? intval($stockDatum['is_in_stock']) : 0;
78  $qty = (isset($stockDatum['qty'])) ? $stockDatum['qty'] : 0;
80  $sourceItem = $this->sourceItemFactory->create();
81  $sourceItem->setSku((string)$sku);
82  $sourceItem->setSourceCode($this->defaultSource->getCode());
83  $sourceItem->setQuantity((float)$qty);
84  $sourceItem->setStatus($inStock);
86  }
87  if (count($sourceItems) > 0) {
89  $this->sourceItemsSave->execute($sourceItems);
90  }
91  }
92 }
$sourceItemFactory
$sourceItems
$sourceItemsSave
__construct(SourceItemsSaveInterface $sourceItemsSave, SourceItemInterfaceFactory $sourceItemFactory, DefaultSourceProviderInterface $defaultSourceProvider)
$stockData
Definition: products.php:27