Sample code for 30+ languages & platforms
PHP ActiveX

Akeneo: Create New Attribute

See more HTTP Misc Examples

Demonstrates how to create a new attribute.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

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

$http = new COM("Chilkat.Http");

// Use your previously obtained access token.
// See Get Akeneo Access Token
$http->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 COM("Chilkat.JsonObject");
$json->UpdateString('code','release_date');
$json->UpdateString('type','pim_catalog_date');
$json->UpdateString('group','marketing');
$json->UpdateBool('unique',0);
$json->UpdateBool('useable_as_grid_filter',1);
$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',0);
$json->UpdateBool('scopable',0);
$json->UpdateString('labels.en_US','Sale date');
$json->UpdateString('labels.fr_FR','Date des soldes');

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

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

print 'Response Status Code: ' . $resp->StatusCode . "\n";
print 'Response Body: ' . "\n";
print $resp->BodyStr . "\n";

?>