我想为所有产品添加新属性。我已经通过安装脚本来完成了
$installer = $this;
$installer->startSetup();
$this->addAttribute('catalog_product','test2',array(
'label' => 'test2',
'type' => 'varchar',
'visible' => true,
'required' => false,
'required' => 0
));
但是如何通过
为此属性添加值$entityTypeId = $installer->getEntityTypeId('catalog_product');
$attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttributeGroup($entityTypeId, 'Default', 'test2', 0);
$installer->endSetup();
答案 0 :(得分:10)
这是我用来创建自己的自定义产品属性的示例代码之一: -
$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */
$installer->startSetup();
$attrCode = 'test2';
$attrGroupName = 'Test Group';
$attrLabel = 'Test 2';
$attrNote = 'Test Note';
$objCatalogEavSetup = Mage::getResourceModel('catalog/eav_mysql4_setup', 'core_setup');
$attrIdTest = $objCatalogEavSetup->getAttributeId(Mage_Catalog_Model_Product::ENTITY, $attrCode);
if ($attrIdTest === false) {
$objCatalogEavSetup->addAttribute(Mage_Catalog_Model_Product::ENTITY, $attrCode, array(
'group' => $attrGroupName,
'sort_order' => 7,
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => $attrLabel,
'note' => $attrNote,
'input' => 'text',
'class' => '',
'source' => '',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '0',
'visible_on_front' => false,
'unique' => false,
'is_configurable' => false,
'used_for_promo_rules' => true
));
}
$installer->endSetup();
这与这两篇文章的引用一起使用: -
此外,您会发现我已使用数组键“group
”来提及属性组名称,此新的自定义属性将驻留在该属性组名称中。具有讽刺意味的是,在上面的代码示例中,提到此键会自动在此Magento中找到的每个属性集中创建此属性。
因此,您无需调用任何方法(如“addAttributeToSet()
”)将此属性添加到所有属性集。
希望它有所帮助。
答案 1 :(得分:0)
在magento根目录中运行此脚本。(更改您需要的配置)
<?php
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$installer->addAttribute('catalog_product', 'snum', array(
'label' => 'Serial No',
'type' => 'int',
'input' => 'text',
'backend' => '',
'frontend' => '',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => false,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => true,
'visible_in_advanced_search' => false,
'unique' => false
));
$installer->endSetup();
?>
删除产品属性
<?php
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$installer = new Mage_Sales_Model_Mysql4_Setup;
$installer->startSetup();
$installer->removeAttribute('catalog_product', 'snum');
$installer->endSetup();
?>
答案 2 :(得分:0)
如图所示,您可以将自定义属性添加到magento后端。如果您将产品属性创建为模块,则可以轻松地从一个数据库移动到另一个数据库。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_menu"
tools:context="com.example.caca_a_frase.Menu" >
<TextView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:keepScreenOn="true"
android:textColor="#33b5e5"
android:textSize="50sp"
android:textStyle="bold" />
<!--
This FrameLayout insets its children based on system windows using
android:fitsSystemWindows.
-->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" >
<LinearLayout
android:id="@+id/fullscreen_content_controls"
style="?metaButtonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@color/black_overlay"
android:orientation="horizontal"
tools:ignore="UselessParent" >
</LinearLayout>
<ImageView
android:id="@+id/loading"
android:layout_width="141dp"
android:layout_height="145dp"
android:layout_gravity="top"
android:rotation="350"
android:src="@drawable/titulo_menu" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="230dp"
android:layout_gravity="center"
android:orientation="vertical" >
<Button
android:id="@+id/botaoJogar"
android:layout_width="152dp"
android:layout_height="59dp"
android:layout_gravity="center"
android:background="@drawable/botao_jogar" />
<Button
android:id="@+id/botaoOpcoes"
android:layout_width="152dp"
android:layout_height="59dp"
android:layout_gravity="center"
android:layout_margin="20dp"
android:background="@drawable/botao_opcoes" />
<Button
android:id="@+id/botaoSair"
android:layout_width="152dp"
android:layout_height="59dp"
android:layout_gravity="center"
android:background="@drawable/botao_sair" />
</LinearLayout>
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="right"
android:layout_margin="7dp"
android:background="@drawable/botao_info"
android:text="" />
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:theme="?attr/actionBarTheme"
android:minHeight="?attr/actionBarSize"
android:id="@+id/toolbar" />
</FrameLayout>
</FrameLayout>
请参阅我的教程,了解分步说明和文件结构。 http://www.pearlbells.co.uk/adding-custom-product-attributes-in-magento/