以编程方式为不同的网站添加不同的产品名称

时间:2011-04-05 17:01:49

标签: php magento store product

我有两个特定商店视图的网站 - 英语&德语。通常情况下,我可以使用两个不同的商店视图维护1个网站,但是我的客户的具体要求是为每个特定的商店视图设置每个网站。

问题是我无法以编程方式更新/创建产品网站的不同产品名称/说明。我正在使用此代码来执行此操作,我发现它的价格相同: -

$combinationWebsiteWithName = array('1' => 'product name 1', '2' => 'product name 2');

foreach ($combinationWebsiteWithName as $_eachWebsiteId => $_eachProductName) {
    $objWebsite = Mage::getModel('core/website')->load($_eachWebsiteId);
    $storeIds = $objWebsite->getStoreIds();
    $objProduct = Mage::getModel('catalog/product')
                  ->setStoreId(end($storeIds))
                  ->load($productId);
    $objProduct->setName($_eachProductName);
    $objProduct->save();
}

有人可以帮助我吗?在上面的代码中找到任何错误? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

最终,我发现那里出了什么问题,所以答案是: -

Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

foreach ($websiteWiseProductNameArray as $_eachWebsiteId => $_eachProductName) {
    $objWebsite = Mage::getModel('core/website')->load($_eachWebsiteId);
    $storeIds = $objWebsite->getStoreIds();

    foreach ($storeIds as $_eachStoreId) {
        $objProduct = Mage::getModel('catalog/product')
                            ->setStoreId($_eachStoreId)
                            ->load($productId);
        $objProduct->setData($targetAttrCode, $_eachProductName);
        $objProduct->save();

        unset($objProduct);
    }

    unset($storeIds, $objWebsite);
}

我最后一个意想不到的修改区域是使用以下代码将商店ID设置为管理区域:“Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));