Delphi ActiveX
Delphi ActiveX
Shopware List Articles
See more Shopware Examples
This example shows you how to obtain information about a Shopware product list. With the optional limit parameter, it's possible to specify how many products you wish the API call to return.Chilkat Delphi ActiveX Downloads
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
success: Integer;
http: TChilkatHttp;
sbResponseBody: TChilkatStringBuilder;
jResp: TChilkatJsonObject;
id: Integer;
mainDetailId: Integer;
supplierId: Integer;
taxId: Integer;
priceGroupId: Integer;
filterGroupId: WideString;
configuratorSetId: WideString;
name: WideString;
description: WideString;
descriptionLong: WideString;
added: WideString;
active: Integer;
pseudoSales: Integer;
highlight: Integer;
keywords: WideString;
metaTitle: WideString;
changed: WideString;
priceGroupActive: Integer;
lastStock: Integer;
crossBundleLook: Integer;
notification: Integer;
template: WideString;
mode: Integer;
availableFrom: WideString;
availableTo: WideString;
mainDetailArticleId: Integer;
mainDetailUnitId: Integer;
mainDetailNumber: WideString;
mainDetailSupplierNumber: WideString;
mainDetailKind: Integer;
mainDetailAdditionalText: WideString;
mainDetailActive: Integer;
mainDetailInStock: Integer;
mainDetailStockMin: WideString;
mainDetailLastStock: Integer;
mainDetailWeight: WideString;
mainDetailWidth: WideString;
mainDetailLen: WideString;
mainDetailHeight: WideString;
mainDetailEan: WideString;
mainDetailPurchasePrice: WideString;
mainDetailPosition: Integer;
mainDetailMinPurchase: Integer;
mainDetailPurchaseSteps: Integer;
mainDetailMaxPurchase: Integer;
mainDetailPurchaseUnit: WideString;
mainDetailReferenceUnit: WideString;
mainDetailPackUnit: WideString;
mainDetailShippingFree: Integer;
mainDetailReleaseDate: WideString;
mainDetailShippingTime: WideString;
mainDetailAttributeId: Integer;
mainDetailAttributeArticleDetailId: Integer;
mainDetailAttributeAttr1: WideString;
mainDetailAttributeAttr2: WideString;
mainDetailAttributeAttr3: WideString;
mainDetailAttributeAttr4: WideString;
mainDetailAttributeAttr5: WideString;
mainDetailAttributeAttr6: WideString;
mainDetailAttributeAttr7: WideString;
mainDetailAttributeAttr8: WideString;
mainDetailAttributeAttr9: WideString;
mainDetailAttributeAttr10: WideString;
mainDetailAttributeAttr11: WideString;
mainDetailAttributeAttr12: WideString;
mainDetailAttributeAttr13: WideString;
mainDetailAttributeAttr14: WideString;
mainDetailAttributeAttr15: WideString;
mainDetailAttributeAttr16: WideString;
mainDetailAttributeAttr17: WideString;
mainDetailAttributeAttr18: WideString;
mainDetailAttributeAttr19: WideString;
mainDetailAttributeAttr20: WideString;
mainDetailAttributeApostroph: WideString;
total: Integer;
i: Integer;
count_i: Integer;
begin
success := 0;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
http.Login := 'api_username';
http.Password := 'api_key';
http.BasicAuth := 1;
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := http.QuickGetSb('https://my-shopware-shop.com/api/articles?limit=2',sbResponseBody.ControlInterface);
if (success = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
jResp := TChilkatJsonObject.Create(Self);
jResp.LoadSb(sbResponseBody.ControlInterface);
jResp.EmitCompact := 0;
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(jResp.Emit());
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "data": [
// {
// "id": 8283,
// "mainDetailId": 11398,
// "supplierId": 28,
// "taxId": 1,
// "priceGroupId": 1,
// "filterGroupId": null,
// "configuratorSetId": null,
// "name": "TERRA PC-GAMER 8000 iQ9650 VU - \u00e5\u00a0 \u00c7 Produktmer",
// "description": "TERRA PC-GAMER 8000 iQ9650 VU - \u00e5\u00a0 \u00c7 Produktmer",
// "descriptionLong": "...",
// "added": "2000-01-01T00:00:00+0100",
// "active": true,
// "pseudoSales": 0,
// "highlight": false,
// "keywords": null,
// "metaTitle": "TERRA PC-GAMER 8000 iQ9650 VU - \u00e5\u00a0 \u00c7 Produktmer",
// "changed": "2021-02-21T18:20:39+0100",
// "priceGroupActive": false,
// "lastStock": false,
// "crossBundleLook": 0,
// "notification": true,
// "template": "",
// "mode": 0,
// "availableFrom": null,
// "availableTo": null,
// "mainDetail": {
// "id": 11398,
// "articleId": 8283,
// "unitId": 9,
// "number": "WT-1000104",
// "supplierNumber": "",
// "kind": 1,
// "additionalText": "",
// "active": true,
// "inStock": 28,
// "stockMin": null,
// "lastStock": false,
// "weight": "0.000",
// "width": null,
// "len": null,
// "height": null,
// "ean": "4039407005390",
// "purchasePrice": "0",
// "position": 1,
// "minPurchase": 1,
// "purchaseSteps": 0,
// "maxPurchase": 0,
// "purchaseUnit": "0.0000",
// "referenceUnit": "1.000",
// "packUnit": "Stk",
// "shippingFree": false,
// "releaseDate": null,
// "shippingTime": "20",
// "attribute": {
// "id": 11271,
// "articleDetailId": 11398,
// "attr1": null,
// "attr2": null,
// "attr3": null,
// "attr4": null,
// "attr5": null,
// "attr6": null,
// "attr7": null,
// "attr8": null,
// "attr9": null,
// "attr10": null,
// "attr11": "Attributfeld 11 deutsch",
// "attr12": null,
// "attr13": null,
// "attr14": "Wortmann - 80061",
// "attr15": null,
// "attr16": null,
// "attr17": "21.02.2021 18:36:46",
// "attr18": null,
// "attr19": "21.02.2021 18:36:46",
// "attr20": "0,00",
// "apostroph": ""
// }
// }
// },
// {
// "id": 8284,
// "mainDetailId": 11399,
// "supplierId": 28,
// "taxId": 1,
// "priceGroupId": 1,
// "filterGroupId": null,
// "configuratorSetId": null,
// "name": "TERRA PC-GAMER 9000 iE5420 VU\rProduktmer",
// "description": "TERRA PC-GAMER 9000 iE5420 VU\rProduktmer",
// "descriptionLong": "...",
// "added": "2000-01-01T00:00:00+0100",
// "active": true,
// "pseudoSales": 0,
// "highlight": false,
// "keywords": null,
// "metaTitle": "TERRA PC-GAMER 9000 iE5420 VU\rProduktmer",
// "changed": "2021-02-21T18:20:35+0100",
// "priceGroupActive": false,
// "lastStock": true,
// "crossBundleLook": 0,
// "notification": true,
// "template": "",
// "mode": 0,
// "availableFrom": null,
// "availableTo": null,
// "mainDetail": {
// "id": 11399,
// "articleId": 8284,
// "unitId": 9,
// "number": "WT-1000105",
// "supplierNumber": "",
// "kind": 1,
// "additionalText": "",
// "active": true,
// "inStock": 0,
// "stockMin": null,
// "lastStock": true,
// "weight": "0.000",
// "width": null,
// "len": null,
// "height": null,
// "ean": "4039407006137",
// "purchasePrice": "0",
// "position": 1,
// "minPurchase": 1,
// "purchaseSteps": 0,
// "maxPurchase": 0,
// "purchaseUnit": "0.0000",
// "referenceUnit": "1.000",
// "packUnit": "Stk",
// "shippingFree": false,
// "releaseDate": null,
// "shippingTime": "20",
// "attribute": {
// "id": 11272,
// "articleDetailId": 11399,
// "attr1": null,
// "attr2": null,
// "attr3": null,
// "attr4": null,
// "attr5": null,
// "attr6": null,
// "attr7": null,
// "attr8": null,
// "attr9": null,
// "attr10": null,
// "attr11": "Attributfeld 11 deutsch",
// "attr12": null,
// "attr13": null,
// "attr14": "Wortmann - 80061",
// "attr15": null,
// "attr16": null,
// "attr17": "21.02.2021 18:36:50",
// "attr18": null,
// "attr19": "21.02.2021 18:36:50",
// "attr20": "0,00",
// "apostroph": ""
// }
// }
// }
// ],
// "total": 9,
// "success": true
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
total := jResp.IntOf('total');
success := jResp.BoolOf('success');
i := 0;
count_i := jResp.SizeOfArray('data');
while i < count_i do
begin
jResp.I := i;
id := jResp.IntOf('data[i].id');
mainDetailId := jResp.IntOf('data[i].mainDetailId');
supplierId := jResp.IntOf('data[i].supplierId');
taxId := jResp.IntOf('data[i].taxId');
priceGroupId := jResp.IntOf('data[i].priceGroupId');
filterGroupId := jResp.StringOf('data[i].filterGroupId');
configuratorSetId := jResp.StringOf('data[i].configuratorSetId');
name := jResp.StringOf('data[i].name');
description := jResp.StringOf('data[i].description');
descriptionLong := jResp.StringOf('data[i].descriptionLong');
added := jResp.StringOf('data[i].added');
active := jResp.BoolOf('data[i].active');
pseudoSales := jResp.IntOf('data[i].pseudoSales');
highlight := jResp.BoolOf('data[i].highlight');
keywords := jResp.StringOf('data[i].keywords');
metaTitle := jResp.StringOf('data[i].metaTitle');
changed := jResp.StringOf('data[i].changed');
priceGroupActive := jResp.BoolOf('data[i].priceGroupActive');
lastStock := jResp.BoolOf('data[i].lastStock');
crossBundleLook := jResp.IntOf('data[i].crossBundleLook');
notification := jResp.BoolOf('data[i].notification');
template := jResp.StringOf('data[i].template');
mode := jResp.IntOf('data[i].mode');
availableFrom := jResp.StringOf('data[i].availableFrom');
availableTo := jResp.StringOf('data[i].availableTo');
mainDetailId := jResp.IntOf('data[i].mainDetail.id');
mainDetailArticleId := jResp.IntOf('data[i].mainDetail.articleId');
mainDetailUnitId := jResp.IntOf('data[i].mainDetail.unitId');
mainDetailNumber := jResp.StringOf('data[i].mainDetail.number');
mainDetailSupplierNumber := jResp.StringOf('data[i].mainDetail.supplierNumber');
mainDetailKind := jResp.IntOf('data[i].mainDetail.kind');
mainDetailAdditionalText := jResp.StringOf('data[i].mainDetail.additionalText');
mainDetailActive := jResp.BoolOf('data[i].mainDetail.active');
mainDetailInStock := jResp.IntOf('data[i].mainDetail.inStock');
mainDetailStockMin := jResp.StringOf('data[i].mainDetail.stockMin');
mainDetailLastStock := jResp.BoolOf('data[i].mainDetail.lastStock');
mainDetailWeight := jResp.StringOf('data[i].mainDetail.weight');
mainDetailWidth := jResp.StringOf('data[i].mainDetail.width');
mainDetailLen := jResp.StringOf('data[i].mainDetail.len');
mainDetailHeight := jResp.StringOf('data[i].mainDetail.height');
mainDetailEan := jResp.StringOf('data[i].mainDetail.ean');
mainDetailPurchasePrice := jResp.StringOf('data[i].mainDetail.purchasePrice');
mainDetailPosition := jResp.IntOf('data[i].mainDetail.position');
mainDetailMinPurchase := jResp.IntOf('data[i].mainDetail.minPurchase');
mainDetailPurchaseSteps := jResp.IntOf('data[i].mainDetail.purchaseSteps');
mainDetailMaxPurchase := jResp.IntOf('data[i].mainDetail.maxPurchase');
mainDetailPurchaseUnit := jResp.StringOf('data[i].mainDetail.purchaseUnit');
mainDetailReferenceUnit := jResp.StringOf('data[i].mainDetail.referenceUnit');
mainDetailPackUnit := jResp.StringOf('data[i].mainDetail.packUnit');
mainDetailShippingFree := jResp.BoolOf('data[i].mainDetail.shippingFree');
mainDetailReleaseDate := jResp.StringOf('data[i].mainDetail.releaseDate');
mainDetailShippingTime := jResp.StringOf('data[i].mainDetail.shippingTime');
mainDetailAttributeId := jResp.IntOf('data[i].mainDetail.attribute.id');
mainDetailAttributeArticleDetailId := jResp.IntOf('data[i].mainDetail.attribute.articleDetailId');
mainDetailAttributeAttr1 := jResp.StringOf('data[i].mainDetail.attribute.attr1');
mainDetailAttributeAttr2 := jResp.StringOf('data[i].mainDetail.attribute.attr2');
mainDetailAttributeAttr3 := jResp.StringOf('data[i].mainDetail.attribute.attr3');
mainDetailAttributeAttr4 := jResp.StringOf('data[i].mainDetail.attribute.attr4');
mainDetailAttributeAttr5 := jResp.StringOf('data[i].mainDetail.attribute.attr5');
mainDetailAttributeAttr6 := jResp.StringOf('data[i].mainDetail.attribute.attr6');
mainDetailAttributeAttr7 := jResp.StringOf('data[i].mainDetail.attribute.attr7');
mainDetailAttributeAttr8 := jResp.StringOf('data[i].mainDetail.attribute.attr8');
mainDetailAttributeAttr9 := jResp.StringOf('data[i].mainDetail.attribute.attr9');
mainDetailAttributeAttr10 := jResp.StringOf('data[i].mainDetail.attribute.attr10');
mainDetailAttributeAttr11 := jResp.StringOf('data[i].mainDetail.attribute.attr11');
mainDetailAttributeAttr12 := jResp.StringOf('data[i].mainDetail.attribute.attr12');
mainDetailAttributeAttr13 := jResp.StringOf('data[i].mainDetail.attribute.attr13');
mainDetailAttributeAttr14 := jResp.StringOf('data[i].mainDetail.attribute.attr14');
mainDetailAttributeAttr15 := jResp.StringOf('data[i].mainDetail.attribute.attr15');
mainDetailAttributeAttr16 := jResp.StringOf('data[i].mainDetail.attribute.attr16');
mainDetailAttributeAttr17 := jResp.StringOf('data[i].mainDetail.attribute.attr17');
mainDetailAttributeAttr18 := jResp.StringOf('data[i].mainDetail.attribute.attr18');
mainDetailAttributeAttr19 := jResp.StringOf('data[i].mainDetail.attribute.attr19');
mainDetailAttributeAttr20 := jResp.StringOf('data[i].mainDetail.attribute.attr20');
mainDetailAttributeApostroph := jResp.StringOf('data[i].mainDetail.attribute.apostroph');
i := i + 1;
end;
end;