/** * Row validation. * * @param array $rowData * @param int $rowNum * @return bool */ public function validateRow(array $rowData, $rowNum) { $sku = false; if (isset($this->_validatedRows[$rowNum])) { return !isset($this->_invalidRows[$rowNum]); } $this->_validatedRows[$rowNum] = true; // BEHAVIOR_DELETE use specific validation logic if (\Magento\ImportExport\Model\Import::BEHAVIOR_DELETE == $this->getBehavior()) { if (!isset($rowData[self::COL_SKU])) { $this->addRowError(ValidatorInterface::ERROR_SKU_IS_EMPTY, $rowNum); return false; } return true; } if (!$this->_validator->isValid($rowData)) { foreach ($this->_validator->getMessages() as $message) { $this->addRowError($message, $rowNum); } } if (isset($rowData[self::COL_SKU])) { $sku = $rowData[self::COL_SKU]; } if (false === $sku) { $this->addRowError(ValidatorInterface::ERROR_ROW_IS_ORPHAN, $rowNum); } return !isset($this->_invalidRows[$rowNum]); }
/** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @param \Magento\Framework\Json\Helper\Data $jsonHelper * @param \Magento\ImportExport\Helper\Data $importExportData * @param \Magento\ImportExport\Model\ResourceModel\Import\Data $importData * @param \Magento\Eav\Model\Config $config * @param \Magento\Framework\App\ResourceConnection $resource * @param \Magento\ImportExport\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Stdlib\StringUtils $string * @param ProcessingErrorAggregatorInterface $errorAggregator * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModelFactory $resourceFactory * @param \Magento\Catalog\Model\Product $productModel * @param \Magento\Catalog\Helper\Data $catalogData * @param ImportProduct\StoreResolver $storeResolver * @param ImportProduct $importProduct * @param AdvancedPricing\Validator $validator * @param AdvancedPricing\Validator\Website $websiteValidator * @param AdvancedPricing\Validator\TierPrice $tierPriceValidator * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function __construct(\Magento\Framework\Json\Helper\Data $jsonHelper, \Magento\ImportExport\Helper\Data $importExportData, \Magento\ImportExport\Model\ResourceModel\Import\Data $importData, \Magento\Eav\Model\Config $config, \Magento\Framework\App\ResourceConnection $resource, \Magento\ImportExport\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Stdlib\StringUtils $string, ProcessingErrorAggregatorInterface $errorAggregator, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModelFactory $resourceFactory, \Magento\Catalog\Model\Product $productModel, \Magento\Catalog\Helper\Data $catalogData, \Magento\CatalogImportExport\Model\Import\Product\StoreResolver $storeResolver, ImportProduct $importProduct, AdvancedPricing\Validator $validator, AdvancedPricing\Validator\Website $websiteValidator, AdvancedPricing\Validator\TierPrice $tierPriceValidator) { $this->_localeDate = $localeDate; $this->jsonHelper = $jsonHelper; $this->_importExportData = $importExportData; $this->_resourceHelper = $resourceHelper; $this->_dataSourceModel = $importData; $this->_connection = $resource->getConnection('write'); $this->_resourceFactory = $resourceFactory; $this->_productModel = $productModel; $this->_catalogData = $catalogData; $this->_storeResolver = $storeResolver; $this->_importProduct = $importProduct; $this->_validators[self::VALIDATOR_MAIN] = $validator->init($this); $this->_oldSkus = $this->retrieveOldSkus(); $this->_validators[self::VALIDATOR_WEBSITE] = $websiteValidator; $this->_validators[self::VALIDATOR_TEAR_PRICE] = $tierPriceValidator; $this->errorAggregator = $errorAggregator; $this->_catalogProductEntity = $this->_resourceFactory->create()->getTable('catalog_product_entity'); foreach (array_merge($this->errorMessageTemplates, $this->_messageTemplates) as $errorCode => $message) { $this->getErrorAggregator()->addErrorMessageTemplate($errorCode, $message); } }