我正在尝试使用来宾帐户通过REST API阅读Magento产品列表。我的Magento实例按预期响应GET /api/rest/products/1
,其中包含:
<?xml version="1.0"?>
<magento_api>
<entity_id>1</entity_id>
<type_id>simple</type_id>
<sku>simple_sku</sku>
<name>simple</name>
<meta_title/>
<meta_description/>
<description>description</description>
<short_description>short description</short_description>
<meta_keyword/>
<tier_price/>
<is_in_stock>0</is_in_stock>
<regular_price_with_tax>100</regular_price_with_tax>
<regular_price_without_tax>100</regular_price_without_tax>
<final_price_with_tax>100</final_price_with_tax>
<final_price_without_tax>100</final_price_without_tax>
<is_saleable>0</is_saleable>
<image_url>http://localhost/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/images/catalog/product/placeholder/image.jpg</image_url>
<url>http://localhost/index.php/catalog/product/view/id/1/s/simple/</url>
<buy_now_url>http://localhost/index.php/checkout/cart/add/uenc/aHR0cDovL2xvY2FsaG9zdC9hcGkvcmVzdC9wcm9kdWN0cy8x/product/1/form_key/6DQ0mBsIua4HpuGN/</buy_now_url>
<total_reviews_count>0</total_reviews_count>
<has_custom_options/>
</magento_api>
但是,当我希望包含该产品的列表时,向同一个Magento实例询问使用GET /api/rest/products
的产品列表会返回空结果:
<?xml version="1.0"?>
<magento_api/>
在调用oauth身份验证的用户时,结果会正确填充,但我需要将其用于访客帐户。
Guest REST角色已配置为获取“All”资源访问权限和“All”属性。我对Magento版本1.9.0.1和1.9.1.0有这种行为,对于两种格式:xml和json,(json返回[]
)。将“所有”访客设置更改为手动选中的复选框也无法解决此问题。
答案 0 :(得分:0)
感谢blog post,我发现Magento没有显示REST API中的guest虚拟机产品缺货产品。要更改此行为,请修改设置System > Configuration > Catalog > Inventory > Stock options > Display out of stock products
这种行为的原因可能是,客人不应该看到不可用的产品,因为他们无法订购或做任何事情。同时管理员可以看到它们,因为它们可能对他有用(如果管理员角色已被授予该权限)。