Sample code for 30+ languages & platforms
Delphi DLL

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 DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
sbResponseBody: HCkStringBuilder;
jResp: HCkJsonObject;
id: Integer;
mainDetailId: Integer;
supplierId: Integer;
taxId: Integer;
priceGroupId: Integer;
filterGroupId: PWideChar;
configuratorSetId: PWideChar;
name: PWideChar;
description: PWideChar;
descriptionLong: PWideChar;
added: PWideChar;
active: Boolean;
pseudoSales: Integer;
highlight: Boolean;
keywords: PWideChar;
metaTitle: PWideChar;
changed: PWideChar;
priceGroupActive: Boolean;
lastStock: Boolean;
crossBundleLook: Integer;
notification: Boolean;
template: PWideChar;
mode: Integer;
availableFrom: PWideChar;
availableTo: PWideChar;
mainDetailArticleId: Integer;
mainDetailUnitId: Integer;
mainDetailNumber: PWideChar;
mainDetailSupplierNumber: PWideChar;
mainDetailKind: Integer;
mainDetailAdditionalText: PWideChar;
mainDetailActive: Boolean;
mainDetailInStock: Integer;
mainDetailStockMin: PWideChar;
mainDetailLastStock: Boolean;
mainDetailWeight: PWideChar;
mainDetailWidth: PWideChar;
mainDetailLen: PWideChar;
mainDetailHeight: PWideChar;
mainDetailEan: PWideChar;
mainDetailPurchasePrice: PWideChar;
mainDetailPosition: Integer;
mainDetailMinPurchase: Integer;
mainDetailPurchaseSteps: Integer;
mainDetailMaxPurchase: Integer;
mainDetailPurchaseUnit: PWideChar;
mainDetailReferenceUnit: PWideChar;
mainDetailPackUnit: PWideChar;
mainDetailShippingFree: Boolean;
mainDetailReleaseDate: PWideChar;
mainDetailShippingTime: PWideChar;
mainDetailAttributeId: Integer;
mainDetailAttributeArticleDetailId: Integer;
mainDetailAttributeAttr1: PWideChar;
mainDetailAttributeAttr2: PWideChar;
mainDetailAttributeAttr3: PWideChar;
mainDetailAttributeAttr4: PWideChar;
mainDetailAttributeAttr5: PWideChar;
mainDetailAttributeAttr6: PWideChar;
mainDetailAttributeAttr7: PWideChar;
mainDetailAttributeAttr8: PWideChar;
mainDetailAttributeAttr9: PWideChar;
mainDetailAttributeAttr10: PWideChar;
mainDetailAttributeAttr11: PWideChar;
mainDetailAttributeAttr12: PWideChar;
mainDetailAttributeAttr13: PWideChar;
mainDetailAttributeAttr14: PWideChar;
mainDetailAttributeAttr15: PWideChar;
mainDetailAttributeAttr16: PWideChar;
mainDetailAttributeAttr17: PWideChar;
mainDetailAttributeAttr18: PWideChar;
mainDetailAttributeAttr19: PWideChar;
mainDetailAttributeAttr20: PWideChar;
mainDetailAttributeApostroph: PWideChar;
total: Integer;
i: Integer;
count_i: Integer;

begin
success := False;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

http := CkHttp_Create();

CkHttp_putLogin(http,'api_username');
CkHttp_putPassword(http,'api_key');
CkHttp_putBasicAuth(http,True);

sbResponseBody := CkStringBuilder_Create();
success := CkHttp_QuickGetSb(http,'https://my-shopware-shop.com/api/articles?limit=2',sbResponseBody);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

jResp := CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,False);

Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(CkJsonObject__emit(jResp));

// 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 := CkJsonObject_IntOf(jResp,'total');
success := CkJsonObject_BoolOf(jResp,'success');
i := 0;
count_i := CkJsonObject_SizeOfArray(jResp,'data');
while i < count_i do
  begin
    CkJsonObject_putI(jResp,i);
    id := CkJsonObject_IntOf(jResp,'data[i].id');
    mainDetailId := CkJsonObject_IntOf(jResp,'data[i].mainDetailId');
    supplierId := CkJsonObject_IntOf(jResp,'data[i].supplierId');
    taxId := CkJsonObject_IntOf(jResp,'data[i].taxId');
    priceGroupId := CkJsonObject_IntOf(jResp,'data[i].priceGroupId');
    filterGroupId := CkJsonObject__stringOf(jResp,'data[i].filterGroupId');
    configuratorSetId := CkJsonObject__stringOf(jResp,'data[i].configuratorSetId');
    name := CkJsonObject__stringOf(jResp,'data[i].name');
    description := CkJsonObject__stringOf(jResp,'data[i].description');
    descriptionLong := CkJsonObject__stringOf(jResp,'data[i].descriptionLong');
    added := CkJsonObject__stringOf(jResp,'data[i].added');
    active := CkJsonObject_BoolOf(jResp,'data[i].active');
    pseudoSales := CkJsonObject_IntOf(jResp,'data[i].pseudoSales');
    highlight := CkJsonObject_BoolOf(jResp,'data[i].highlight');
    keywords := CkJsonObject__stringOf(jResp,'data[i].keywords');
    metaTitle := CkJsonObject__stringOf(jResp,'data[i].metaTitle');
    changed := CkJsonObject__stringOf(jResp,'data[i].changed');
    priceGroupActive := CkJsonObject_BoolOf(jResp,'data[i].priceGroupActive');
    lastStock := CkJsonObject_BoolOf(jResp,'data[i].lastStock');
    crossBundleLook := CkJsonObject_IntOf(jResp,'data[i].crossBundleLook');
    notification := CkJsonObject_BoolOf(jResp,'data[i].notification');
    template := CkJsonObject__stringOf(jResp,'data[i].template');
    mode := CkJsonObject_IntOf(jResp,'data[i].mode');
    availableFrom := CkJsonObject__stringOf(jResp,'data[i].availableFrom');
    availableTo := CkJsonObject__stringOf(jResp,'data[i].availableTo');
    mainDetailId := CkJsonObject_IntOf(jResp,'data[i].mainDetail.id');
    mainDetailArticleId := CkJsonObject_IntOf(jResp,'data[i].mainDetail.articleId');
    mainDetailUnitId := CkJsonObject_IntOf(jResp,'data[i].mainDetail.unitId');
    mainDetailNumber := CkJsonObject__stringOf(jResp,'data[i].mainDetail.number');
    mainDetailSupplierNumber := CkJsonObject__stringOf(jResp,'data[i].mainDetail.supplierNumber');
    mainDetailKind := CkJsonObject_IntOf(jResp,'data[i].mainDetail.kind');
    mainDetailAdditionalText := CkJsonObject__stringOf(jResp,'data[i].mainDetail.additionalText');
    mainDetailActive := CkJsonObject_BoolOf(jResp,'data[i].mainDetail.active');
    mainDetailInStock := CkJsonObject_IntOf(jResp,'data[i].mainDetail.inStock');
    mainDetailStockMin := CkJsonObject__stringOf(jResp,'data[i].mainDetail.stockMin');
    mainDetailLastStock := CkJsonObject_BoolOf(jResp,'data[i].mainDetail.lastStock');
    mainDetailWeight := CkJsonObject__stringOf(jResp,'data[i].mainDetail.weight');
    mainDetailWidth := CkJsonObject__stringOf(jResp,'data[i].mainDetail.width');
    mainDetailLen := CkJsonObject__stringOf(jResp,'data[i].mainDetail.len');
    mainDetailHeight := CkJsonObject__stringOf(jResp,'data[i].mainDetail.height');
    mainDetailEan := CkJsonObject__stringOf(jResp,'data[i].mainDetail.ean');
    mainDetailPurchasePrice := CkJsonObject__stringOf(jResp,'data[i].mainDetail.purchasePrice');
    mainDetailPosition := CkJsonObject_IntOf(jResp,'data[i].mainDetail.position');
    mainDetailMinPurchase := CkJsonObject_IntOf(jResp,'data[i].mainDetail.minPurchase');
    mainDetailPurchaseSteps := CkJsonObject_IntOf(jResp,'data[i].mainDetail.purchaseSteps');
    mainDetailMaxPurchase := CkJsonObject_IntOf(jResp,'data[i].mainDetail.maxPurchase');
    mainDetailPurchaseUnit := CkJsonObject__stringOf(jResp,'data[i].mainDetail.purchaseUnit');
    mainDetailReferenceUnit := CkJsonObject__stringOf(jResp,'data[i].mainDetail.referenceUnit');
    mainDetailPackUnit := CkJsonObject__stringOf(jResp,'data[i].mainDetail.packUnit');
    mainDetailShippingFree := CkJsonObject_BoolOf(jResp,'data[i].mainDetail.shippingFree');
    mainDetailReleaseDate := CkJsonObject__stringOf(jResp,'data[i].mainDetail.releaseDate');
    mainDetailShippingTime := CkJsonObject__stringOf(jResp,'data[i].mainDetail.shippingTime');
    mainDetailAttributeId := CkJsonObject_IntOf(jResp,'data[i].mainDetail.attribute.id');
    mainDetailAttributeArticleDetailId := CkJsonObject_IntOf(jResp,'data[i].mainDetail.attribute.articleDetailId');
    mainDetailAttributeAttr1 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr1');
    mainDetailAttributeAttr2 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr2');
    mainDetailAttributeAttr3 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr3');
    mainDetailAttributeAttr4 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr4');
    mainDetailAttributeAttr5 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr5');
    mainDetailAttributeAttr6 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr6');
    mainDetailAttributeAttr7 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr7');
    mainDetailAttributeAttr8 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr8');
    mainDetailAttributeAttr9 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr9');
    mainDetailAttributeAttr10 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr10');
    mainDetailAttributeAttr11 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr11');
    mainDetailAttributeAttr12 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr12');
    mainDetailAttributeAttr13 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr13');
    mainDetailAttributeAttr14 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr14');
    mainDetailAttributeAttr15 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr15');
    mainDetailAttributeAttr16 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr16');
    mainDetailAttributeAttr17 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr17');
    mainDetailAttributeAttr18 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr18');
    mainDetailAttributeAttr19 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr19');
    mainDetailAttributeAttr20 := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.attr20');
    mainDetailAttributeApostroph := CkJsonObject__stringOf(jResp,'data[i].mainDetail.attribute.apostroph');
    i := i + 1;
  end;

CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);

end;