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
(Objective-C) Shopify Create a new product with multiple product variantsCreate a new product with multiple product variants
#import <CkoRest.h> #import <CkoJsonObject.h> #import <CkoStringBuilder.h> #import <NSString.h> CkoRest *rest = [[CkoRest alloc] init]; BOOL success; [rest SetAuthBasic: @"SHOPIFY_PRIVATE_API_KEY" password: @"SHOPIFY_PRIVATE_API_KEY"]; success = [rest Connect: @"chilkat.myshopify.com" port: [NSNumber numberWithInt: 443] tls: YES autoReconnect: YES]; if (success != YES) { NSLog(@"%@",rest.LastErrorText); return; } // The following code creates the JSON request body. // The JSON created by this code is shown below. CkoJsonObject *jsonReq = [[CkoJsonObject alloc] init]; [jsonReq UpdateString: @"product.title" value: @"Burton Custom Freestyle 151"]; [jsonReq UpdateString: @"product.body_html" value: @"<strong>Good snowboard!</strong>"]; [jsonReq UpdateString: @"product.vendor" value: @"Burton"]; [jsonReq UpdateString: @"product.product_type" value: @"Snowboard"]; [jsonReq UpdateString: @"product.variants[0].option1" value: @"First"]; [jsonReq UpdateString: @"product.variants[0].price" value: @"10.00"]; [jsonReq UpdateString: @"product.variants[0].sku" value: @"123"]; [jsonReq UpdateString: @"product.variants[1].option1" value: @"Second"]; [jsonReq UpdateString: @"product.variants[1].price" value: @"20.00"]; [jsonReq UpdateString: @"product.variants[1].sku" value: @"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" // } // ] // } // } CkoStringBuilder *sbReq = [[CkoStringBuilder alloc] init]; [jsonReq EmitSb: sbReq]; [rest AddHeader: @"Content-Type" value: @"application/json"]; CkoStringBuilder *sbJson = [[CkoStringBuilder alloc] init]; success = [rest FullRequestSb: @"POST" uriPath: @"/admin/products.json " requestBody: sbReq responseBody: sbJson]; if (success != YES) { NSLog(@"%@",rest.LastErrorText); return; } if ([rest.ResponseStatusCode intValue] != 201) { NSLog(@"%@%d",@"Received error response code: ",[rest.ResponseStatusCode intValue]); NSLog(@"%@",@"Response body:"); NSLog(@"%@",[sbJson GetAsString]); return; } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json LoadSb: sbJson]; // The following code parses the JSON response. // A sample JSON response is shown below the sample code. int productId; NSString *productTitle = 0; NSString *productBody_html = 0; NSString *productVendor = 0; NSString *productProduct_type = 0; NSString *productCreated_at = 0; NSString *productHandle = 0; NSString *productUpdated_at = 0; NSString *productPublished_at = 0; BOOL productTemplate_suffix; NSString *productPublished_scope = 0; NSString *productTags = 0; BOOL productImage; int i; int count_i; int id; int product_id; NSString *title = 0; NSString *price = 0; NSString *sku = 0; int position; int grams; NSString *inventory_policy = 0; BOOL compare_at_price; NSString *fulfillment_service = 0; BOOL inventory_management; NSString *option1 = 0; BOOL option2; BOOL option3; NSString *created_at = 0; NSString *updated_at = 0; BOOL taxable; BOOL barcode; BOOL image_id; int inventory_quantity; int weight; NSString *weight_unit = 0; int old_inventory_quantity; BOOL requires_shipping; NSString *name = 0; int j; int count_j; NSString *strVal = 0; productId = [[json IntOf: @"product.id"] intValue]; 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"]; productImage = [json IsNullOf: @"product.image"]; i = 0; count_i = [[json SizeOfArray: @"product.variants"] intValue]; while (i < count_i) { json.I = [NSNumber numberWithInt: i]; id = [[json IntOf: @"product.variants[i].id"] intValue]; product_id = [[json IntOf: @"product.variants[i].product_id"] intValue]; 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"] intValue]; grams = [[json IntOf: @"product.variants[i].grams"] intValue]; 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"] intValue]; weight = [[json IntOf: @"product.variants[i].weight"] intValue]; weight_unit = [json StringOf: @"product.variants[i].weight_unit"]; old_inventory_quantity = [[json IntOf: @"product.variants[i].old_inventory_quantity"] intValue]; requires_shipping = [json BoolOf: @"product.variants[i].requires_shipping"]; i = i + 1; } i = 0; count_i = [[json SizeOfArray: @"product.options"] intValue]; while (i < count_i) { json.I = [NSNumber numberWithInt: i]; id = [[json IntOf: @"product.options[i].id"] intValue]; product_id = [[json IntOf: @"product.options[i].product_id"] intValue]; name = [json StringOf: @"product.options[i].name"]; position = [[json IntOf: @"product.options[i].position"] intValue]; j = 0; count_j = [[json SizeOfArray: @"product.options[i].values"] intValue]; while (j < count_j) { json.J = [NSNumber numberWithInt: j]; strVal = [json StringOf: @"product.options[i].values[j]"]; j = j + 1; } i = i + 1; } i = 0; count_i = [[json SizeOfArray: @"product.images"] intValue]; while (i < count_i) { json.I = [NSNumber numberWithInt: i]; i = i + 1; } // 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 // } // } NSLog(@"%@",@"Example Completed."); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.