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
(Visual FoxPro) Shopify Create a new product with multiple product variantsCreate a new product with multiple product variants
LOCAL loRest LOCAL lnSuccess LOCAL loJsonReq LOCAL loSbReq LOCAL loSbJson LOCAL loJson LOCAL lnProductId LOCAL lcProductTitle LOCAL lcProductBody_html LOCAL lcProductVendor LOCAL lcProductProduct_type LOCAL lcProductCreated_at LOCAL lcProductHandle LOCAL lcProductUpdated_at LOCAL lcProductPublished_at LOCAL lnProductTemplate_suffix LOCAL lcProductPublished_scope LOCAL lcProductTags LOCAL lnProductImage LOCAL i LOCAL lnCount_i LOCAL lnId LOCAL lnProduct_id LOCAL lcTitle LOCAL lcPrice LOCAL lcSku LOCAL lnPosition LOCAL lnGrams LOCAL lcInventory_policy LOCAL lnCompare_at_price LOCAL lcFulfillment_service LOCAL lnInventory_management LOCAL lcOption1 LOCAL lnOption2 LOCAL lnOption3 LOCAL lcCreated_at LOCAL lcUpdated_at LOCAL lnTaxable LOCAL lnBarcode LOCAL lnImage_id LOCAL lnInventory_quantity LOCAL lnWeight LOCAL lcWeight_unit LOCAL lnOld_inventory_quantity LOCAL lnRequires_shipping LOCAL lcName LOCAL j LOCAL lnCount_j LOCAL lcStrVal * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Rest') loRest = CreateObject('Chilkat.Rest') loRest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY") lnSuccess = loRest.Connect("chilkat.myshopify.com",443,1,1) IF (lnSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest CANCEL ENDIF * The following code creates the JSON request body. * The JSON created by this code is shown below. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonReq = CreateObject('Chilkat.JsonObject') loJsonReq.UpdateString("product.title","Burton Custom Freestyle 151") loJsonReq.UpdateString("product.body_html","<strong>Good snowboard!</strong>") loJsonReq.UpdateString("product.vendor","Burton") loJsonReq.UpdateString("product.product_type","Snowboard") loJsonReq.UpdateString("product.variants[0].option1","First") loJsonReq.UpdateString("product.variants[0].price","10.00") loJsonReq.UpdateString("product.variants[0].sku","123") loJsonReq.UpdateString("product.variants[1].option1","Second") loJsonReq.UpdateString("product.variants[1].price","20.00") loJsonReq.UpdateString("product.variants[1].sku","123") * 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" * } * ] * } * } * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbReq = CreateObject('Chilkat.StringBuilder') loJsonReq.EmitSb(loSbReq) loRest.AddHeader("Content-Type","application/json") * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbJson = CreateObject('Chilkat.StringBuilder') lnSuccess = loRest.FullRequestSb("POST","/admin/products.json ",loSbReq,loSbJson) IF (lnSuccess <> 1) THEN ? loRest.LastErrorText RELEASE loRest RELEASE loJsonReq RELEASE loSbReq RELEASE loSbJson CANCEL ENDIF IF (loRest.ResponseStatusCode <> 201) THEN ? "Received error response code: " + STR(loRest.ResponseStatusCode) ? "Response body:" ? loSbJson.GetAsString() RELEASE loRest RELEASE loJsonReq RELEASE loSbReq RELEASE loSbJson CANCEL ENDIF * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.LoadSb(loSbJson) * The following code parses the JSON response. * A sample JSON response is shown below the sample code. lnProductId = loJson.IntOf("product.id") lcProductTitle = loJson.StringOf("product.title") lcProductBody_html = loJson.StringOf("product.body_html") lcProductVendor = loJson.StringOf("product.vendor") lcProductProduct_type = loJson.StringOf("product.product_type") lcProductCreated_at = loJson.StringOf("product.created_at") lcProductHandle = loJson.StringOf("product.handle") lcProductUpdated_at = loJson.StringOf("product.updated_at") lcProductPublished_at = loJson.StringOf("product.published_at") lnProductTemplate_suffix = loJson.IsNullOf("product.template_suffix") lcProductPublished_scope = loJson.StringOf("product.published_scope") lcProductTags = loJson.StringOf("product.tags") lnProductImage = loJson.IsNullOf("product.image") i = 0 lnCount_i = loJson.SizeOfArray("product.variants") DO WHILE i < lnCount_i loJson.I = i lnId = loJson.IntOf("product.variants[i].id") lnProduct_id = loJson.IntOf("product.variants[i].product_id") lcTitle = loJson.StringOf("product.variants[i].title") lcPrice = loJson.StringOf("product.variants[i].price") lcSku = loJson.StringOf("product.variants[i].sku") lnPosition = loJson.IntOf("product.variants[i].position") lnGrams = loJson.IntOf("product.variants[i].grams") lcInventory_policy = loJson.StringOf("product.variants[i].inventory_policy") lnCompare_at_price = loJson.IsNullOf("product.variants[i].compare_at_price") lcFulfillment_service = loJson.StringOf("product.variants[i].fulfillment_service") lnInventory_management = loJson.IsNullOf("product.variants[i].inventory_management") lcOption1 = loJson.StringOf("product.variants[i].option1") lnOption2 = loJson.IsNullOf("product.variants[i].option2") lnOption3 = loJson.IsNullOf("product.variants[i].option3") lcCreated_at = loJson.StringOf("product.variants[i].created_at") lcUpdated_at = loJson.StringOf("product.variants[i].updated_at") lnTaxable = loJson.BoolOf("product.variants[i].taxable") lnBarcode = loJson.IsNullOf("product.variants[i].barcode") lnImage_id = loJson.IsNullOf("product.variants[i].image_id") lnInventory_quantity = loJson.IntOf("product.variants[i].inventory_quantity") lnWeight = loJson.IntOf("product.variants[i].weight") lcWeight_unit = loJson.StringOf("product.variants[i].weight_unit") lnOld_inventory_quantity = loJson.IntOf("product.variants[i].old_inventory_quantity") lnRequires_shipping = loJson.BoolOf("product.variants[i].requires_shipping") i = i + 1 ENDDO i = 0 lnCount_i = loJson.SizeOfArray("product.options") DO WHILE i < lnCount_i loJson.I = i lnId = loJson.IntOf("product.options[i].id") lnProduct_id = loJson.IntOf("product.options[i].product_id") lcName = loJson.StringOf("product.options[i].name") lnPosition = loJson.IntOf("product.options[i].position") j = 0 lnCount_j = loJson.SizeOfArray("product.options[i].values") DO WHILE j < lnCount_j loJson.J = j lcStrVal = loJson.StringOf("product.options[i].values[j]") j = j + 1 ENDDO i = i + 1 ENDDO i = 0 lnCount_i = loJson.SizeOfArray("product.images") DO WHILE i < lnCount_i loJson.I = i i = i + 1 ENDDO * 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 * } * } ? "Example Completed." RELEASE loRest RELEASE loJsonReq RELEASE loSbReq RELEASE loSbJson RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.