Ejemplo n.º 1
0
 /**
  * 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]);
 }
Ejemplo n.º 2
0
 /**
  * @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);
     }
 }