2011-04-13 81 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