Sample code for 30+ languages & platforms
DataFlex

eBay -- Create or Replace Inventory Item (2nd example)

See more eBay Examples

Another example for creating an inventory item, with different data.

Chilkat DataFlex Downloads

DataFlex
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.

    // { 
    //     "product": { 
    //         "title": "Test listing - do not bid or buy - awesome Apple watch test 2",
    //         "aspects": { 
    //             "Feature" : ["Water resistance", "GPS"],
    //             "CPU" : ["Dual-Core Processor"]
    //         },
    //         "description": "Test listing - do not bid or buy \n Built-in GPS. Water resistance to 50 meters.1 A new lightning-fast dual-core processor. And a display that\u2019s two times brighter than before. Full of features that help you stay active, motivated, and connected, Apple Watch Series 2 is designed for all the ways you move ",
    //         "upc": ["888462079525"],
    //         "imageUrls": [
    //             "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/S/1/S1/42/S1-42-alu-silver-sport-white-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247758975",
    //             "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/4/2/42/stainless/42-stainless-sport-white-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247760390",
    //             "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/4/2/42/ceramic/42-ceramic-sport-cloud-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247758007"
    //         ]
    //     },
    //     "condition": "NEW",
    //     "packageWeightAndSize": { 
    //         "dimensions": { 
    //             "height": 5,
    //             "length": 10,
    //             "width": 15,
    //             "unit": "INCH"
    //         },
    //         "packageType": "MAILING_BOX",
    //         "weight": { 
    //             "value": 2,
    //             "unit": "POUND"
    //         }
    //     },
    //     "availability": { 
    //         "shipToLocationAvailability": { 
    //             "quantity": 10
    //         }
    //     }
    // }

    // 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 ComUpdateString Of hoJson "product.title" "Test listing - do not bid or buy - awesome Apple watch test 2" To iSuccess
    Get ComUpdateString Of hoJson "product.aspects.Feature[0]" "Water resistance" To iSuccess
    Get ComUpdateString Of hoJson "product.aspects.Feature[1]" "GPS" To iSuccess
    Get ComUpdateString Of hoJson "product.aspects.CPU[0]" "Dual-Core Processor" To iSuccess
    Get ComUpdateString Of hoJson "product.description" "Test listing - do not bid or buy\n Built-in GPS. Water resistance to 50 meters.1 A new lightning-fast dual-core processor. And a display that�s two times brighter than before. Full of features that help you stay active, motivated, and connected, Apple Watch Series 2 is designed for all the ways you move " To iSuccess
    Get ComUpdateString Of hoJson "product.upc[0]" "888462079525" To iSuccess
    Get ComUpdateString Of hoJson "product.imageUrls[0]" "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/S/1/S1/42/S1-42-alu-silver-sport-white-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247758975" To iSuccess
    Get ComUpdateString Of hoJson "product.imageUrls[1]" "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/4/2/42/stainless/42-stainless-sport-white-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247760390" To iSuccess
    Get ComUpdateString Of hoJson "product.imageUrls[2]" "http://store.storeimages.cdn-apple.com/4973/as-images.apple.com/is/image/AppleInc/aos/published/images/4/2/42/ceramic/42-ceramic-sport-cloud-grid?wid=332&hei=392&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1472247758007" To iSuccess
    Get ComUpdateString Of hoJson "condition" "NEW" To iSuccess
    Get ComUpdateNumber Of hoJson "packageWeightAndSize.dimensions.height" "5" To iSuccess
    Get ComUpdateNumber Of hoJson "packageWeightAndSize.dimensions.length" "10" To iSuccess
    Get ComUpdateNumber Of hoJson "packageWeightAndSize.dimensions.width" "15" To iSuccess
    Get ComUpdateString Of hoJson "packageWeightAndSize.dimensions.unit" "INCH" To iSuccess
    Get ComUpdateString Of hoJson "packageWeightAndSize.packageType" "MAILING_BOX" To iSuccess
    Get ComUpdateNumber Of hoJson "packageWeightAndSize.weight.value" "2" To iSuccess
    Get ComUpdateString Of hoJson "packageWeightAndSize.weight.unit" "POUND" To iSuccess
    Get ComUpdateNumber Of hoJson "availability.shipToLocationAvailability.quantity" "10" 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 "AppleWatch".
    Move "https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/AppleWatch" 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