Sample code for 30+ languages & platforms
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 C++ Downloads

C++
#include <CkHttp.h>
#include <CkStringBuilder.h>
#include <CkJsonObject.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkHttp http;

    http.put_Login("api_username");
    http.put_Password("api_key");
    http.put_BasicAuth(true);

    CkStringBuilder sbResponseBody;
    success = http.QuickGetSb("https://my-shopware-shop.com/api/articles?limit=2",sbResponseBody);
    if (success == false) {
        std::cout << http.lastErrorText() << "\r\n";
        return;
    }

    CkJsonObject jResp;
    jResp.LoadSb(sbResponseBody);
    jResp.put_EmitCompact(false);

    std::cout << "Response Body:" << "\r\n";
    std::cout << jResp.emit() << "\r\n";

    //  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.

    int id;
    int mainDetailId;
    int supplierId;
    int taxId;
    int priceGroupId;
    const char *filterGroupId = 0;
    const char *configuratorSetId = 0;
    const char *name = 0;
    const char *description = 0;
    const char *descriptionLong = 0;
    const char *added = 0;
    bool active;
    int pseudoSales;
    bool highlight;
    const char *keywords = 0;
    const char *metaTitle = 0;
    const char *changed = 0;
    bool priceGroupActive;
    bool lastStock;
    int crossBundleLook;
    bool notification;
    const char *template = 0;
    int mode;
    const char *availableFrom = 0;
    const char *availableTo = 0;
    int mainDetailArticleId;
    int mainDetailUnitId;
    const char *mainDetailNumber = 0;
    const char *mainDetailSupplierNumber = 0;
    int mainDetailKind;
    const char *mainDetailAdditionalText = 0;
    bool mainDetailActive;
    int mainDetailInStock;
    const char *mainDetailStockMin = 0;
    bool mainDetailLastStock;
    const char *mainDetailWeight = 0;
    const char *mainDetailWidth = 0;
    const char *mainDetailLen = 0;
    const char *mainDetailHeight = 0;
    const char *mainDetailEan = 0;
    const char *mainDetailPurchasePrice = 0;
    int mainDetailPosition;
    int mainDetailMinPurchase;
    int mainDetailPurchaseSteps;
    int mainDetailMaxPurchase;
    const char *mainDetailPurchaseUnit = 0;
    const char *mainDetailReferenceUnit = 0;
    const char *mainDetailPackUnit = 0;
    bool mainDetailShippingFree;
    const char *mainDetailReleaseDate = 0;
    const char *mainDetailShippingTime = 0;
    int mainDetailAttributeId;
    int mainDetailAttributeArticleDetailId;
    const char *mainDetailAttributeAttr1 = 0;
    const char *mainDetailAttributeAttr2 = 0;
    const char *mainDetailAttributeAttr3 = 0;
    const char *mainDetailAttributeAttr4 = 0;
    const char *mainDetailAttributeAttr5 = 0;
    const char *mainDetailAttributeAttr6 = 0;
    const char *mainDetailAttributeAttr7 = 0;
    const char *mainDetailAttributeAttr8 = 0;
    const char *mainDetailAttributeAttr9 = 0;
    const char *mainDetailAttributeAttr10 = 0;
    const char *mainDetailAttributeAttr11 = 0;
    const char *mainDetailAttributeAttr12 = 0;
    const char *mainDetailAttributeAttr13 = 0;
    const char *mainDetailAttributeAttr14 = 0;
    const char *mainDetailAttributeAttr15 = 0;
    const char *mainDetailAttributeAttr16 = 0;
    const char *mainDetailAttributeAttr17 = 0;
    const char *mainDetailAttributeAttr18 = 0;
    const char *mainDetailAttributeAttr19 = 0;
    const char *mainDetailAttributeAttr20 = 0;
    const char *mainDetailAttributeApostroph = 0;

    int total = jResp.IntOf("total");
    success = jResp.BoolOf("success");
    int i = 0;
    int count_i = jResp.SizeOfArray("data");
    while (i < count_i) {
        jResp.put_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;
    }
    }