The Range - Create Product - In progress
The purpose of this page is to describe in details the flow of creating products in The Range marketplace.
Note: Create Product & Update product use the same API calls. However, here will be described the part, regarding creating product.
Create product flow seems very straight forward - we need to push the main information regarding product, like SKU, Item Title, Description ,Item & Variation Specific, etc. The specific thing is when we create a product on “The Range“, we do not push quantity. For this reason, we will not set the status of the product on “Product Published“ once we receive successful response from Create Product API but the status of a product will be “Product Created“. Тhe product status will be set on “Product Published“ after the accomplishment of Stock Availability API call.
We will set the status of the product to “Product Published“ once we send successfully quantity to a variant, using a separate call (Stock Availability).
In order to create a product with multiple variants, we might need to use related_product
field and we can push there the variation group. (need to be confirmed with The Range and tested!). The other specific is we need to push HEX code for colors, instead of color names. (TBD how we could handle it- Vladislav Stratonikov I think this will be a major difference within the product create flow 😃 I suggest to start with the main palette of colors, but lets discuss this additionally.)
Based on the response we receive, seems they returning us the SKU which we have pushed. So, we can conclude the Channel Item ID will be equal to SKU we have send to The Range. Also, there are no details into the response for the status of the product (for example, if the product was successfully created on The Range, or if the creation is failed) and there is no any additional call to check the details of the product which were sent to the MP. Based on this information, we can conclude that once send and all required fields were pushed, the product will be on live.
API Call: POST https://supplier.rstore.com/rest/product_feed.api?supplier_id=12345
API Docs: https://marketplacetherange.zendesk.com/hc/en-gb/articles/360018370397-API-Product-Feed
Request Parameters:
Name | Required | Notes |
---|---|---|
supplier_id |
Yes | your id, passed to you from the authenticate api, to confirm who you are. |
Example Call:
{
"product_arr" : [{
"vendor_sku" : "ABC 123",
"related_product" : "M1234567", # Optional - Kube will generate its own unique product code if
not provided
"title" : "Test Shoe",
"brand" : "The Range",
''gtin'' : ''12345678901'' , #Optional
"price_arr": [{
"price" : "49.50", # No currency symbol expected
"currency" : "GBP", # Not supporting other currencies at the moment
"effective_from" : "2019-05-10" # May be the current active price - can also provide
future price changes
}],
"product_category" : "Shoes",
"description" : "A Shoe Test", # We allow for HTML to be captured here - excluding script/embed
/iframe tags
"feature_arr" : [ # May be empty - not to be confused with attributes, certain Amazon fields such as TargetAudience and SubjectContent belong here
"Includes Sole",
"Prevents falling over",
"Waterproof"
],
"child_hazard" : 0, # Optional whether this product is hazardous to children
"age_restriction" : "16", # Optional minimum age
"image_url_arr" : [ # All media to be linked to this SKU
"https://www.therange.co.uk/example1.jpg",
"https://www.therange.co.uk/example2.jpg",
"https://www.therange.co.uk/example3.jpg"
],
"youtube_url_arr" : [ # All video media to be linked to this SKU
"https://www.youtube.com/watch?v=Zhr1uk_O-so",
"https://www.youtube.com/watch?v=Zhr1uk_O-so"
],
51
"fulfilment_class" : "Small", # May be one of our supported size classes (Small/Regular/Fragile
/Medium/Large/Extra Large), only required if not using Free Delivery
"product_attribute" : { # All attributes listed below are optional, only colour becomes
mandatory if colour_name is present
"colour" : "#8B4513", # Only required if colour is a distinct attribute of the SKU - we
should be able to map the HEX to our colour group.
"colour_name" : "Saddle Brown", # Optional descriptive name of the colour
"colour_group" : "Brown", # Optional Colour group the primary colour belongs to eg. Red
/Blue/Yellow/Orange etc.
"length" : "1m",
"width" : "5mm",
"height" : "10cm",
"weight" : "9kg",
# Other common attributes batteries required/included, legal disclaimer, warning -
list to be finalised
"other_attribute" : { # Optional list of any other unusual attributes of interest, may
be a dynamic list of key/value pairs.
"ATTR_NAME" : "ATTR_VALUE"
}
},
"launch_date" : "2019-05-30", # Optional date when the SKU will automatically be activated
(given that it has completed the onboarding process)
"active" : 1, # Optional - only to be used once the product is already Live, allows it to be
deactivated/discontinued (still visible but not saleable on the website though), or later be re-activated
"visible" : 1 # Optional - only to be used once the product is already Live, allows it to be
hidden from the website
}]
}
Integration Field | Integration Notes | Integration required | Hemi Mapping | Hemi Notes | |
---|---|---|---|---|---|
product_arr |
The list of products | ||||
vendor_sku |
Your variation reference. Use a reference code or an ID. This won't appear to customers. | Yes | Product > SKU | ||
related_product |
Kube will generate its own unique product code if not provided | Optional | TBD on later stage if we would want to save it | ||
title |
Product Account > Title | ||||
brand |
Product > Brand | TBD Taxonomy | |||
gtin |
Optional | N/A | TBD if we would want to create such field, or we can push Barcode/EAN/UPC/ISBN | ||
price_arr |
|||||
price |
No currency symbol expected | Product Account > Price | |||
currency |
Not supporting other currencies at the moment | Product Account > Currency | Only support GBP! | ||
effective_from |
May be the current active price - can also provide future price changes | N/A | |||
product_category |
Product Account> Primary Category ID | ||||
description |
We allow for HTML to be captured here - excluding script/embed | ||||
/iframe tags | Product Account > Description | We would want to use the logic of design template. |
If we have design template we will pick the design template;
If we haven’t design template, we will pick the default one.
If we haven’t the default one, we will pick the description; |
| feature_arr
| | May be empty - not to be confused with attributes, certain Amazon fields such as TargetAudience and SubjectContent belong here | | TBD | |
| | TBD
| | | | |
| | TBD
| | | | |
| | TBD
| | | | |
| child_hazard
| | Whether this product is hazardous to children | Optional | N/A | |
| age_restriction
| | minimum age | Optional | N/A | |
| image_url_arr
| | All media to be linked to this SKU | | Product > Main Image
Product > More Picture URL
OR
Product Account The Range > Main Image
Product Account The Range > More Picture URL | We pick images from Product Account The Range with priority! |
| | https://www.therange.co.uk/example1.jpg
| | | | |
| | https://www.therange.co.uk/example1.jpg
| | | | |
| youtube_url_arr
| | All video media to be linked to this SKU | | | |
| | https://www.youtube.com/watch?v=Zhr1uk_O-so
| | | Product > Video URL | |
| fulfilment_class
| | May be one of our supported size classes (Small/Regular/Fragile /Medium/Large/Extra Large), only required if not using Free Delivery | | | We will have a validation here, depends on delivery service cost . TBD how to handle it |
| product_attribute
| | (maybe should be an array, in order to send more attributes within the node? To be confirmed)
All attributes listed below are optional, only colour becomes mandatory if colour_name is present | | | as per description should be considered as item specifics |
| | colour
| Only required if colour is a distinct attribute of the SKU - we should be able to map the HEX to our colour group. | | TBD | Maybe here we should make kind of mapping to HEX colors to exact colors?? TBD how we will handle it, because seems like we must push HEX colors.
for example:
HEX code : #333333 = Black ??? |
| | colour_name
| descriptive name of the colour | Optional | Product Account > Item Specific | |
| | colour_group
| Colour group the primary colour belongs to eg. Red /Blue/Yellow/Orange etc. | Optional | N/A | |
| | length
| meters | | Product >Length | By default, in Hemi the measure unit is “cm“
We need to divide the length value by 100 in order to convert the centimeters into meters. |
| | width
| millimeters | | Product >Width | By default, in Hemi the measure unit is “cm“
We need to multiply the width value by 10 in order to convert centimeters into millimeters. |
| | height
| cm | | Product >Height | By default, in Hemi the measure unit is “cm“
No mathematical action is required here 😃 |
| | weight
| kg | | Product >Weight | By default, in Hemi the measure unit is “gram“
We need to divided the mass value by 1000 in order to convert the grams into kg. |
| | other_attribute
| Optional list of any other unusual attributes of interest, may be a dynamic list of key/value pairs. "ATTR_NAME" : "ATTR_VALUE" | Optional | TBD | |
| launch_date
| | Optional date when the SKU will automatically be activated (given that it has completed the onboarding process) | Optional | TBD | Maybe we can always push NOW() ? |
| active
| | Optional - only to be used once the product is already Live, allows it to be deactivated/discontinued (still visible but not saleable on the website though), or later be re-activated | Optional | TBD | Maybe this field will be used in Update product once we would want to deactivate/activate the product. TBD additionally |
| visible
| | Only to be used once the product is already Live, allows it to be hidden from the website | Optional | TBD | Maybe this field will be used in Update product once we would want to delete the product. TBD additionally |
Example Response:
{"result":[{"label": "product_feed", "sku_list":"ABC 123"}]}
Response Mapping:
Integration Field | Integration Notes | Integration required | Hemi Mapping | Hemi Notes | ||
---|---|---|---|---|---|---|
data | ||||||
data | ||||||
data |
Create product flow:
After successful creation of the product we will set following statuses:
Product Status = Product Created; Listing Status = Inactive.; TBD the flag and the state of the flag (Maybe List/Update the whole item & Update quantity on Pending in order to be picked from the cron for stock updates and if success to modify the status to “Product Published“