Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
UpdateInventorySourceItem.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
20 {
24  private $resourceConnection;
25 
29  private $defaultSourceProvider;
30 
34  private $tableNameSourceItem;
35 
41  public function __construct(
42  ResourceConnection $resourceConnection,
43  DefaultSourceProviderInterface $defaultSourceProvider,
44  $tableNameSourceItem
45  ) {
46  $this->resourceConnection = $resourceConnection;
47  $this->defaultSourceProvider = $defaultSourceProvider;
48  $this->tableNameSourceItem = $tableNameSourceItem;
49  }
50 
56  {
57  $defaultSourceCode = $this->defaultSourceProvider->getCode();
58  $sourceItemTable = $setup->getTable($this->tableNameSourceItem);
59  $legacyStockItemTable = $setup->getTable('cataloginventory_stock_item');
60  $productTable = $setup->getTable('catalog_product_entity');
61 
62  $selectForInsert = $this->resourceConnection->getConnection()
63  ->select()
64  ->from(
65  ['legacy_stock_item' => $legacyStockItemTable],
66  [
67  'source_code' => new \Zend_Db_Expr('\'' . $defaultSourceCode . '\''),
68  'qty',
69  'is_in_stock'
70  ]
71  )
72  ->join(
73  ['product' => $productTable],
74  'product.entity_id = legacy_stock_item.product_id',
75  'sku'
76  )
77  ->where('website_id = ?', 0);
78 
79  $sql = $this->resourceConnection->getConnection()->insertFromSelect(
80  $selectForInsert,
81  $sourceItemTable,
82  [
87  ],
89  );
90  $this->resourceConnection->getConnection()->query($sql);
91  }
92 }
__construct(ResourceConnection $resourceConnection, DefaultSourceProviderInterface $defaultSourceProvider, $tableNameSourceItem)
$setup
Definition: trigger.php:12