Skip to content

Commit c1fba8b

Browse files
committed
Revert "MDEE-40:[Commerce Export] Implement stock_item_status feed - use product id instead of sku: changelog table can work only with integers"
This reverts commit f1e7865
1 parent f1e7865 commit c1fba8b

File tree

3 files changed

+16
-23
lines changed

3 files changed

+16
-23
lines changed

InventoryDataExporter/Model/Provider/StockStatus.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -65,20 +65,20 @@ public function __construct(
6565
*/
6666
public function get(array $values): array
6767
{
68-
$productIds = \array_column($values, 'productId');
68+
$skus = \array_column($values, 'sku');
6969
$connection = $this->resourceConnection->getConnection();
7070
$output = [];
7171

7272
try {
73-
$select = $this->query->getQuery($productIds);
73+
$select = $this->query->getQuery($skus);
7474
$cursor = $connection->query($select);
75-
$processedIds = [];
75+
$processedSkus = [];
7676
while ($row = $cursor->fetch()) {
77-
$processedIds[] = $row['productId'];
77+
$processedSkus[] = $row['sku'];
7878
$output[] = $this->fillWithDefaultValues($row);
7979
}
8080

81-
$select = $this->query->getQueryForDefaultStock(\array_diff($productIds, $processedIds));
81+
$select = $this->query->getQueryForDefaultStock(\array_diff($skus, $processedSkus));
8282
$cursor = $connection->query($select);
8383
while ($row = $cursor->fetch()) {
8484
$output[] = $this->fillWithDefaultValues($row);

InventoryDataExporter/Model/Query/InventoryStockQuery.php

+9-16
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,11 @@ private function getTable(string $tableName): string
5151
/**
5252
* Get query for provider
5353
*
54-
* @param array $productIds
54+
* @param array $skus
55+
* @param bool $defaultStock
5556
* @return Select
5657
*/
57-
public function getQuery(array $productIds): Select
58+
public function getQuery(array $skus): Select
5859
{
5960
$connection = $this->resourceConnection->getConnection();
6061
foreach ($this->getStocks() as $stockId) {
@@ -64,19 +65,12 @@ public function getQuery(array $productIds): Select
6465
}
6566
$select = $connection->select()
6667
->from(['isi' => $this->getTable(sprintf('inventory_stock_%s', $stockId))], [])
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)
68+
->where('isi.sku IN (?)', $skus)
7469
->columns(
7570
[
76-
'sku' => "isi.sku",
77-
'productId' => "product.entity_id",
7871
'qty' => "isi.quantity",
7972
'isSalable' => "isi.is_salable",
73+
'sku' => "isi.sku",
8074
'stockId' => new Expression($stockId),
8175
'manageStock' => new Expression(1),
8276
'useConfigManageStock' => new Expression(1),
@@ -93,17 +87,17 @@ public function getQuery(array $productIds): Select
9387
/**
9488
* Get data for default stock: "inventory_stock_1" is a view used as a fallback
9589
*
96-
* @param array $productIds
90+
* @param array $skus
9791
* @return Select
9892
* @see \Magento\InventoryCatalog\Setup\Patch\Schema\CreateLegacyStockStatusView
9993
*/
100-
public function getQueryForDefaultStock(array $productIds): Select
94+
public function getQueryForDefaultStock(array $skus): Select
10195
{
10296
$connection = $this->resourceConnection->getConnection();
10397
$stockId = $this->defaultStockProvider->getId();
10498
$select = $connection->select()
10599
->from(['isi' => $this->getTable(sprintf('inventory_stock_%s', $stockId))], [])
106-
->where('stock_item.product_id IN (?)', $productIds)
100+
->where('isi.sku IN (?)', $skus)
107101
->joinInner(
108102
[
109103
'stock_item' => $this->resourceConnection->getTableName('cataloginventory_stock_item'),
@@ -112,10 +106,9 @@ public function getQueryForDefaultStock(array $productIds): Select
112106
[]
113107
)->columns(
114108
[
115-
'sku' => "isi.sku",
116-
'productId' => "stock_item.product_id",
117109
'qty' => "isi.quantity",
118110
'isSalable' => "isi.is_salable",
111+
'sku' => "isi.sku",
119112
'stockId' => new Expression($stockId),
120113
'manageStock' => 'stock_item.manage_stock',
121114
'useConfigManageStock' => 'stock_item.use_config_manage_stock',

InventoryDataExporter/etc/di.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
<virtualType name="Magento\InventoryDataExporter\Model\Indexer\StockStatusFeedIndexMetadata" type="Magento\DataExporter\Model\Indexer\FeedIndexMetadata">
2525
<arguments>
2626
<argument name="feedName" xsi:type="string">stock_statuses</argument>
27-
<argument name="feedIdentity" xsi:type="string">productId</argument>
27+
<argument name="feedIdentity" xsi:type="string">sku</argument>
2828
<!-- source table used only during full reindex -->
2929
<argument name="sourceTableName" xsi:type="string">catalog_product_entity</argument>
30-
<argument name="sourceTableField" xsi:type="string">entity_id</argument>
30+
<argument name="sourceTableField" xsi:type="string">sku</argument>
3131
<argument name="feedTableName" xsi:type="string">inventory_data_exporter_stock_status</argument>
3232
<argument name="feedTableField" xsi:type="string">id</argument>
3333
<argument name="feedTableMutableColumns" xsi:type="array">

0 commit comments

Comments
 (0)