Action | Method | Resource | Description |
---|---|---|---|
Get all | GET | /business/:business_id/categories | Get all categories with business_id . |
Get | GET | /business/:business_id/categories/:category_id | Get category with id business_id and category_id . |
Create | POST | /business/:business_id/categories | Create a category with business_id . |
Update | POST | /business/:business_id/categories/:category_id | Update category with business_id and category_id . |
Delete | DELETE | /business/:business_id/categories/:category_id | Delete category with business_id and category_id . |
The category model is composed of the following attributes:
Attribute | Type | Required | Description | Whereable |
---|---|---|---|---|
name | string | no, required to create. | The category's name. | Yes |
image | base64 image, url image or File image. | no | The category's image. | No |
rank | integer | no | The category's rank. | Yes |
enabled | boolean | no | The category's status. | Yes |
parent_category_id | integer | no | The Parent category id | Yes |
Restrictions for POST, PUT and DELETE categories.
Business categories can only be created, updated or removed by user level 0 (Type: administrator) and Users level 2 (Type: Business Owner).
- User type administrator can create, update or remove any business categories.
- User type Business owner can create, update or remove only business categories related to his business
Get response for business categories.
In general, there are no restrictions to obtain business categories, but there are two paths to obtain them, data obtained depends on the type of user:
- Normal.
mode: dashboard
Therefore, depending on the mode and the type of user, the response will be obtained as shown below:
- User type Administrator and
mode:dashboard
can obtain all business categories.- User type Business owner and
mode:dashboard
can obtain business categories related to his business.- Users type Customer can get all business categories bounded by the business they can get (Location, if delivery or pick up) and if categories are
enabled
for their request.
Subcategories
Now the ordering API can also group categories by placing an existing collation as a parent using the parent_category_id
attribute. this feature is limited to 5 levels deep. Categories can have products and subcategories down to their deepest level as shown in the example.
{
"error": false,
"result": [
{
"id": 313,
"business_id": 58,
"name": "cat 1",
"image": null,
"rank": 1,
"enabled": true,
"external_id": null,
"parent_category_id": null,
"products": [
{
"id": 1673,
"name": "pro3",
"price": 3,
"description": null,
"images": null,
"sku": null,
"category_id": 313,
"inventoried": false,
"quantity": 0,
"featured": false,
"enabled": true,
"upselling": false,
"in_offer": false,
"offer_price": null,
"rank": null,
"offer_rate": 0,
"offer_rate_type": 1,
"offer_include_options": true,
"external_id": null
}
],
"metafields": [],
"subcategories": [
{
"id": 314,
"business_id": 58,
"name": "cat 2",
"image": null,
"rank": 2,
"enabled": true,
"external_id": null,
"parent_category_id": 313,
"subcategories": [
{
"id": 315,
"business_id": 58,
"name": "cat 3",
"image": null,
"rank": 3,
"enabled": true,
"external_id": null,
"parent_category_id": 314,
"subcategories": [
{
"id": 316,
"business_id": 58,
"name": "cat4",
"image": null,
"rank": 4,
"enabled": true,
"external_id": null,
"parent_category_id": 315,
"subcategories": [
{
"id": 317,
"business_id": 58,
"name": "cat4",
"image": null,
"rank": 5,
"enabled": true,
"external_id": null,
"parent_category_id": 316,
"subcategories": [
{
"id": 318,
"business_id": 58,
"name": "cat4",
"image": null,
"rank": 6,
"enabled": true,
"external_id": null,
"parent_category_id": 317
}
],
"products": [],
"metafields": []
}
],
"products": [],
"metafields": []
}
],
"products": [
{
"id": 1671,
"name": "pro1",
"price": 1,
"description": null,
"images": null,
"sku": null,
"category_id": 315,
"inventoried": false,
"quantity": 0,
"featured": false,
"enabled": true,
"upselling": false,
"in_offer": false,
"offer_price": null,
"rank": null,
"offer_rate": 0,
"offer_rate_type": 1,
"offer_include_options": true,
"external_id": null
}
],
"metafields": []
}
],
"products": [
{
"id": 1672,
"name": "pro2",
"price": 2,
"description": null,
"images": null,
"sku": null,
"category_id": 314,
"inventoried": false,
"quantity": 0,
"featured": false,
"enabled": true,
"upselling": false,
"in_offer": false,
"offer_price": null,
"rank": null,
"offer_rate": 0,
"offer_rate_type": 1,
"offer_include_options": true,
"external_id": null
}
],
"metafields": []
}
]
}
],
"pagination": {
"total": 1,
"from": 1,
"to": 1,
"current_page": 1,
"page_size": 1,
"total_pages": 1,
"fisrt_page": null,
"back_page": null,
"next_page": null,
"last_page": null
}
}
Parent Category Level restriction
If the parent category that you want to assign as parent is at the maximum depth level, it cannot be used as parent category