2015-01-21 51 views
0

我在Magento中有两个商店,每个产品都被添加到“全球”商店(id = 0),以便它在两个商店都可用,第一个商店在全球范围内反映该产品商店,商店级别不添加任何属性,除了不同的价格之外,第二个应该做同样的事情。我创建了一个脚本,产品的价格和说明从CSV同步:Magento只在商店层面保存一些属性

//Load global product 
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
$prod = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); 

//Save global data for product 
if ($prod->getDescription() != $desc) $prod->setDescription($desc); 
if ($prod->getPrice() != $price1) $prod->setPrice($price1); 
$prod->save(); 

//Reload product in store 2 
$prod2 = Mage::getModel('catalog/product')->setStoreId(2)->load($prod->getId()); 

//Save data for store 2 
if ($prod2->getPrice() != $price2) $prod2->setPrice($price2); 
$prod2->save(); 

这里的问题是,当我保存的价格为蓄能器2这样可以节省在存储级别所有其他属性,这意味着,产品描述示例在管理中未选中时使用“使用默认值”标志,如果我想更改两个商店的描述,则必须在全局和商店2中执行此操作。我在做什么错了?有没有办法做到这一点?

回答

1

您可以使用单:

Mage::getSingleton('catalog/product_action')->updateAttributes(
    array($prod->getId()), 
    array('price'=>$price2), 
    Mage_Core_Model_App::ADMIN_STORE_ID 
); 
+0

这完美的作品,谢谢!!!!! – mck89 2015-01-21 11:38:33