Marketplaces / The Range [DRAFT] / The Range - Product management / The Range - Full Update Product - In progress

The Range - Full Update Product - In progress

The purpose of this page is to describe in details the flow of updating products in The Range marketplace.

Note: Create Product & Update product use the same API calls. However, here will be described the part, regarding Update product.

As per the payload below, the update call will be used for updating product content (title, description, price, etc.) and also will be used to deactivate, respectively activate a product and deleting a product. We need to look at our internal statuses and based on them to send the marketplace the correct operation.

In order to make the flow easier, into this page there will be described the flow only for updating product content ( title, description, price, etc.) Deactivation, Re-activation and Delete product will be described into separate pages.

We should push a product for full (content) update when we have following internal states:

Case 1: Product is created and it is on live:

Product Status = Product Published ; Listing Status=Active ; List / Update the whole item= Pending;

If update was successful, we will have following statuses:

Product Status =Product Published ; Listing Status= Active; List/ Update the whole item= Not Needed;

If we receive an error message, we will have following statuses:

Product Status = Product Published; Listing Status=Active; List / Update the whole item= Error;

Respective error need to be stored in Update Item Error field;

Case 2: Product is created but it is not live: Positive quantity is a must!

Product Status = Product Created ; Listing Status=Inactive ; List / Update the whole item= Pending; QTY > 0;

If update was successful, we will have following statuses:

Product Status = Product Created ; Listing Status=Inactive ; List / Update the whole item= Not Needed

If we receive an error message, we will have following statuses:

Product Status = Product Created; Listing Status=Inactive; List / Update the whole item= Error;

Respective error need to be stored in Update Item Error field;

API Call: 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

Example call:

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
}]
}

Mapping:

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
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 TikTok 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 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 TBD 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 colour_name descriptive name of the colour Optional colour_group Colour group the primary colour belongs to eg. Red /Blue/Yellow/Orange etc. Optional 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
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 When we send content updates to already active product (which is on LIVE), we can skip this field;

  When we send content updates to inactive product (product status is product created), we will push the value for activation (TBD the value) BUT we need to make sure there is positive quantity to a product before activating it!!!

Notes/Explanations: If the product is already Live and we would want to update the content only, we will not push this field;

If the product is already Live, but we would want to deactivate a product, we will push this field with value “TBD with The Range“ - will be described in page “deactivate product“

If the product was deactivated and we would want to re-activate it , we will push this field with value “TBD with The Range“ will be described in page “re-deactivate product“ | | visible | | Only to be used once the product is already Live, allows it to be hidden from the website | Optional | TBD |  If the product is already Live and we would want to update the content only, we will not push this field;

If the product is already Live, but we would want to delete a product, we will push this field with value “TBD with The Range“ - will be described in page “delete product“ |

Example Response:

{"result":[{"label": "product_feed", "sku_list":"ABC 123"}]}

TBC - If we update 10 variants, and we have incorrect parameters only for one variant, what will be the response? It will show us the variants which update were successful and the failed variant? Or it will show a general error to all variants and no one of the variant will be updated?

TBC - If we send update to a variant, without including related product and the opposite case (if included) what will happen - the update will occur to each variant maybe?

Error cases:

Is this article helpful?
0 0 0