Accueil > > > BOUTIQUE SIMPLE AMAZON EN PHP
BOUTIQUE SIMPLE AMAZON EN PHP
Information sur la source
Description
Cette boutique se base sur « ECS Simple Store » en PHP. La version 5 de PHP est utilisé. Cette application montre les interactions possible à partir de l'API ECS Simple Store. http://developer.amazonwebservices.com/connect/ent ry.jspa?externalID=498&categoryID=14 Les détails comme le nom du produit, son image, son prix et son auteur apparaissent lors de recherches parmi des Livres, des DVD et de la musique mise en vente sur Amazon.com, Amazon.fr, Amazon.ca, Amazon.de, Amazon.co.jp, et Amazon.co.uk. La création du caddie se fait après avoir mis un premier objet dans le caddie. Pour ceux que ça interesse, le guide complet officiel fait 501 pages. Cette boutique simple n'a donc pas la vocation d'être exhaustive. Pour ce qui est des notions à avoir pour comprendre cette source : XHTML, CSS, JavaScript. Structure : Le fichier index.php est le fichier principal. Toutes les pages sont compatibles XHTML 1.0 et CSS2. Le fichier exemple.html est un backport statique pour le plaisir des yeux. Il peut être supprimé. Le dossier ecs-php-demo contient la version de base qui ma servit à faire cette application. Il peut aussi être supprimé. Version PHP : Pour connaitre votre version de PHP : Faites un phpinfo(); dans un script PHP et lisez-le dans le navigateur. Si vous avez une phrase du type : Fatal error: Call to undefined function: simplexml_load_string() in c:\program files\easyphp1-8\www\amazon\index.php on line 208 en executant une recherche, c'est que vous avez la version 4 de PHP et qu'il ne lit pas le simplexml_load_string(). Vous devez impérativement passer en PHP 5. Pour changer de version : télécharger EasyPHP 2.0 beta1 (http://www.easyphp.org/telechargements.php3) Ama zon Web Services : Pour utiliser cette boutique en tant que vendeur, il faut créer un compte Amazon Web Services et recopier l'ID en ligne 5 de index.php. Une requête d'exemple : remplacer [ID] par votre ID ex : 1EQ42KTCRF09ETUEBHG2 http://ecs.amazonaws.com/onc a/xml?Service=AWSECommerceService&AWSAccessKeyId=[ ID]&Operation=ItemSearch&SearchIndex=Books&Title=H arry%20Potter&Version=2007-07-16 L’URL est constitué de paramètres définissant le service, la clé, le numéro de version, le type d’opération qui ne peuvent pas être modifié par le client. La seconde partie de ‘lURL peut être modifié. C’est la catégorie et les mots clés. Les valeurs renvoyés contiennent les mot-clés soit dans leur titre soit dans leur description. Lexique : L'ASIN (Amazon Standard Item Number) est un identifiant alphanumérique des objets en vente sur Amazon.
Source
- <?php
-
- //passage de parametres dans les sous programme (à verifier)
-
- $KEYID = "ID"; //Votre KEYID à gauche ici à la place du mien
- $AssocTag = "YourAssociateTagHere";
-
- //la creation du caddie se fait après avoir mis un premier objet dans le caddie
-
- if(isset($_GET['CartId'])) {
- $CartId = $_GET['CartId'];
- }else{
- $CartId = ''; //création du cart
- }
-
- if(isset($_GET['HMAC'])) {
- $HMAC = urlencode($_GET['HMAC']);
- }else{
- $HMAC = '';
- }
-
-
-
- if(isset($_GET['Keywords'])) {
- $Keywords = $_GET['Keywords'];
- }else{
- $Keywords = ""; //$Keywords = "a".rand(10,36)."";
- }
-
- if(isset($_GET['Action'])){
- $Action = $_GET['Action'];
- }else{
- $Action = "Search";
- }
-
- if(isset($_GET['SearchIndex'])){
- $SearchIndex = $_GET['SearchIndex'];
- }else{
- $SearchIndex = "Books";
- }
-
-
-
- echo "<?xml version='1.1' ?>
-
- <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
- 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
- <html xml:lang='fr' lang='fr' xmlns='http://www.w3.org/1999/xhtml'>
-
- <head>
- <title>Une boutique simple Amazon</title>
- <meta name='author' lang='fr' content='Yann Geffrotin'/>
- <meta name='email' content='yann@geffrotin.fr'/>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- <link rel='stylesheet' media='screen' type='text/css' title='index' href='style.css' />
- </head>
-
-
-
- <body>";
-
-
- echo"
-
- <p class='logo'>
- <a href='http://".$_SERVER["HTTP_HOST"]."/amazon/'>
- <img id='logo' src='images/amazon web services.gif' alt='Image du logo Amazon Web Services' />
- </a>
- </p>
- ";
-
-
-
-
- echo "
- <div class='Haut'>
- <h1>Boutique E-Commerce Simple</h1>
- </div>";
-
- define('KEYID',$KEYID);
- define('AssocTag',$AssocTag);
-
- /* Rechercher MenuDeroulant MotsClé Go */
-
- echo "
- <div class='recherche'>
- <form name='SearchTerms' action='index.php' method='get'>
- <strong>Rechercher</strong>
-
- <select name='SearchIndex'>
- <option value='Books'>Livres</option>
- <option value='DVD' ";
- if ($SearchIndex == "DVD"){
- echo " selected='selected' ";
- }
- echo ">DVD</option>
- <option value='Music' ";
- if ($SearchIndex == "Music"){
- echo " selected='selected' ";
- }
- echo ">Musique</option>
- </select>
-
- <input type='text' id='Keywords' name='Keywords' size='35' value='$Keywords' />
-
- <input type='hidden' name='Action' value='Search'/>
-
- <input type='hidden' name='ItemPage' value='1'/>
-
- <input type='hidden' name='CartId' value='$CartId'/>
-
- <input type='hidden' name='HMAC' value='$HMAC'/>
-
- <input type='submit' value='Go'/>
-
- </form>
-
-
- </div>";
-
- //Afficher le caddie pour voir son contenu s'il a été crée
-
- if($CartId != ''){
- $CartGet = "index.php?Action=CartGet&CartId=$CartId&HMAC=$HMAC";
- echo "
- <div class='BarreGauche'>
- <table>
- <tr align='center'>
- <td>
- <a href='$CartGet'>
- <img id='caddie' src='images/panier.gif' alt='Image du caddie' title='Voir le contenu du panier' />
- </a>
- </td>
- </tr>
- <tr align='center'>
- <td> <a href='$CartGet'>Voir le contenu du panier</a> </td>
- </tr>
- </table>
- </div>";
- }
-
- echo "<div class='AfficheProduit'>";
-
- if($Action == 'Search'){
- if( empty($Keywords) ){
- echo "<p align='center'>Veuillez entrer des mots clés pour votre recherche.</p><br/><br/><br/><br/>";
- }else{
- $keywords = urlencode($Keywords);
- ItemSearch($_GET['SearchIndex'], $keywords, $_GET['ItemPage'], $KEYID, $AssocTag);
- }
- }
-
- if($Action == 'SeeDetails'){
- ItemLookup($_GET['ASIN'], $_GET['SearchIndex'], $KEYID, $AssocTag);
- }
-
- if($Action == 'CartAdd'){
- if($CartId != ''){
- CartAdd($KEYID, $AssocTag, $_GET['OfferListingId'], $CartId, $HMAC);
- }else{
- CartCreate($KEYID, $AssocTag, $_GET['OfferListingId'], $CartId, $HMAC);
- }
- }
-
- if($Action == 'Remove'){
- removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $_GET['CartItemId']);
- }
-
- if($Action == 'CartGet'){
- getCartContents($KEYID,$AssocTag,$_GET['CartId'], urlencode($_GET['HMAC']));
- }
-
- echo "</div>";
-
- //Focus sur le champs du courriel en javascript
- echo '<script type="text/javascript">document.getElementById("Keywords").focus();</script>';
-
- echo"
- <div class='bas'>
- <p align='center'>
- Copyright © 2004-".date("Y").", <a href='http://aws.amazon.com/'>Amazon Web Services</a>. Tous les textes et images sont disponibles sous Fair Use et restent la propriété de Amazon. <a href='amazon.zip'>Télécharger la Boutique</a>.<br/>
- </p>
- </div>
- ";
-
- echo '
- <div>
- <p align="center">
- <a href="http://validator.w3.org/check?uri=referer">
- <img id="xhtml" src="images/valid-xhtml10-blue.png" alt="Image XHTML 1.0 Strict" title="Valid XHTML 1.0 Transitional"
- onmouseover="document.getElementById(\'xhtml\').src=\'images/valid-xhtml10.png\' "
- onmouseout="document.getElementById(\'xhtml\').src=\'images/valid-xhtml10-blue.png\' "
- />
- </a>
-
- <a href="http://jigsaw.w3.org/css-validator/check?uri=referer">
- <img id="css" src="images/valid-css2-blue.png" alt="Image CSS" title="Valid CSS"
- onmouseover="document.getElementById(\'css\').src=\'images/valid-css2.png\' "
- onmouseout="document.getElementById(\'css\').src=\'images/valid-css2-blue.png\' "
- />
- </a>
- </p>
- </div>
-
- </body>
-
- </html>';
-
-
-
- // Recherche d'objet Amazon
-
- function ItemSearch($SearchIndex, $Keywords, $ItemPage, $KEYID, $AssocTag){
- $request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemSearch&ResponseGroup=Medium,Offers";
- $request.="&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- printSearchResults($parsed_xml, $SearchIndex);
- }
-
- //afficher les résultats de la recherche
-
- function printSearchResults($parsed_xml, $SearchIndex){
-
- $numOfItems = $parsed_xml->Items->TotalResults;
- $totalPages = $parsed_xml->Items->TotalPages;
- $CartId = $_GET['CartId'];
- $HMAC = urlencode($_GET['HMAC']);
- echo "<table>";
- if($numOfItems>0){
-
- foreach($parsed_xml->Items->Item as $current){
- if(isset($current->Offers->Offer->OfferListing->OfferListingId)){ //only show items for which there is an offer
- echo "<tr>
- <td><img src='".$current->MediumImage->URL."' alt='Aucune Image'/></td>
- <td><strong>".str_ireplace("&","&",$current->ItemAttributes->Title)."</strong>";
-
- if(isset($current->ItemAttributes->Director)){
- echo "<br/>Directeur : ".$current->ItemAttributes->Director;
- } elseif(isset($current->ItemAttributes->Author)) {
- echo "<br/>Auteur : ".$current->ItemAttributes->Author;
- } elseif(isset($current->ItemAttributes->Artist)) {
- echo "<br/>Artiste : ".$current->ItemAttributes->Artist;
- }
-
- echo "<br/>Prix : ".$current->Offers->Offer->OfferListing->Price->FormattedPrice;
- $asin = $current->ASIN;
- $details = "index.php?Action=SeeDetails&ASIN=$asin&SearchIndex=$SearchIndex&CartId=$CartId&HMAC=$HMAC";
- echo "<br/>";
- echo "<a href='$details'><img src='images/32px-Nuvola_apps_xmag.png' alt='Image Zoom' title=\"Zoom sur l'image\" /></a>";
- echo " <a href='$details'>Voir les détails</a>";
-
- $offerListingId = urlencode($current->Offers->Offer->OfferListing->OfferListingId);
- $CartAdd = "index.php?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC";
-
- echo " <a href='$CartAdd'><img src='images/32px-Nuvola_apps_kthememgr.png' alt='Image Ajouter' title='Ajouter ce produit dans votre panier' /></a>";
- echo " <a href='$CartAdd'>Ajouter au panier</a></td>
- </tr>";
- }
- }
- }else{
- echo "<p align='center'>Aucun résultat trouvé pour les mots clés recherchés.</p><br/><br/><br/><br/>";
- }
- echo "</table>";
-
- //permet de circuler de page en page dans les resultats
- echo "<table style='width:100%;'><tr>";
- if($_GET['ItemPage'] > 1 && $totalPages > 1){ //check to see if there are previous pages
- $Keywords = urlencode($_GET['Keywords']);
- $ItemPage = $_GET['ItemPage']-1;
- $prevPage = "index.php?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC";
-
- echo "
- <td align='left' >
- <a href='$prevPage'>
- <img id='precedent' src='images/48px-Go-previous.svg.png' alt='Image precedent' title='Aller à la page récédente' />
- </a>
- <a href='$prevPage'>Page précédente</a>
- </td> ";
-
- }
- if($_GET['ItemPage'] < $totalPages){ //check to see if there are more pages
- $Keywords = urlencode($_GET['Keywords']);
- $ItemPage = $_GET['ItemPage']+1;
- $nextPage = "index.php?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC";
- echo "
- <td align='right'>
- <a href='$nextPage'>Page suivante</a>
- <a href='$nextPage'>
- <img id='suivant' src='images/48px-Go-next.svg.png' alt='Image suivant' title='Aller à la page suivante' />
- </a>
- </td>";
- }
- echo "</tr></table>";
- }
-
- //affichage des articles en grand
-
- function ItemLookup($asin, $SearchIndex, $KEYID, $AssocTag){
- $request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemLookup&ItemId=$asin&ResponseGroup=Medium,Offers";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- printDetails($parsed_xml, $SearchIndex);
- }
-
- //voir les détails d'un article
-
- function printDetails($parsed_xml, $SearchIndex){
- echo "<table>";
-
- echo "<tr><td><img src='".$parsed_xml->Items->Item->LargeImage->URL."' alt='Image ".$parsed_xml->Items->Item->LargeImage->URL."' /></td>
- <td>Titre : <strong>".$parsed_xml->Items->Item->ItemAttributes->Title."</strong><br/>";
-
- if($SearchIndex == "Books"){ echo "
- Auteur : ".$parsed_xml->Items->Item->ItemAttributes->Author."<br/>
- Couverture : ".$parsed_xml->Items->Item->ItemAttributes->Binding."<br/>
- Nb pages : ".$parsed_xml->Items->Item->ItemAttributes->NumberOfPages." pages<br/>";
- }
-
- if($SearchIndex == "Music"){ echo "
- Artiste : ".$parsed_xml->Items->Item->ItemAttributes->Artist."<br/>
- Label : ".$parsed_xml->Items->Item->ItemAttributes->Label."<br/>
- Date de sortie : ".$parsed_xml->Items->Item->ItemAttributes->ReleaseDate."<br/>";
- }
-
- if($SearchIndex == "DVD"){ echo "
- Directeur : ".$parsed_xml->Items->Item->ItemAttributes->Director."<br/>
- Note : ".$parsed_xml->Items->Item->ItemAttributes->AudienceRating."<br/>
- Label : ".str_ireplace("&","&",$parsed_xml->Items->Item->ItemAttributes->Label)."<br/>
- Date de sortie : ".$parsed_xml->Items->Item->ItemAttributes->ReleaseDate."<br/>";
- }
-
- echo "Prix : ".$parsed_xml->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice."<br/>";
- $CartId = $_GET['CartId'];
- $HMAC = urlencode($_GET['HMAC']);
-
- $search = "index.php?Action=Search&CartId=$CartId&HMAC=$HMAC";
- echo "<a href='$search'><img id='search' src='images/32px-Nuvola_devices_blockdevice.png' alt='Image Continuer la Recherche' title='Continuer le Shopping' /></a>";
- echo " <a href='$search'>Continuer le Shopping</a>";
-
- $offerListingId = urlencode($parsed_xml->Items->Item->Offers->Offer->OfferListing->OfferListingId);
- $CartAdd = "index.php?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC";
- echo " <a href='$CartAdd'><img id='ajouter' src='images/32px-Nuvola_apps_kthememgr.png' alt='Image Ajouter' title='Ajouter ce produit dans votre panier' /></a>";
- echo " <a href='$CartAdd'>Ajouter au panier</a></td></tr>";
-
- echo "</table>";
- }
-
- // creer un caddie
-
- function cartCreate($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
- $request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartCreate&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- showCartContents($parsed_xml);
- }
-
-
- // Ajouter au panier
-
- function cartAdd($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
- $CartId = $_GET['CartId'];
- $HMAC = urlencode($_GET['HMAC']);
- $request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartAdd&CartId=$CartId&HMAC=$HMAC&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- showCartContents($parsed_xml);
- }
-
- //voir le contenu du caddie
-
- function showCartContents($parsed_xml){
-
- echo "<table>";
- $CartId = $parsed_xml->Cart->CartId;
- $HMAC = $parsed_xml->Cart->URLEncodedHMAC;
- foreach($parsed_xml->Cart->CartItems->CartItem as $current){
- $CartItemId = $current->CartItemId;
- $remove="index.php?Action=Remove&CartId=$CartId&HMAC=$HMAC&CartItemId=$CartItemId";
- echo "<tr><td>".$current->Title.": ".$current->Price->FormattedPrice."";
- echo " <a href=$remove>(Retirer du panier)</a></td></tr>";
- }
- echo "<tr><td>Sous Total : ".$parsed_xml->Cart->CartItems->SubTotal->FormattedPrice."</td></tr>";
- echo "<tr><td>";
- $continue = "index.php?Action=Search&CartId=$CartId&HMAC=$HMAC";
- echo "<a href='$continue'><img id='continue' src='images/32px-Nuvola_devices_blockdevice.png' alt='Image Continuer le Shopping' title='Continuer le Shopping' /></a>";
- echo "<a href='$continue'>Continuer le Shopping</a>";
- $checkout=$parsed_xml->Cart->PurchaseURL;
- echo " <a href='$checkout'><img id='paiement' src='images/32px-Nuvola_apps_korganizer.png' alt='Image du Paiement' title='Paiement' /></a>";
-
- echo " <a href=$checkout>Paiement</a><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/></td></tr>";
- echo "</table>";
- }
-
-
- // supprimer du caddie
-
- function removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $CartItemId){
- $CartId = $_GET['CartId'];
- $HMAC = urlencode($_GET['HMAC']);
- $CartItemId = $_GET['CartItemId'];
- $request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartModify&CartId=$CartId&HMAC=$HMAC&Item.1.CartItemId=$CartItemId&Item.1.Quantity=0";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- showCartContents($parsed_xml);
- }
-
- // récupérer le contenu du caddie
-
- function getCartContents($KEYID,$AssocTag,$CartId, $HMAC){
- $request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartGet&CartId=$CartId&HMAC=$HMAC";
-
- $response = file_get_contents($request);
- $parsed_xml = simplexml_load_string($response);
- showCartContents($parsed_xml);
- }
-
- ?>
<?php
//passage de parametres dans les sous programme (à verifier)
$KEYID = "ID"; //Votre KEYID à gauche ici à la place du mien
$AssocTag = "YourAssociateTagHere";
//la creation du caddie se fait après avoir mis un premier objet dans le caddie
if(isset($_GET['CartId'])) {
$CartId = $_GET['CartId'];
}else{
$CartId = ''; //création du cart
}
if(isset($_GET['HMAC'])) {
$HMAC = urlencode($_GET['HMAC']);
}else{
$HMAC = '';
}
if(isset($_GET['Keywords'])) {
$Keywords = $_GET['Keywords'];
}else{
$Keywords = ""; //$Keywords = "a".rand(10,36)."";
}
if(isset($_GET['Action'])){
$Action = $_GET['Action'];
}else{
$Action = "Search";
}
if(isset($_GET['SearchIndex'])){
$SearchIndex = $_GET['SearchIndex'];
}else{
$SearchIndex = "Books";
}
echo "<?xml version='1.1' ?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xml:lang='fr' lang='fr' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Une boutique simple Amazon</title>
<meta name='author' lang='fr' content='Yann Geffrotin'/>
<meta name='email' content='yann@geffrotin.fr'/>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
<link rel='stylesheet' media='screen' type='text/css' title='index' href='style.css' />
</head>
<body>";
echo"
<p class='logo'>
<a href='http://".$_SERVER["HTTP_HOST"]."/amazon/'>
<img id='logo' src='images/amazon web services.gif' alt='Image du logo Amazon Web Services' />
</a>
</p>
";
echo "
<div class='Haut'>
<h1>Boutique E-Commerce Simple</h1>
</div>";
define('KEYID',$KEYID);
define('AssocTag',$AssocTag);
/* Rechercher MenuDeroulant MotsClé Go */
echo "
<div class='recherche'>
<form name='SearchTerms' action='index.php' method='get'>
<strong>Rechercher</strong>
<select name='SearchIndex'>
<option value='Books'>Livres</option>
<option value='DVD' ";
if ($SearchIndex == "DVD"){
echo " selected='selected' ";
}
echo ">DVD</option>
<option value='Music' ";
if ($SearchIndex == "Music"){
echo " selected='selected' ";
}
echo ">Musique</option>
</select>
<input type='text' id='Keywords' name='Keywords' size='35' value='$Keywords' />
<input type='hidden' name='Action' value='Search'/>
<input type='hidden' name='ItemPage' value='1'/>
<input type='hidden' name='CartId' value='$CartId'/>
<input type='hidden' name='HMAC' value='$HMAC'/>
<input type='submit' value='Go'/>
</form>
</div>";
//Afficher le caddie pour voir son contenu s'il a été crée
if($CartId != ''){
$CartGet = "index.php?Action=CartGet&CartId=$CartId&HMAC=$HMAC";
echo "
<div class='BarreGauche'>
<table>
<tr align='center'>
<td>
<a href='$CartGet'>
<img id='caddie' src='images/panier.gif' alt='Image du caddie' title='Voir le contenu du panier' />
</a>
</td>
</tr>
<tr align='center'>
<td> <a href='$CartGet'>Voir le contenu du panier</a> </td>
</tr>
</table>
</div>";
}
echo "<div class='AfficheProduit'>";
if($Action == 'Search'){
if( empty($Keywords) ){
echo "<p align='center'>Veuillez entrer des mots clés pour votre recherche.</p><br/><br/><br/><br/>";
}else{
$keywords = urlencode($Keywords);
ItemSearch($_GET['SearchIndex'], $keywords, $_GET['ItemPage'], $KEYID, $AssocTag);
}
}
if($Action == 'SeeDetails'){
ItemLookup($_GET['ASIN'], $_GET['SearchIndex'], $KEYID, $AssocTag);
}
if($Action == 'CartAdd'){
if($CartId != ''){
CartAdd($KEYID, $AssocTag, $_GET['OfferListingId'], $CartId, $HMAC);
}else{
CartCreate($KEYID, $AssocTag, $_GET['OfferListingId'], $CartId, $HMAC);
}
}
if($Action == 'Remove'){
removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $_GET['CartItemId']);
}
if($Action == 'CartGet'){
getCartContents($KEYID,$AssocTag,$_GET['CartId'], urlencode($_GET['HMAC']));
}
echo "</div>";
//Focus sur le champs du courriel en javascript
echo '<script type="text/javascript">document.getElementById("Keywords").focus();</script>';
echo"
<div class='bas'>
<p align='center'>
Copyright © 2004-".date("Y").", <a href='http://aws.amazon.com/'>Amazon Web Services</a>. Tous les textes et images sont disponibles sous Fair Use et restent la propriété de Amazon. <a href='amazon.zip'>Télécharger la Boutique</a>.<br/>
</p>
</div>
";
echo '
<div>
<p align="center">
<a href="http://validator.w3.org/check?uri=referer">
<img id="xhtml" src="images/valid-xhtml10-blue.png" alt="Image XHTML 1.0 Strict" title="Valid XHTML 1.0 Transitional"
onmouseover="document.getElementById(\'xhtml\').src=\'images/valid-xhtml10.png\' "
onmouseout="document.getElementById(\'xhtml\').src=\'images/valid-xhtml10-blue.png\' "
/>
</a>
<a href="http://jigsaw.w3.org/css-validator/check?uri=referer">
<img id="css" src="images/valid-css2-blue.png" alt="Image CSS" title="Valid CSS"
onmouseover="document.getElementById(\'css\').src=\'images/valid-css2.png\' "
onmouseout="document.getElementById(\'css\').src=\'images/valid-css2-blue.png\' "
/>
</a>
</p>
</div>
</body>
</html>';
// Recherche d'objet Amazon
function ItemSearch($SearchIndex, $Keywords, $ItemPage, $KEYID, $AssocTag){
$request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemSearch&ResponseGroup=Medium,Offers";
$request.="&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
printSearchResults($parsed_xml, $SearchIndex);
}
//afficher les résultats de la recherche
function printSearchResults($parsed_xml, $SearchIndex){
$numOfItems = $parsed_xml->Items->TotalResults;
$totalPages = $parsed_xml->Items->TotalPages;
$CartId = $_GET['CartId'];
$HMAC = urlencode($_GET['HMAC']);
echo "<table>";
if($numOfItems>0){
foreach($parsed_xml->Items->Item as $current){
if(isset($current->Offers->Offer->OfferListing->OfferListingId)){ //only show items for which there is an offer
echo "<tr>
<td><img src='".$current->MediumImage->URL."' alt='Aucune Image'/></td>
<td><strong>".str_ireplace("&","&",$current->ItemAttributes->Title)."</strong>";
if(isset($current->ItemAttributes->Director)){
echo "<br/>Directeur : ".$current->ItemAttributes->Director;
} elseif(isset($current->ItemAttributes->Author)) {
echo "<br/>Auteur : ".$current->ItemAttributes->Author;
} elseif(isset($current->ItemAttributes->Artist)) {
echo "<br/>Artiste : ".$current->ItemAttributes->Artist;
}
echo "<br/>Prix : ".$current->Offers->Offer->OfferListing->Price->FormattedPrice;
$asin = $current->ASIN;
$details = "index.php?Action=SeeDetails&ASIN=$asin&SearchIndex=$SearchIndex&CartId=$CartId&HMAC=$HMAC";
echo "<br/>";
echo "<a href='$details'><img src='images/32px-Nuvola_apps_xmag.png' alt='Image Zoom' title=\"Zoom sur l'image\" /></a>";
echo " <a href='$details'>Voir les détails</a>";
$offerListingId = urlencode($current->Offers->Offer->OfferListing->OfferListingId);
$CartAdd = "index.php?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC";
echo " <a href='$CartAdd'><img src='images/32px-Nuvola_apps_kthememgr.png' alt='Image Ajouter' title='Ajouter ce produit dans votre panier' /></a>";
echo " <a href='$CartAdd'>Ajouter au panier</a></td>
</tr>";
}
}
}else{
echo "<p align='center'>Aucun résultat trouvé pour les mots clés recherchés.</p><br/><br/><br/><br/>";
}
echo "</table>";
//permet de circuler de page en page dans les resultats
echo "<table style='width:100%;'><tr>";
if($_GET['ItemPage'] > 1 && $totalPages > 1){ //check to see if there are previous pages
$Keywords = urlencode($_GET['Keywords']);
$ItemPage = $_GET['ItemPage']-1;
$prevPage = "index.php?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC";
echo "
<td align='left' >
<a href='$prevPage'>
<img id='precedent' src='images/48px-Go-previous.svg.png' alt='Image precedent' title='Aller à la page récédente' />
</a>
<a href='$prevPage'>Page précédente</a>
</td> ";
}
if($_GET['ItemPage'] < $totalPages){ //check to see if there are more pages
$Keywords = urlencode($_GET['Keywords']);
$ItemPage = $_GET['ItemPage']+1;
$nextPage = "index.php?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC";
echo "
<td align='right'>
<a href='$nextPage'>Page suivante</a>
<a href='$nextPage'>
<img id='suivant' src='images/48px-Go-next.svg.png' alt='Image suivant' title='Aller à la page suivante' />
</a>
</td>";
}
echo "</tr></table>";
}
//affichage des articles en grand
function ItemLookup($asin, $SearchIndex, $KEYID, $AssocTag){
$request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemLookup&ItemId=$asin&ResponseGroup=Medium,Offers";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
printDetails($parsed_xml, $SearchIndex);
}
//voir les détails d'un article
function printDetails($parsed_xml, $SearchIndex){
echo "<table>";
echo "<tr><td><img src='".$parsed_xml->Items->Item->LargeImage->URL."' alt='Image ".$parsed_xml->Items->Item->LargeImage->URL."' /></td>
<td>Titre : <strong>".$parsed_xml->Items->Item->ItemAttributes->Title."</strong><br/>";
if($SearchIndex == "Books"){ echo "
Auteur : ".$parsed_xml->Items->Item->ItemAttributes->Author."<br/>
Couverture : ".$parsed_xml->Items->Item->ItemAttributes->Binding."<br/>
Nb pages : ".$parsed_xml->Items->Item->ItemAttributes->NumberOfPages." pages<br/>";
}
if($SearchIndex == "Music"){ echo "
Artiste : ".$parsed_xml->Items->Item->ItemAttributes->Artist."<br/>
Label : ".$parsed_xml->Items->Item->ItemAttributes->Label."<br/>
Date de sortie : ".$parsed_xml->Items->Item->ItemAttributes->ReleaseDate."<br/>";
}
if($SearchIndex == "DVD"){ echo "
Directeur : ".$parsed_xml->Items->Item->ItemAttributes->Director."<br/>
Note : ".$parsed_xml->Items->Item->ItemAttributes->AudienceRating."<br/>
Label : ".str_ireplace("&","&",$parsed_xml->Items->Item->ItemAttributes->Label)."<br/>
Date de sortie : ".$parsed_xml->Items->Item->ItemAttributes->ReleaseDate."<br/>";
}
echo "Prix : ".$parsed_xml->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice."<br/>";
$CartId = $_GET['CartId'];
$HMAC = urlencode($_GET['HMAC']);
$search = "index.php?Action=Search&CartId=$CartId&HMAC=$HMAC";
echo "<a href='$search'><img id='search' src='images/32px-Nuvola_devices_blockdevice.png' alt='Image Continuer la Recherche' title='Continuer le Shopping' /></a>";
echo " <a href='$search'>Continuer le Shopping</a>";
$offerListingId = urlencode($parsed_xml->Items->Item->Offers->Offer->OfferListing->OfferListingId);
$CartAdd = "index.php?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC";
echo " <a href='$CartAdd'><img id='ajouter' src='images/32px-Nuvola_apps_kthememgr.png' alt='Image Ajouter' title='Ajouter ce produit dans votre panier' /></a>";
echo " <a href='$CartAdd'>Ajouter au panier</a></td></tr>";
echo "</table>";
}
// creer un caddie
function cartCreate($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
$request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartCreate&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}
// Ajouter au panier
function cartAdd($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
$CartId = $_GET['CartId'];
$HMAC = urlencode($_GET['HMAC']);
$request="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartAdd&CartId=$CartId&HMAC=$HMAC&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}
//voir le contenu du caddie
function showCartContents($parsed_xml){
echo "<table>";
$CartId = $parsed_xml->Cart->CartId;
$HMAC = $parsed_xml->Cart->URLEncodedHMAC;
foreach($parsed_xml->Cart->CartItems->CartItem as $current){
$CartItemId = $current->CartItemId;
$remove="index.php?Action=Remove&CartId=$CartId&HMAC=$HMAC&CartItemId=$CartItemId";
echo "<tr><td>".$current->Title.": ".$current->Price->FormattedPrice."";
echo " <a href=$remove>(Retirer du panier)</a></td></tr>";
}
echo "<tr><td>Sous Total : ".$parsed_xml->Cart->CartItems->SubTotal->FormattedPrice."</td></tr>";
echo "<tr><td>";
$continue = "index.php?Action=Search&CartId=$CartId&HMAC=$HMAC";
echo "<a href='$continue'><img id='continue' src='images/32px-Nuvola_devices_blockdevice.png' alt='Image Continuer le Shopping' title='Continuer le Shopping' /></a>";
echo "<a href='$continue'>Continuer le Shopping</a>";
$checkout=$parsed_xml->Cart->PurchaseURL;
echo " <a href='$checkout'><img id='paiement' src='images/32px-Nuvola_apps_korganizer.png' alt='Image du Paiement' title='Paiement' /></a>";
echo " <a href=$checkout>Paiement</a><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/></td></tr>";
echo "</table>";
}
// supprimer du caddie
function removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $CartItemId){
$CartId = $_GET['CartId'];
$HMAC = urlencode($_GET['HMAC']);
$CartItemId = $_GET['CartItemId'];
$request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartModify&CartId=$CartId&HMAC=$HMAC&Item.1.CartItemId=$CartItemId&Item.1.Quantity=0";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}
// récupérer le contenu du caddie
function getCartContents($KEYID,$AssocTag,$CartId, $HMAC){
$request = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartGet&CartId=$CartId&HMAC=$HMAC";
$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}
?>
Conclusion
Il n'est pas encore possible d'ajouter plusieurs objets dans le panier.
Ne m'envoyer pas des mails pour me dire que ça ne marche pas ! Je pense que ç'est un problème de passage de paramètres dans les fonctions. (se référer à la doc officiellle pour débugger)
Pour ce qui est de l'amélioration de la source : il faut connaître le XML, WSDL, vocabulaire E-commerce, la structure Amazon et l'anglais technique pour sûr!
Ajout de fonctionnalitées intereressante: * rechercher plus de 3 types d'objets (8, c'est mieux!) * donner plus de détails aux objets
Liens externes : Site officiel : http://aws.amazon.com/ Amazon Developer Connection : http://developer.amazonwebservices.com/Ressource A mazon Ecommerce service: http://developer.amazonwebservices.com/connect/kbc ategory.jspa?categoryID=5 Technical documentation : http://developer.amazonwebservices.com/connect/kbc ategory.jspa?categoryID=19
Historique
- 29 septembre 2007 16:15:45 :
- création de la source sur phpcs
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Help me....travaille en php "simple" mais payé.....!! [ par Maniac ]
Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait
Code php simple en asp ou cfm... [ par fabiin ]
Salut,je ne programme ni en asp ni en cfm, mais j'ai besoin de ce code php en asp et cfm :)<?$date1 = mktime(18,33,0,10,30,2003);$date2 = mktime(18
PHP & WANADOO... [ par lard ]
Bonjour !Simple question:Pour l'instant, je suis abonné à Wanadoo (personne n'est parfait...) et j'ai voulu mettre en ligne une simple page Web conten
Question simple, php chez FREE [ par bubble44 ]
Je suis developpeur asp (lol on me jete pas de cailloux merci) et je vais devoir coder en php un truc car apparement c'est pas possible en asp.Est ce
php:c'est simple,j'arrive à rien! [ par peterbud ]
Bonjour à tous,Celà fait quelques jours que j'ai décidé de me mettre au php et j'utilise easy php1.7....et là ca va plus du tout.En effet je teste des
PHP to Flash [ par nashoy ]
Bonsoir à tous,apres de nombreuses recherches, je n'ai jamais vraiment pu comprendre l'erreur..En effet, lorsque je créé un simple scri
Question simple [ par stolken ]
Bonjour à tous, je débute timidement en php et j'ai un tout ptit problème J'ai une variable (chaine) qui se nomme $variable, j'ai qu'e
Galerie/boutique simple... [ par metis15 ]
Hello,Grace à Tucsoufle, j'ai réussi à faire presque ce que je veux, sans rien connaître à PHP, mais...Il s'agit d'une galeri
Un site pour peintre, galerie/boutique, qq pb [ par metis15 ]
Scusez, je reposte ici car chez truc et astuces, ya pas grande monde...Hello,Grace à Tucsoufle, j'ai réussi à faire presque ce que je v
Selectionner tous les checkbox d'un formulaire [ par mattarius ]
Bonjour, j'aimerais savoir s'il existe une fonction simple en php qui permet par le simple clic sur un bouton ou un lien de cocher ou décocher to
|
Derniers Blogs
[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson DéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONSDéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONS par Pi-R
Introduction :
Le développement d'applications mobiles est quelque peu différent du développement d'applications sous Windows. En effet, le développement d'applications mobiles se base sur le .NET Compact Fra...
Cliquez pour lire la suite de l'article par Pi-R IPHONE VERSUS WP7 CODINGIPHONE VERSUS WP7 CODING par Nicolas
Je relais une présentation sur slideshare.net, qui compare le développement sur Iphone et Windows Phone 7, qui ma fait sourire. I phone versus windows phone 7 coding View more presentations from www.donburnett.com. J'aurais bien aimé une comparai...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
Crystal Report (11)CRYSTAL REPORT (11)Crystal Reports est un outil de reporting souple et puissant, vous pouvez très facilement consult... Cliquez pour télécharger Crystal Report Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6
|