Извлекать все товары из категории с помощью 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
?
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'));