Sample code for 30+ languages & platforms
Tcl

Akeneo: Create New Attribute

See more HTTP Misc Examples

Demonstrates how to create a new attribute.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

# Use your previously obtained access token.
# See Get Akeneo Access Token
CkHttp_put_AuthToken $http "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"
#   }
# }

set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "code" "release_date"
CkJsonObject_UpdateString $json "type" "pim_catalog_date"
CkJsonObject_UpdateString $json "group" "marketing"
CkJsonObject_UpdateBool $json "unique" 0
CkJsonObject_UpdateBool $json "useable_as_grid_filter" 1
CkJsonObject_UpdateNewArray $json "allowed_extensions"
CkJsonObject_UpdateNull $json "metric_family"
CkJsonObject_UpdateNull $json "default_metric_unit"
CkJsonObject_UpdateNull $json "reference_data_name"
CkJsonObject_UpdateNewArray $json "available_locales"
CkJsonObject_UpdateNull $json "max_characters"
CkJsonObject_UpdateNull $json "validation_rule"
CkJsonObject_UpdateNull $json "validation_regexp"
CkJsonObject_UpdateNull $json "wysiwyg_enabled"
CkJsonObject_UpdateNull $json "number_min"
CkJsonObject_UpdateNull $json "number_max"
CkJsonObject_UpdateNull $json "decimals_allowed"
CkJsonObject_UpdateNull $json "negative_allowed"
CkJsonObject_UpdateString $json "date_min" "2017-06-28T08:00:00"
CkJsonObject_UpdateString $json "date_max" "2017-08-08T22:00:00"
CkJsonObject_UpdateNull $json "max_file_size"
CkJsonObject_UpdateNull $json "minimum_input_length"
CkJsonObject_UpdateNumber $json "sort_order" "1"
CkJsonObject_UpdateBool $json "localizable" 0
CkJsonObject_UpdateBool $json "scopable" 0
CkJsonObject_UpdateString $json "labels.en_US" "Sale date"
CkJsonObject_UpdateString $json "labels.fr_FR" "Date des soldes"

CkJsonObject_put_EmitCompact $json 0
# Show the JSON to be sent..
puts [CkJsonObject_emit $json]

set url "http://pim.my-akeneo-site.com/api/rest/v1/attributes"
set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" $url $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

puts "Response Status Code: [CkHttpResponse_get_StatusCode $resp]"
puts "Response Body: "
puts [CkHttpResponse_bodyStr $resp]

delete_CkHttp $http
delete_CkJsonObject $json
delete_CkHttpResponse $resp