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
(Delphi DLL) Shopify Create New ProductCreate a new product
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StringBuilder, Rest, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var rest: HCkRest; success: Boolean; jsonReq: HCkJsonObject; sbReq: HCkStringBuilder; sbJson: HCkStringBuilder; json: HCkJsonObject; productId: Integer; productTitle: PWideChar; productBody_html: PWideChar; productVendor: PWideChar; productProduct_type: PWideChar; productCreated_at: PWideChar; productHandle: PWideChar; productUpdated_at: PWideChar; productPublished_at: PWideChar; productTemplate_suffix: Boolean; productPublished_scope: PWideChar; productTags: PWideChar; productImageId: Integer; productImageProduct_id: Integer; productImagePosition: Integer; productImageCreated_at: PWideChar; productImageUpdated_at: PWideChar; productImageWidth: Integer; productImageHeight: Integer; productImageSrc: PWideChar; i: Integer; count_i: Integer; id: Integer; product_id: Integer; title: PWideChar; price: PWideChar; sku: PWideChar; position: Integer; grams: Integer; inventory_policy: PWideChar; compare_at_price: Boolean; fulfillment_service: PWideChar; inventory_management: Boolean; option1: PWideChar; option2: Boolean; option3: Boolean; created_at: PWideChar; updated_at: PWideChar; taxable: Boolean; barcode: Boolean; image_id: Boolean; inventory_quantity: Integer; weight: Integer; weight_unit: PWideChar; old_inventory_quantity: Integer; requires_shipping: Boolean; name: PWideChar; j: Integer; count_j: Integer; strVal: PWideChar; width: Integer; height: Integer; src: PWideChar; begin rest := CkRest_Create(); CkRest_SetAuthBasic(rest,'SHOPIFY_PRIVATE_API_KEY','SHOPIFY_PRIVATE_API_SECRET_KEY'); success := CkRest_Connect(rest,'chilkat.myshopify.com',443,True,True); if (success <> True) then begin Memo1.Lines.Add(CkRest__lastErrorText(rest)); Exit; end; // The following code creates the JSON request body. // The JSON created by this code is shown below. jsonReq := CkJsonObject_Create(); CkJsonObject_UpdateString(jsonReq,'product.title','Burton Custom Freestyle 151'); CkJsonObject_UpdateString(jsonReq,'product.body_html','<strong>Good snowboard!</strong>'); CkJsonObject_UpdateString(jsonReq,'product.vendor','Burton'); CkJsonObject_UpdateString(jsonReq,'product.product_type','Snowboard'); CkJsonObject_UpdateString(jsonReq,'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==" // } // ] // } // } sbReq := CkStringBuilder_Create(); CkJsonObject_EmitSb(jsonReq,sbReq); CkRest_AddHeader(rest,'Content-Type','application/json'); sbJson := CkStringBuilder_Create(); success := CkRest_FullRequestSb(rest,'POST','/admin/products.json',sbReq,sbJson); if (success <> True) then begin Memo1.Lines.Add(CkRest__lastErrorText(rest)); Exit; end; if (CkRest_getResponseStatusCode(rest) <> 201) then begin Memo1.Lines.Add('Received error response code: ' + IntToStr(CkRest_getResponseStatusCode(rest))); Memo1.Lines.Add('Response body:'); Memo1.Lines.Add(CkStringBuilder__getAsString(sbJson)); Exit; end; json := CkJsonObject_Create(); CkJsonObject_LoadSb(json,sbJson); // The following code parses the JSON response. // A sample JSON response is shown below the sample code. productId := CkJsonObject_IntOf(json,'product.id'); productTitle := CkJsonObject__stringOf(json,'product.title'); productBody_html := CkJsonObject__stringOf(json,'product.body_html'); productVendor := CkJsonObject__stringOf(json,'product.vendor'); productProduct_type := CkJsonObject__stringOf(json,'product.product_type'); productCreated_at := CkJsonObject__stringOf(json,'product.created_at'); productHandle := CkJsonObject__stringOf(json,'product.handle'); productUpdated_at := CkJsonObject__stringOf(json,'product.updated_at'); productPublished_at := CkJsonObject__stringOf(json,'product.published_at'); productTemplate_suffix := CkJsonObject_IsNullOf(json,'product.template_suffix'); productPublished_scope := CkJsonObject__stringOf(json,'product.published_scope'); productTags := CkJsonObject__stringOf(json,'product.tags'); productImageId := CkJsonObject_IntOf(json,'product.image.id'); productImageProduct_id := CkJsonObject_IntOf(json,'product.image.product_id'); productImagePosition := CkJsonObject_IntOf(json,'product.image.position'); productImageCreated_at := CkJsonObject__stringOf(json,'product.image.created_at'); productImageUpdated_at := CkJsonObject__stringOf(json,'product.image.updated_at'); productImageWidth := CkJsonObject_IntOf(json,'product.image.width'); productImageHeight := CkJsonObject_IntOf(json,'product.image.height'); productImageSrc := CkJsonObject__stringOf(json,'product.image.src'); i := 0; count_i := CkJsonObject_SizeOfArray(json,'product.variants'); while i < count_i do begin CkJsonObject_putI(json,i); id := CkJsonObject_IntOf(json,'product.variants[i].id'); product_id := CkJsonObject_IntOf(json,'product.variants[i].product_id'); title := CkJsonObject__stringOf(json,'product.variants[i].title'); price := CkJsonObject__stringOf(json,'product.variants[i].price'); sku := CkJsonObject__stringOf(json,'product.variants[i].sku'); position := CkJsonObject_IntOf(json,'product.variants[i].position'); grams := CkJsonObject_IntOf(json,'product.variants[i].grams'); inventory_policy := CkJsonObject__stringOf(json,'product.variants[i].inventory_policy'); compare_at_price := CkJsonObject_IsNullOf(json,'product.variants[i].compare_at_price'); fulfillment_service := CkJsonObject__stringOf(json,'product.variants[i].fulfillment_service'); inventory_management := CkJsonObject_IsNullOf(json,'product.variants[i].inventory_management'); option1 := CkJsonObject__stringOf(json,'product.variants[i].option1'); option2 := CkJsonObject_IsNullOf(json,'product.variants[i].option2'); option3 := CkJsonObject_IsNullOf(json,'product.variants[i].option3'); created_at := CkJsonObject__stringOf(json,'product.variants[i].created_at'); updated_at := CkJsonObject__stringOf(json,'product.variants[i].updated_at'); taxable := CkJsonObject_BoolOf(json,'product.variants[i].taxable'); barcode := CkJsonObject_IsNullOf(json,'product.variants[i].barcode'); image_id := CkJsonObject_IsNullOf(json,'product.variants[i].image_id'); inventory_quantity := CkJsonObject_IntOf(json,'product.variants[i].inventory_quantity'); weight := CkJsonObject_IntOf(json,'product.variants[i].weight'); weight_unit := CkJsonObject__stringOf(json,'product.variants[i].weight_unit'); old_inventory_quantity := CkJsonObject_IntOf(json,'product.variants[i].old_inventory_quantity'); requires_shipping := CkJsonObject_BoolOf(json,'product.variants[i].requires_shipping'); i := i + 1; end; i := 0; count_i := CkJsonObject_SizeOfArray(json,'product.options'); while i < count_i do begin CkJsonObject_putI(json,i); id := CkJsonObject_IntOf(json,'product.options[i].id'); product_id := CkJsonObject_IntOf(json,'product.options[i].product_id'); name := CkJsonObject__stringOf(json,'product.options[i].name'); position := CkJsonObject_IntOf(json,'product.options[i].position'); j := 0; count_j := CkJsonObject_SizeOfArray(json,'product.options[i].values'); while j < count_j do begin CkJsonObject_putJ(json,j); strVal := CkJsonObject__stringOf(json,'product.options[i].values[j]'); j := j + 1; end; i := i + 1; end; i := 0; count_i := CkJsonObject_SizeOfArray(json,'product.images'); while i < count_i do begin CkJsonObject_putI(json,i); id := CkJsonObject_IntOf(json,'product.images[i].id'); product_id := CkJsonObject_IntOf(json,'product.images[i].product_id'); position := CkJsonObject_IntOf(json,'product.images[i].position'); created_at := CkJsonObject__stringOf(json,'product.images[i].created_at'); updated_at := CkJsonObject__stringOf(json,'product.images[i].updated_at'); width := CkJsonObject_IntOf(json,'product.images[i].width'); height := CkJsonObject_IntOf(json,'product.images[i].height'); src := CkJsonObject__stringOf(json,'product.images[i].src'); j := 0; count_j := CkJsonObject_SizeOfArray(json,'product.images[i].variant_ids'); while j < count_j do begin CkJsonObject_putJ(json,j); j := j + 1; end; i := i + 1; end; i := 0; count_i := CkJsonObject_SizeOfArray(json,'image.product.variant_ids'); while i < count_i do begin CkJsonObject_putI(json,i); i := i + 1; end; // 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": [ // ] // } // } // } Memo1.Lines.Add('Example Completed.'); CkRest_Dispose(rest); CkJsonObject_Dispose(jsonReq); CkStringBuilder_Dispose(sbReq); CkStringBuilder_Dispose(sbJson); CkJsonObject_Dispose(json); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.