/**
  * Validate row attributes. Pass VALID row data ONLY as argument.
  *
  * @param array $rowData
  * @param int $rowNum
  * @param bool $isNewProduct Optional
  *
  * @return bool
  */
 public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
 {
     $error = false;
     $dataWithExtraVirtualRows = $this->_parseVariations($rowData);
     $skus = [];
     $rowData['price'] = isset($rowData['price']) && $rowData['price'] ? $rowData['price'] : '0.00';
     if (!empty($dataWithExtraVirtualRows)) {
         array_unshift($dataWithExtraVirtualRows, $rowData);
     } else {
         $dataWithExtraVirtualRows[] = $rowData;
     }
     foreach ($dataWithExtraVirtualRows as $option) {
         if (isset($option['_super_products_sku'])) {
             if (in_array($option['_super_products_sku'], $skus)) {
                 $error = true;
                 $this->_entityModel->addRowError(sprintf($this->_messageTemplates[self::ERROR_DUPLICATED_VARIATIONS], $option['_super_products_sku']), $rowNum);
             }
             $skus[] = $option['_super_products_sku'];
         }
         $error |= !parent::isRowValid($option, $rowNum, $isNewProduct);
     }
     return !$error;
 }
Exemple #2
0
 /**
  * Validate row attributes. Pass VALID row data ONLY as argument.
  *
  * @param array $rowData
  * @param int $rowNum
  * @param bool $isNewProduct Optional
  *
  * @return bool
  */
 public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
 {
     $error = false;
     $dataWithExtraVirtualRows = $this->_parseVariations($rowData);
     if (!empty($dataWithExtraVirtualRows)) {
         array_unshift($dataWithExtraVirtualRows, $rowData);
     } else {
         $dataWithExtraVirtualRows[] = $rowData;
     }
     foreach ($dataWithExtraVirtualRows as $data) {
         $error |= !parent::isRowValid($data, $rowNum, $isNewProduct);
     }
     return !$error;
 }
 /**
  * Check whether the row is valid.
  *
  * @param array $rowData
  * @param int $rowNum
  * @param bool $isNewProduct
  * @return bool
  */
 public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
 {
     if (isset($rowData['bundle_price_type']) && $rowData['bundle_price_type'] == 'dynamic') {
         $rowData['price'] = isset($rowData['price']) && $rowData['price'] ? $rowData['price'] : '0.00';
     }
     return parent::isRowValid($rowData, $rowNum, $isNewProduct);
 }
Exemple #4
0
 /**
  * Check whether the row is valid.
  *
  * @param array $rowData
  * @param int $rowNum
  * @param bool $isNewProduct
  * @return bool
  */
 public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
 {
     $rowData = array_merge($rowData, $this->transformBundleCustomAttributes($rowData));
     return parent::isRowValid($rowData, $rowNum, $isNewProduct);
 }
Exemple #5
0
 /**
  * Check whether the row is valid.
  *
  * @param array $rowData
  * @param int $rowNum
  * @param bool $isNewProduct
  * @return bool
  */
 public function isRowValid(array $rowData, $rowNum, $isNewProduct = true)
 {
     $rowData = array_merge($rowData, $this->transformBundleCustomAttributes($rowData));
     if (isset($rowData['bundle_price_type']) && $rowData['bundle_price_type'] == 'dynamic') {
         $rowData['price'] = isset($rowData['price']) && $rowData['price'] ? $rowData['price'] : '0.00';
     }
     return parent::isRowValid($rowData, $rowNum, $isNewProduct);
 }