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
(DataFlex) Shopify Create a new product with multiple product variantsCreate a new product with multiple product variants
Use ChilkatAx-win32.pkg Procedure Test Handle hoRest Boolean iSuccess Req Handle hoJsonReq Variant vSbReq Handle hoSbReq Variant vSbJson Handle hoSbJson Handle hoJson Integer iProductId String sProductTitle String sProductBody_html String sProductVendor String sProductProduct_type String sProductCreated_at String sProductHandle String sProductUpdated_at String sProductPublished_at Boolean iProductTemplate_suffix String sProductPublished_scope String sProductTags Boolean iProductImage Integer i Integer iCount_i Integer iId Integer iProduct_id String sTitle String sPrice String sSku Integer iPosition Integer iGrams String sInventory_policy Boolean iCompare_at_price String sFulfillment_service Boolean iInventory_management String sOption1 Boolean iOption2 Boolean iOption3 String sCreated_at String sUpdated_at Boolean iTaxable Boolean iBarcode Boolean iImage_id Integer iInventory_quantity Integer iWeight String sWeight_unit Integer iOld_inventory_quantity Boolean iRequires_shipping String sName Integer j Integer iCount_j String sStrVal String sTemp1 Integer iTemp1 Get Create (RefClass(cComChilkatRest)) To hoRest If (Not(IsComObjectCreated(hoRest))) Begin Send CreateComObject of hoRest End Get ComSetAuthBasic Of hoRest "SHOPIFY_PRIVATE_API_KEY" "SHOPIFY_PRIVATE_API_KEY" To iSuccess Get ComConnect Of hoRest "chilkat.myshopify.com" 443 True True To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // The following code creates the JSON request body. // The JSON created by this code is shown below. Get Create (RefClass(cComChilkatJsonObject)) To hoJsonReq If (Not(IsComObjectCreated(hoJsonReq))) Begin Send CreateComObject of hoJsonReq End Get ComUpdateString Of hoJsonReq "product.title" "Burton Custom Freestyle 151" To iSuccess Get ComUpdateString Of hoJsonReq "product.body_html" "<strong>Good snowboard!</strong>" To iSuccess Get ComUpdateString Of hoJsonReq "product.vendor" "Burton" To iSuccess Get ComUpdateString Of hoJsonReq "product.product_type" "Snowboard" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[0].option1" "First" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[0].price" "10.00" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[0].sku" "123" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[1].option1" "Second" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[1].price" "20.00" To iSuccess Get ComUpdateString Of hoJsonReq "product.variants[1].sku" "123" To iSuccess // The JSON request body created by the above code: // { // "product": { // "title": "Burton Custom Freestyle 151", // "body_html": "<strong>Good snowboard!<\/strong>", // "vendor": "Burton", // "product_type": "Snowboard", // "variants": [ // { // "option1": "First", // "price": "10.00", // "sku": "123" // }, // { // "option1": "Second", // "price": "20.00", // "sku": "123" // } // ] // } // } Get Create (RefClass(cComChilkatStringBuilder)) To hoSbReq If (Not(IsComObjectCreated(hoSbReq))) Begin Send CreateComObject of hoSbReq End Get pvComObject of hoSbReq to vSbReq Get ComEmitSb Of hoJsonReq vSbReq To iSuccess Get ComAddHeader Of hoRest "Content-Type" "application/json" To iSuccess Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJson If (Not(IsComObjectCreated(hoSbJson))) Begin Send CreateComObject of hoSbJson End Get pvComObject of hoSbReq to vSbReq Get pvComObject of hoSbJson to vSbJson Get ComFullRequestSb Of hoRest "POST" "/admin/products.json " vSbReq vSbJson To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End Get ComResponseStatusCode Of hoRest To iTemp1 If (iTemp1 <> 201) Begin Get ComResponseStatusCode Of hoRest To iTemp1 Showln "Received error response code: " iTemp1 Showln "Response body:" Get ComGetAsString Of hoSbJson To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get pvComObject of hoSbJson to vSbJson Get ComLoadSb Of hoJson vSbJson To iSuccess // The following code parses the JSON response. // A sample JSON response is shown below the sample code. Get ComIntOf Of hoJson "product.id" To iProductId Get ComStringOf Of hoJson "product.title" To sProductTitle Get ComStringOf Of hoJson "product.body_html" To sProductBody_html Get ComStringOf Of hoJson "product.vendor" To sProductVendor Get ComStringOf Of hoJson "product.product_type" To sProductProduct_type Get ComStringOf Of hoJson "product.created_at" To sProductCreated_at Get ComStringOf Of hoJson "product.handle" To sProductHandle Get ComStringOf Of hoJson "product.updated_at" To sProductUpdated_at Get ComStringOf Of hoJson "product.published_at" To sProductPublished_at Get ComIsNullOf Of hoJson "product.template_suffix" To iProductTemplate_suffix Get ComStringOf Of hoJson "product.published_scope" To sProductPublished_scope Get ComStringOf Of hoJson "product.tags" To sProductTags Get ComIsNullOf Of hoJson "product.image" To iProductImage Move 0 To i Get ComSizeOfArray Of hoJson "product.variants" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComIntOf Of hoJson "product.variants[i].id" To iId Get ComIntOf Of hoJson "product.variants[i].product_id" To iProduct_id Get ComStringOf Of hoJson "product.variants[i].title" To sTitle Get ComStringOf Of hoJson "product.variants[i].price" To sPrice Get ComStringOf Of hoJson "product.variants[i].sku" To sSku Get ComIntOf Of hoJson "product.variants[i].position" To iPosition Get ComIntOf Of hoJson "product.variants[i].grams" To iGrams Get ComStringOf Of hoJson "product.variants[i].inventory_policy" To sInventory_policy Get ComIsNullOf Of hoJson "product.variants[i].compare_at_price" To iCompare_at_price Get ComStringOf Of hoJson "product.variants[i].fulfillment_service" To sFulfillment_service Get ComIsNullOf Of hoJson "product.variants[i].inventory_management" To iInventory_management Get ComStringOf Of hoJson "product.variants[i].option1" To sOption1 Get ComIsNullOf Of hoJson "product.variants[i].option2" To iOption2 Get ComIsNullOf Of hoJson "product.variants[i].option3" To iOption3 Get ComStringOf Of hoJson "product.variants[i].created_at" To sCreated_at Get ComStringOf Of hoJson "product.variants[i].updated_at" To sUpdated_at Get ComBoolOf Of hoJson "product.variants[i].taxable" To iTaxable Get ComIsNullOf Of hoJson "product.variants[i].barcode" To iBarcode Get ComIsNullOf Of hoJson "product.variants[i].image_id" To iImage_id Get ComIntOf Of hoJson "product.variants[i].inventory_quantity" To iInventory_quantity Get ComIntOf Of hoJson "product.variants[i].weight" To iWeight Get ComStringOf Of hoJson "product.variants[i].weight_unit" To sWeight_unit Get ComIntOf Of hoJson "product.variants[i].old_inventory_quantity" To iOld_inventory_quantity Get ComBoolOf Of hoJson "product.variants[i].requires_shipping" To iRequires_shipping Move (i + 1) To i Loop Move 0 To i Get ComSizeOfArray Of hoJson "product.options" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComIntOf Of hoJson "product.options[i].id" To iId Get ComIntOf Of hoJson "product.options[i].product_id" To iProduct_id Get ComStringOf Of hoJson "product.options[i].name" To sName Get ComIntOf Of hoJson "product.options[i].position" To iPosition Move 0 To j Get ComSizeOfArray Of hoJson "product.options[i].values" To iCount_j While (j < iCount_j) Set ComJ Of hoJson To j Get ComStringOf Of hoJson "product.options[i].values[j]" To sStrVal Move (j + 1) To j Loop Move (i + 1) To i Loop Move 0 To i Get ComSizeOfArray Of hoJson "product.images" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Move (i + 1) To i Loop // A sample JSON response body that is parsed by the above code: // { // "product": { // "id": 1071559755, // "title": "Burton Custom Freestyle 151", // "body_html": "<strong>Good snowboard!<\/strong>", // "vendor": "Burton", // "product_type": "Snowboard", // "created_at": "2017-09-22T14:48:54-04:00", // "handle": "burton-custom-freestyle-151", // "updated_at": "2017-09-22T14:48:55-04:00", // "published_at": "2017-09-22T14:48:54-04:00", // "template_suffix": null, // "published_scope": "global", // "tags": "", // "variants": [ // { // "id": 1070325225, // "product_id": 1071559755, // "title": "First", // "price": "10.00", // "sku": "123", // "position": 1, // "grams": 0, // "inventory_policy": "deny", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": null, // "option1": "First", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:48:54-04:00", // "updated_at": "2017-09-22T14:48:54-04:00", // "taxable": true, // "barcode": null, // "image_id": null, // "inventory_quantity": 1, // "weight": 0.0, // "weight_unit": "lb", // "old_inventory_quantity": 1, // "requires_shipping": true // }, // { // "id": 1070325226, // "product_id": 1071559755, // "title": "Second", // "price": "20.00", // "sku": "123", // "position": 2, // "grams": 0, // "inventory_policy": "deny", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": null, // "option1": "Second", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:48:54-04:00", // "updated_at": "2017-09-22T14:48:54-04:00", // "taxable": true, // "barcode": null, // "image_id": null, // "inventory_quantity": 1, // "weight": 0.0, // "weight_unit": "lb", // "old_inventory_quantity": 1, // "requires_shipping": true // } // ], // "options": [ // { // "id": 1022828915, // "product_id": 1071559755, // "name": "Title", // "position": 1, // "values": [ // "First", // "Second" // ] // } // ], // "images": [ // ], // "image": null // } // } Showln "Example Completed." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.