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 ActiveX) Shopify Create a new unpublished productCreate a new unpublished product
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var rest: TChilkatRest; success: Integer; jsonReq: TChilkatJsonObject; sbReq: TChilkatStringBuilder; sbJson: TChilkatStringBuilder; json: TChilkatJsonObject; productId: Integer; productTitle: WideString; productBody_html: WideString; productVendor: WideString; productProduct_type: WideString; productCreated_at: WideString; productHandle: WideString; productUpdated_at: WideString; productPublished_at: Integer; productTemplate_suffix: Integer; productPublished_scope: WideString; productTags: WideString; productImage: Integer; i: Integer; count_i: Integer; id: Integer; product_id: Integer; title: WideString; price: WideString; sku: WideString; position: Integer; grams: Integer; inventory_policy: WideString; compare_at_price: Integer; fulfillment_service: WideString; inventory_management: Integer; option1: WideString; option2: Integer; option3: Integer; created_at: WideString; updated_at: WideString; taxable: Integer; barcode: Integer; image_id: Integer; inventory_quantity: Integer; weight: Integer; weight_unit: WideString; old_inventory_quantity: Integer; requires_shipping: Integer; name: WideString; j: Integer; count_j: Integer; strVal: WideString; begin rest := TChilkatRest.Create(Self); rest.SetAuthBasic('SHOPIFY_PRIVATE_API_KEY','SHOPIFY_PRIVATE_API_KEY'); success := rest.Connect('chilkat.myshopify.com',443,1,1); if (success <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; // The following code creates the JSON request body. // The JSON created by this code is shown below. jsonReq := TChilkatJsonObject.Create(Self); 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.UpdateBool('product.published',0); // 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", // "published": false // } // } sbReq := TChilkatStringBuilder.Create(Self); jsonReq.EmitSb(sbReq.ControlInterface); rest.AddHeader('Content-Type','application/json'); sbJson := TChilkatStringBuilder.Create(Self); success := rest.FullRequestSb('POST','/admin/products.json ',sbReq.ControlInterface,sbJson.ControlInterface); if (success <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; if (rest.ResponseStatusCode <> 201) then begin Memo1.Lines.Add('Received error response code: ' + IntToStr(rest.ResponseStatusCode)); Memo1.Lines.Add('Response body:'); Memo1.Lines.Add(sbJson.GetAsString()); Exit; end; json := TChilkatJsonObject.Create(Self); json.LoadSb(sbJson.ControlInterface); // The following code parses the JSON response. // A sample JSON response is shown below the sample code. 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.IsNullOf('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'); while i < count_i do begin json.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; end; i := 0; count_i := json.SizeOfArray('product.options'); while i < count_i do begin json.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 do begin json.J := j; strVal := json.StringOf('product.options[i].values[j]'); j := j + 1; end; i := i + 1; end; i := 0; count_i := json.SizeOfArray('product.images'); while i < count_i do begin json.I := i; i := i + 1; end; // A sample JSON response body that is parsed by the above code: // { // "product": { // "id": 1071559753, // "title": "Burton Custom Freestyle 151", // "body_html": "<strong>Good snowboard!<\/strong>", // "vendor": "Burton", // "product_type": "Snowboard", // "created_at": "2017-09-22T14:48:52-04:00", // "handle": "burton-custom-freestyle-151", // "updated_at": "2017-09-22T14:48:52-04:00", // "published_at": null, // "template_suffix": null, // "published_scope": "global", // "tags": "", // "variants": [ // { // "id": 1070325224, // "product_id": 1071559753, // "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:52-04:00", // "updated_at": "2017-09-22T14:48:52-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": 1022828912, // "product_id": 1071559753, // "name": "Title", // "position": 1, // "values": [ // "Default Title" // ] // } // ], // "images": [ // ], // "image": null // } // } Memo1.Lines.Add('Example Completed.'); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.