Sample code for 30+ languages & platforms
Xbase++

WiX - Get all Products in a Store

See more WiX Examples

Gets the first page of products in a store.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL oResp
LOCAL oSbResponseBody
LOCAL oJResp
LOCAL nRespStatusCode
LOCAL cId
LOCAL cName
LOCAL cSlug
LOCAL nVisible
LOCAL cProductType
LOCAL cDescription
LOCAL nStockTrackInventory
LOCAL nStockQuantity
LOCAL nStockInStock
LOCAL cPriceCurrency
LOCAL nPricePrice
LOCAL nPriceDiscountedPrice
LOCAL cPriceFormattedPrice
LOCAL cPriceFormattedDiscountedPrice
LOCAL cPriceDataCurrency
LOCAL nPriceDataPrice
LOCAL nPriceDataDiscountedPrice
LOCAL cPriceDataFormattedPrice
LOCAL cPriceDataFormattedDiscountedPrice
LOCAL nManageVariants
LOCAL cProductPageUrlBase
LOCAL cProductPageUrlPath
LOCAL cNumericId
LOCAL cInventoryItemId
LOCAL cDiscountType
LOCAL nDiscountValue
LOCAL cSku
LOCAL nWeight
LOCAL j
LOCAL nCount_j
LOCAL cText
LOCAL cStrVal
LOCAL nMetadataItems
LOCAL nMetadataOffset
LOCAL nTotalResults
LOCAL i
LOCAL nCount_i

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  Implements the following CURL command:

//  curl -X POST -H "Content-Type: application/json" \
//     -d '{
//    "includeVariants": true
//    }' https://www.wixapis.com/stores/v1/products/query

oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateBool("includeVariants", 1)

oHttp:AuthToken := "ACCESS_TOKEN"

oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://www.wixapis.com/stores/v1/products/query", oJson, "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJson:destroy()
    oResp:destroy()
    RETURN
ENDIF

oSbResponseBody := CreateObject("Chilkat.StringBuilder")
oResp:GetBodySb(oSbResponseBody)
oJResp := CreateObject("Chilkat.JsonObject")
oJResp:LoadSb(oSbResponseBody)
oJResp:EmitCompact := 0

? "Response Body:"
? oJResp:Emit()

nRespStatusCode := oResp:StatusCode
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oResp:Header
    ? "Failed."
    oHttp:destroy()
    oJson:destroy()
    oResp:destroy()
    oSbResponseBody:destroy()
    oJResp:destroy()
    RETURN
ENDIF

//  Sample JSON response:
//  (Sample code for parsing the JSON response is shown below)

//  {
//    "products": [
//      {
//        "id": "58fcbb51-ff87-08ff-d97b-646726676e4a",
//        "name": "webhook test",
//        "slug": "webhook-test",
//        "visible": true,
//        "productType": "physical",
//        "description": "<p>fasdf<\/p>",
//        "stock": {
//          "trackInventory": true,
//          "quantity": 0,
//          "inStock": false
//        },
//        "price": {
//          "currency": "ILS",
//          "price": 234,
//          "discountedPrice": 234,
//          "formatted": {
//            "price": "234.00 ₪",
//            "discountedPrice": "234.00 ₪"
//          }
//        },
//        "priceData": {
//          "currency": "ILS",
//          "price": 234,
//          "discountedPrice": 234,
//          "formatted": {
//            "price": "234.00 ₪",
//            "discountedPrice": "234.00 ₪"
//          }
//        },
//        "additionalInfoSections": [
//        ],
//        "ribbons": [
//          {
//            "text": "ribby"
//          }
//        ],
//        "media": {
//          "items": [
//          ]
//        },
//        "customTextFields": [
//        ],
//        "manageVariants": true,
//        "productOptions": [
//        ],
//        "productPageUrl": {
//          "base": "https://www.my-website.com/",
//          "path": "/product-page/webhook-test"
//        },
//        "numericId": "1567078000586000",
//        "inventoryItemId": "a70344ae-0078-f700-2684-9b98d99891b5",
//        "discount": {
//          "type": "NONE",
//          "value": 0
//        },
//        "collectionIds": [
//        ],
//        "variants": [
//        ]
//      },
//      {
//        "id": "6507fd67-94e5-10af-73e4-d2167852d5bc",
//        "name": "digital product",
//        "slug": "digital-product",
//        "visible": true,
//        "productType": "digital",
//        "description": "",
//        "sku": "",
//        "weight": 0,
//        "stock": {
//          "trackInventory": false,
//          "inStock": true
//        },
//        "price": {
//          "currency": "ILS",
//          "price": 123,
//          "discountedPrice": 123,
//          "formatted": {
//            "price": "123.00 ₪",
//            "discountedPrice": "123.00 ₪"
//          }
//        },
//        "priceData": {
//          "currency": "ILS",
//          "price": 123,
//          "discountedPrice": 123,
//          "formatted": {
//            "price": "123.00 ₪",
//            "discountedPrice": "123.00 ₪"
//          }
//        },
//        "additionalInfoSections": [
//        ],
//        "ribbons": [
//        ],
//        "media": {
//          "items": [
//          ]
//        },
//        "customTextFields": [
//        ],
//        "manageVariants": false,
//        "productOptions": [
//        ],
//        "productPageUrl": {
//          "base": "https://www.my-website.com/",
//          "path": "/product-page/digital-product"
//        },
//        "numericId": "1544009414325000",
//        "inventoryItemId": "9af80298-6b1a-ef50-8c1b-2de987ad2a43",
//        "discount": {
//          "type": "NONE",
//          "value": 0
//        },
//        "collectionIds": [
//          "ae886d55-2572-eee8-b2c4-13219844b5e4"
//        ],
//        "variants": [
//        ]
//      }
//    ],
//    "metadata": {
//      "items": 100,
//      "offset": 0
//    },
//    "totalResults": 2
//  }

//  Sample code for parsing the JSON response...
//  Use the following online tool to generate parsing code from sample JSON:
//  Generate Parsing Code from JSON

nMetadataItems := oJResp:IntOf("metadata.items")
nMetadataOffset := oJResp:IntOf("metadata.offset")
nTotalResults := oJResp:IntOf("totalResults")
i := 0
nCount_i := oJResp:SizeOfArray("products")
DO WHILE i < nCount_i
    oJResp:I := i
    cId := oJResp:StringOf("products[i].id")
    cName := oJResp:StringOf("products[i].name")
    cSlug := oJResp:StringOf("products[i].slug")
    nVisible := oJResp:BoolOf("products[i].visible")
    cProductType := oJResp:StringOf("products[i].productType")
    cDescription := oJResp:StringOf("products[i].description")
    nStockTrackInventory := oJResp:BoolOf("products[i].stock.trackInventory")
    nStockQuantity := oJResp:IntOf("products[i].stock.quantity")
    nStockInStock := oJResp:BoolOf("products[i].stock.inStock")
    cPriceCurrency := oJResp:StringOf("products[i].price.currency")
    nPricePrice := oJResp:IntOf("products[i].price.price")
    nPriceDiscountedPrice := oJResp:IntOf("products[i].price.discountedPrice")
    cPriceFormattedPrice := oJResp:StringOf("products[i].price.formatted.price")
    cPriceFormattedDiscountedPrice := oJResp:StringOf("products[i].price.formatted.discountedPrice")
    cPriceDataCurrency := oJResp:StringOf("products[i].priceData.currency")
    nPriceDataPrice := oJResp:IntOf("products[i].priceData.price")
    nPriceDataDiscountedPrice := oJResp:IntOf("products[i].priceData.discountedPrice")
    cPriceDataFormattedPrice := oJResp:StringOf("products[i].priceData.formatted.price")
    cPriceDataFormattedDiscountedPrice := oJResp:StringOf("products[i].priceData.formatted.discountedPrice")
    nManageVariants := oJResp:BoolOf("products[i].manageVariants")
    cProductPageUrlBase := oJResp:StringOf("products[i].productPageUrl.base")
    cProductPageUrlPath := oJResp:StringOf("products[i].productPageUrl.path")
    cNumericId := oJResp:StringOf("products[i].numericId")
    cInventoryItemId := oJResp:StringOf("products[i].inventoryItemId")
    cDiscountType := oJResp:StringOf("products[i].discount.type")
    nDiscountValue := oJResp:IntOf("products[i].discount.value")
    cSku := oJResp:StringOf("products[i].sku")
    nWeight := oJResp:IntOf("products[i].weight")
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].additionalInfoSections")
    DO WHILE j < nCount_j
        oJResp:J := j
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].ribbons")
    DO WHILE j < nCount_j
        oJResp:J := j
        cText := oJResp:StringOf("products[i].ribbons[j].text")
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].media.items")
    DO WHILE j < nCount_j
        oJResp:J := j
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].customTextFields")
    DO WHILE j < nCount_j
        oJResp:J := j
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].productOptions")
    DO WHILE j < nCount_j
        oJResp:J := j
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].collectionIds")
    DO WHILE j < nCount_j
        oJResp:J := j
        cStrVal := oJResp:StringOf("products[i].collectionIds[j]")
        j := j + 1
    ENDDO
    j := 0
    nCount_j := oJResp:SizeOfArray("products[i].variants")
    DO WHILE j < nCount_j
        oJResp:J := j
        j := j + 1
    ENDDO
    i := i + 1
ENDDO

oHttp:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()