From 3a0af70c7f87121dc360037da3cf4a6909bd0f8a Mon Sep 17 00:00:00 2001 From: magentoabu Date: Sat, 12 Apr 2025 19:04:53 +0530 Subject: [PATCH 1/4] Remove column name character restrictions for import functionality --- .../Model/Import/Entity/AbstractEntity.php | 2 +- .../Unit/Model/Import/Entity/AbstractTest.php | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index eb2d56018b31b..c443505f4e6a4 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -813,7 +813,7 @@ public function validateData() if (!$this->isAttributeParticular($columnName)) { if (trim($columnName ?? '') == '') { $emptyHeaderColumns[] = $columnNumber; - } elseif (!$columnName || !preg_match('/^[a-z][a-z0-9_]*$/', $columnName)) { + } elseif (!$columnName || !preg_match('/^[a-zA-Z][a-z0-9_]*$/', $columnName)) { $invalidColumns[] = $columnName; } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php index 9f6c3cbdd0fcc..43e4d902deb5c 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php @@ -125,6 +125,21 @@ public function testValidateDataColumnNameWithWhitespaces() $errorAggregator->getRowsGroupedByErrorCode() ); } + + /** + * Test for method validateData() + * + * @covers \Magento\ImportExport\Model\Import\Entity\AbstractEntity::validateData + */ + public function testValidateColumnName() + { + $this->_createSourceAdapterMock(['Test_1']); + $errorAggregator = $this->_model->validateData(); + $this->assertArrayNotHasKey( + AbstractEntity::ERROR_CODE_COLUMN_NAME_INVALID, + $errorAggregator->getRowsGroupedByErrorCode() + ); + } /** * Test for method validateData() @@ -133,7 +148,7 @@ public function testValidateDataColumnNameWithWhitespaces() */ public function testValidateDataAttributeNames() { - $this->_createSourceAdapterMock(['_test1']); + $this->_createSourceAdapterMock(['test.1', '@test']); $errorAggregator = $this->_model->validateData(); $this->assertArrayHasKey( AbstractEntity::ERROR_CODE_COLUMN_NAME_INVALID, From c26146ea835241053ab55fd813f79b08174e552a Mon Sep 17 00:00:00 2001 From: magentoabu Date: Mon, 14 Apr 2025 17:16:56 +0530 Subject: [PATCH 2/4] static test fixed --- .../Model/Import/Entity/AbstractEntity.php | 8 ++++---- .../Test/Unit/Model/Import/Entity/AbstractTest.php | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index c443505f4e6a4..bf089113fb752 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -1,7 +1,7 @@ isAttributeParticular($columnName)) { if (trim($columnName ?? '') == '') { $emptyHeaderColumns[] = $columnNumber; - } elseif (!$columnName || !preg_match('/^[a-zA-Z][a-z0-9_]*$/', $columnName)) { + } elseif (!$columnName || !preg_match('/^[a-zA-Z][a-z0-9_]*$/', $columnName)) { $invalidColumns[] = $columnName; - } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { + } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; } } diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php index 43e4d902deb5c..c169a883ff0a9 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php @@ -1,7 +1,7 @@ _createSourceAdapterMock(['Test_1']); From aa6f3bb492efa3fea5f6773d480ccdff27f940e1 Mon Sep 17 00:00:00 2001 From: magentoabu Date: Tue, 15 Apr 2025 20:33:07 +0530 Subject: [PATCH 3/4] static test warnings fixed --- .../ImportExport/Model/Import/Entity/AbstractEntity.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index bf089113fb752..1058a7044a0ff 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -815,9 +815,9 @@ public function validateData() $emptyHeaderColumns[] = $columnNumber; } elseif (!$columnName || !preg_match('/^[a-zA-Z][a-z0-9_]*$/', $columnName)) { $invalidColumns[] = $columnName; - } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { + } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; - } + } } } $this->addErrors(self::ERROR_CODE_INVALID_ATTRIBUTE, $invalidAttributes); From 7c52530376f991a12d584913643c9d0a9979f432 Mon Sep 17 00:00:00 2001 From: magentoabu Date: Wed, 16 Apr 2025 12:17:59 +0530 Subject: [PATCH 4/4] fixed space issue --- .../Magento/ImportExport/Model/Import/Entity/AbstractEntity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index 1058a7044a0ff..87d5f1c1f898a 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -817,7 +817,7 @@ public function validateData() $invalidColumns[] = $columnName; } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; - } + } } } $this->addErrors(self::ERROR_CODE_INVALID_ATTRIBUTE, $invalidAttributes);