Magento API在尝试添加优惠券时给出拒绝访问



我正在使用Magento (v1.5.1.0)的SOAP API,并且已经设法获得创建购物车,添加用户,添加计费/送货地址,付款方式等工作的整个过程,但是我无法获得优惠券的工作。

我使用的代码如下:

    if ($couponCode != '') {
        try {
            $result = $this->magentoservice->shoppingCartCouponAdd($sessionId, $cartId, $couponCode);                
        } catch (Exception $err) {
            return $this->returnError($err->getMessage());
        }
    }

我尝试了来宾用户和注册用户,我一直得到相同的异常抛出-"拒绝访问。"。从有限的文档和论坛帖子中我可以看到,这甚至不是一个预期的错误。

$sessionId和$cartId绝对有效。如果直接在magento前端输入$couponCode就可以了。

谁能告诉我怎么才能解决这个问题?

感谢John,我在magento.stackexchange.com网站上得到了答案。

https://magento.stackexchange.com/questions/2729/magento-api-gives-access-denied-when-trying-to-add-a-coupon

问题是api角色不包括对优惠券的访问。然而,我没有看到这个的原因是由于它没有显示在后端。

直接编辑api_role表,我可以设置购物车优惠券的4条记录。

以@Hyarion的回答为基础,我在Magento v1.7中接收Access Denied的问题是优惠券权限没有出现在Admin > System > Web Services > xxx Roles > (select Role) > Role Resources中,因此我无法为我的API用户启用它们。

为我工作的修复是运行这个数据库查询,它应该影响3条记录(每个角色):

update api_rule set api_permission='allow' where role_id=1 -- Replace with your desired role id and resource_id like 'cart/coupon%'

最新更新