Napojení na API

Prostřednictvím aplikačního rozhraní je možné k e-shopu Kokiskashop.cz přistupovat vzdáleně a je tak umožněna integrace do dalšího systému. API umožňuje oboustrannou komunikaci, avšak jediná funkcionalita, která je pro fungování přenosu opravdu klíčová, je POST order (viz níže). Tato funkcionalita je jediná povinná, ostatní jsou volitelné.

Přes API je možné zaslat i storno objednávky (PUT order), ale není možné zaslat změnu objednávky.

Vzájemná výměna dat se skládá ze dvou částí:

Rozhraní Kokiskashop.cz - slouží k získávání aktuálních informací o zboží - cena, dostupnost, možnosti dopravy, vytvoření objednávky,..

Rozhraní partnera - slouží k získávání informací o stavu objednávky (především o změně platby), oznamování změn objednávky v napojeném obchodu, přijímání vygenerovaných faktur,...

Současné API je založené na RESTfull architektuře, a proto je jeho implementace technologicky nenáročná. Aby bylo možné zprostředkovat komunikaci se všemi partnery, je systém navržen tak, aby mohl poskytovat více aplikačních rozhraní. Aktuálně je dostupné API po vzoru Heureky.cz (viz dokumentace), které má rozšíření o autentifikaci uživatelů. Pro odpověď je využito formátu JSON.

Aktivace služby

Abyste mohli API využívat, je nutná aktivace z naší strany. Aktivace se provádí vždy pro konkrétní API (aktuálně pouze typ Heureka) a uživatelský účet. Máte-li zájem, kontaktujte nás na emailu partner@kokiskashop.cz.

Jak volat služby

Pro usnadnění implementace jsme se rozhodli poskytnout drobnou podporu v jazyce PHP. Invokace vzdáleného serveru v PHP je nejčastěji realizována pomocí knihovny curl.

V následujícím příkladu bude využívána třída RequestFactory, kterou si můžete stáhnout zde.

Zjištění dostupnosti tří produktů:

Všechna data použitá v příkladech jsou pouze ilustrativní.

< ?php
//include wrapper for curl library
include ('./RequestFactory.php');
 
//initiate array
$data['products'] = array();
//add first product
$data['products'][] = array('id' => 599, 'count' => 2);
//add next products
$data['products'][] = array('id' => 1091, 'count' => 1);
//add next products
$data['products'][] = array('id' => 109, 'count' => 6);
 
//add authentification info
$data['login'] = "yourLogin";
 
//password as plain text
$data['password'] = "yourPassword";
//password as hashcode
$data['password'] = hash("sha256", "yourPassword");
 
//set url for request
$url = "https://www.kokiskashop.cz/api/heureka/1/products/availability";
 
//choose method of request - products/availability should be GET
$method = RequestFactory::$METHOD_GET;
 
//make request and get response in JSON
$jsonResponse = RequestFactory::doRequest($url, $data, $method);
 
//decode response - bacause it is possible to handle big integers, it necessary
//to set up json_decode function
$response = json_decode($jsonResponse, TRUE, 512, JSON_BIGINT_AS_STRING);
 
//now one has associative array. Print it
print_r($response); 
?>
 
OUTPUT: 
 
Array ( 
    [products] => Array ( 
        [0] => Array ( 
            [id] => 599 
            [available] => 1 
            [count] => 2 
            [delivery] => 0 
            [name] => Stan pro 6 osob 
            [price] => 3327 
            [priceTotal] => 6654 )  
        [1] => Array ( 
            [id] => 1091    
            [available] => 1 
            [count] => 1 
            [delivery] => 0 
            [name] => Didgeridoo 130 cm 
            [price] => 461 
            [priceTotal] => 461 ) 
        [2] => Array ( 
            [id] => 109 
            [available] => 0) 
        ) 
    [priceSum] => 7115 
)

 

BIGtheme.net Joomla 3.3 Templates