我想更改Magento的属性设置,我搜索了一下,大家都建议删除产品,重新导入新的属性设置。我做了同样的事情,但是在导入数据后,我看不到产品评论和与产品相关的博客文章。有谁能告诉我,在重新导入具有新属性集的产品后,是否有可能获得产品评论和相关的博客文章。
tyu7yeag1#
一旦设置,您就不能更改产品的属性集。但可以使用此模块,这样您就不必重新导入数据https://marketplace.magento.com/flagbit-magento-changeattributeset.html
zrfyljdw2#
也可以直接在数据库中更改属性集。
eav_attribute_set
catalog_product_entity
当然,以这种方式更改数据时要小心。
kq0g1dla3#
这件事做起来既费工又有点乱:
或者做我所做的,安装这个伟大的扩展从Amasty http://amasty.com/mass-product-actions.html-它使改变变得轻而易举,并给出了更多的时间节省和增强选项。
kse8i1jr4#
一旦你删除了产品,你不能得到旧的审查。您不需要删除产品,您可以通过编辑和使用来改变属性集,或者创建一个新的属性集并创建新的产品。
0s0u357o5#
是的。我们可以通过编程方式更改产品属性集。我更喜欢在目录产品网格中创建massaction以多选产品,然后为产品选择massaction。在grid.php中创建massaction
$sets = Mage::getResourceModel('eav/entity_attribute_set_collection') ->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId()) ->load() ->toOptionHash(); $this->getMassactionBlock()->addItem('changeattributeset', array( 'label'=> Mage::helper('catalog')->__('Change attribute set'), 'url' => $block->getUrl('*/*/changeattributeset', array('_current'=>true)), 'additional' => array( 'visibility' => array( 'name' => 'attribute_set', 'type' => 'select', 'class' => 'required-entry', 'label' => Mage::helper('catalog')->__('Attribute Set'), 'values' => $sets ) ) ));
正在为所选产品的更改属性集合创建控制器操作。
public function changeattributesetAction() { $productIds = $this->getRequest()->getParam('product'); $storeId = (int)$this->getRequest()->getParam('store', 0); if (!is_array($productIds)) { $this->_getSession()->addError($this->__('Please select product(s)')); } else { try { foreach ($productIds as $productId) { $product = Mage::getSingleton('catalog/product') ->unsetData() ->setStoreId($storeId) ->load($productId) ->setAttributeSetId($this->getRequest()->getParam('attribute_set')) ->setIsMassupdate(true) ->save(); } Mage::dispatchEvent('catalog_product_massupdate_after', array('products'=>$productIds)); $this->_getSession()->addSuccess( $this->__('Total of %d record(s) were successfully updated', count($productIds)) ); } catch (Exception $e) { $this->_getSession()->addException($e, $e->getMessage()); } } $this->_redirect('adminhtml/catalog_product/index/', array()); }
vshtjzan6#
您可以向数据补丁应用函数中添加如下内容:
public function apply(): self { $this->moduleDataSetup->getConnection()->startSetup(); /**@var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]); $eavSetup->addAttributeToSet( Product::ENTITY, 'Default', 'General', CustomAttributesInterface::ATTRIBUTE_CODE_MANUFACTURER ); $this->moduleDataSetup->getConnection()->endSetup(); return $this; }
这会将制造商产品属性更改为默认属性集。(默认情况下,此属性没有属性集。)希望它能有所帮助:)
6条答案
按热度按时间tyu7yeag1#
一旦设置,您就不能更改产品的属性集。但可以使用此模块,这样您就不必重新导入数据https://marketplace.magento.com/flagbit-magento-changeattributeset.html
zrfyljdw2#
也可以直接在数据库中更改属性集。
eav_attribute_set
中查找属性集合IDcatalog_product_entity
中的属性集合ID当然,以这种方式更改数据时要小心。
kq0g1dla3#
这件事做起来既费工又有点乱:
或者做我所做的,安装这个伟大的扩展从Amasty http://amasty.com/mass-product-actions.html-它使改变变得轻而易举,并给出了更多的时间节省和增强选项。
kse8i1jr4#
一旦你删除了产品,你不能得到旧的审查。
您不需要删除产品,您可以通过编辑和使用来改变属性集,或者创建一个新的属性集并创建新的产品。
0s0u357o5#
是的。我们可以通过编程方式更改产品属性集。我更喜欢在目录产品网格中创建massaction以多选产品,然后为产品选择massaction。
在grid.php中创建massaction
正在为所选产品的更改属性集合创建控制器操作。
vshtjzan6#
您可以向数据补丁应用函数中添加如下内容:
这会将制造商产品属性更改为默认属性集。(默认情况下,此属性没有属性集。)希望它能有所帮助:)