mercredi 26 février 2014

Premier script

Pour se mettre doucement dans le bain, je vous invite à suivre pas à pas ce petit tutoriel pour concevoir un premier script PHP pour tester nos requêtes.

UrlSigner

La fonction qui va nous permettre d'entrer en contact avec l'API KELKOO est UrlSigner définit comme suit :

function UrlSigner($urlDomain, $urlPath, $partner, $key){

settype($urlDomain, 'String');
settype($urlPath, 'String');
settype($partner, 'String');
settype($key, 'String');

$URL_sig = "hash";
$URL_ts = "timestamp";
$URL_partner = "aid";

$URLreturn = "";
$URLtmp = "";
$s = "";
// get the timestamp
$time = time();

// replace " " by "+"
$urlPath = str_replace(" ", "+", $urlPath);

// format URL
$URLtmp = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time;

// URL needed to create the tokken
$s = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time . $key;

$tokken = "";
$tokken = base64_encode(pack('H*', md5($s)));
$tokken = str_replace(array("+", "/", "="), array(".", "_", "-"), $tokken);

$URLreturn = $urlDomain . $URLtmp . "&" . $URL_sig . "=" . $tokken;

return $URLreturn; 
}

On stockera cette fonction dans fichier nommé UrlSigner.php (vous pouvez l'appeler comme vous voulez), et on l’appellera chaque fois qu'on veux lancer une requête.

Pour ce premier test, on va lancer une requête sur le mot clé "iphone 5", on simule la requête dans le Request Builder en utilisant le Template "Product Search V3" pour obtenir l'url suivante :

http://fr.shoppingapis.kelkoo.com/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=20&show_products=1&show_subcategories=1&show_refinements=1&aid=Tracking_Id&timestamp=1393443050&hash=zhorGAY8xZk6V8gltepr2w--

A partir de là, on va construire notre url de requête comme suit (on a limiter le nombre de résultats à 4) :

$url = UrlSigner('http://fr.shoppingapis.kelkoo.com', '/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=4&show_products=1&show_subcategories=1&show_refinements=1','Tracking_Id', 'Affiliate_Key');
Noter la suppression de "&timestamp=1393443050&hash=zhorGAY8xZk6V8gltepr2w--" car ce sont des données propres à l'API

Traitement du résultat


La variable $url contient maintenant notre fichier xml, pour le parser on utilisera la fonction simplexml_load_file() : 


<?php
include('UrlSigner.php');
$url = UrlSigner('http://fr.shoppingapis.kelkoo.com', '/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=4&show_products=1&show_subcategories=1&show_refinements=1','Tracking_Id', 'Affiliate_Key');
$xml = simplexml_load_file($url);
echo $xml->Products['totalResultsAvailable'].' r&eacute;sultats chez '.$xml->Products['totalMerchantsAvailable'].' marchands';
echo '<table width="600" border="1">
  <tr>
    <td></td>
    <td>Produit</td>
    <td>Marchand</td>
    <td>Prix(&euro;)</td>
    <td>Lien</td>
  </tr>';
foreach($xml->Products->Product as $product){
 echo '<tr>
    <td><img src="'.$product->Offer->Images->Image->Url.'" /></td>
    <td>'.$product->Offer->Title.'</td>
    <td>'.$product->Offer->Merchant->Name.'</td>
 <td>'.$product->Offer->Price->Price.'</td>
    <td><a href="http://clk.tradedoubler.com/click?p=XXXXX&a=XXXXXXX&g=XXXXXXXX&url='.$product->Offer->Url.'" target="_blank">Lien</a></td>
  </tr>';
}
echo '</table>';
?>

Le lien marqué en rouge est fournit dans le courriel de validation de votre site par Kelkoo, il permet le tracking Tradedoubler de vos urls, il faut le placer avant le lien du produit.

Résultat :


0 commentaires :

Enregistrer un commentaire