Xbase++
Xbase++
Lightspeed - Get All Products
See more Lightspeed Examples
Retrieve a list of all product objects from this shop.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oSbResponseBody
LOCAL oJResp
LOCAL nRespStatusCode
LOCAL nId
LOCAL nSortOrder
LOCAL cName
LOCAL j
LOCAL nCount_j
LOCAL nProductId
LOCAL cProductCreatedAt
LOCAL cProductUpdatedAt
LOCAL nProductIsVisible
LOCAL cProductVisibility
LOCAL nProductHasMatrix
LOCAL cProductData01
LOCAL cProductData02
LOCAL cProductData03
LOCAL cProductUrl
LOCAL cProductTitle
LOCAL cProductFulltitle
LOCAL cProductDescription
LOCAL cProductContent
LOCAL nProductSetId
LOCAL cProductSetCreatedAt
LOCAL cProductSetUpdatedAt
LOCAL cProductSetName
LOCAL nProductBrandResourceId
LOCAL cProductBrandResourceUrl
LOCAL cProductBrandResourceLink
LOCAL nProductCategoriesResourceId
LOCAL cProductCategoriesResourceUrl
LOCAL cProductCategoriesResourceLink
LOCAL nProductDeliverydateResourceId
LOCAL cProductDeliverydateResourceUrl
LOCAL cProductDeliverydateResourceLink
LOCAL cProductImageCreatedAt
LOCAL cProductImageUpdatedAt
LOCAL cProductImageExtension
LOCAL nProductImageSize
LOCAL cProductImageTitle
LOCAL cProductImageThumb
LOCAL cProductImageSrc
LOCAL nProductImagesResourceId
LOCAL cProductImagesResourceUrl
LOCAL cProductImagesResourceLink
LOCAL nProductRelationsResourceId
LOCAL cProductRelationsResourceUrl
LOCAL cProductRelationsResourceLink
LOCAL nProductMetafieldsResourceId
LOCAL cProductMetafieldsResourceUrl
LOCAL cProductMetafieldsResourceLink
LOCAL nProductReviewsResourceId
LOCAL cProductReviewsResourceUrl
LOCAL cProductReviewsResourceLink
LOCAL nProductType
LOCAL nProductAttributesResourceId
LOCAL cProductAttributesResourceUrl
LOCAL cProductAttributesResourceLink
LOCAL nProductSupplierResourceId
LOCAL cProductSupplierResourceUrl
LOCAL cProductSupplierResourceLink
LOCAL nProductTagsResourceId
LOCAL cProductTagsResourceUrl
LOCAL cProductTagsResourceLink
LOCAL nProductVariantsResourceId
LOCAL cProductVariantsResourceUrl
LOCAL cProductVariantsResourceLink
LOCAL nProductMovementsResourceId
LOCAL cProductMovementsResourceUrl
LOCAL cProductMovementsResourceLink
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 https://api.shoplightspeed.com/en/products.json \
// -u {key}:{secret}
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
oHttp:Login := "API_KEY"
oHttp:Password := "API_SECRET"
// Use the correct cluster for your shop. Here are the choices:
// eu1 https://api.webshopapp.com/en/
// us1 https://api.shoplightspeed.com/en/
oSbResponseBody := CreateObject("Chilkat.StringBuilder")
nSuccess := oHttp:QuickGetSb("https://api.webshopapp.com/en/products.json", oSbResponseBody)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oSbResponseBody:destroy()
RETURN
ENDIF
oJResp := CreateObject("Chilkat.JsonObject")
oJResp:LoadSb(oSbResponseBody)
oJResp:EmitCompact := 0
? "Response Body:"
? oJResp:Emit()
nRespStatusCode := oHttp:LastStatus
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
? "Response Header:"
? oHttp:LastHeader
? "Failed."
oHttp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()
RETURN
ENDIF
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "product": {
// "id": 20967267,
// "createdAt": "2019-05-28T15:25:46+00:00",
// "updatedAt": "2019-05-28T17:16:16+00:00",
// "isVisible": true,
// "visibility": "visible",
// "hasMatrix": false,
// "data01": "",
// "data02": "",
// "data03": "",
// "url": "lookin-sharp-tee",
// "title": "Lookin' Sharp T-Shirt",
// "fulltitle": "Lookin' Sharp T-Shirt",
// "description": "Description of the Lookin' Sharp T-Shirt",
// "content": "<p>Long Description of the Lookin' Sharp T-Shirt</p>",
// "set": {
// "id": 2785,
// "createdAt": "2019-05-28T15:32:12+00:00",
// "updatedAt": "2019-05-28T15:42:59+00:00",
// "name": "Shirts",
// "options": [
// {
// "id": 4626,
// "sortOrder": 1,
// "name": "Size",
// "values": [
// {
// "id": 14045,
// "sortOrder": 1,
// "name": "S"
// },
// {
// "id": 14046,
// "sortOrder": 2,
// "name": "M"
// },
// {
// "id": 14047,
// "sortOrder": 3,
// "name": "L"
// }
// ]
// }
// ]
// },
// "brand": {
// "resource": {
// "id": 1171202,
// "url": "brands/1171202",
// "link": "https://api.shoplightspeed.com/us/brands/1171202.json"
// }
// },
// "categories": {
// "resource": {
// "id": false,
// "url": "categories/products?product=20967267",
// "link": "https://api.shoplightspeed.com/us/categories/products.json?product=20967267"
// }
// },
// "deliverydate": {
// "resource": {
// "id": 6488,
// "url": "deliverydates/6488",
// "link": "https://api.shoplightspeed.com/us/deliverydates/6488.json"
// }
// },
// "image": {
// "createdAt": "2019-05-28T15:25:46+00:00",
// "updatedAt": "2019-05-28T15:25:46+00:00",
// "extension": "jpg",
// "size": 86649,
// "title": "17x35x-jcfk-88na-udwd-5hck-z63u-img-16-e0aa4f57-f4",
// "thumb": "https://cdn.shoplightspeed.com/shops/000001/files/14119398/50x50x2/17x35x-jcfk-88na-udwd-5hck-z63u-img-16-e0aa4f57-f4.jpg",
// "src": "https://cdn.shoplightspeed.com/shops/000001/files/14119398/17x35x-jcfk-88na-udwd-5hck-z63u-img-16-e0aa4f57-f4.jpg"
// },
// "images": {
// "resource": {
// "id": false,
// "url": "products/20967267/images",
// "link": "https://api.shoplightspeed.com/us/products/20967267/images.json"
// }
// },
// "relations": {
// "resource": {
// "id": false,
// "url": "products/20967267/relations",
// "link": "https://api.shoplightspeed.com/us/products/20967267/relations.json"
// }
// },
// "metafields": {
// "resource": {
// "id": false,
// "url": "products/20967267/metafields",
// "link": "https://api.shoplightspeed.com/us/products/20967267/metafields.json"
// }
// },
// "reviews": {
// "resource": {
// "id": false,
// "url": "reviews?product=20967267",
// "link": "https://api.shoplightspeed.com/us/reviews.json?product=20967267"
// }
// },
// "type": false,
// "attributes": {
// "resource": {
// "id": false,
// "url": "products/20967267/attributes",
// "link": "https://api.shoplightspeed.com/us/products/20967267/attributes.json"
// }
// },
// "supplier": {
// "resource": {
// "id": 78794,
// "url": "suppliers/78794",
// "link": "https://api.shoplightspeed.com/us/suppliers/78794.json"
// }
// },
// "tags": {
// "resource": {
// "id": false,
// "url": "tags/products?product=20967267",
// "link": "https://api.shoplightspeed.com/us/tags/products.json?product=20967267"
// }
// },
// "variants": {
// "resource": {
// "id": false,
// "url": "variants?product=20967267",
// "link": "https://api.shoplightspeed.com/us/variants.json?product=20967267"
// }
// },
// "movements": {
// "resource": {
// "id": false,
// "url": "variants/movements?product=20967267",
// "link": "https://api.shoplightspeed.com/us/variants/movements.json?product=20967267"
// }
// }
// }
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
nProductId := oJResp:IntOf("product.id")
cProductCreatedAt := oJResp:StringOf("product.createdAt")
cProductUpdatedAt := oJResp:StringOf("product.updatedAt")
nProductIsVisible := oJResp:BoolOf("product.isVisible")
cProductVisibility := oJResp:StringOf("product.visibility")
nProductHasMatrix := oJResp:BoolOf("product.hasMatrix")
cProductData01 := oJResp:StringOf("product.data01")
cProductData02 := oJResp:StringOf("product.data02")
cProductData03 := oJResp:StringOf("product.data03")
cProductUrl := oJResp:StringOf("product.url")
cProductTitle := oJResp:StringOf("product.title")
cProductFulltitle := oJResp:StringOf("product.fulltitle")
cProductDescription := oJResp:StringOf("product.description")
cProductContent := oJResp:StringOf("product.content")
nProductSetId := oJResp:IntOf("product.set.id")
cProductSetCreatedAt := oJResp:StringOf("product.set.createdAt")
cProductSetUpdatedAt := oJResp:StringOf("product.set.updatedAt")
cProductSetName := oJResp:StringOf("product.set.name")
nProductBrandResourceId := oJResp:IntOf("product.brand.resource.id")
cProductBrandResourceUrl := oJResp:StringOf("product.brand.resource.url")
cProductBrandResourceLink := oJResp:StringOf("product.brand.resource.link")
nProductCategoriesResourceId := oJResp:BoolOf("product.categories.resource.id")
cProductCategoriesResourceUrl := oJResp:StringOf("product.categories.resource.url")
cProductCategoriesResourceLink := oJResp:StringOf("product.categories.resource.link")
nProductDeliverydateResourceId := oJResp:IntOf("product.deliverydate.resource.id")
cProductDeliverydateResourceUrl := oJResp:StringOf("product.deliverydate.resource.url")
cProductDeliverydateResourceLink := oJResp:StringOf("product.deliverydate.resource.link")
cProductImageCreatedAt := oJResp:StringOf("product.image.createdAt")
cProductImageUpdatedAt := oJResp:StringOf("product.image.updatedAt")
cProductImageExtension := oJResp:StringOf("product.image.extension")
nProductImageSize := oJResp:IntOf("product.image.size")
cProductImageTitle := oJResp:StringOf("product.image.title")
cProductImageThumb := oJResp:StringOf("product.image.thumb")
cProductImageSrc := oJResp:StringOf("product.image.src")
nProductImagesResourceId := oJResp:BoolOf("product.images.resource.id")
cProductImagesResourceUrl := oJResp:StringOf("product.images.resource.url")
cProductImagesResourceLink := oJResp:StringOf("product.images.resource.link")
nProductRelationsResourceId := oJResp:BoolOf("product.relations.resource.id")
cProductRelationsResourceUrl := oJResp:StringOf("product.relations.resource.url")
cProductRelationsResourceLink := oJResp:StringOf("product.relations.resource.link")
nProductMetafieldsResourceId := oJResp:BoolOf("product.metafields.resource.id")
cProductMetafieldsResourceUrl := oJResp:StringOf("product.metafields.resource.url")
cProductMetafieldsResourceLink := oJResp:StringOf("product.metafields.resource.link")
nProductReviewsResourceId := oJResp:BoolOf("product.reviews.resource.id")
cProductReviewsResourceUrl := oJResp:StringOf("product.reviews.resource.url")
cProductReviewsResourceLink := oJResp:StringOf("product.reviews.resource.link")
nProductType := oJResp:BoolOf("product.type")
nProductAttributesResourceId := oJResp:BoolOf("product.attributes.resource.id")
cProductAttributesResourceUrl := oJResp:StringOf("product.attributes.resource.url")
cProductAttributesResourceLink := oJResp:StringOf("product.attributes.resource.link")
nProductSupplierResourceId := oJResp:IntOf("product.supplier.resource.id")
cProductSupplierResourceUrl := oJResp:StringOf("product.supplier.resource.url")
cProductSupplierResourceLink := oJResp:StringOf("product.supplier.resource.link")
nProductTagsResourceId := oJResp:BoolOf("product.tags.resource.id")
cProductTagsResourceUrl := oJResp:StringOf("product.tags.resource.url")
cProductTagsResourceLink := oJResp:StringOf("product.tags.resource.link")
nProductVariantsResourceId := oJResp:BoolOf("product.variants.resource.id")
cProductVariantsResourceUrl := oJResp:StringOf("product.variants.resource.url")
cProductVariantsResourceLink := oJResp:StringOf("product.variants.resource.link")
nProductMovementsResourceId := oJResp:BoolOf("product.movements.resource.id")
cProductMovementsResourceUrl := oJResp:StringOf("product.movements.resource.url")
cProductMovementsResourceLink := oJResp:StringOf("product.movements.resource.link")
i := 0
nCount_i := oJResp:SizeOfArray("product.set.options")
DO WHILE i < nCount_i
oJResp:I := i
nId := oJResp:IntOf("product.set.options[i].id")
nSortOrder := oJResp:IntOf("product.set.options[i].sortOrder")
cName := oJResp:StringOf("product.set.options[i].name")
j := 0
nCount_j := oJResp:SizeOfArray("product.set.options[i].values")
DO WHILE j < nCount_j
oJResp:J := j
nId := oJResp:IntOf("product.set.options[i].values[j].id")
nSortOrder := oJResp:IntOf("product.set.options[i].values[j].sortOrder")
cName := oJResp:StringOf("product.set.options[i].values[j].name")
j := j + 1
ENDDO
i := i + 1
ENDDO
oHttp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()