Conditions for successful product synchronization
Products without variants
- partner is active
- product is active
status = 'A' - product has a non-zero either price or purchase price:
price > 0orpurchase_price > 0 - product has a main picture
- all defined parameter values are filled for a given category of products - if any value of category parameters is not filled, product will not be displayed
Product with variants
- partner is active
- product is active
status = 'A' - variant is active
status = 'A' - variant has a non-zero either price or purchase price:
price > 0orpurchase_price > 0 - all defined parameter values are filled for a given category of products - if any value of category parameters is not filled, product will not be displayed
- variant has a main picture
- each variant has filled all defined parameter values for a given category of products
- the product has defined
variable_parameters. Use the same order as in theparameters, e.g.:"parameters": { "PARAM1": "value 1", "PARAM2": "value 2", "PARAM3": "value 3" }, "variable_parameters": [ "PARAM1", "PARAM2" ]
Optional parameters
If a property is optional and you do not want to use it, do not put it into the request to the API.
If you set it with an empty value, error message Key {key} does not exist or is empty. may be returned.
Images
Max. image resolution of images sending to API is 2000 px x 2000 px and max. size is 2 MB. Max. response time of the image URL is 3s. Max. amount of images per product is 20. Image URLs can't contain IP addresses or ports.
Product price protection
There are some risks with partner synchronizing products to other shops in different currency. A mistake on partner side may cause the price to be set to the product using incorrect currency. To prevent such mistakes, there is a price protection for product update. Price difference limit between the old and the new price of the product/variant is defined to 30 percent.
If the price of the product/variant is changed by a higher percentage than the
defined limit, force_token is returned in a response and product is not updated.
It is possible to update product with larger price difference by using the force_token from unsuccessful
product update response. You will need to send this force_token as a URL query parameter in another request.
https://mpapi.proxy.omnicado.com/v1/products/{productId}?client_id={clientId}&force_token={forceToken}
By updating the product price via the API with force_token, the partner confirms
that the new price is right and that he accepts full responsibility for this newly set price.
Be careful and do not use force token blindly!
API returns a disposable force_token key in a response body as a part of the error information on the product update.
All changes and use of the token are logged on the MALL side.