以编程方式创建多语言Magento属性选项

时间:2014-04-11 11:47:49

标签: magento attributes add multilingual entity-attribute-value

我正在寻找一种为多种语言创建多语言magento属性选项的方法。

我们说我确实有商店视图名称'德国'和'英语'。 我确实检索了商店语言代码(必须在商店视图配置页面上设置语言):

$storelist = Mage::app()->getStores();
$storelang = array();
foreach ($storelist as $id => $s) {
    $storelang[$id] = substr(Mage::getStoreConfig('general/locale/code', $id), 0, 2);
}

这样我就可以创建属性选项(属性确实存在):

function addAttributeValue($arg_attribute, $arg_value) {
   $attribute_model = Mage::getModel('eav/entity_attribute');
   $attribute_code = $attribute_model->getIdByCode('catalog_product', $arg_attribute);
   $attribute = $attribute_model->load($attribute_code);

   if (!attributeValueExists($arg_attribute, $arg_value)) {
       $value['option'] = array($arg_value, $arg_value);
       $result = array('value' => $value);
       $attribute->setData('option', $result);
       $attribute->save();
       echo "Attribute '" . $arg_attribute . "' with 
       option '" . $arg_value . "' saved.<br />";
}

但第二语言在哪里发挥?现在只有默认值/默认值被填充到数据库中。

我想为每种语言准备一个循环,但我不知道正确的&#34;切换&#34;对于语言。

创建产品时,不是属性选项,有一种方法可以根据语言

设置所有产品字段
$Product->setStoreId($lang_value);

但我对属性选项不确定。 你们能给我一个暗示吗?

感谢。

1 个答案:

答案 0 :(得分:1)

问题解决了。感谢Marius指出我乱糟糟的阵列。 这条线错了:

$value['option'] = array($arg_value, $arg_value);

将其设置为:

$value['option'] = array($arg_value_label, $arg_value_lang1, $arg_value_lang2);

现在我可以加载每种语言的值,并使用上面的那一行设置它们。也许这不是最好的解决方案,但它目前对我有用。 祝大家周末愉快。