Sample code for 30+ languages & platforms
Xbase++

Lightspeed - Get All Products

See more Lightspeed Examples

Retrieve a list of all product objects from this shop.

Chilkat Xbase++ Downloads

Xbase++
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()