C
C
Lightspeed - Get All Products
See more Lightspeed Examples
Retrieve a list of all product objects from this shop.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkStringBuilder.h>
#include <C_CkJsonObject.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int respStatusCode;
int id;
int sortOrder;
const char *name;
int j;
int count_j;
int productId;
const char *productCreatedAt;
const char *productUpdatedAt;
BOOL productIsVisible;
const char *productVisibility;
BOOL productHasMatrix;
const char *productData01;
const char *productData02;
const char *productData03;
const char *productUrl;
const char *productTitle;
const char *productFulltitle;
const char *productDescription;
const char *productContent;
int productSetId;
const char *productSetCreatedAt;
const char *productSetUpdatedAt;
const char *productSetName;
int productBrandResourceId;
const char *productBrandResourceUrl;
const char *productBrandResourceLink;
BOOL productCategoriesResourceId;
const char *productCategoriesResourceUrl;
const char *productCategoriesResourceLink;
int productDeliverydateResourceId;
const char *productDeliverydateResourceUrl;
const char *productDeliverydateResourceLink;
const char *productImageCreatedAt;
const char *productImageUpdatedAt;
const char *productImageExtension;
int productImageSize;
const char *productImageTitle;
const char *productImageThumb;
const char *productImageSrc;
BOOL productImagesResourceId;
const char *productImagesResourceUrl;
const char *productImagesResourceLink;
BOOL productRelationsResourceId;
const char *productRelationsResourceUrl;
const char *productRelationsResourceLink;
BOOL productMetafieldsResourceId;
const char *productMetafieldsResourceUrl;
const char *productMetafieldsResourceLink;
BOOL productReviewsResourceId;
const char *productReviewsResourceUrl;
const char *productReviewsResourceLink;
BOOL productType;
BOOL productAttributesResourceId;
const char *productAttributesResourceUrl;
const char *productAttributesResourceLink;
int productSupplierResourceId;
const char *productSupplierResourceUrl;
const char *productSupplierResourceLink;
BOOL productTagsResourceId;
const char *productTagsResourceUrl;
const char *productTagsResourceLink;
BOOL productVariantsResourceId;
const char *productVariantsResourceUrl;
const char *productVariantsResourceLink;
BOOL productMovementsResourceId;
const char *productMovementsResourceUrl;
const char *productMovementsResourceLink;
int i;
int count_i;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttp_Create();
// 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
CkHttp_putLogin(http,"API_KEY");
CkHttp_putPassword(http,"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/
sbResponseBody = CkStringBuilder_Create();
success = CkHttp_QuickGetSb(http,"https://api.webshopapp.com/en/products.json",sbResponseBody);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbResponseBody);
return;
}
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
respStatusCode = CkHttp_getLastStatus(http);
printf("Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
printf("Response Header:\n");
printf("%s\n",CkHttp_lastHeader(http));
printf("Failed.\n");
CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
return;
}
// 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
// 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.
productId = CkJsonObject_IntOf(jResp,"product.id");
productCreatedAt = CkJsonObject_stringOf(jResp,"product.createdAt");
productUpdatedAt = CkJsonObject_stringOf(jResp,"product.updatedAt");
productIsVisible = CkJsonObject_BoolOf(jResp,"product.isVisible");
productVisibility = CkJsonObject_stringOf(jResp,"product.visibility");
productHasMatrix = CkJsonObject_BoolOf(jResp,"product.hasMatrix");
productData01 = CkJsonObject_stringOf(jResp,"product.data01");
productData02 = CkJsonObject_stringOf(jResp,"product.data02");
productData03 = CkJsonObject_stringOf(jResp,"product.data03");
productUrl = CkJsonObject_stringOf(jResp,"product.url");
productTitle = CkJsonObject_stringOf(jResp,"product.title");
productFulltitle = CkJsonObject_stringOf(jResp,"product.fulltitle");
productDescription = CkJsonObject_stringOf(jResp,"product.description");
productContent = CkJsonObject_stringOf(jResp,"product.content");
productSetId = CkJsonObject_IntOf(jResp,"product.set.id");
productSetCreatedAt = CkJsonObject_stringOf(jResp,"product.set.createdAt");
productSetUpdatedAt = CkJsonObject_stringOf(jResp,"product.set.updatedAt");
productSetName = CkJsonObject_stringOf(jResp,"product.set.name");
productBrandResourceId = CkJsonObject_IntOf(jResp,"product.brand.resource.id");
productBrandResourceUrl = CkJsonObject_stringOf(jResp,"product.brand.resource.url");
productBrandResourceLink = CkJsonObject_stringOf(jResp,"product.brand.resource.link");
productCategoriesResourceId = CkJsonObject_BoolOf(jResp,"product.categories.resource.id");
productCategoriesResourceUrl = CkJsonObject_stringOf(jResp,"product.categories.resource.url");
productCategoriesResourceLink = CkJsonObject_stringOf(jResp,"product.categories.resource.link");
productDeliverydateResourceId = CkJsonObject_IntOf(jResp,"product.deliverydate.resource.id");
productDeliverydateResourceUrl = CkJsonObject_stringOf(jResp,"product.deliverydate.resource.url");
productDeliverydateResourceLink = CkJsonObject_stringOf(jResp,"product.deliverydate.resource.link");
productImageCreatedAt = CkJsonObject_stringOf(jResp,"product.image.createdAt");
productImageUpdatedAt = CkJsonObject_stringOf(jResp,"product.image.updatedAt");
productImageExtension = CkJsonObject_stringOf(jResp,"product.image.extension");
productImageSize = CkJsonObject_IntOf(jResp,"product.image.size");
productImageTitle = CkJsonObject_stringOf(jResp,"product.image.title");
productImageThumb = CkJsonObject_stringOf(jResp,"product.image.thumb");
productImageSrc = CkJsonObject_stringOf(jResp,"product.image.src");
productImagesResourceId = CkJsonObject_BoolOf(jResp,"product.images.resource.id");
productImagesResourceUrl = CkJsonObject_stringOf(jResp,"product.images.resource.url");
productImagesResourceLink = CkJsonObject_stringOf(jResp,"product.images.resource.link");
productRelationsResourceId = CkJsonObject_BoolOf(jResp,"product.relations.resource.id");
productRelationsResourceUrl = CkJsonObject_stringOf(jResp,"product.relations.resource.url");
productRelationsResourceLink = CkJsonObject_stringOf(jResp,"product.relations.resource.link");
productMetafieldsResourceId = CkJsonObject_BoolOf(jResp,"product.metafields.resource.id");
productMetafieldsResourceUrl = CkJsonObject_stringOf(jResp,"product.metafields.resource.url");
productMetafieldsResourceLink = CkJsonObject_stringOf(jResp,"product.metafields.resource.link");
productReviewsResourceId = CkJsonObject_BoolOf(jResp,"product.reviews.resource.id");
productReviewsResourceUrl = CkJsonObject_stringOf(jResp,"product.reviews.resource.url");
productReviewsResourceLink = CkJsonObject_stringOf(jResp,"product.reviews.resource.link");
productType = CkJsonObject_BoolOf(jResp,"product.type");
productAttributesResourceId = CkJsonObject_BoolOf(jResp,"product.attributes.resource.id");
productAttributesResourceUrl = CkJsonObject_stringOf(jResp,"product.attributes.resource.url");
productAttributesResourceLink = CkJsonObject_stringOf(jResp,"product.attributes.resource.link");
productSupplierResourceId = CkJsonObject_IntOf(jResp,"product.supplier.resource.id");
productSupplierResourceUrl = CkJsonObject_stringOf(jResp,"product.supplier.resource.url");
productSupplierResourceLink = CkJsonObject_stringOf(jResp,"product.supplier.resource.link");
productTagsResourceId = CkJsonObject_BoolOf(jResp,"product.tags.resource.id");
productTagsResourceUrl = CkJsonObject_stringOf(jResp,"product.tags.resource.url");
productTagsResourceLink = CkJsonObject_stringOf(jResp,"product.tags.resource.link");
productVariantsResourceId = CkJsonObject_BoolOf(jResp,"product.variants.resource.id");
productVariantsResourceUrl = CkJsonObject_stringOf(jResp,"product.variants.resource.url");
productVariantsResourceLink = CkJsonObject_stringOf(jResp,"product.variants.resource.link");
productMovementsResourceId = CkJsonObject_BoolOf(jResp,"product.movements.resource.id");
productMovementsResourceUrl = CkJsonObject_stringOf(jResp,"product.movements.resource.url");
productMovementsResourceLink = CkJsonObject_stringOf(jResp,"product.movements.resource.link");
i = 0;
count_i = CkJsonObject_SizeOfArray(jResp,"product.set.options");
while (i < count_i) {
CkJsonObject_putI(jResp,i);
id = CkJsonObject_IntOf(jResp,"product.set.options[i].id");
sortOrder = CkJsonObject_IntOf(jResp,"product.set.options[i].sortOrder");
name = CkJsonObject_stringOf(jResp,"product.set.options[i].name");
j = 0;
count_j = CkJsonObject_SizeOfArray(jResp,"product.set.options[i].values");
while (j < count_j) {
CkJsonObject_putJ(jResp,j);
id = CkJsonObject_IntOf(jResp,"product.set.options[i].values[j].id");
sortOrder = CkJsonObject_IntOf(jResp,"product.set.options[i].values[j].sortOrder");
name = CkJsonObject_stringOf(jResp,"product.set.options[i].values[j].name");
j = j + 1;
}
i = i + 1;
}
CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
}