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