Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) eBay -- Create or Replace Inventory ItemThis 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.
IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; 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: json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(json, 0) CkJsonObject::ckUpdateNumber(json,"availability.shipToLocationAvailability.quantity","50") CkJsonObject::ckUpdateString(json,"condition","NEW") CkJsonObject::ckUpdateString(json,"product.title","GoPro Hero4 Helmet Cam") CkJsonObject::ckUpdateString(json,"product.description","New GoPro Hero4 Helmet Cam. Unopened box.") CkJsonObject::ckUpdateString(json,"product.aspects.Brand[0]","GoPro") CkJsonObject::ckUpdateString(json,"product.aspects.Type[0]","Helmet/Action") CkJsonObject::ckUpdateString(json,"product.aspects." + Chr(34) + "Storage Type" + Chr(34) + "[0]","Removable") CkJsonObject::ckUpdateString(json,"product.aspects." + Chr(34) + "Recording Definition" + Chr(34) + "[0]","High Definition") CkJsonObject::ckUpdateString(json,"product.aspects." + Chr(34) + "Media Format" + Chr(34) + "[0]","Flash Drive (SSD)") CkJsonObject::ckUpdateString(json,"product.aspects." + Chr(34) + "Optical Zoom" + Chr(34) + "[0]","10x") CkJsonObject::ckUpdateString(json,"product.imageUrls[0]","http://i.ebayimg.com/images/i/182196556219-0-1/s-l1000.jpg") CkJsonObject::ckUpdateString(json,"product.imageUrls[1]","http://i.ebayimg.com/images/i/182196556219-0-1/s-l1001.jpg") CkJsonObject::ckUpdateString(json,"product.imageUrls[2]","http://i.ebayimg.com/images/i/182196556219-0-1/s-l1002.jpg") ; Show the JSON to be sent: Debug CkJsonObject::ckEmit(json) ; 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==" accessToken.s = "EBAY_ACCESS_TOKEN" http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; 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". url.s = "https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/GP-Cam-01" CkJsonObject::setCkEmitCompact(json, 1) ; Set your Content-Language to whatever is desired. CkHttp::ckSetRequestHeader(http,"Content-Language","en-US") ; Add our access token to the request, which is a header ; having the following format: ; Authorization: Bearer <userAccessToken> sbAuth.i = CkStringBuilder::ckCreate() If sbAuth.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppend(sbAuth,"Bearer ") CkStringBuilder::ckAppend(sbAuth,accessToken) CkHttp::ckSetRequestHeader(http,"Authorization",CkStringBuilder::ckGetAsString(sbAuth)) CkHttp::setCkAccept(http, "application/json") CkHttp::setCkAllowGzip(http, 0) strResponse.s = CkHttp::ckPutText(http,url,CkJsonObject::ckEmit(json),"utf-8","application/json",0,0) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkJsonObject::ckDispose(json) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbAuth) ProcedureReturn EndIf Debug "Response status code = " + Str(CkHttp::ckLastStatus(http)) If CkHttp::ckLastStatus(http) <> 204 Debug strResponse Debug "Failed" CkJsonObject::ckDispose(json) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbAuth) ProcedureReturn EndIf ; On success (status code = 204), there is no output payload (strResponse will be empty). Debug "Inventory item successfully created." CkJsonObject::ckDispose(json) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbAuth) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.