2015-01-21 55 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