Difference between revisions of "Create Items by External Id"
(Created page with "== Summary == An item can be created via two different methods - either as multi-part form data with a JSON file attached and the API key as a parameter, or as JSON content o...") |
|||
| Line 1: | Line 1: | ||
== Summary == | == Summary == | ||
| + | |||
| + | This method is a copy of the normal create items except it will locate an update items by their external id rather than the item name as primary key. | ||
| + | |||
| + | If you attempt to create an item with no external ID provided an exception will be thrown, also if there are more than one item with the same external id only the first will be updated | ||
An item can be created via two different methods - either as multi-part form data with a JSON file attached and the API key as a parameter, or as JSON content on it's own, with the API key supplied within the JSON. | An item can be created via two different methods - either as multi-part form data with a JSON file attached and the API key as a parameter, or as JSON content on it's own, with the API key supplied within the JSON. | ||
Revision as of 16:59, 21 January 2016
Contents |
Summary
This method is a copy of the normal create items except it will locate an update items by their external id rather than the item name as primary key.
If you attempt to create an item with no external ID provided an exception will be thrown, also if there are more than one item with the same external id only the first will be updated
An item can be created via two different methods - either as multi-part form data with a JSON file attached and the API key as a parameter, or as JSON content on it's own, with the API key supplied within the JSON.
The 'create item' method accepts an array of items to be added to the system. If the 'update_existing' parameter is set, then any existing items will be updated in the system. If set to false or not provided, then any item where the item name is not unique will be rejected.
If 'validate_only' is set, the items will only be validated but not actually inserted into the database. This can be used to check an entire dataset for errors before submitting.
The item name is the primary key so if the item already exists it will be updated rather than duplicated.
Multi Part Form Data
| Create Item | ||
|---|---|---|
| URL | http://base_url/api_path/version/items/external | |
| Type | POST | |
| Params: | api_key | required |
| file | required | |
| update_existing | optional (default = false) | |
| validate_only | optional (default = false) | |
| Response | JSON | |
JSON As Body
| Create Item - JSON | ||
|---|---|---|
| URL | http://base_url/api_path/version/items/external | |
| Type | POST | |
| JSON {key, validate_only(optional), update_existing(optional), items[]} |
required | |
| Response | JSON | |
JSON Contents
| Standard Fields | ||
|---|---|---|
| Field | Expected Data | Required |
| external_id | varchar(45) | |
| category_id | {"name":"<categoryName>"} *nested JSON object |
✓ |
| name | varchar(255) * must be unique |
✓ |
| notes | text | |
| product_code | varchar(45) | |
| price | float(10,2) | |
| Standard Fields | ||
|---|---|---|
| Field | Expected Data | Required |
| key | string - company api key | ✓ |
| update_existing | boolean | |
| validate_only | boolean | |
Example Input
Multi Part Form Data
{"items":[{ "external_id":"ss303", "category_id":{"name":"Test1"}, "name":"darrenItem", "notes":"notesnotes", "product_code":"productCodeTest", "price":"2.50" }]}
JSON As Body
{ "key":"darrenwebapi", "validate_only":"false", "update_existing":true, "items":[ { "external_id":"ss303", "category_id":{ "name":"test2" }, "name":"darrenItem", "notes":"notesnotesnotes", "product_code":"productCodeTest", "price":"2.50" } ] }
Example Curl Requests
Multi Part Form Data
curl -F validate_only=false -F update_existing=true -F api_key=darrenwebapi -F file=@/Users/darrenatherton/Desktop/webAPICurling/create_item.txt https://live.mymobileworkers.com:8181/api/1/items/external
JSON As Body
curl -X POST -H "Content-Type: application/json" -d '{"key":"darrenwebapi", "validate_only":"false", "update_existing":true,"items":[{"external_id":"ss303","category_id":{"name":"test2"},"name":"darrenItem","notes":"notesnotesnotes","product_code":"productCodeTest","price":"2.50"}]}' https://live.mymobileworkers.com:8181/api/1/items/external
Responses
Example JSON
{ "successful": [ {"item_name":"testItem"}, {"item_name":"testItem2"} ], "failed": [ { "item_name":"testItem3", "errors": [ { "error_code":"ITE012", "error_msg":"name cannot be null." } ] } ] }