Does anyone know how to create new magento rest api to get category listing.
I already saw this link magento rest api but this not fetch category listings.
I
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.
Module path = app/code/local/Restapi/Categories
1) app/code/local/Restapi/Categories/etc/api2.xml
Catalog
10
catalog
categories/api2_category
Categories
10
1
1
1
Category ID
Name
Category Parent ID
Category Child List
Active
Level
Position
/categories/:cat_id
collection
1
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
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;
}
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
Just you want to change the class path in V1.php file like Customer = Admin.