Можно ли установить определенные атрибуты товара для другого магазина, используя API Magento? - PullRequest
0 голосов
/ 13 апреля 2011

В настоящее время мы используем API Magento для импорта нескольких товаров в магазин.Но теперь мы столкнулись с проблемой, когда некоторые атрибуты продукта должны быть переведены на другой язык.
И мне было интересно, возможно ли сделать это с помощью 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 ));

Теперь выходные данные операторов echo различаются: первый раз это 1, а второй - 2, так что это не проблема.Но, очевидно, для API не имеет значения, если мы установим это значение.
В результате при вызове catalog_product.update имя NameInFrench перезаписывает имя по умолчанию NameInDutch.

Итак, мой вопрос: возможно ли что-то подобное с использованием Magento API, и как этого добиться?

1 Ответ

2 голосов
/ 19 апреля 2011

Хорошо, я нашел ответ, по-видимому, я пропустил определенную строку в документации по Magento API, потому что решение было тут же.
Итак: вам не нужно каждый раз устанавливать currentStore, вам просто нужно добавить идентификатор или код магазина в массив обновлений:

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

Это отлично работает.

...