如何保存特定商店视图的属性值?

时间:2014-04-29 00:39:12

标签: magento magento-1.8

我正在尝试在Magento 1.8中以编程方式创建产品,然后为其设置一些属性值。到目前为止,每个工作都在工作,属性正在使用“默认”范围内的产品正确保存。

问题是我的商店有两个不同的“商店视图”,一个是英文,一个是法文。我无法想象如何为特定属性的数据设置“范围”或“存储视图”。

如何告诉Magento保存特定范围的属性值?

以下是使用“简短描述”属性的代码示例:      

 $product = new Mage_Catalog_Model_Product();
 $product->setSku($sku);
 $product->setAttributeSetId($attributeSetId);
 $product->setTypeId($typeId);
 $product->setName($sku);
 $product->setWebsiteIDs(array($websiteId));
 $product->setShortDescription('Short description in english');
 $product->setShortDescription('Short description in french'); // Scope change here?

5 个答案:

答案 0 :(得分:14)

创建产品后,它应该有一个id 这是更新特定商店视图的产品名称和简短描述的快速方法,无需调用耗尽资源的save方法。
假设产品ID为10,商店视图ID为2 运行这个:

$productId = 10;
$storeId = 2;
$newName = 'Nom de produit';
$newShortDescription = 'description de produit';
Mage::getSingleton('catalog/product_action')->updateAttributes(
    array($productId),
    array('name'=>$newName, 'short_description' => $newShortDescription),
    $storeId
);

答案 1 :(得分:2)

为特定商店视图添加此内容

$product->setStoreId($storeId);

答案 2 :(得分:1)

用于默认商店视图

$product = new Mage_Catalog_Model_Product();
 $product->setSku($sku);
 $product->setAttributeSetId($attributeSetId);
 $product->setTypeId($typeId);
 $product->setName($sku);
 $product->setWebsiteIDs(array($websiteId));
 $product->setShortDescription('Short description in english');
 $product->setStoreId(array(0));

答案 3 :(得分:0)

$store_id = Mage::app()->getStore()->getStoreId();

$product = Mage::getModel('catalog/product')->setStoreId($store_id);
$brandLabel = $product->setData('brand','adidas')->getResource()->saveAttribute($product, 'brand');

答案 4 :(得分:0)

<?php $StoreId = Mage::app()->getStore()->getId();

$product = Mage::getModel('catalog/product')->setStoreId($StoreId);
$brandLabel = $product->setData('brand','adidas')->getResource()->saveAttribute($product, 'brand'); ?>