我只是想知道,有没有办法将Magento内置的country_of_manufacturer的价值复制到一个新的属性中?
基本上是所有国家/地区的列表?我知道这是一个有趣的问题,而我们可以使用内置属性。但我需要将值用于另一个属性(即say country_region)。那我怎么能这样做呢?
P.S。请不要投票,因为我搜索了很多,但找不到答案。而且不确定我还能做到这一点。 :/
答案 0 :(得分:6)
您要做的是配置新属性以使用catalog/product_attribute_source_countryofmanufacture
源模型(请参阅Mage_Catalog_Model_Product_Attribute_Source_Countryofmanufacture::getAllOptions()
[link]。此模型从目录表中获取选项。
理想情况下,你会创造&在模块的升级脚本中配置此属性。您需要为模块运行升级脚本所需的配置,然后您可以将其用作脚本的基础:
$installer = Mage::getResourceModel('catalog/setup','default_setup');
/* @var $installer Mage_Catalog_Model_Resource_Setup */
$installer->startSetup();
$installer->addAttribute(
Mage_Catalog_Model_Product::ENTITY,
'your_attr_code',
array(
'type' => 'varchar',
'input' => 'select',
'source' => 'catalog/product_attribute_source_countryofmanufacture',
// other settings as desired...
)
);
$installer->endSetup();
您还可以在管理员中创建“下拉列表”属性,在eav_attribute
表中找到它,然后编辑其source_model
列以获得列出的源模型。对于适当的设置,请运行此sql语句...
SELECT * FROM eav_attribute WHERE attribute_code = 'country_of_manufacture';`
...或look at how the country_of_manufacture
attribute is created in the first place.
答案 1 :(得分:-1)
您可以设置自己的扩展程序并在fieldsets
中使用config.xml
声明将值从一个表复制到另一个表。但在你的情况下我真的不知道怎么做。只需搜索“magento fieldsets”......
<config>
<global>
<fieldsets>
<checkout_onepage_billing>
<username><to_customer>*</to_customer></username>
</checkout_onepage_billing>
</fieldsets>
<!-- … -->
</global>
</config>