DataFlex
DataFlex
eBay -- Create or Replace Inventory Item
See more eBay Examples
This example shows how to create a new inventory item record or update an existing inventory item record.See Create or Replace Inventory Item for more REST API details.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
String sAccessToken
Handle hoHttp
String sUrl
Handle hoSbAuth
Variant vResp
Handle hoResp
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// This example sends the following sample PUT request to create (or replace) a new inventory item.
// PUT https://api.ebay.com/sell/inventory/v1/inventory_item/GP-Cam-01
// {
// "availability":
// {
// "shipToLocationAvailability":
// {
// "quantity": 50
// }
// },
// "condition": "NEW",
// "product":
// {
// "title": "GoPro Hero4 Helmet Cam",
// "description": "New GoPro Hero4 Helmet Cam. Unopened box.",
// "aspects": {
// "Brand" :["GoPro"],
// "Type" : ["Helmet/Action"],
// "Storage Type" : ["Removable"],
// "Recording Definition" : ["High Definition"],
// "Media Format" : ["Flash Drive (SSD)"],
// "Optical Zoom" : ["10x"]
// },
// "imageUrls": [
// "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1000.jpg",
// "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1001.jpg",
// "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1002.jpg"
// ]
// }
// }
// First, generate the JSON using this code:
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
Get ComUpdateNumber Of hoJson "availability.shipToLocationAvailability.quantity" "50" To iSuccess
Get ComUpdateString Of hoJson "condition" "NEW" To iSuccess
Get ComUpdateString Of hoJson "product.title" "GoPro Hero4 Helmet Cam" To iSuccess
Get ComUpdateString Of hoJson "product.description" "New GoPro Hero4 Helmet Cam. Unopened box." To iSuccess
Get ComUpdateString Of hoJson "product.aspects.Brand[0]" "GoPro" To iSuccess
Get ComUpdateString Of hoJson "product.aspects.Type[0]" "Helmet/Action" To iSuccess
Get ComUpdateString Of hoJson 'product.aspects."Storage Type"[0]' "Removable" To iSuccess
Get ComUpdateString Of hoJson 'product.aspects."Recording Definition"[0]' "High Definition" To iSuccess
Get ComUpdateString Of hoJson 'product.aspects."Media Format"[0]' "Flash Drive (SSD)" To iSuccess
Get ComUpdateString Of hoJson 'product.aspects."Optical Zoom"[0]' "10x" To iSuccess
Get ComUpdateString Of hoJson "product.imageUrls[0]" "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1000.jpg" To iSuccess
Get ComUpdateString Of hoJson "product.imageUrls[1]" "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1001.jpg" To iSuccess
Get ComUpdateString Of hoJson "product.imageUrls[2]" "http://i.ebayimg.com/images/i/182196556219-0-1/s-l1002.jpg" To iSuccess
// Show the JSON to be sent:
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// Use a previously obtained user token. The token should look something like this:
// "v^1.1#i^1#r^0#p^3#I^3#f^0#t^H4sIAAAAAAAAAOVXa2wUVRTu9k ... 89xuCWYREAAA=="
Move "EBAY_ACCESS_TOKEN" To sAccessToken
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// This example uses the sandbox.
// Change "api.sandbox.ebay.com" to "api.ebay.com" to use the production system.
// Note: The last part of the url is the SKU. In this URL, the SKU is "GP-Cam-01".
Move "https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/GP-Cam-01" To sUrl
Set ComEmitCompact Of hoJson To True
// Set your Content-Language to whatever is desired.
Send ComSetRequestHeader To hoHttp "Content-Language" "en-US"
// Add our access token to the request, which is a header
// having the following format:
// Authorization: Bearer <userAccessToken>
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbAuth
If (Not(IsComObjectCreated(hoSbAuth))) Begin
Send CreateComObject of hoSbAuth
End
Get ComAppend Of hoSbAuth "Bearer " To iSuccess
Get ComAppend Of hoSbAuth sAccessToken To iSuccess
Get ComGetAsString Of hoSbAuth To sTemp1
Send ComSetRequestHeader To hoHttp "Authorization" sTemp1
Set ComAccept Of hoHttp To "application/json"
Set ComAllowGzip Of hoHttp To False
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get ComEmit Of hoJson To sTemp1
Get pvComObject of hoResp to vResp
Get ComHttpStr Of hoHttp "PUT" sUrl sTemp1 "utf-8" "application/json" vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStatusCode Of hoResp To iTemp1
Showln "Response status code = " iTemp1
Get ComLastStatus Of hoHttp To iTemp1
If (iTemp1 <> 204) Begin
Get ComBodyStr Of hoResp To sTemp1
Showln sTemp1
Showln "Failed"
Procedure_Return
End
// On success (status code = 204), there is no output payload (strResponse will be empty).
Showln "Inventory item successfully created."
End_Procedure