How to Use REST API

The Akeneo PIM comes with a REST API which allows you to fetch product data in JSON format.

Note

The REST API is very minimalist for now, we plan to enrich it to add new methods to fetch and update other entities.

Configure a user

We first need to generate an API key for a PIM user by clicking on “Generate key” on any profile page. Then, we get the three pieces of information needed for an API call:

../../_images/configure-rest.png

Retrieve the product data

Now we can write a simple script to retrieve some product data:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$username = "admin";
$apiKey   = "79fadafa61723d34582f591586d63cee33199216";
$salt     = "2lmnle11aeucsgc0cw0go0o0gcow8sw";

$nonce   = uniqid();
$created = date('c');

$digest  = base64_encode(sha1(base64_decode($nonce) . $created . $apiKey.'{'.$salt.'}', true));

$headers = array();
$headers[] = 'CONTENT_TYPE: application/json';
$headers[] = 'Authorization: WSSE profile="UsernameToken"';
$headers[] =
    sprintf(
        'X-WSSE: UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
        $username,
        $digest,
        $nonce,
        $created
    );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://pim-dev.local/api/rest/products/sku-000.json');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);

echo "HTTP Return code:".$httpStatus."\n";

if (false === $result) {
    echo "ERROR:".curl_error($ch)."\n";
} else {
    echo "RESULT:$result\n";
}

The script can be executed with php-cli:

php rest-api-product.php

The response has the following format:

{
    "family":"mug",
    "groups":[],
    "categories":["desktops"],
    "enabled":true,
    "associations":{
        "X_SELL":{"products":["sku-001","sku-002","sku-003","sku-004"]}
    },
    "values":{
        "sku":[{"locale":null,"scope":null,"value":"sku-000"}],
        "color":[{"locale":"en_US","scope":null,"value":["Red","Blue","Purple"]},{"locale":"fr_FR","scope":null,"value":[]}],
        "manufacturer":[{"locale":"en_US","scope":null,"value":"MyMug"},{"locale":"fr_FR","scope":null,"value":null}],
        "name":[{"locale":"en_US","scope":null,"value":"Iusto ea sint."},{"locale":"fr_FR","scope":null,"value":"Neque eveniet quasi accusantium."}],
        "price":[{"locale":"en_US","scope":null,"value":[{"data":"43.21","currency":"EUR"},{"data":"19.70","currency":"USD"}]},{"locale":"fr_FR","scope":null,"value":[{"data":null,"currency":"EUR"},{"data":null,"currency":"USD"}]}],
        "release_date":[{"locale":null,"scope":null,"value":"2012-12-27"}],
        "weight":[{"locale":"en_US","scope":null,"value":{"data":"360.0000","unit":"GRAM"}},{"locale":"fr_FR","scope":null,"value":null}],
        "height":[{"locale":null,"scope":null,"value":"21.0000"}],
        "short_description":[{"locale":"en_US","scope":"ecommerce","value":null},{"locale":"fr_FR","scope":"ecommerce","value":null},{"locale":"en_US","scope":"mobile","value":null},{"locale":"fr_FR","scope":"mobile","value":null}]
    },
    "resource":"http:\/\/pim-dev.local\/api\/rest\/products\/sku-000"
}