【问题标题】:Magento Rest-Api Category ListMagento Rest-Api 类别列表
【发布时间】:2015-03-02 10:40:33
【问题描述】:

我想为 Magento Rest Api 创建一个类别列表扩展。

stackoverflow 上贴了一个帖子:

Create new magento Rest api to get category list in magento

但它只显示了一小段不完整的代码,它不起作用。 似乎开发人员只是从 Marko Andreini 的以下扩展中复制了一个简短的 sn-p:

https://github.com/marcoandreini/magento-extendedrestapi

但我无法让它与 Magento 1.9 一起使用。

我在调用 /magento/api/rest/categories 时总是收到 403 -access denied

如果有人知道问题出在哪里以及如何解决,我会非常高兴。

【问题讨论】:

    标签: list rest magento categories


    【解决方案1】:

    这对我有用:

                        $_helper = Mage::helper('catalog/category');
                        $_categories = $_helper->getStoreCategories();
    
                        $result = array();
    
    
                        if (count($_categories) > 0) {
    
                            $i = 0;
                            foreach ($_categories as $_category) {
    
                                $katId = $_category->getId();
    
                                    $result[$i]['katId'] = $katId;
                                    $result[$i]['url'] = $_helper->getCategoryUrl($_category);
                                    $result[$i]['katName'] = $_category->getName();
                                    $result[$i]['katSubs'] = null;
    
                                    $_category = Mage::getModel('catalog/category')->load($_category->getId());
                                    $_subcategories = $_category->getChildrenCategories();
    
                                    $j = 0;
                                    if (count($_subcategories) > 0) {
    
                                        foreach ($_subcategories as $_subcategory) {
    
                                            $subKatId = $_subcategory->getId();
                                            $subKatName = $_subcategory->getName();
    
                                            if ($subKatId && $subKatName && $subKatName != "") {
    
                                                $result[$i]['katSubs'][$j]['parentKatId'] = $katId;
                                                $result[$i]['katSubs'][$j]['subKatId'] = $subKatId;
                                                $result[$i]['katSubs'][$j]['url'] =  $_helper->getCategoryUrl($_subcategory);
                                                $result[$i]['katSubs'][$j]['subKatName'] = $subKatName;
    
                                                $j++;
                                            }
                                        }
    
                                    }
    
                                $i++;
                            }
                        }
    

    【讨论】:

      【解决方案2】:

      回应上面的 Jet Miller 帖子,403 访问意味着“禁止”。 确保身份验证正常工作,正确设置角色和属性。 其他替代方法是在 etc/api2.xml

      下创建“guest”权限
      <privileges>
         <admin>
            <retrieve>1</retrieve>
         </admin>
         <guest>
            <retrieve>1</retrieve>
         </guest> 
      </privileges>
      

      然后创建另一个文件夹Model/Api2/Category/Rest/Guest/

      将 Model/Api2/Category/Rest/Admin/ 中的 V1.php 复制到新创建的访客文件夹中。 不要忘记将类名更改为: [命名空间]_[ModuleName]_Model_Api2_Category_Rest_Guest_V1

      我想你会很高兴的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-09
        • 2021-10-12
        • 2013-02-08
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多