Über diese API können alle Produkte abgerufen werden. Dieser Abruf liefert zu allen Produkten nur die Produkt ID. In einem separaten Abruf (Link unter dem Code-Bsp.) werden dann alle Produktinformationen abgerufen.
<?php
$access_token = 'YOURACCESSTOKENXX123';
$api_url_product_list = 'https://api.ixxilon-apothekenservice.de/api/products?pagination=false';
$headers = [];
$headers[] = 'Accept: application/ld+json';
$headers[] = 'Content-Type: application/json';
$headers[] = "X-AUTH-TOKEN: $access_token";
/**
* RETRIEVE PRODUCT LIST
*/
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $api_url_product_list);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// GET API RESPONSE
if ($response = curl_exec($curl)) {
// JSON DECODE API RETURNED OBJECT
$response = json_decode($response);
// ITERATE LIST
if (count($response->data)>0) {
foreach($response->data as $item) {
echo 'API URL Product detail: '.$item->id.'<br>';
echo 'ID Product: '.$item->attributes->_id.'<br>';
}
}
}
else {
// CHECK IF IS CURL / API ERROR
var_dump(curl_error($curl));
var_dump('Code: ' . curl_errno($curl));
}
curl_close($curl);
Die API liefert ein Ergebnisobjekt zurück, welches aus Links, Meta und Data besteht.
Links: diese Links können für die Pagination genutzt werden und zeigen jederzeit an, wo man sich befindet und weiter „gehen“ kann.
Meta: dient als Hilfe, um zu sehen wieviele Produkte abrufbar sind
Data: ist ein Array Element, dass maximal 30 Elemente pro Durchlauf beinhaltet
<?php
/* START
[links] => stdClass Object
(
[self] => /api/products?page=1
[first] => /api/products?page=1
[last] => /api/products?page=8420
[next] => /api/products?page=2
)
[meta] => stdClass Object
(
[totalItems] => 252589
[itemsPerPage] => 30
[currentPage] => 1
)
[data] => Array
(
[0] => stdClass Object
(
[id] => /api/products/3001879
[type] => Product
[attributes] => stdClass Object
(
[_id] => 3001879
)
)
[1] => stdClass Object
*/
/* BEISPIEL PAGE 1000
[links] => stdClass Object
(
[self] => /api/products?page=1000
[first] => /api/products?page=1
[last] => /api/products?page=8420
[prev] => /api/products?page=999
[next] => /api/products?page=1001
)
*/
?>
Hier geht es zum Code-Beispiel für den separaten Abruf.