Sample code for 30+ languages & platforms
Visual FoxPro

Akeneo: Create New Attribute

See more HTTP Misc Examples

Demonstrates how to create a new attribute.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJson
LOCAL lcUrl
LOCAL loResp

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

*  Use your previously obtained access token.
*  See Get Akeneo Access Token
loHttp.AuthToken = "access_token"

*  Build the following JSON to be sent in the request body:
*  Use this online tool to generate the code from sample JSON: 
*  Generate Code to Create JSON

*  {
*    "code": "release_date",
*    "type": "pim_catalog_date",
*    "group": "marketing",
*    "unique": false,
*    "useable_as_grid_filter": true,
*    "allowed_extensions": [],
*    "metric_family": null,
*    "default_metric_unit": null,
*    "reference_data_name": null,
*    "available_locales": [],
*    "max_characters": null,
*    "validation_rule": null,
*    "validation_regexp": null,
*    "wysiwyg_enabled": null,
*    "number_min": null,
*    "number_max": null,
*    "decimals_allowed": null,
*    "negative_allowed": null,
*    "date_min": "2017-06-28T08:00:00",
*    "date_max": "2017-08-08T22:00:00",
*    "max_file_size": null,
*    "minimum_input_length": null,
*    "sort_order": 1,
*    "localizable": false,
*    "scopable": false,
*    "labels": {
*      "en_US": "Sale date",
*      "fr_FR": "Date des soldes"
*    }
*  }

loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("code","release_date")
loJson.UpdateString("type","pim_catalog_date")
loJson.UpdateString("group","marketing")
loJson.UpdateBool("unique",0)
loJson.UpdateBool("useable_as_grid_filter",1)
loJson.UpdateNewArray("allowed_extensions")
loJson.UpdateNull("metric_family")
loJson.UpdateNull("default_metric_unit")
loJson.UpdateNull("reference_data_name")
loJson.UpdateNewArray("available_locales")
loJson.UpdateNull("max_characters")
loJson.UpdateNull("validation_rule")
loJson.UpdateNull("validation_regexp")
loJson.UpdateNull("wysiwyg_enabled")
loJson.UpdateNull("number_min")
loJson.UpdateNull("number_max")
loJson.UpdateNull("decimals_allowed")
loJson.UpdateNull("negative_allowed")
loJson.UpdateString("date_min","2017-06-28T08:00:00")
loJson.UpdateString("date_max","2017-08-08T22:00:00")
loJson.UpdateNull("max_file_size")
loJson.UpdateNull("minimum_input_length")
loJson.UpdateNumber("sort_order","1")
loJson.UpdateBool("localizable",0)
loJson.UpdateBool("scopable",0)
loJson.UpdateString("labels.en_US","Sale date")
loJson.UpdateString("labels.fr_FR","Date des soldes")

loJson.EmitCompact = 0
*  Show the JSON to be sent..
? loJson.Emit()

lcUrl = "http://pim.my-akeneo-site.com/api/rest/v1/attributes"
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("POST",lcUrl,loJson,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJson
    RELEASE loResp
    CANCEL
ENDIF

? "Response Status Code: " + STR(loResp.StatusCode)
? "Response Body: "
? loResp.BodyStr

RELEASE loHttp
RELEASE loJson
RELEASE loResp