Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Shopify Create New ProductCreate a new product
#include <CkRest.h> #include <CkJsonObject.h> #include <CkStringBuilder.h> void ChilkatSample(void) { CkString strOut; CkRest rest; bool success; rest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_SECRET_KEY"); success = rest.Connect("chilkat.myshopify.com",443,true,true); if (success != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // The following code creates the JSON request body. // The JSON created by this code is shown below. CkJsonObject jsonReq; jsonReq.UpdateString("product.title","Burton Custom Freestyle 151"); jsonReq.UpdateString("product.body_html","<strong>Good snowboard!</strong>"); jsonReq.UpdateString("product.vendor","Burton"); jsonReq.UpdateString("product.product_type","Snowboard"); jsonReq.UpdateString("product.images[0].attachment","R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="); // 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", // "images": [ // { // "attachment": "R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" // } // ] // } // } CkStringBuilder sbReq; jsonReq.EmitSb(sbReq); rest.AddHeader("Content-Type","application/json"); CkStringBuilder sbJson; success = rest.FullRequestSb("POST","/admin/products.json",sbReq,sbJson); if (success != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } if (rest.get_ResponseStatusCode() != 201) { strOut.append("Received error response code: "); strOut.appendInt(rest.get_ResponseStatusCode()); strOut.append("\r\n"); strOut.append("Response body:"); strOut.append("\r\n"); strOut.append(sbJson.getAsString()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkJsonObject json; json.LoadSb(sbJson); // The following code parses the JSON response. // A sample JSON response is shown below the sample code. int productId; const char *productTitle = 0; const char *productBody_html = 0; const char *productVendor = 0; const char *productProduct_type = 0; const char *productCreated_at = 0; const char *productHandle = 0; const char *productUpdated_at = 0; const char *productPublished_at = 0; bool productTemplate_suffix; const char *productPublished_scope = 0; const char *productTags = 0; int productImageId; int productImageProduct_id; int productImagePosition; const char *productImageCreated_at = 0; const char *productImageUpdated_at = 0; int productImageWidth; int productImageHeight; const char *productImageSrc = 0; int i; int count_i; int id; int product_id; const char *title = 0; const char *price = 0; const char *sku = 0; int position; int grams; const char *inventory_policy = 0; bool compare_at_price; const char *fulfillment_service = 0; bool inventory_management; const char *option1 = 0; bool option2; bool option3; const char *created_at = 0; const char *updated_at = 0; bool taxable; bool barcode; bool image_id; int inventory_quantity; int weight; const char *weight_unit = 0; int old_inventory_quantity; bool requires_shipping; const char *name = 0; int j; int count_j; const char *strVal = 0; int width; int height; const char *src = 0; productId = json.IntOf("product.id"); productTitle = json.stringOf("product.title"); productBody_html = json.stringOf("product.body_html"); productVendor = json.stringOf("product.vendor"); productProduct_type = json.stringOf("product.product_type"); productCreated_at = json.stringOf("product.created_at"); productHandle = json.stringOf("product.handle"); productUpdated_at = json.stringOf("product.updated_at"); productPublished_at = json.stringOf("product.published_at"); productTemplate_suffix = json.IsNullOf("product.template_suffix"); productPublished_scope = json.stringOf("product.published_scope"); productTags = json.stringOf("product.tags"); productImageId = json.IntOf("product.image.id"); productImageProduct_id = json.IntOf("product.image.product_id"); productImagePosition = json.IntOf("product.image.position"); productImageCreated_at = json.stringOf("product.image.created_at"); productImageUpdated_at = json.stringOf("product.image.updated_at"); productImageWidth = json.IntOf("product.image.width"); productImageHeight = json.IntOf("product.image.height"); productImageSrc = json.stringOf("product.image.src"); i = 0; count_i = json.SizeOfArray("product.variants"); while (i < count_i) { json.put_I(i); id = json.IntOf("product.variants[i].id"); product_id = json.IntOf("product.variants[i].product_id"); title = json.stringOf("product.variants[i].title"); price = json.stringOf("product.variants[i].price"); sku = json.stringOf("product.variants[i].sku"); position = json.IntOf("product.variants[i].position"); grams = json.IntOf("product.variants[i].grams"); inventory_policy = json.stringOf("product.variants[i].inventory_policy"); compare_at_price = json.IsNullOf("product.variants[i].compare_at_price"); fulfillment_service = json.stringOf("product.variants[i].fulfillment_service"); inventory_management = json.IsNullOf("product.variants[i].inventory_management"); option1 = json.stringOf("product.variants[i].option1"); option2 = json.IsNullOf("product.variants[i].option2"); option3 = json.IsNullOf("product.variants[i].option3"); created_at = json.stringOf("product.variants[i].created_at"); updated_at = json.stringOf("product.variants[i].updated_at"); taxable = json.BoolOf("product.variants[i].taxable"); barcode = json.IsNullOf("product.variants[i].barcode"); image_id = json.IsNullOf("product.variants[i].image_id"); inventory_quantity = json.IntOf("product.variants[i].inventory_quantity"); weight = json.IntOf("product.variants[i].weight"); weight_unit = json.stringOf("product.variants[i].weight_unit"); old_inventory_quantity = json.IntOf("product.variants[i].old_inventory_quantity"); requires_shipping = json.BoolOf("product.variants[i].requires_shipping"); i = i + 1; } i = 0; count_i = json.SizeOfArray("product.options"); while (i < count_i) { json.put_I(i); id = json.IntOf("product.options[i].id"); product_id = json.IntOf("product.options[i].product_id"); name = json.stringOf("product.options[i].name"); position = json.IntOf("product.options[i].position"); j = 0; count_j = json.SizeOfArray("product.options[i].values"); while (j < count_j) { json.put_J(j); strVal = json.stringOf("product.options[i].values[j]"); j = j + 1; } i = i + 1; } i = 0; count_i = json.SizeOfArray("product.images"); while (i < count_i) { json.put_I(i); id = json.IntOf("product.images[i].id"); product_id = json.IntOf("product.images[i].product_id"); position = json.IntOf("product.images[i].position"); created_at = json.stringOf("product.images[i].created_at"); updated_at = json.stringOf("product.images[i].updated_at"); width = json.IntOf("product.images[i].width"); height = json.IntOf("product.images[i].height"); src = json.stringOf("product.images[i].src"); j = 0; count_j = json.SizeOfArray("product.images[i].variant_ids"); while (j < count_j) { json.put_J(j); j = j + 1; } i = i + 1; } i = 0; count_i = json.SizeOfArray("image.product.variant_ids"); while (i < count_i) { json.put_I(i); i = i + 1; } // A sample JSON response body that is parsed by the above code: // { // "product": { // "id": 1071559747, // "title": "Burton Custom Freestyle 151", // "body_html": "<strong>Good snowboard!<\/strong>", // "vendor": "Burton", // "product_type": "Snowboard", // "created_at": "2017-09-22T14:48:43-04:00", // "handle": "burton-custom-freestyle-151", // "updated_at": "2017-09-22T14:48:44-04:00", // "published_at": "2017-09-22T14:48:43-04:00", // "template_suffix": null, // "published_scope": "global", // "tags": "", // "variants": [ // { // "id": 1070325218, // "product_id": 1071559747, // "title": "Default Title", // "price": "0.00", // "sku": "", // "position": 1, // "grams": 0, // "inventory_policy": "deny", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": null, // "option1": "Default Title", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:48:44-04:00", // "updated_at": "2017-09-22T14:48:44-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": 1022828903, // "product_id": 1071559747, // "name": "Title", // "position": 1, // "values": [ // "Default Title" // ] // } // ], // "images": [ // { // "id": 1001473945, // "product_id": 1071559747, // "position": 1, // "created_at": "2017-09-22T14:48:43-04:00", // "updated_at": "2017-09-22T14:48:43-04:00", // "width": 1, // "height": 1, // "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/df3e567d6f16d040326c7a0ea29a4f41.gif?v=1506106123", // "variant_ids": [ // ] // } // ], // "image": { // "id": 1001473945, // "product_id": 1071559747, // "position": 1, // "created_at": "2017-09-22T14:48:43-04:00", // "updated_at": "2017-09-22T14:48:43-04:00", // "width": 1, // "height": 1, // "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/df3e567d6f16d040326c7a0ea29a4f41.gif?v=1506106123", // "variant_ids": [ // ] // } // } // } strOut.append("Example Completed."); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.