Xbase++
Xbase++
WiX - Get all Products in a Store
See more WiX Examples
Gets the first page of products in a store.Chilkat Xbase++ Downloads
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()