Taxonomy
The purpose of this page is to specify the download of the taxonomy requirements from OnBuy
Version | Created / Updated by | Notes |
---|---|---|
1.0 | Danail Deltchev | Initial Creation |
The Taxonomy in of itself seems to be on three different tiers for OnBuy. Those are the Categories with their features that we all know and love from other MPs, Brands that we sometimes meat in a whiff of excellence and the Technical Details with their own features that are completely new being separated of the Category features
Categories
API Docs: https://docs.api.onbuy.com/#f1068035-ad03-43d6-995b-a6c9c58b9930
API Call: https://api.onbuy.com/v2/categories
Purpose: Browsing through and picking all categories
Name | Type | Required | Details | WAP Mapping | WAP Notes | |||
---|---|---|---|---|---|---|---|---|
site_id | integer | YES | target site. Default is 2000 |
Type:
integer
Example:
2000
| | | | By country of MP | As briefly discussed can be 2000 to start off as we are not expecting other OnBuy sites soon |
| limit | integer | NO | The number of results to return. Max value 100
Type:
integer
Example:
252
| | | | 100 | I believe we will always want the max as our pull will always be for the full category tree |
| offset | integer | NO | The batch of results to return
Type:
integer
Example:
34
| | | | | |
| filter | array | NO | Key | Type | Required | Details | | |
| | | | onbuy_category_id | integer | NO | The ID of the category
Type:
integer
Example:
252
| N/A | N/A |
| | | | category_type_id | integer | NO | Category type
Type:
integer
Example:
3
category_type_id can be one of the following values: 1department2summary3standard | N/A | N/A | | | | | name | string | NO | Case-insensitive partial match Type:
string
Example:
foo
| N/A | N/A |
| | | | can_list_in | boolean | NO | Show only categories that can accept listings.
Type:
boolean
Example:
1
| 1 | We want only the categories that we can actually list in |
| | | | seller_approved_for_refurbished | boolean | NO | Show only if seller approved for refurbished
Type:
boolean
Example:
0
| N/A | N/A |
| | | | search | string | NO | search partial category tree e.g. "Non-Fiction" or full category tree e.g. "Books > Non-Fiction > Non-Fiction > Art, Design & Photography" including or not " > Search Category Name". Search partial or full category name.
Type:
string
Example:
bar
| N/A | N/A |
Example Response:
{
"results": [
{
"category_id": 1,
"name": "Root",
"category_tree": "",
"category_type_id": 0,
"category_type": null,
"parent_id": 0,
"lvl": 1,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
},
{
"category_id": 2144,
"name": "Baby & Toddler",
"category_tree": null,
"category_type_id": 1,
"category_type": "Department Store",
"parent_id": 1,
"lvl": 2,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"google_category": {
"id": 537,
"tree": "Baby & Toddler",
"name": "Baby & Toddler",
"level": 1
},
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
},
{
"category_id": 2150,
"name": "Car Seats & Accessories",
"category_tree": "Baby & Toddler",
"category_type_id": 3,
"category_type": "Standard",
"parent_id": 2144,
"lvl": 3,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"google_category": {
"id": 547,
"tree": "Baby & Toddler > Baby Transport > Baby & Toddler Car Seats",
"name": "Baby & Toddler Car Seats",
"level": 3
},
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
},
{
"category_id": 2152,
"name": "Healthcare & Hygiene",
"category_tree": "Baby & Toddler",
"category_type_id": 3,
"category_type": "Standard",
"parent_id": 2144,
"lvl": 3,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"google_category": {
"id": 5252,
"tree": "Baby & Toddler > Baby Health",
"name": "Baby Health",
"level": 2
},
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
},
{
"category_id": 2155,
"name": "Nursery",
"category_tree": "Baby & Toddler",
"category_type_id": 2,
"category_type": "Summary",
"parent_id": 2144,
"lvl": 3,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"google_category": {
"id": 554,
"tree": "Furniture > Baby & Toddler Furniture",
"name": "Baby & Toddler Furniture",
"level": 2
},
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
},
{
"category_id": 2156,
"name": "Nursing & Feeding",
"category_tree": "Baby & Toddler",
"category_type_id": 3,
"category_type": "Standard",
"parent_id": 2144,
"lvl": 3,
"product_code_required": true,
"seller_approved_for_refurbished": true,
"can_list_in": false,
"commission_tier_id": 3,
"google_category": {
"id": 561,
"tree": "Baby & Toddler > Nursing & Feeding",
"name": "Nursing & Feeding",
"level": 2
},
"avaliable_condition_slugs": [
"new",
"refurbished",
"excellent",
"verygood",
"good",
"average",
"belowaverage"
]
}
],
"metadata": {
"limit": 20,
"offset": 0,
"total_rows": 6938
}
}
Note: I’ve removed some examples from their docs example to keep it smaller
Response Mapping
Name | WAP Mapping | WAP Notes |
---|---|---|
category_id | Category ID | The ID we will use later in communication with the MP |
name | Both Hemi and MP name | For visual representation for the users |
category_tree | Category Full Navigation Path | N/A |
category_type_id | N/A | N/A |
category_type | N/A | N/A |
parent_id | Previous Category on the list | The way to identify the dependency by next category down the tree |
lvl | N/A | N/A |
product_code_required | N/A | N/A |
seller_approved_for_refurbished | N/A | N/A |
can_list_in | Can List In | So we can later filter in what can be listed. |
To be completely honest I believe it will be beneficial this to be a new field on the category list. Otherwise it can be stored as a line attribute | ||
commission_tier_id | N/A | N/A |
google_category | N/A | N/A |
available_condition_slugs | N/A | N/A |
Note: Mapping to the Categories from item_accounts is to be done via the ID and not the name
Category Features
API Docs: https://docs.api.onbuy.com/#e1d6d167-1d40-4aa1-817f-c97381d08900
API Call: https://api.onbuy.com/v2/categories/{{category_id}}/features
Purpose: To pull down the features of a category
By the looks of it the response should contain the following information
{
"feature_id": 105,
"name": "Size",
"note": "S, M, L, XL etc.",
"required": true
}
Name | WAP Mapping | WAP Notes |
---|---|---|
feature_id | Attribute MP ID | The id we need to send to the MP |
name | Attribute Name | Both Hemi and MP name |
note | N/A | N/A |
required | required |
Notes:
- The example response fields are taken from the GET single category and not features. I am expecting there might be something more to the structure of the response but this should be the gist of it
- I am expecting there might be another field in the response that points to specific values to be used (not like “note”)
Brands
API Docs: https://docs.api.onbuy.com/#ae91fdc4-2923-4752-9612-a02ecb92b787
API Call: https://api.onbuy.com/v2/brands
Purpose: To pull down all available Brands on OnBuy with their respective IDs
{
"results": [
{
"brand_id": "3675",
"name": "Vitalife",
"brand_type_id": "1",
"type": "Standard"
},
{
"brand_id": "3694",
"name": "Tree Of Life",
"brand_type_id": "1",
"type": "Standard"
},
{
"brand_id": "891",
"name": "The Secret Life of Pets",
"brand_type_id": "1",
"type": "Standard"
},
{
"brand_id": "3766",
"name": "Superlife",
"brand_type_id": "1",
"type": "Standard"
},
{
"brand_id": "3085",
"name": "Petlife",
"brand_type_id": "1",
"type": "Standard"
}
],
"metadata": {
"limit": 5,
"offset": 0,
"total_rows": "18",
"filters": {
"name": "life"
},
"sort": {
"name": "desc"
}
}
}
Name | WAP Mapping | WAP Notes |
---|---|---|
brand_id | Brand Marketplace ID | Something we can use to map and send as ID to the MP |
name | Brand Name | Both Hemi and Marketplace |
brand_type_id | N/A | N/A |
type | N/A | N/A |
Technical Details
Danail Deltchev (Unlicensed) - To Do