/** * @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); }
/** * @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); }
/** * 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; }
/** * @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; }
/** * 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; }
/** * 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]; } }
/** * 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); }
/** * 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; } } } } }