A product component is primarily a merchant object, which represents an sub-item group of the parent item for sale on the Shopwave platform. A product component along with its parent item can be placed into a basket and be sold with associated transactions. Products component can have associated stock detail per store, which are tracked and can be reported on.
This API POST call allows you to create and update each of these product component objects with full detail.
The endpoint you need to use for this is:
/product
Key | Details | Example |
---|---|---|
Authorization* | {token_type} {access_token} | Bearer c3499c2729730a7f807efb8676a92dcb6f8a3f8f |
Method* | POST | POST |
x-accept-version | {recommended_latest_version_number} | 2 |
* Required header
NOTE: To update just supply the object id.
Key | Details | Data Type |
---|---|---|
productComponents[{productComponentId}].id | unique product Id | Int |
productComponents[{productComponentId}].name | A name which is able to identify the product component. | String |
productComponents[{productComponentId}].minQuantity | The minimum selectable quantity for this component. | Int |
productComponents[{productComponentId}].maxQuantity | The maximum selectable quantity for this component. | Int |
productComponents[{productComponentId}].productTimestamp | The date at which the product was added. | DateTime |
productComponents[{productComponentId}].deleteDate | The date at which the product component was deleted. | DateTime |
productComponents[{productComponentId}].products | An array of products (options) for this component. | Array |
...products[{productId}].id | unique product Id | Int |
...products[{productId}].barcode | The unique barcode for the product. | String |
...products[{productId}].name | A name which is able to identify the product. | String |
...products[{productId}].details | Extra details which are important for the product. | String |
...products[{productId}].activeDate | The date at which the product became active. If this is null then the product is not currently active. | DateTime |
...products[{productId}].images | An array of product image URL strings. | Array |
...products[{productId}].productInstances | Availiable instances of the product for this component. | Array |
...productInstances[{productInstanceId}].id | unique product Id | Int |
...productInstances[{productInstanceId}].name | A name which is able to identify the product. | String |
...productInstances[{productInstanceId}].price | The most recent and currently active product sale price. | String |
...productInstances[{productInstanceId}].vatPercentage | The most recent and currently active product vat percentage. | String |
...productInstances[{productInstanceId}].quantity | The default quantity for thi product instance. | Int |
Key | Details | Data Type | Example |
---|---|---|---|
statusCode | Very important to check this for any error. 201 for success. | int | 201 |
Key | Details | Data Type |
---|---|---|
productComponents[{productComponentId}].id | unique product Id | Int |
productComponents[{productComponentId}].name | A name which is able to identify the product component. | String |
productComponents[{productComponentId}].minQuantity | The minimum selectable quantity for this component. | Int |
productComponents[{productComponentId}].maxQuantity | The maximum selectable quantity for this component. | Int |
productComponents[{productComponentId}].productTimestamp | The date at which the product was added. | DateTime |
productComponents[{productComponentId}].deleteDate | The date at which the product component was deleted. | DateTime |
productComponents[{productComponentId}].products | An array of products (options) for this component. | Array |
...products[{productId}].id | unique product Id | Int |
...products[{productId}].barcode | The unique barcode for the product. | String |
...products[{productId}].name | A name which is able to identify the product. | String |
...products[{productId}].details | Extra details which are important for the product. | String |
...products[{productId}].activeDate | The date at which the product became active. If this is null then the product is not currently active. | DateTime |
...products[{productId}].images | An array of product image URL strings. | Array |
...products[{productId}].productInstances | Availiable instances of the product for this component. | Array |
...productInstances[{productInstanceId}].id | unique product Id | Int |
...productInstances[{productInstanceId}].name | A name which is able to identify the product. | String |
...productInstances[{productInstanceId}].price | The most recent and currently active product sale price. | String |
...productInstances[{productInstanceId}].vatPercentage | The most recent and currently active product vat percentage. | String |
...productInstances[{productInstanceId}].quantity | The default quantity for thi product instance. | Int |
Please check the live API calls for more details on the API messages.
ID | Status Code | Title | Details |
---|---|---|---|
908 | 401 | Expired Token | Token expired or invalid. Please renew your token |
911 | 401 | Authorization Header Invalid | The authorization header is invalid. The correct format is Authorization: {token_type} {accessToken} |
919 | 429 | Cannot handle too many request | There is a limit for every object you can send to our server and you are exceding that. |
913 | 400 | Required parameter or object missing in request | One or more of the required parameters or object formation is missing in your request. Please refer the documentation |
904 | 401 | Access Denied | Access denied for the request |
912 | 403 | Resource Not Allowed For Specified User | The user does not own this resource and its forbidden |
899 | 500 | Unknown Error | Something went wrong. Please contact the site administrator |
Please check the live API calls for more details on the API messages.
ID | Status Code | Title | Details |
---|---|---|---|
202 | 200 | Token is valid | Token is validated and found valid. |
206 | 201 | Resource Created | Your resource is created partially or fully. Please check further message or process log |