Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Shopify List ProductsReceive a list of all Products
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; sbJson: HCkStringBuilder; json: HCkJsonObject; i: Integer; count_i: Integer; id: Integer; title: PWideChar; body_html: PWideChar; vendor: PWideChar; product_type: PWideChar; created_at: PWideChar; handle: PWideChar; updated_at: PWideChar; published_at: PWideChar; template_suffix: Boolean; published_scope: PWideChar; tags: PWideChar; imageId: Integer; imageProduct_id: Integer; imagePosition: Integer; imageCreated_at: PWideChar; imageUpdated_at: PWideChar; imageWidth: Integer; imageHeight: Integer; imageSrc: PWideChar; image: Boolean; j: Integer; count_j: Integer; product_id: Integer; price: PWideChar; sku: PWideChar; position: Integer; grams: Integer; inventory_policy: PWideChar; compare_at_price: Boolean; fulfillment_service: PWideChar; inventory_management: PWideChar; option1: PWideChar; option2: Boolean; option3: Boolean; taxable: Boolean; barcode: PWideChar; image_id: Integer; inventory_quantity: Integer; weight: Integer; weight_unit: PWideChar; old_inventory_quantity: Integer; requires_shipping: Boolean; name: PWideChar; k: Integer; count_k: Integer; strVal: PWideChar; width: Integer; height: Integer; src: PWideChar; intVal: Integer; 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; sbJson := CkStringBuilder_Create(); success := CkRest_FullRequestNoBodySb(rest,'GET','/admin/products.json',sbJson); if (success <> True) then begin Memo1.Lines.Add(CkRest__lastErrorText(rest)); Exit; end; if (CkRest_getResponseStatusCode(rest) <> 200) 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. i := 0; count_i := CkJsonObject_SizeOfArray(json,'products'); while i < count_i do begin CkJsonObject_putI(json,i); id := CkJsonObject_IntOf(json,'products[i].id'); title := CkJsonObject__stringOf(json,'products[i].title'); body_html := CkJsonObject__stringOf(json,'products[i].body_html'); vendor := CkJsonObject__stringOf(json,'products[i].vendor'); product_type := CkJsonObject__stringOf(json,'products[i].product_type'); created_at := CkJsonObject__stringOf(json,'products[i].created_at'); handle := CkJsonObject__stringOf(json,'products[i].handle'); updated_at := CkJsonObject__stringOf(json,'products[i].updated_at'); published_at := CkJsonObject__stringOf(json,'products[i].published_at'); template_suffix := CkJsonObject_IsNullOf(json,'products[i].template_suffix'); published_scope := CkJsonObject__stringOf(json,'products[i].published_scope'); tags := CkJsonObject__stringOf(json,'products[i].tags'); imageId := CkJsonObject_IntOf(json,'products[i].image.id'); imageProduct_id := CkJsonObject_IntOf(json,'products[i].image.product_id'); imagePosition := CkJsonObject_IntOf(json,'products[i].image.position'); imageCreated_at := CkJsonObject__stringOf(json,'products[i].image.created_at'); imageUpdated_at := CkJsonObject__stringOf(json,'products[i].image.updated_at'); imageWidth := CkJsonObject_IntOf(json,'products[i].image.width'); imageHeight := CkJsonObject_IntOf(json,'products[i].image.height'); imageSrc := CkJsonObject__stringOf(json,'products[i].image.src'); image := CkJsonObject_IsNullOf(json,'products[i].image'); j := 0; count_j := CkJsonObject_SizeOfArray(json,'products[i].variants'); while j < count_j do begin CkJsonObject_putJ(json,j); id := CkJsonObject_IntOf(json,'products[i].variants[j].id'); product_id := CkJsonObject_IntOf(json,'products[i].variants[j].product_id'); title := CkJsonObject__stringOf(json,'products[i].variants[j].title'); price := CkJsonObject__stringOf(json,'products[i].variants[j].price'); sku := CkJsonObject__stringOf(json,'products[i].variants[j].sku'); position := CkJsonObject_IntOf(json,'products[i].variants[j].position'); grams := CkJsonObject_IntOf(json,'products[i].variants[j].grams'); inventory_policy := CkJsonObject__stringOf(json,'products[i].variants[j].inventory_policy'); compare_at_price := CkJsonObject_IsNullOf(json,'products[i].variants[j].compare_at_price'); fulfillment_service := CkJsonObject__stringOf(json,'products[i].variants[j].fulfillment_service'); inventory_management := CkJsonObject__stringOf(json,'products[i].variants[j].inventory_management'); option1 := CkJsonObject__stringOf(json,'products[i].variants[j].option1'); option2 := CkJsonObject_IsNullOf(json,'products[i].variants[j].option2'); option3 := CkJsonObject_IsNullOf(json,'products[i].variants[j].option3'); created_at := CkJsonObject__stringOf(json,'products[i].variants[j].created_at'); updated_at := CkJsonObject__stringOf(json,'products[i].variants[j].updated_at'); taxable := CkJsonObject_BoolOf(json,'products[i].variants[j].taxable'); barcode := CkJsonObject__stringOf(json,'products[i].variants[j].barcode'); image_id := CkJsonObject_IntOf(json,'products[i].variants[j].image_id'); inventory_quantity := CkJsonObject_IntOf(json,'products[i].variants[j].inventory_quantity'); weight := CkJsonObject_IntOf(json,'products[i].variants[j].weight'); weight_unit := CkJsonObject__stringOf(json,'products[i].variants[j].weight_unit'); old_inventory_quantity := CkJsonObject_IntOf(json,'products[i].variants[j].old_inventory_quantity'); requires_shipping := CkJsonObject_BoolOf(json,'products[i].variants[j].requires_shipping'); j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(json,'products[i].options'); while j < count_j do begin CkJsonObject_putJ(json,j); id := CkJsonObject_IntOf(json,'products[i].options[j].id'); product_id := CkJsonObject_IntOf(json,'products[i].options[j].product_id'); name := CkJsonObject__stringOf(json,'products[i].options[j].name'); position := CkJsonObject_IntOf(json,'products[i].options[j].position'); k := 0; count_k := CkJsonObject_SizeOfArray(json,'products[i].options[j].values'); while k < count_k do begin CkJsonObject_putK(json,k); strVal := CkJsonObject__stringOf(json,'products[i].options[j].values[k]'); k := k + 1; end; j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(json,'products[i].images'); while j < count_j do begin CkJsonObject_putJ(json,j); id := CkJsonObject_IntOf(json,'products[i].images[j].id'); product_id := CkJsonObject_IntOf(json,'products[i].images[j].product_id'); position := CkJsonObject_IntOf(json,'products[i].images[j].position'); created_at := CkJsonObject__stringOf(json,'products[i].images[j].created_at'); updated_at := CkJsonObject__stringOf(json,'products[i].images[j].updated_at'); width := CkJsonObject_IntOf(json,'products[i].images[j].width'); height := CkJsonObject_IntOf(json,'products[i].images[j].height'); src := CkJsonObject__stringOf(json,'products[i].images[j].src'); k := 0; count_k := CkJsonObject_SizeOfArray(json,'products[i].images[j].variant_ids'); while k < count_k do begin CkJsonObject_putK(json,k); intVal := CkJsonObject_IntOf(json,'products[i].images[j].variant_ids[k]'); k := k + 1; end; j := j + 1; end; j := 0; count_j := CkJsonObject_SizeOfArray(json,'products[i].image.variant_ids'); while j < count_j do begin CkJsonObject_putJ(json,j); j := j + 1; end; i := i + 1; end; // A sample JSON response body that is parsed by the above code: // { // "products": [ // { // "id": 632910392, // "title": "IPod Nano - 8GB", // "body_html": "<p>It's the small iPod with one very big idea: Video. Now the world's most popular music player, available in 4GB and 8GB models, lets you enjoy TV shows, movies, video podcasts, and more. The larger, brighter display means amazing picture quality. In six eye-catching colors, iPod nano is stunning all around. And with models starting at just $149, little speaks volumes.<\/p>", // "vendor": "Apple", // "product_type": "Cult Products", // "created_at": "2017-09-22T14:08:02-04:00", // "handle": "ipod-nano", // "updated_at": "2017-09-22T14:08:02-04:00", // "published_at": "2007-12-31T19:00:00-05:00", // "template_suffix": null, // "published_scope": "web", // "tags": "Emotive, Flash Memory, MP3, Music", // "variants": [ // { // "id": 808950810, // "product_id": 632910392, // "title": "Pink", // "price": "199.00", // "sku": "IPOD2008PINK", // "position": 1, // "grams": 567, // "inventory_policy": "continue", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": "shopify", // "option1": "Pink", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "taxable": true, // "barcode": "1234_pink", // "image_id": 562641783, // "inventory_quantity": 10, // "weight": 1.25, // "weight_unit": "lb", // "old_inventory_quantity": 10, // "requires_shipping": true // }, // { // "id": 49148385, // "product_id": 632910392, // "title": "Red", // "price": "199.00", // "sku": "IPOD2008RED", // "position": 2, // "grams": 567, // "inventory_policy": "continue", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": "shopify", // "option1": "Red", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "taxable": true, // "barcode": "1234_red", // "image_id": null, // "inventory_quantity": 20, // "weight": 1.25, // "weight_unit": "lb", // "old_inventory_quantity": 20, // "requires_shipping": true // }, // { // "id": 39072856, // "product_id": 632910392, // "title": "Green", // "price": "199.00", // "sku": "IPOD2008GREEN", // "position": 3, // "grams": 567, // "inventory_policy": "continue", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": "shopify", // "option1": "Green", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "taxable": true, // "barcode": "1234_green", // "image_id": null, // "inventory_quantity": 30, // "weight": 1.25, // "weight_unit": "lb", // "old_inventory_quantity": 30, // "requires_shipping": true // }, // { // "id": 457924702, // "product_id": 632910392, // "title": "Black", // "price": "199.00", // "sku": "IPOD2008BLACK", // "position": 4, // "grams": 567, // "inventory_policy": "continue", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": "shopify", // "option1": "Black", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "taxable": true, // "barcode": "1234_black", // "image_id": null, // "inventory_quantity": 40, // "weight": 1.25, // "weight_unit": "lb", // "old_inventory_quantity": 40, // "requires_shipping": true // } // ], // "options": [ // { // "id": 594680422, // "product_id": 632910392, // "name": "Color", // "position": 1, // "values": [ // "Pink", // "Red", // "Green", // "Black" // ] // } // ], // "images": [ // { // "id": 850703190, // "product_id": 632910392, // "position": 1, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "width": 123, // "height": 456, // "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/ipod-nano.png?v=1506103682", // "variant_ids": [ // ] // }, // { // "id": 562641783, // "product_id": 632910392, // "position": 2, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "width": 123, // "height": 456, // "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/ipod-nano-2.png?v=1506103682", // "variant_ids": [ // 808950810 // ] // } // ], // "image": { // "id": 850703190, // "product_id": 632910392, // "position": 1, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "width": 123, // "height": 456, // "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/ipod-nano.png?v=1506103682", // "variant_ids": [ // ] // } // }, // { // "id": 921728736, // "title": "IPod Touch 8GB", // "body_html": "<p>The iPod Touch has the iPhone's multi-touch interface, with a physical home button off the touch screen. The home screen has a list of buttons for the available applications.<\/p>", // "vendor": "Apple", // "product_type": "Cult Products", // "created_at": "2017-09-22T14:08:02-04:00", // "handle": "ipod-touch", // "updated_at": "2017-09-22T14:08:02-04:00", // "published_at": "2008-09-25T20:00:00-04:00", // "template_suffix": null, // "published_scope": "global", // "tags": "", // "variants": [ // { // "id": 447654529, // "product_id": 921728736, // "title": "Black", // "price": "199.00", // "sku": "IPOD2009BLACK", // "position": 1, // "grams": 567, // "inventory_policy": "continue", // "compare_at_price": null, // "fulfillment_service": "manual", // "inventory_management": "shopify", // "option1": "Black", // "option2": null, // "option3": null, // "created_at": "2017-09-22T14:08:02-04:00", // "updated_at": "2017-09-22T14:08:02-04:00", // "taxable": true, // "barcode": "1234_black", // "image_id": null, // "inventory_quantity": 13, // "weight": 1.25, // "weight_unit": "lb", // "old_inventory_quantity": 13, // "requires_shipping": true // } // ], // "options": [ // { // "id": 891236591, // "product_id": 921728736, // "name": "Title", // "position": 1, // "values": [ // "Black" // ] // } // ], // "images": [ // ], // "image": null // } // ] // } Memo1.Lines.Add('Example Completed.'); CkRest_Dispose(rest); CkStringBuilder_Dispose(sbJson); CkJsonObject_Dispose(json); end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.