Delphi DLL
Delphi DLL
Shopify Get all products, showing only some attributes
See more Shopify Examples
Get all products, showing only some attributesChilkat Delphi DLL Downloads
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
success: Boolean;
rest: HCkRest;
sbJson: HCkStringBuilder;
json: HCkJsonObject;
i: Integer;
count_i: Integer;
id: Integer;
title: PWideChar;
j: Integer;
count_j: Integer;
product_id: Integer;
position: Integer;
created_at: PWideChar;
updated_at: PWideChar;
width: Integer;
height: Integer;
src: PWideChar;
k: Integer;
count_k: Integer;
intVal: Integer;
begin
success := False;
rest := CkRest_Create();
CkRest_SetAuthBasic(rest,'SHOPIFY_PRIVATE_API_KEY','SHOPIFY_PRIVATE_API_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?fields=id,images,title',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');
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;
i := i + 1;
end;
// A sample JSON response body that is parsed by the above code:
// {
// "products": [
// {
// "id": 632910392,
// "title": "IPod Nano - 8GB",
// "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
// ]
// }
// ]
// },
// {
// "id": 921728736,
// "title": "IPod Touch 8GB",
// "images": [
// ]
// }
// ]
// }
Memo1.Lines.Add('Example Completed.');
CkRest_Dispose(rest);
CkStringBuilder_Dispose(sbJson);
CkJsonObject_Dispose(json);
end;