我需要使用Web服务API在Magento中获取属于特定类别的所有产品。我试过这个方法:
$product_filter = array(
'category_ids' => array('eq' => '41')
);
$product_templates = $magento_client -> call($magento_session, 'product.list');
但它返回错误。我只能假设它是因为category_ids
是一个数组,因此它不会真正等于一个特定的值。
我做了一些研究,发现了另一个名为category.assignedProducts
的方法并尝试过:
$product_templates =
$magento_client ->
call($magento_session, 'catalog_category.assignedProducts', array('41'));
但是这返回了“拒绝访问”错误。我去看了看我的Magneto沙箱,看到'Assigned Products'有3个选项:'Remove','Update','Assign',我知道我链接到的系统的管理员设置了我的访问权限'只读'。所以我猜我们必须在该列表中勾选'assign',这会给我更多的访问权限。
我可以检索所有数据并在我的结尾进行过滤,但我想检查是否有人知道更好的方法。
感谢。
答案 0 :(得分:0)
assignedProducts
听起来像你需要的但你不应该传递一个数组,而是一个整数值和商店ID或代码。
答案 1 :(得分:0)
我想我在http://www.magentocommerce.com/boards/viewthread/207099/找到了答案,基本上说它不能再从产品中完成了。我们现在必须从类别的角度来看问题。
category_ids不再适用于1.4,他们更改了表格 周围的结构,以便类别不可用 产品。使用下面的代码从类别中获取产品 然后执行catalog_product.list调用。为了使它更快,你也可以 创建一个自定义api解决方案,将这些组合在Magento中并执行 只有一个电话而不是两个。
$ proxy = new SoapClient($ soapUrl.'api / soap /?wsdl'); $ sessionId = $ proxy->登录($ apiUser,$ apiPass);
$ productList = $ proxy-> call($ sessionId, 'catalog_category.assignedProducts',array('4')); $的Proxy-> endSession($的sessionId);的print_r($ productList的);