【问题标题】:Is it possible to set certain product attributes for a different store view using the Magento API?是否可以使用 Magento API 为不同的商店视图设置某些产品属性?
【发布时间】:2011-04-13 08:51:29
【问题描述】:

我们目前正在使用 Magento API 将一堆产品导入商店。 但是我们现在遇到了一些产品属性应该翻译成不同语言的问题。
我想知道是否可以使用 Magento API 来执行此操作,因为我似乎找不到与该问题相关的任何内容。

我们目前有 2 次商店浏览,1 次用于网站的荷兰语版本,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 ));

现在,echo 语句的输出有所不同,第一次是 1,第二次是 2,所以这似乎不是问题。但显然,如果我们设置该值,API 并不重要。
结果是在“catalog_product.update”调用中,名称“NameInFrench”覆盖了默认名称“NameInDutch”。

所以我的问题是使用 Magento API 是否可以实现这样的事情,以及如何实现这一点?

【问题讨论】:

    标签: api magento import product


    【解决方案1】:

    好的,我找到了答案,显然我忽略了 Magento API 文档中的某一行,因为解决方案就在那里。
    所以:不需要每次都设置currentStore,只需要将store id或者code追加到更新数组即可:

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

    这很好用。

    【讨论】:

    • 请问,'fr' 是商店视图的 [code] 还是 [name]?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多