Skip to content

Commit 07e0adb

Browse files
committed
MAGETWO-95653: Product positions are incorrect after import
1 parent 853cfbc commit 07e0adb

File tree

3 files changed

+71
-1
lines changed

3 files changed

+71
-1
lines changed

dev/tests/integration/testsuite/Magento/Catalog/_files/category_product.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
)->setParentId(
1616
2
1717
)->setPath(
18-
'1/2/3'
18+
'1/2/333'
1919
)->setLevel(
2020
2
2121
)->setAvailableSortBy(

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ class ProductTest extends \Magento\TestFramework\Indexer\TestCase
6969
*/
7070
private $logger;
7171

72+
/**
73+
* @var \Magento\Framework\EntityManager\EntityMetadata
74+
*/
75+
private $metadata;
76+
7277
protected function setUp()
7378
{
7479
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
@@ -79,6 +84,12 @@ protected function setUp()
7984
\Magento\CatalogImportExport\Model\Import\Product::class,
8085
['logger' => $this->logger]
8186
);
87+
88+
$metadataPool = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
89+
\Magento\Framework\EntityManager\MetadataPool::class
90+
);
91+
$this->metadata = $metadataPool->getMetadata(ProductInterface::class);
92+
8293
parent::setUp();
8394
}
8495

@@ -1278,6 +1289,63 @@ public function testProductPositionInCategory()
12781289
}
12791290
}
12801291

1292+
/**
1293+
* @magentoAppArea adminhtml
1294+
* @magentoDbIsolation enabled
1295+
* @magentoAppIsolation enabled
1296+
* @magentoDataFixture Magento/Catalog/_files/category_product.php
1297+
*/
1298+
public function testNewProductPositionInCategory()
1299+
{
1300+
$categoryId = 333;
1301+
1302+
$filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
1303+
\Magento\Framework\Filesystem::class
1304+
);
1305+
1306+
$directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
1307+
$source = $this->objectManager->create(
1308+
\Magento\ImportExport\Model\Import\Source\Csv::class,
1309+
[
1310+
'file' => __DIR__ . '/_files/product_to_import_with_category.csv',
1311+
'directory' => $directory
1312+
]
1313+
);
1314+
$errors = $this->_model->setSource(
1315+
$source
1316+
)->setParameters(
1317+
[
1318+
'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
1319+
'entity' => 'catalog_product',
1320+
]
1321+
)->validateData();
1322+
1323+
$this->assertTrue($errors->getErrorsCount() == 0);
1324+
$this->_model->importData();
1325+
1326+
/** @var \Magento\Framework\App\ResourceConnection $resourceConnection */
1327+
$resourceConnection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
1328+
\Magento\Framework\App\ResourceConnection::class
1329+
);
1330+
$linkField = $this->metadata->getLinkField();
1331+
$categoryProductstableName = $resourceConnection->getTableName('catalog_category_product');
1332+
$productEntitiesTableName = $resourceConnection->getTableName('catalog_product_entity');
1333+
$select = $resourceConnection->getConnection()
1334+
->select()
1335+
->from(['category_products' => $categoryProductstableName])
1336+
->join(
1337+
['product_entities' => $productEntitiesTableName],
1338+
'product_entities.' . $linkField . ' = category_products.product_id',
1339+
''
1340+
)
1341+
->where('category_products.category_id = ?', $categoryId)
1342+
->where('product_entities.sku = "simpleImported"');
1343+
$importedItem = $resourceConnection->getConnection()->fetchRow($select);
1344+
$this->assertTrue(is_array($importedItem));
1345+
$this->assertNotEmpty($importedItem);
1346+
$this->assertEquals(0, $importedItem['position']);
1347+
}
1348+
12811349
/**
12821350
* @return array
12831351
*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,product_type,store_view_code,name,price,attribute_set_code,categories
2+
simpleImported,simple,,"simple Imported",25,Default,"Default Category/Category 1"

0 commit comments

Comments
 (0)