Storesome Price Update
Purpose of this page is to specify details for Price updates to Storesome
API Docs: https://storesome-test-seller-api.azurewebsites.net/index.html
API Call: PUT /api/product/price
Updates can be sent in multiples via duplicating the below mapped object within the array. We are following the general logic for Special Price vs Normal Price we have (note: If promotions are ready those should be incorporated as well). If we have only Start Price in Hemisphere this is what we send as price and we ignore all other fields. If we have RRP and it is bigger than the StartPrice we move the RRP as the “normalPrice” and send the StartPrice (as it is effectively a Sale price) to the “salePrice” field. Start and End dates at this point are either picked from the respective fields in Item Account Storesome or we use the default Now() and Now + 2 years
Set a limit of 10 items per call to begin with but please have this value in an easy manageable place so it can be extended when we receive the green light from the Storesome team
Example:
[
{
"sku": "string",
"normalPrice": 0,
"salePrice": 0,
"saleStartDate": "2021-08-19T13:09:02.777Z",
"saleEndDate": "2021-08-19T13:09:02.777Z"
}
]
Mapping:
Storesome fields | WAP Mapping | WAP Notes |
---|---|---|
sku |
Item > SKU | |
normalPrice |
Item Account > Start Price |
OR
Item Account > RRP | In the cases we have both StartPrice and RRP we want to send RRP as price and the StartPrice in the following Storesome field “salePrice”. If we don’t have an RRP we want to send only “price” in the “normalPrice” field and ignore all other fields |
| salePrice
| Item Account > Start Price* | Conditional - see “price”
Also if Promotions are ready they should take over here |
| saleStartDate
| Item Account Storesome > StartDate
OR
DEFAULT (NOW) | Conditional - see “price” |
| saleEndDate
| Item Account Storesome > EndDate
OR
DEFAULT (NOW+2years) | Conditional - see “price” |
As for the Content management - any fields that are not used are not to be sent
NOTE - If we are doing this the right way we should build the Storesome integration as a connector that we can easily extend / replicate / add to for multiple different MPs as we might have multiple store some sites on the same Hemi instance the same way we have for Mirakl
Example response:
Success
[]
Error
-
Error in the info passed or missing products - In this case we will still receive a status 200 as the call itself will be a success but it will have the products in there that have not updated
[ { "key": "dhsaidhsdas", "value": "NotFound" }, { "key": "hhhhhh", "value": "NotFound" } ]
Note: Key should be used for our SKU that we provided where Value should be the value we store in the error field - ONLY the error products should be put on error, everything else should be treated as success
-
Error in the payload itself - In this case we will receive a status 400 with the relevant information in the “errors” section that we need to store on ALL products that were pushed with said call as none of them should be treated as success
{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-c67d3bff82cc5b40b810539b0fb2cfac-ac0790ed327a4842-00", "errors": { "$[0]": [ "'\"' is invalid after a value. Expected either ',', '}', or ']'. Path: $[0] | LineNumber: 3 | BytePositionInLine: 4." ] } }