创建新的 magento Rest api 以获取 magento 中的类别列表 [英] Create new magento Rest api to get category list in magento

查看:22
本文介绍了创建新的 magento Rest api 以获取 magento 中的类别列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道如何创建新的 magento rest api 以获取类别列表.

Does anyone know how to create new magento rest api to get category listing.

我已经看到这个链接magento rest api 但这不能获取类别列表.

I already saw this link magento rest api but this not fetch category listings.

如果有人知道,请解决这个问题..

If any one knows then please solve this..

推荐答案

首先使用 创建基本模块http://www.silksoftware.com/magento-module-creator/ 这个然后你必须创建以下文件并将这个文件添加到给定的路径中.

First create basic module using http://www.silksoftware.com/magento-module-creator/ this and then you have to create following file and add this file in given path.

模块路径 = app/code/local/Restapi/Categories

1) app/code/local/Restapi/Categories/etc/api2.xml

<?xml version="1.0"?>
<config>
<api2>
    <resource_groups>
        <catalog translate="title" module="api2">
            <title>Catalog</title>
            <sort_order>10</sort_order>       
        </catalog>
    </resource_groups>
    <resources>
        <categories translate="title" module="api2">
            <group>catalog</group>
            <model>categories/api2_category</model>
            <title>Categories</title>
            <sort_order>10</sort_order>
            <privileges>
                <admin>
                    <retrieve>1</retrieve>
              <!--  <create>1</create>
                    <update>1</update>
                    <delete>1</delete>  --> 
                </admin>
                <customer>
                    <retrieve>1</retrieve>
              <!--  <create>1</create>
                    <update>1</update>
                    <delete>1</delete>  --> 
                </customer>
                <guest>
                    <retrieve>1</retrieve>
              <!--  <create>1</create>
                    <update>1</update>
                    <delete>1</delete>  --> 
                </guest>
            </privileges>
            <attributes>
                <category_id>Category ID</category_id>
                <name>Name</name>
                <parent_id>Category Parent ID</parent_id>
                <child_id>Category Child List</child_id>
                <active>Active</active>
                <level>Level</level>
                <position>Position</position>
            </attributes>
            <routes>
                <route>
                    <route>/categories/:cat_id</route>
                    <action_type>collection</action_type>
                </route>
            </routes>
            <versions>1</versions>
        </categories>
    </resources>
</api2>
</config>

这里的 cat_id 是类别 id,我们通过它来获取子类别.

Here cat_id is category id which we pass to fetch child category.

2) app/code/local/Restapi/Categories/Model/Api2/Category/Rest/Customer/V1.php

<?php
class Restapi_Categories_Model_Api2_Category_Rest_Customer_V1 extends Restapi_Categories_Model_Api2_Category
{
/**
 * Retrieve list of category list.
 *
 * @return array
 */
protected function _retrieveCollection()
{   
    $ruleId = $this->getRequest()->getParam('cat_id');

//  $cat_mod = Mage::getModel('catalog/category')->load($ruleId)->toArray();
    $cats = Mage::getModel('catalog/category')->load($ruleId);
    $subcats  = Mage::getModel('catalog/category')->load($ruleId)->getChildren();

    $cur_category = array();

    $node['category_id'] = $ruleId;
    $node['name'] = $cats->getName();
    $node['parent_id'] = $cats->getParentId();
    $node['child_id'] = $subcats;
    if($cats->getIsActive()){
        $node['active'] = 1;
    }else{
        $node['active'] = 0;
    }
    $node['level'] = $cats->getLevel();
    $node['position'] = $cats->getPosition();

    $cur_category[] = $node;

//  $subcats  = Mage::getModel('catalog/category')->load($ruleId)->getAllChildren();
//  $subcats  = Mage::getModel('catalog/category')->load($ruleId)->getChildren();

    if($subcats != '') 
    {
        foreach(explode(',',$subcats) as $subCatid)
        {
            $_category = Mage::getModel('catalog/category')->load($subCatid);
            $childcats  = Mage::getModel('catalog/category')->load($subCatid)->getChildren();

            $node['category_id'] = $subCatid;
            $node['name'] = $_category->getName();
            $node['parent_id'] = $_category->getParentId();
            $node['child_id'] = $childcats;
            if($_category->getIsActive()){
                $node['active'] = 1;
            }else{
                $node['active'] = 0;
            }
            $node['level'] = $_category->getLevel();
            $node['position'] = $_category->getPosition();

            $cur_category[] = $node;

        }
    }

    return $cur_category;       
}

如果您有其他用户(如 admin 和 guest),您也可以在此路径中添加相同的 V1.php 文件.

you also add this same V1.php file in this path if you have other user like admin and guest.

app/code/local/Restapi/Categories/Model/Api2/Category/Rest/Admin/V1.php

app/code/local/Restapi/Categories/Model/Api2/Category/Rest/Guest/V1.php

只是您想更改 V1.php 文件中的类路径,例如 Customer = Admin.

Just you want to change the class path in V1.php file like Customer = Admin.

这篇关于创建新的 magento Rest api 以获取 magento 中的类别列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆