2011-04-13 51 views
0

我們目前正在使用Magento API將一堆產品導入商店。 但我們現在遇到了一些問題,應該將某些產品屬性翻譯成不同的語言。
我想知道是否可以使用Magento API來做到這一點,因爲我似乎無法找到與該問題有關的任何事情。是否可以使用Magento API爲其他商店視圖設置某些產品屬性?

我們目前有2個商店的意見,1個荷蘭版本的網站和一個法國版本的網站。
我們目前的進口代碼看起來是這樣的:

$store_id = $soapClient->call($soapSession, 'catalog_product.currentStore', array('nl')); 
echo("store_id: $store_id"); 
$new_product_data = array(
    'name' => 'NameInDutch', 
    'short_description' => 'DescriptionInDutch', 
    'price' => $price, 
    'weight' => $weight, 
    'websites' => array('base'), 
    'status' => '1' 
); 
$new_product_id = $soapClient->call($soapSession, 'catalog_product.create', array('simple', 4, $sku, $new_product_data)); // 4 => 'Default' attribute set 
$localized_product_data = array(
    'name' => 'NameInFrench', 
    'short_description' => 'DescriptionInFrench' 
); 

$store_id = $soapClient->call($soapSession, 'catalog_product.currentStore', array('fr')); 
echo("store_id: $store_id"); 
$soapClient->call($soapSession, 'catalog_product.update', array($sku, $localized_product_data)); 

現在,回波語句的輸出不同,第一次是1,它是2,所以這似乎並不成爲問題的第二次。但是,如果我們設置了這個值,那麼顯然對於API來說並不重要。
結果是在'catalog_product.update'調用中,名稱'NameInFrench'覆蓋默認名稱'NameInDutch'。

所以我的問題是,如果這樣的事情是可能的使用Magento API,以及如何做到這一點?

回答

2

好吧,我找到了答案,顯然我忽略了Magento API文檔中的某一行,因爲解決方案就在那裏。
所以:你不需要每次都設置currentStore,你只需要到商店ID或代碼追加到更新數組:

$soapClient->call(
    $soapSession, 
    'catalog_product.update', 
    array($sku, $localized_product_data, 'fr') 
); 

這完美的作品。

+0

我可以問,'fr'是商店視圖的[code]還是[name]? – Flater 2012-07-23 07:58:11

+1

如果我正確記得,這是[code]。 – 2012-07-24 08:29:16

相關問題