Sample code for 30+ languages & platforms
Visual FoxPro

WiX Create Product

See more WiX Examples

Creates a new product.

Note: If you get a 403 error response, try refreshing the access token.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJson
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcOptionType
LOCAL lcName
LOCAL j
LOCAL lnCount_j
LOCAL lcValue
LOCAL lcDescription
LOCAL lnInStock
LOCAL lnVisible
LOCAL lcId
LOCAL lcChoicesSize
LOCAL lcVariantPriceDataCurrency
LOCAL lcVariantPriceDataPrice
LOCAL lcVariantPriceDataDiscountedPrice
LOCAL lcVariantPriceDataFormattedPrice
LOCAL lcVariantPriceDataFormattedDiscountedPrice
LOCAL lnVariantWeight
LOCAL lnVariantVisible
LOCAL lcProductId
LOCAL lcProductName
LOCAL lcProductSlug
LOCAL lnProductVisible
LOCAL lcProductProductType
LOCAL lcProductDescription
LOCAL lnProductStockTrackInventory
LOCAL lnProductStockInStock
LOCAL lcProductPriceCurrency
LOCAL lcProductPricePrice
LOCAL lcProductPriceDiscountedPrice
LOCAL lcProductPriceFormattedPrice
LOCAL lcProductPriceFormattedDiscountedPrice
LOCAL lcProductPriceDataCurrency
LOCAL lcProductPriceDataPrice
LOCAL lcProductPriceDataDiscountedPrice
LOCAL lcProductPriceDataFormattedPrice
LOCAL lcProductPriceDataFormattedDiscountedPrice
LOCAL lnProductManageVariants
LOCAL lcProductProductPageUrlBase
LOCAL lcProductProductPageUrlPath
LOCAL lcProductNumericId
LOCAL lcProductInventoryItemId
LOCAL lcProductDiscountType
LOCAL lnProductDiscountValue
LOCAL i
LOCAL lnCount_i

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* Implements the following CURL command:

* curl -X POST \
*    'https://www.wixapis.com/stores/v1/products' \
*     --data-binary '{
*                      "product": {
*                        "name": "T-shirt",
*                        "productType": "physical",
*                        "priceData": {
*                          "price": 10.5
*                        },
*                        "description": "nice summer t-shirt",
*                        "sku": "123df",
*                        "visible": false,
*                        "weight": 0.2,
*                        "discount": {
*                        	"type": "AMOUNT",
*                        	"value": 1
*                        },
*                        "manageVariants": true,
*                        "productOptions": [
*                          {
*                            "name": "Size",
*                            "choices": [
*                              {
*                                "value": "S",
*                                "description": "S"
*                              },
*                              {
*                                "value": "L",
*                                "description": "L"
*                              }
*                            ]
*                          }
*                        ]
*                      }
*                    }' \
*    -H 'Content-Type: application/json' \
*    -H 'Authorization: <AUTH>'

* Use the following online tool to generate HTTP code from a CURL command
* Convert a cURL Command to HTTP Source Code

* 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": {
*     "name": "T-shirt",
*     "productType": "physical",
*     "priceData": {
*       "price": 10.5
*     },
*     "description": "nice summer t-shirt",
*     "sku": "123df",
*     "visible": false,
*     "weight": 0.2,
*     "discount": {
*       "type": "AMOUNT",
*       "value": 1
*     },
*     "manageVariants": true,
*     "productOptions": [
*       {
*         "name": "Size",
*         "choices": [
*           {
*             "value": "S",
*             "description": "S"
*           },
*           {
*             "value": "L",
*             "description": "L"
*           }
*         ]
*       }
*     ]
*   }
* }

loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("product.name","T-shirt")
loJson.UpdateString("product.productType","physical")
loJson.UpdateNumber("product.priceData.price","10.5")
loJson.UpdateString("product.description","nice summer t-shirt")
loJson.UpdateString("product.sku","123df")
loJson.UpdateBool("product.visible",0)
loJson.UpdateNumber("product.weight","0.2")
loJson.UpdateString("product.discount.type","AMOUNT")
loJson.UpdateInt("product.discount.value",1)
loJson.UpdateBool("product.manageVariants",1)
loJson.UpdateString("product.productOptions[0].name","Size")
loJson.UpdateString("product.productOptions[0].choices[0].value","S")
loJson.UpdateString("product.productOptions[0].choices[0].description","S")
loJson.UpdateString("product.productOptions[0].choices[1].value","L")
loJson.UpdateString("product.productOptions[0].choices[1].description","L")

loHttp.AuthToken = "ACCESS_TOKEN"

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("POST","https://www.wixapis.com/stores/v1/products",loJson,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJson
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loJson
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "product": {
*     "id": "e28e4ddd-6ed0-4098-a5e5-cf4bd9c4f7b5",
*     "name": "T-shirt",
*     "slug": "t-shirt-1",
*     "visible": false,
*     "productType": "physical",
*     "description": "nice summer t-shirt",
*     "stock": {
*       "trackInventory": false,
*       "inStock": true
*     },
*     "price": {
*       "currency": "ILS",
*       "price": 10.5,
*       "discountedPrice": 9.5,
*       "formatted": {
*         "price": "10.50",
*         "discountedPrice": "9.50"
*       }
*     },
*     "priceData": {
*       "currency": "ILS",
*       "price": 10.5,
*       "discountedPrice": 9.5,
*       "formatted": {
*         "price": "10.50",
*         "discountedPrice": "9.50"
*       }
*     },
*     "additionalInfoSections": [
*     ],
*     "ribbons": [
*     ],
*     "media": {
*       "items": [
*       ]
*     },
*     "customTextFields": [
*     ],
*     "manageVariants": true,
*     "productOptions": [
*       {
*         "optionType": "drop_down",
*         "name": "Size",
*         "choices": [
*           {
*             "value": "S",
*             "description": "S",
*             "inStock": true,
*             "visible": true
*           },
*           {
*             "value": "L",
*             "description": "L",
*             "inStock": true,
*             "visible": true
*           }
*         ]
*       }
*     ],
*     "productPageUrl": {
*       "base": "https://www.itsjusttooeasy123.com/",
*       "path": "/product-page/t-shirt-1"
*     },
*     "numericId": "1567588455405000",
*     "inventoryItemId": "1d71b222-912f-bf67-5a1a-30b4263b084a",
*     "discount": {
*       "type": "AMOUNT",
*       "value": 1
*     },
*     "collectionIds": [
*     ],
*     "variants": [
*       {
*         "id": "00000000-0000-0001-0005-93fc95e0514a",
*         "choices": {
*           "Size": "S"
*         },
*         "variant": {
*           "priceData": {
*             "currency": "ILS",
*             "price": 10.5,
*             "discountedPrice": 9.5,
*             "formatted": {
*               "price": "10.50",
*               "discountedPrice": "9.50"
*             }
*           },
*           "weight": 10,
*           "visible": true
*         }
*       },
*       {
*         "id": "00000000-0000-0002-0005-93fc95e0514a",
*         "choices": {
*           "Size": "L"
*         },
*         "variant": {
*           "priceData": {
*             "currency": "ILS",
*             "price": 10.5,
*             "discountedPrice": 9.5,
*             "formatted": {
*               "price": "10.50",
*               "discountedPrice": "9.50"
*             }
*           },
*           "visible": true
*         }
*       }
*     ]
*   }
* }

* Sample code for parsing the JSON response...
* Use the following online tool to generate parsing code from sample JSON:
* Generate Parsing Code from JSON

lcProductId = loJResp.StringOf("product.id")
lcProductName = loJResp.StringOf("product.name")
lcProductSlug = loJResp.StringOf("product.slug")
lnProductVisible = loJResp.BoolOf("product.visible")
lcProductProductType = loJResp.StringOf("product.productType")
lcProductDescription = loJResp.StringOf("product.description")
lnProductStockTrackInventory = loJResp.BoolOf("product.stock.trackInventory")
lnProductStockInStock = loJResp.BoolOf("product.stock.inStock")
lcProductPriceCurrency = loJResp.StringOf("product.price.currency")
lcProductPricePrice = loJResp.StringOf("product.price.price")
lcProductPriceDiscountedPrice = loJResp.StringOf("product.price.discountedPrice")
lcProductPriceFormattedPrice = loJResp.StringOf("product.price.formatted.price")
lcProductPriceFormattedDiscountedPrice = loJResp.StringOf("product.price.formatted.discountedPrice")
lcProductPriceDataCurrency = loJResp.StringOf("product.priceData.currency")
lcProductPriceDataPrice = loJResp.StringOf("product.priceData.price")
lcProductPriceDataDiscountedPrice = loJResp.StringOf("product.priceData.discountedPrice")
lcProductPriceDataFormattedPrice = loJResp.StringOf("product.priceData.formatted.price")
lcProductPriceDataFormattedDiscountedPrice = loJResp.StringOf("product.priceData.formatted.discountedPrice")
lnProductManageVariants = loJResp.BoolOf("product.manageVariants")
lcProductProductPageUrlBase = loJResp.StringOf("product.productPageUrl.base")
lcProductProductPageUrlPath = loJResp.StringOf("product.productPageUrl.path")
lcProductNumericId = loJResp.StringOf("product.numericId")
lcProductInventoryItemId = loJResp.StringOf("product.inventoryItemId")
lcProductDiscountType = loJResp.StringOf("product.discount.type")
lnProductDiscountValue = loJResp.IntOf("product.discount.value")
i = 0
lnCount_i = loJResp.SizeOfArray("product.additionalInfoSections")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.ribbons")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.media.items")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.customTextFields")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.productOptions")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcOptionType = loJResp.StringOf("product.productOptions[i].optionType")
    lcName = loJResp.StringOf("product.productOptions[i].name")
    j = 0
    lnCount_j = loJResp.SizeOfArray("product.productOptions[i].choices")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcValue = loJResp.StringOf("product.productOptions[i].choices[j].value")
        lcDescription = loJResp.StringOf("product.productOptions[i].choices[j].description")
        lnInStock = loJResp.BoolOf("product.productOptions[i].choices[j].inStock")
        lnVisible = loJResp.BoolOf("product.productOptions[i].choices[j].visible")
        j = j + 1
    ENDDO
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.collectionIds")
DO WHILE i < lnCount_i
    loJResp.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("product.variants")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcId = loJResp.StringOf("product.variants[i].id")
    lcChoicesSize = loJResp.StringOf("product.variants[i].choices.Size")
    lcVariantPriceDataCurrency = loJResp.StringOf("product.variants[i].variant.priceData.currency")
    lcVariantPriceDataPrice = loJResp.StringOf("product.variants[i].variant.priceData.price")
    lcVariantPriceDataDiscountedPrice = loJResp.StringOf("product.variants[i].variant.priceData.discountedPrice")
    lcVariantPriceDataFormattedPrice = loJResp.StringOf("product.variants[i].variant.priceData.formatted.price")
    lcVariantPriceDataFormattedDiscountedPrice = loJResp.StringOf("product.variants[i].variant.priceData.formatted.discountedPrice")
    lnVariantWeight = loJResp.IntOf("product.variants[i].variant.weight")
    lnVariantVisible = loJResp.BoolOf("product.variants[i].variant.visible")
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loJson
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp