Unicode C
Unicode C
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 Unicode C Downloads
#include <C_CkHttpW.h>
#include <C_CkStringBuilderW.h>
#include <C_CkJsonObjectW.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttpW http;
HCkStringBuilderW sbResponseBody;
HCkJsonObjectW jResp;
int id;
int mainDetailId;
int supplierId;
int taxId;
int priceGroupId;
const wchar_t *filterGroupId;
const wchar_t *configuratorSetId;
const wchar_t *name;
const wchar_t *description;
const wchar_t *descriptionLong;
const wchar_t *added;
BOOL active;
int pseudoSales;
BOOL highlight;
const wchar_t *keywords;
const wchar_t *metaTitle;
const wchar_t *changed;
BOOL priceGroupActive;
BOOL lastStock;
int crossBundleLook;
BOOL notification;
const wchar_t *template;
int mode;
const wchar_t *availableFrom;
const wchar_t *availableTo;
int mainDetailArticleId;
int mainDetailUnitId;
const wchar_t *mainDetailNumber;
const wchar_t *mainDetailSupplierNumber;
int mainDetailKind;
const wchar_t *mainDetailAdditionalText;
BOOL mainDetailActive;
int mainDetailInStock;
const wchar_t *mainDetailStockMin;
BOOL mainDetailLastStock;
const wchar_t *mainDetailWeight;
const wchar_t *mainDetailWidth;
const wchar_t *mainDetailLen;
const wchar_t *mainDetailHeight;
const wchar_t *mainDetailEan;
const wchar_t *mainDetailPurchasePrice;
int mainDetailPosition;
int mainDetailMinPurchase;
int mainDetailPurchaseSteps;
int mainDetailMaxPurchase;
const wchar_t *mainDetailPurchaseUnit;
const wchar_t *mainDetailReferenceUnit;
const wchar_t *mainDetailPackUnit;
BOOL mainDetailShippingFree;
const wchar_t *mainDetailReleaseDate;
const wchar_t *mainDetailShippingTime;
int mainDetailAttributeId;
int mainDetailAttributeArticleDetailId;
const wchar_t *mainDetailAttributeAttr1;
const wchar_t *mainDetailAttributeAttr2;
const wchar_t *mainDetailAttributeAttr3;
const wchar_t *mainDetailAttributeAttr4;
const wchar_t *mainDetailAttributeAttr5;
const wchar_t *mainDetailAttributeAttr6;
const wchar_t *mainDetailAttributeAttr7;
const wchar_t *mainDetailAttributeAttr8;
const wchar_t *mainDetailAttributeAttr9;
const wchar_t *mainDetailAttributeAttr10;
const wchar_t *mainDetailAttributeAttr11;
const wchar_t *mainDetailAttributeAttr12;
const wchar_t *mainDetailAttributeAttr13;
const wchar_t *mainDetailAttributeAttr14;
const wchar_t *mainDetailAttributeAttr15;
const wchar_t *mainDetailAttributeAttr16;
const wchar_t *mainDetailAttributeAttr17;
const wchar_t *mainDetailAttributeAttr18;
const wchar_t *mainDetailAttributeAttr19;
const wchar_t *mainDetailAttributeAttr20;
const wchar_t *mainDetailAttributeApostroph;
int total;
int i;
int count_i;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
CkHttpW_putLogin(http,L"api_username");
CkHttpW_putPassword(http,L"api_key");
CkHttpW_putBasicAuth(http,TRUE);
sbResponseBody = CkStringBuilderW_Create();
success = CkHttpW_QuickGetSb(http,L"https://my-shopware-shop.com/api/articles?limit=2",sbResponseBody);
if (success == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkStringBuilderW_Dispose(sbResponseBody);
return;
}
jResp = CkJsonObjectW_Create();
CkJsonObjectW_LoadSb(jResp,sbResponseBody);
CkJsonObjectW_putEmitCompact(jResp,FALSE);
wprintf(L"Response Body:\n");
wprintf(L"%s\n",CkJsonObjectW_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
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
// See this example explaining how this memory should be used: const char * functions.
total = CkJsonObjectW_IntOf(jResp,L"total");
success = CkJsonObjectW_BoolOf(jResp,L"success");
i = 0;
count_i = CkJsonObjectW_SizeOfArray(jResp,L"data");
while (i < count_i) {
CkJsonObjectW_putI(jResp,i);
id = CkJsonObjectW_IntOf(jResp,L"data[i].id");
mainDetailId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetailId");
supplierId = CkJsonObjectW_IntOf(jResp,L"data[i].supplierId");
taxId = CkJsonObjectW_IntOf(jResp,L"data[i].taxId");
priceGroupId = CkJsonObjectW_IntOf(jResp,L"data[i].priceGroupId");
filterGroupId = CkJsonObjectW_stringOf(jResp,L"data[i].filterGroupId");
configuratorSetId = CkJsonObjectW_stringOf(jResp,L"data[i].configuratorSetId");
name = CkJsonObjectW_stringOf(jResp,L"data[i].name");
description = CkJsonObjectW_stringOf(jResp,L"data[i].description");
descriptionLong = CkJsonObjectW_stringOf(jResp,L"data[i].descriptionLong");
added = CkJsonObjectW_stringOf(jResp,L"data[i].added");
active = CkJsonObjectW_BoolOf(jResp,L"data[i].active");
pseudoSales = CkJsonObjectW_IntOf(jResp,L"data[i].pseudoSales");
highlight = CkJsonObjectW_BoolOf(jResp,L"data[i].highlight");
keywords = CkJsonObjectW_stringOf(jResp,L"data[i].keywords");
metaTitle = CkJsonObjectW_stringOf(jResp,L"data[i].metaTitle");
changed = CkJsonObjectW_stringOf(jResp,L"data[i].changed");
priceGroupActive = CkJsonObjectW_BoolOf(jResp,L"data[i].priceGroupActive");
lastStock = CkJsonObjectW_BoolOf(jResp,L"data[i].lastStock");
crossBundleLook = CkJsonObjectW_IntOf(jResp,L"data[i].crossBundleLook");
notification = CkJsonObjectW_BoolOf(jResp,L"data[i].notification");
template = CkJsonObjectW_stringOf(jResp,L"data[i].template");
mode = CkJsonObjectW_IntOf(jResp,L"data[i].mode");
availableFrom = CkJsonObjectW_stringOf(jResp,L"data[i].availableFrom");
availableTo = CkJsonObjectW_stringOf(jResp,L"data[i].availableTo");
mainDetailId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.id");
mainDetailArticleId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.articleId");
mainDetailUnitId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.unitId");
mainDetailNumber = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.number");
mainDetailSupplierNumber = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.supplierNumber");
mainDetailKind = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.kind");
mainDetailAdditionalText = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.additionalText");
mainDetailActive = CkJsonObjectW_BoolOf(jResp,L"data[i].mainDetail.active");
mainDetailInStock = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.inStock");
mainDetailStockMin = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.stockMin");
mainDetailLastStock = CkJsonObjectW_BoolOf(jResp,L"data[i].mainDetail.lastStock");
mainDetailWeight = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.weight");
mainDetailWidth = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.width");
mainDetailLen = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.len");
mainDetailHeight = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.height");
mainDetailEan = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.ean");
mainDetailPurchasePrice = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.purchasePrice");
mainDetailPosition = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.position");
mainDetailMinPurchase = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.minPurchase");
mainDetailPurchaseSteps = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.purchaseSteps");
mainDetailMaxPurchase = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.maxPurchase");
mainDetailPurchaseUnit = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.purchaseUnit");
mainDetailReferenceUnit = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.referenceUnit");
mainDetailPackUnit = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.packUnit");
mainDetailShippingFree = CkJsonObjectW_BoolOf(jResp,L"data[i].mainDetail.shippingFree");
mainDetailReleaseDate = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.releaseDate");
mainDetailShippingTime = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.shippingTime");
mainDetailAttributeId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.attribute.id");
mainDetailAttributeArticleDetailId = CkJsonObjectW_IntOf(jResp,L"data[i].mainDetail.attribute.articleDetailId");
mainDetailAttributeAttr1 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr1");
mainDetailAttributeAttr2 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr2");
mainDetailAttributeAttr3 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr3");
mainDetailAttributeAttr4 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr4");
mainDetailAttributeAttr5 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr5");
mainDetailAttributeAttr6 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr6");
mainDetailAttributeAttr7 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr7");
mainDetailAttributeAttr8 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr8");
mainDetailAttributeAttr9 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr9");
mainDetailAttributeAttr10 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr10");
mainDetailAttributeAttr11 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr11");
mainDetailAttributeAttr12 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr12");
mainDetailAttributeAttr13 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr13");
mainDetailAttributeAttr14 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr14");
mainDetailAttributeAttr15 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr15");
mainDetailAttributeAttr16 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr16");
mainDetailAttributeAttr17 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr17");
mainDetailAttributeAttr18 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr18");
mainDetailAttributeAttr19 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr19");
mainDetailAttributeAttr20 = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.attr20");
mainDetailAttributeApostroph = CkJsonObjectW_stringOf(jResp,L"data[i].mainDetail.attribute.apostroph");
i = i + 1;
}
CkHttpW_Dispose(http);
CkStringBuilderW_Dispose(sbResponseBody);
CkJsonObjectW_Dispose(jResp);
}