Lianja
Lianja
Shopify Create a new unpublished product
See more Shopify Examples
Create a new unpublished productChilkat Lianja Downloads
llSuccess = .F.
loRest = createobject("CkRest")
loRest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY")
llSuccess = loRest.Connect("chilkat.myshopify.com",443,.T.,.T.)
if (llSuccess <> .T.) then
? loRest.LastErrorText
release loRest
return
endif
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
loJsonReq = createobject("CkJsonObject")
loJsonReq.UpdateString("product.title","Burton Custom Freestyle 151")
loJsonReq.UpdateString("product.body_html","<strong>Good snowboard!</strong>")
loJsonReq.UpdateString("product.vendor","Burton")
loJsonReq.UpdateString("product.product_type","Snowboard")
loJsonReq.UpdateBool("product.published",.F.)
// The JSON request body created by the above code:
// {
// "product": {
// "title": "Burton Custom Freestyle 151",
// "body_html": "<strong>Good snowboard!<\/strong>",
// "vendor": "Burton",
// "product_type": "Snowboard",
// "published": false
// }
// }
loSbReq = createobject("CkStringBuilder")
loJsonReq.EmitSb(loSbReq)
loRest.AddHeader("Content-Type","application/json")
loSbJson = createobject("CkStringBuilder")
llSuccess = loRest.FullRequestSb("POST","/admin/products.json ",loSbReq,loSbJson)
if (llSuccess <> .T.) then
? loRest.LastErrorText
release loRest
release loJsonReq
release loSbReq
release loSbJson
return
endif
if (loRest.ResponseStatusCode <> 201) then
? "Received error response code: " + str(loRest.ResponseStatusCode)
? "Response body:"
? loSbJson.GetAsString()
release loRest
release loJsonReq
release loSbReq
release loSbJson
return
endif
loJson = createobject("CkJsonObject")
loJson.LoadSb(loSbJson)
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
lnProductId = loJson.IntOf("product.id")
lcProductTitle = loJson.StringOf("product.title")
lcProductBody_html = loJson.StringOf("product.body_html")
lcProductVendor = loJson.StringOf("product.vendor")
lcProductProduct_type = loJson.StringOf("product.product_type")
lcProductCreated_at = loJson.StringOf("product.created_at")
lcProductHandle = loJson.StringOf("product.handle")
lcProductUpdated_at = loJson.StringOf("product.updated_at")
llProductPublished_at = loJson.IsNullOf("product.published_at")
llProductTemplate_suffix = loJson.IsNullOf("product.template_suffix")
lcProductPublished_scope = loJson.StringOf("product.published_scope")
lcProductTags = loJson.StringOf("product.tags")
llProductImage = loJson.IsNullOf("product.image")
i = 0
lnCount_i = loJson.SizeOfArray("product.variants")
do while i < lnCount_i
loJson.I = i
lnId = loJson.IntOf("product.variants[i].id")
lnProduct_id = loJson.IntOf("product.variants[i].product_id")
lcTitle = loJson.StringOf("product.variants[i].title")
lcPrice = loJson.StringOf("product.variants[i].price")
lcSku = loJson.StringOf("product.variants[i].sku")
lnPosition = loJson.IntOf("product.variants[i].position")
lnGrams = loJson.IntOf("product.variants[i].grams")
lcInventory_policy = loJson.StringOf("product.variants[i].inventory_policy")
llCompare_at_price = loJson.IsNullOf("product.variants[i].compare_at_price")
lcFulfillment_service = loJson.StringOf("product.variants[i].fulfillment_service")
llInventory_management = loJson.IsNullOf("product.variants[i].inventory_management")
lcOption1 = loJson.StringOf("product.variants[i].option1")
llOption2 = loJson.IsNullOf("product.variants[i].option2")
llOption3 = loJson.IsNullOf("product.variants[i].option3")
lcCreated_at = loJson.StringOf("product.variants[i].created_at")
lcUpdated_at = loJson.StringOf("product.variants[i].updated_at")
llTaxable = loJson.BoolOf("product.variants[i].taxable")
llBarcode = loJson.IsNullOf("product.variants[i].barcode")
llImage_id = loJson.IsNullOf("product.variants[i].image_id")
lnInventory_quantity = loJson.IntOf("product.variants[i].inventory_quantity")
lnWeight = loJson.IntOf("product.variants[i].weight")
lcWeight_unit = loJson.StringOf("product.variants[i].weight_unit")
lnOld_inventory_quantity = loJson.IntOf("product.variants[i].old_inventory_quantity")
llRequires_shipping = loJson.BoolOf("product.variants[i].requires_shipping")
i = i + 1
enddo
i = 0
lnCount_i = loJson.SizeOfArray("product.options")
do while i < lnCount_i
loJson.I = i
lnId = loJson.IntOf("product.options[i].id")
lnProduct_id = loJson.IntOf("product.options[i].product_id")
lcName = loJson.StringOf("product.options[i].name")
lnPosition = loJson.IntOf("product.options[i].position")
j = 0
lnCount_j = loJson.SizeOfArray("product.options[i].values")
do while j < lnCount_j
loJson.J = j
lcStrVal = loJson.StringOf("product.options[i].values[j]")
j = j + 1
enddo
i = i + 1
enddo
i = 0
lnCount_i = loJson.SizeOfArray("product.images")
do while i < lnCount_i
loJson.I = i
i = i + 1
enddo
// A sample JSON response body that is parsed by the above code:
// {
// "product": {
// "id": 1071559753,
// "title": "Burton Custom Freestyle 151",
// "body_html": "<strong>Good snowboard!<\/strong>",
// "vendor": "Burton",
// "product_type": "Snowboard",
// "created_at": "2017-09-22T14:48:52-04:00",
// "handle": "burton-custom-freestyle-151",
// "updated_at": "2017-09-22T14:48:52-04:00",
// "published_at": null,
// "template_suffix": null,
// "published_scope": "global",
// "tags": "",
// "variants": [
// {
// "id": 1070325224,
// "product_id": 1071559753,
// "title": "Default Title",
// "price": "0.00",
// "sku": "",
// "position": 1,
// "grams": 0,
// "inventory_policy": "deny",
// "compare_at_price": null,
// "fulfillment_service": "manual",
// "inventory_management": null,
// "option1": "Default Title",
// "option2": null,
// "option3": null,
// "created_at": "2017-09-22T14:48:52-04:00",
// "updated_at": "2017-09-22T14:48:52-04:00",
// "taxable": true,
// "barcode": null,
// "image_id": null,
// "inventory_quantity": 1,
// "weight": 0.0,
// "weight_unit": "lb",
// "old_inventory_quantity": 1,
// "requires_shipping": true
// }
// ],
// "options": [
// {
// "id": 1022828912,
// "product_id": 1071559753,
// "name": "Title",
// "position": 1,
// "values": [
// "Default Title"
// ]
// }
// ],
// "images": [
// ],
// "image": null
// }
// }
? "Example Completed."
release loRest
release loJsonReq
release loSbReq
release loSbJson
release loJson