Xbase++
Xbase++
Lightspeed - Create a Product
See more Lightspeed Examples
Create a new product based on the given parameters.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL oResp
LOCAL oSbResponseBody
LOCAL oJResp
LOCAL nRespStatusCode
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 nProductSet
LOCAL nProductBrandResourceId
LOCAL cProductBrandResourceUrl
LOCAL cProductBrandResourceLink
LOCAL nProductCategoriesResourceId
LOCAL cProductCategoriesResourceUrl
LOCAL cProductCategoriesResourceLink
LOCAL nProductDeliverydateResourceId
LOCAL cProductDeliverydateResourceUrl
LOCAL cProductDeliverydateResourceLink
LOCAL nProductImage
LOCAL nProductImages
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
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 -u API_KEY:API_SECRET \
// -H "Content-Type: application/json" \
// -X POST \
// -d '{
// "product": {
// "visibility": "visible",
// "data01": "",
// "data02": "",
// "data03": "",
// "title": "Lookin Sharp T-Shirt",
// "fulltitle": "Lookin Sharp T-Shirt",
// "description": "Description of the Lookin Sharp T-Shirt",
// "content": "Long Description of the Lookin Sharp T-Shirt",
// "deliverydate": 6488,
// "supplier": 78794,
// "brand": 1171202
// }
// }' \
// "https://api.webshopapp.com/en/products.json"
// 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 this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "product": {
// "visibility": "visible",
// "data01": "",
// "data02": "",
// "data03": "",
// "title": "Lookin Sharp T-Shirt",
// "fulltitle": "Lookin Sharp T-Shirt",
// "description": "Description of the Lookin Sharp T-Shirt",
// "content": "Long Description of the Lookin Sharp T-Shirt",
// "deliverydate": 6488,
// "supplier": 78794,
// "brand": 1171202
// }
// }
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("product.visibility", "visible")
oJson:UpdateString("product.data01", "")
oJson:UpdateString("product.data02", "")
oJson:UpdateString("product.data03", "")
oJson:UpdateString("product.title", "Lookin Sharp T-Shirt")
oJson:UpdateString("product.fulltitle", "Lookin Sharp T-Shirt")
oJson:UpdateString("product.description", "Description of the Lookin Sharp T-Shirt")
oJson:UpdateString("product.content", "Long Description of the Lookin Sharp T-Shirt")
oJson:UpdateInt("product.deliverydate", 6488)
oJson:UpdateInt("product.supplier", 78794)
oJson:UpdateInt("product.brand", 1171202)
oHttp:SetRequestHeader("Content-Type", "application/json")
// Use the correct cluster for your shop. Here are the choices:
// eu1 https://api.webshopapp.com/en/
// us1 https://api.shoplightspeed.com/en/
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://api.webshopapp.com/en/products.json", 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)
// {
// "product": {
// "id": 20974460,
// "createdAt": "2019-05-28T20:14:26+00:00",
// "updatedAt": "2019-05-28T20:14:26+00:00",
// "isVisible": true,
// "visibility": "visible",
// "hasMatrix": false,
// "data01": "",
// "data02": "",
// "data03": "",
// "url": "lookin-sharp-t-shirt",
// "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": false,
// "brand": {
// "resource": {
// "id": 1171202,
// "url": "brands/1171202",
// "link": "https://api.shoplightspeed.com/us/brands/1171202.json"
// }
// },
// "categories": {
// "resource": {
// "id": false,
// "url": "categories/products?product=20974460",
// "link": "https://api.shoplightspeed.com/us/categories/products.json?product=20974460"
// }
// },
// "deliverydate": {
// "resource": {
// "id": 6488,
// "url": "deliverydates/6488",
// "link": "https://api.shoplightspeed.com/us/deliverydates/6488.json"
// }
// },
// "image": false,
// "images": false,
// "relations": {
// "resource": {
// "id": false,
// "url": "products/20974460/relations",
// "link": "https://api.shoplightspeed.com/us/products/20974460/relations.json"
// }
// },
// "metafields": {
// "resource": {
// "id": false,
// "url": "products/20974460/metafields",
// "link": "https://api.shoplightspeed.com/us/products/20974460/metafields.json"
// }
// },
// "reviews": {
// "resource": {
// "id": false,
// "url": "reviews?product=20974460",
// "link": "https://api.shoplightspeed.com/us/reviews.json?product=20974460"
// }
// },
// "type": false,
// "attributes": {
// "resource": {
// "id": false,
// "url": "products/20974460/attributes",
// "link": "https://api.shoplightspeed.com/us/products/20974460/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=20974460",
// "link": "https://api.shoplightspeed.com/us/tags/products.json?product=20974460"
// }
// },
// "variants": {
// "resource": {
// "id": false,
// "url": "variants?product=20974460",
// "link": "https://api.shoplightspeed.com/us/variants.json?product=20974460"
// }
// },
// "movements": {
// "resource": {
// "id": false,
// "url": "variants/movements?product=20974460",
// "link": "https://api.shoplightspeed.com/us/variants/movements.json?product=20974460"
// }
// }
// }
// }
// 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")
nProductSet := oJResp:BoolOf("product.set")
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")
nProductImage := oJResp:BoolOf("product.image")
nProductImages := oJResp:BoolOf("product.images")
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")
oHttp:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()