Sample code for 30+ languages & platforms
PHP Extension

Akeneo: Create New Attribute

See more HTTP Misc Examples

Demonstrates how to create a new attribute.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$http = new CkHttp();

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

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

$json->put_EmitCompact(false);
// Show the JSON to be sent..
print $json->emit() . "\n";

$url = 'http://pim.my-akeneo-site.com/api/rest/v1/attributes';
$resp = new CkHttpResponse();
$success = $http->HttpJson('POST',$url,$json,'application/json',$resp);
if ($success == false) {
    print $http->lastErrorText() . "\n";
    exit;
}

print 'Response Status Code: ' . $resp->get_StatusCode() . "\n";
print 'Response Body: ' . "\n";
print $resp->bodyStr() . "\n";

?>