From a9bc411deaecd93be411a3bc8c8da003b2e31298 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Date: Tue, 16 Oct 2018 10:57:14 +0530 Subject: [PATCH 1/3] Fix SKU limit in import new products for 2.3 with backward compatible --- .../CatalogImportExport/Model/Import/Product/Validator.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php index 2aa2105991883..b184334b179ea 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php @@ -7,6 +7,7 @@ use Magento\CatalogImportExport\Model\Import\Product; use Magento\Framework\Validator\AbstractValidator; +use Magento\Catalog\Model\Product\Attribute\Backend\Sku; /** * Class Validator @@ -69,6 +70,8 @@ protected function textValidation($attrCode, $type) $val = $this->string->cleanString($this->_rowData[$attrCode]); if ($type == 'text') { $valid = $this->string->strlen($val) < Product::DB_MAX_TEXT_LENGTH; + } else if ($attrCode == Product::COL_SKU) { + $valid = $this->string->strlen($val) < SKU::SKU_MAX_LENGTH; } else { $valid = $this->string->strlen($val) < Product::DB_MAX_VARCHAR_LENGTH; } From b65b49f1bae762988574a9d23f3892f3f65cc913 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Date: Thu, 18 Oct 2018 12:12:23 +0530 Subject: [PATCH 2/3] Fix SKU limit in import new products for 2.3 with backward compatible allow 64 characters for SKU --- .../Model/Import/Product/Validator.php | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php index b184334b179ea..793ad935363d3 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php @@ -71,7 +71,7 @@ protected function textValidation($attrCode, $type) if ($type == 'text') { $valid = $this->string->strlen($val) < Product::DB_MAX_TEXT_LENGTH; } else if ($attrCode == Product::COL_SKU) { - $valid = $this->string->strlen($val) < SKU::SKU_MAX_LENGTH; + $valid = $this->string->strlen($val) <= SKU::SKU_MAX_LENGTH; } else { $valid = $this->string->strlen($val) < Product::DB_MAX_VARCHAR_LENGTH; } @@ -153,12 +153,7 @@ public function isRequiredAttributeValid($attrCode, array $attributeParams, arra $doCheck = true; } - if ($doCheck === true) { - return isset($rowData[$attrCode]) - && strlen(trim($rowData[$attrCode])) - && trim($rowData[$attrCode]) !== $this->context->getEmptyAttributeValueConstant(); - } - return true; + return $doCheck ? isset($rowData[$attrCode]) && strlen(trim($rowData[$attrCode])) : true; } /** @@ -196,11 +191,6 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) if (!strlen(trim($rowData[$attrCode]))) { return true; } - - if ($rowData[$attrCode] === $this->context->getEmptyAttributeValueConstant() && !$attrParams['is_required']) { - return true; - } - switch ($attrParams['type']) { case 'varchar': case 'text': @@ -222,12 +212,6 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) break; } } - - $uniqueValues = array_unique($values); - if (count($uniqueValues) != count($values)) { - $valid = false; - $this->_addMessages([RowValidatorInterface::ERROR_DUPLICATE_MULTISELECT_VALUES]); - } break; case 'datetime': $val = trim($rowData[$attrCode]); From 57902258f066e4802f026f64e12f48663475b0b3 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Date: Thu, 18 Oct 2018 12:31:58 +0530 Subject: [PATCH 3/3] Fix SKU limit in import new products for 2.3 with backward compatible allow 64 characters --- .../Model/Import/Product/Validator.php | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php index 793ad935363d3..21f7f87875e12 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php @@ -153,7 +153,12 @@ public function isRequiredAttributeValid($attrCode, array $attributeParams, arra $doCheck = true; } - return $doCheck ? isset($rowData[$attrCode]) && strlen(trim($rowData[$attrCode])) : true; + if ($doCheck === true) { + return isset($rowData[$attrCode]) + && strlen(trim($rowData[$attrCode])) + && trim($rowData[$attrCode]) !== $this->context->getEmptyAttributeValueConstant(); + } + return true; } /** @@ -191,6 +196,11 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) if (!strlen(trim($rowData[$attrCode]))) { return true; } + + if ($rowData[$attrCode] === $this->context->getEmptyAttributeValueConstant() && !$attrParams['is_required']) { + return true; + } + switch ($attrParams['type']) { case 'varchar': case 'text': @@ -212,6 +222,12 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) break; } } + + $uniqueValues = array_unique($values); + if (count($uniqueValues) != count($values)) { + $valid = false; + $this->_addMessages([RowValidatorInterface::ERROR_DUPLICATE_MULTISELECT_VALUES]); + } break; case 'datetime': $val = trim($rowData[$attrCode]); @@ -328,4 +344,4 @@ public function init($context) $validator->init($context); } } -} +} \ No newline at end of file