@@ -51,11 +51,10 @@ private function getTable(string $tableName): string
51
51
/**
52
52
* Get query for provider
53
53
*
54
- * @param array $skus
55
- * @param bool $defaultStock
54
+ * @param array $productIds
56
55
* @return Select
57
56
*/
58
- public function getQuery (array $ skus ): Select
57
+ public function getQuery (array $ productIds ): Select
59
58
{
60
59
$ connection = $ this ->resourceConnection ->getConnection ();
61
60
foreach ($ this ->getStocks () as $ stockId ) {
@@ -65,12 +64,19 @@ public function getQuery(array $skus): Select
65
64
}
66
65
$ select = $ connection ->select ()
67
66
->from (['isi ' => $ this ->getTable (sprintf ('inventory_stock_%s ' , $ stockId ))], [])
68
- ->where ('isi.sku IN (?) ' , $ skus )
67
+ ->joinInner (
68
+ [
69
+ 'product ' => $ this ->resourceConnection ->getTableName ('catalog_product_entity ' ),
70
+ ],
71
+ 'product.sku = isi.sku ' ,
72
+ []
73
+ )->where ('product.entity_id IN (?) ' , $ productIds )
69
74
->columns (
70
75
[
76
+ 'sku ' => "isi.sku " ,
77
+ 'productId ' => "product.entity_id " ,
71
78
'qty ' => "isi.quantity " ,
72
79
'isSalable ' => "isi.is_salable " ,
73
- 'sku ' => "isi.sku " ,
74
80
'stockId ' => new Expression ($ stockId ),
75
81
'manageStock ' => new Expression (1 ),
76
82
'useConfigManageStock ' => new Expression (1 ),
@@ -87,17 +93,17 @@ public function getQuery(array $skus): Select
87
93
/**
88
94
* Get data for default stock: "inventory_stock_1" is a view used as a fallback
89
95
*
90
- * @param array $skus
96
+ * @param array $productIds
91
97
* @return Select
92
98
* @see \Magento\InventoryCatalog\Setup\Patch\Schema\CreateLegacyStockStatusView
93
99
*/
94
- public function getQueryForDefaultStock (array $ skus ): Select
100
+ public function getQueryForDefaultStock (array $ productIds ): Select
95
101
{
96
102
$ connection = $ this ->resourceConnection ->getConnection ();
97
103
$ stockId = $ this ->defaultStockProvider ->getId ();
98
104
$ select = $ connection ->select ()
99
105
->from (['isi ' => $ this ->getTable (sprintf ('inventory_stock_%s ' , $ stockId ))], [])
100
- ->where ('isi.sku IN (?) ' , $ skus )
106
+ ->where ('stock_item.product_id IN (?) ' , $ productIds )
101
107
->joinInner (
102
108
[
103
109
'stock_item ' => $ this ->resourceConnection ->getTableName ('cataloginventory_stock_item ' ),
@@ -106,9 +112,10 @@ public function getQueryForDefaultStock(array $skus): Select
106
112
[]
107
113
)->columns (
108
114
[
115
+ 'sku ' => "isi.sku " ,
116
+ 'productId ' => "stock_item.product_id " ,
109
117
'qty ' => "isi.quantity " ,
110
118
'isSalable ' => "isi.is_salable " ,
111
- 'sku ' => "isi.sku " ,
112
119
'stockId ' => new Expression ($ stockId ),
113
120
'manageStock ' => 'stock_item.manage_stock ' ,
114
121
'useConfigManageStock ' => 'stock_item.use_config_manage_stock ' ,
0 commit comments