示例#1
0
 /**
  * @dataProvider clearEmptyDataDataProvider
  */
 public function testClearEmptyData($rowData, $expectedAttributes)
 {
     $actualAttributes = $this->_model->clearEmptyData($rowData);
     foreach ($expectedAttributes as $key => $value) {
         $this->assertArrayHasKey($key, $actualAttributes);
         $this->assertEquals($value, $actualAttributes[$key]);
     }
 }
 /**
  * Creates new tax class.
  *
  * @param string $taxClassName
  * @param AbstractType $productTypeModel
  * @return integer
  */
 protected function createTaxClass($taxClassName, AbstractType $productTypeModel)
 {
     /** @var \Magento\Tax\Model\ClassModelFactory $taxClass */
     $taxClass = $this->classModelFactory->create();
     $taxClass->setClassType(ClassModel::TAX_CLASS_TYPE_PRODUCT);
     $taxClass->setClassName($taxClassName);
     $taxClass->save();
     $id = $taxClass->getId();
     $productTypeModel->addAttributeOption(self::ATRR_CODE, $id, $id);
     return $id;
 }
 public function testGetCustomFieldsMapping()
 {
     $expectedResult = ['value'];
     $this->setPropertyValue($this->abstractType, '_customFieldsMapping', $expectedResult);
     $result = $this->abstractType->getCustomFieldsMapping();
     $this->assertEquals($expectedResult, $result);
 }
示例#4
0
 /**
  * @param \Magento\Eav\Model\Resource\Entity\Attribute\Set\CollectionFactory $attrSetColFac
  * @param \Magento\Catalog\Model\Resource\Product\Attribute\CollectionFactory $prodAttrColFac
  * @param array $params
  * @param \Magento\ImportExport\Model\ImportFactory $importFactory
  * @param \Magento\Catalog\Model\Resource\Product\LinkFactory $productLinkFactory
  * @param \Magento\Framework\App\Resource $resource
  */
 public function __construct(\Magento\Eav\Model\Resource\Entity\Attribute\Set\CollectionFactory $attrSetColFac, \Magento\Catalog\Model\Resource\Product\Attribute\CollectionFactory $prodAttrColFac, array $params, \Magento\ImportExport\Model\ImportFactory $importFactory, \Magento\Catalog\Model\Resource\Product\LinkFactory $productLinkFactory, \Magento\Framework\App\Resource $resource)
 {
     $this->_importFactory = $importFactory;
     $this->_resource = $resource;
     $this->_productLinkFactory = $productLinkFactory;
     parent::__construct($attrSetColFac, $prodAttrColFac, $params);
 }
示例#5
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);
     $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;
 }
示例#6
0
 /**
  * @param \Magento\Eav\Model\Resource\Entity\Attribute\Set\CollectionFactory $attrSetColFac
  * @param \Magento\Catalog\Model\Resource\Product\Attribute\CollectionFactory $prodAttrColFac
  * @param array $params
  * @param Grouped\Links $links
  */
 public function __construct(\Magento\Eav\Model\Resource\Entity\Attribute\Set\CollectionFactory $attrSetColFac, \Magento\Catalog\Model\Resource\Product\Attribute\CollectionFactory $prodAttrColFac, array $params, Grouped\Links $links)
 {
     $this->links = $links;
     parent::__construct($attrSetColFac, $prodAttrColFac, $params);
 }
 /**
  * Prepare attributes with default value for save.
  *
  * @param array $rowData
  * @param bool $withDefaultValue
  * @return array
  */
 public function prepareAttributesWithDefaultValueForSave(array $rowData, $withDefaultValue = true)
 {
     $resultAttrs = parent::prepareAttributesWithDefaultValueForSave($rowData, $withDefaultValue);
     $resultAttrs = array_merge($resultAttrs, $this->addAdditionalAttributes($rowData));
     return $resultAttrs;
 }
示例#8
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;
 }
示例#9
0
文件: Bundle.php 项目: nja78/magento2
 /**
  * Prepare attributes with default value for save.
  *
  * @param array $rowData
  * @param bool $withDefaultValue
  * @return array
  */
 public function prepareAttributesWithDefaultValueForSave(array $rowData, $withDefaultValue = true)
 {
     $resultAttrs = parent::prepareAttributesWithDefaultValueForSave($rowData, $withDefaultValue);
     $resultAttrs = array_merge($resultAttrs, $this->transformBundleCustomAttributes($rowData));
     return $resultAttrs;
 }
 /**
  * Initialize attributes parameters for all attributes' sets.
  *
  * @return $this
  */
 protected function _initAttributes()
 {
     parent::_initAttributes();
     if (isset(self::$attributeCodeToId['price_type']) && ($id = self::$attributeCodeToId['price_type'])) {
         self::$commonAttributesCache[$id]['type'] = 'select';
         self::$commonAttributesCache[$id]['options'] = [self::VALUE_DYNAMIC => BundlePrice::PRICE_TYPE_DYNAMIC, self::VALUE_FIXED => BundlePrice::PRICE_TYPE_FIXED];
     }
 }
示例#11
0
 /**
  * Add attribute parameters to appropriate attribute set.
  *
  * @param string $attrSetName Name of attribute set.
  * @param array $attrParams Refined attribute parameters.
  * @param mixed $attribute
  * @return \Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType
  */
 protected function _addAttributeParams($attrSetName, array $attrParams, $attribute)
 {
     // save super attributes for simplier and quicker search in future
     if ('select' == $attrParams['type'] && 1 == $attrParams['is_global'] && $attribute->getIsConfigurable()) {
         $this->_superAttributes[$attrParams['code']] = $attrParams;
     }
     return parent::_addAttributeParams($attrSetName, $attrParams, $attribute);
 }
示例#12
0
 /**
  * Initialize attributes parameters for all attributes' sets.
  *
  * @return $this
  */
 protected function _initAttributes()
 {
     parent::_initAttributes();
     $options = [self::VALUE_DYNAMIC => BundlePrice::PRICE_TYPE_DYNAMIC, self::VALUE_FIXED => BundlePrice::PRICE_TYPE_FIXED];
     foreach ($this->_specialAttributes as $attributeCode) {
         if (isset(self::$attributeCodeToId[$attributeCode]) && ($id = self::$attributeCodeToId[$attributeCode])) {
             self::$commonAttributesCache[$id]['type'] = 'select';
             self::$commonAttributesCache[$id]['options'] = $options;
             foreach ($this->_attributes as $attrSetName => $attrSetValue) {
                 if (isset($attrSetValue[$attributeCode])) {
                     $this->_attributes[$attrSetName][$attributeCode]['type'] = 'select';
                     $this->_attributes[$attrSetName][$attributeCode]['options'] = $options;
                 }
             }
         }
     }
 }