Извлекать все товары из категории с помощью SOAP API v2 WS-I


Я хотел бы знать, как получить продукты, относящиеся к определенной категории в Magento SOAP API V2, с соблюдением требований WS-I, а также без.

Вот что я попробовал в режиме соответствия WS-I:

$proxy = new SoapClient('http://foobar.local/api/v2_soap/?wsdl');

$sessionId = $proxy->login(array(
    'username' => 'foo',
    'apiKey' => 'bar'
));

$filters = array( 'complex_filter' =>
    array(
        array(
            'key' => 'category_ids',
            'value' => array( 'key' => 'like', 'value' => '%1%' )
        )
    )
);

$result = $proxy->catalogProductList(array('sessionId' => $sessionId->result, 'filters' => $filters));

var_dump($result->result);

Я могу использовать сложный фильтр для успешной фильтрации по product_id, однако это не работает для category_ids, так как он имеет другой вложенный уровень. Как я могу получить продукты через API Magento для определенного идентификатора категории? Должен ли я использовать catalog_category.assignedProducts?

Author: Francis Kim, 2014-12-09

1 answers

Как вы уже отмечали в своем вопросе, предпочтительным способом извлечения продуктов, относящихся к определенной категории, является catalogCategoryAssignedProducts для SOAPv2 ( см. Документацию здесь).

catalogProductList это способ извлечения продуктов по атрибутам.

Пожалуйста, обратите внимание, что catalogCategoryAssignedProducts выбирает только товары из одной определенной категории, а не из нескольких.

Вызовы SOAP в соответствии с документацией:

SOAPV2:

$result = $proxy->catalogCategoryAssignedProducts($sessionId, '4');

SOAPV2 WS-I:

$result = $proxy->catalogCategoryAssignedProducts((object)array('sessionId' => $sessionId->result, 'categoryId' => '4'));
 3
Author: Anna Völkl, 2015-02-19 07:11:51