diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php index 57498355c51a6..0cef0b8f65f76 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php @@ -2145,7 +2145,7 @@ public function validateRow(array $rowData, $rowNum) if (!$this->validator->isValid($rowData)) { foreach ($this->validator->getMessages() as $message) { - $this->addRowError($message, $rowNum); + $this->addRowError($message, $rowNum, $this->validator->getInvalidAttribute()); } } diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php index 961e5c2d3a1ca..15f5c6defbd5e 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php @@ -34,7 +34,13 @@ class Validator extends AbstractValidator implements RowValidatorInterface * @var array */ protected $_rowData; - + + /* + * @var string + */ + protected $_invalidAttribute; + + /** * @param \Magento\Framework\Stdlib\StringUtils $string * @param RowValidatorInterface[] $validators @@ -200,9 +206,32 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) } $this->_uniqueAttributes[$attrCode][$rowData[$attrCode]] = $rowData[Product::COL_SKU]; } + + if (!$valid) { + $this->setInvalidAttribute($attrCode); + } + return (bool)$valid; } + + + public function setInvalidAttribute($attribute) + { + $this->_invalidAttribute = $attribute; + } + + /* + * @return string + */ + public function getInvalidAttribute() + { + return $this->_invalidAttribute; + } + + + + /** * @return bool @@ -211,6 +240,7 @@ public function isAttributeValid($attrCode, array $attrParams, array $rowData) protected function isValidAttributes() { $this->_clearMessages(); + $this->setInvalidAttribute(NULL); if (!isset($this->_rowData['product_type'])) { return false; }