Services_Amazon
[ class tree: Services_Amazon ] [ index: Services_Amazon ] [ all elements ]

Source for file amazon_ecs4_cart.php

Documentation is available at amazon_ecs4_cart.php

  1. <?php
  2. //
  3. // Example of usage for Services_AmazonECS4
  4. //
  5. // This example uses the following functions:
  6. // - CartAdd
  7. // - CartClear
  8. // - CartCreate
  9. // - CartGet
  10. // - CartModify
  11. //
  12. // * VERY IMPORTANT *
  13. // YOU NEED TO CHANGE THE SUBSCRIPTION TO SOMETHING OTHER THEN XXXXXXXXXX
  14. // YOU ALSO SHOULD CHANGE THE ASSOSCIATE ID TO YOUR OWN
  15. // * VERY IMPORTANT *
  16.  
  17. require_once 'PEAR.php';
  18. require_once 'Services/AmazonECS4.php';
  19.  
  20. // An Amazon Subscription ID
  21. $subid 'XXXXXXXXXX';
  22. // An Amazon Associate ID
  23. $associd '';
  24.  
  25. function report_error($msg)
  26. {
  27.     echo "<p><i>{$msg}</i><p></body></html>";
  28.     exit();
  29. }
  30.  
  31. function existsCart()
  32. {
  33.     return isset($_COOKIE['CartId']? true : false;
  34. }
  35.  
  36. $amazon = new Services_AmazonECS4($subid$associd);
  37.  
  38. switch ($_GET['action']{
  39. case 'add':
  40.     $item = array('ASIN' => $_GET['ASIN'],
  41.                   'Quantity' => $_GET['Quantity']);
  42.     if (!existsCart()) {
  43.         $result $amazon->CartCreate($item);
  44.         if (PEAR::isError($result)) {
  45.             report_error($result->message);
  46.         }
  47.         setcookie('CartId'$result['CartId']time(+ 60*60*24);
  48.         setcookie('HMAC'$result['HMAC']time(+ 60*60*24);
  49.     else {
  50.         $result $amazon->CartAdd($_COOKIE['CartId']$_COOKIE['HMAC']$item);
  51.         if (PEAR::isError($result)) {
  52.             report_error($result->message);
  53.         }
  54.     }
  55.     break;
  56.  
  57. case 'modify':
  58.     if (!existsCart()) {
  59.         report_error('Invalid action');
  60.     }
  61.     $item = array('CartItemId' => $_GET['CartItemId']);
  62.     if (isset($_GET['SaveForLater'])) {
  63.         $item += array('Action' => 'SaveForLater');
  64.     else if (isset($_GET['MoveToCart'])) {
  65.         $item += array('Action' => 'MoveToCart');
  66.     else {
  67.         $item += array('Quantity' => $_GET['Quantity']);
  68.     }
  69.     $result $amazon->CartModify($_COOKIE['CartId']$_COOKIE['HMAC']$item);
  70.     if (PEAR::isError($result)) {
  71.         die($result->message);
  72.     }
  73.     
  74.     break;
  75.  
  76. case 'clear':
  77.     if (!existsCart()) {
  78.         report_error('Invalid action');
  79.     }
  80.     $result $amazon->CartClear($_COOKIE['CartId']$_COOKIE['HMAC']);
  81.     break;
  82.  
  83. default:
  84.     if (existsCart()) {
  85.         $result $amazon->CartGet($_COOKIE['CartId']$_COOKIE['HMAC']);
  86.         if (PEAR::isError($result)) {
  87.             setcookie('CartId'null0);
  88.             setcookie('HMAC'null0);
  89.             report_error($result->message);
  90.         }
  91.     }
  92.     break;
  93. }
  94.  
  95. echo <<< EOT
  96. <html>
  97. <head>
  98.     <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  99.     <title>Services_AmazonECS4 example - Cart Operations</title>
  100. </head>
  101. <body>
  102. <h1>Services_AmazonECS4 example - Cart Operations</h1>
  103. <p>
  104. <a href="http://www.amazon.com/gp/aws/sdk/main.html/102-1552053-0536932?s=AWSEcommerceService&v=2005-07-26&p=PgUsingShoppingCartArticle" target="_blank">Using the Amazon E-Commerce Service Shopping Cart</a>
  105. </p>
  106. <form action="{$_SERVER['PHP_SELF']}" method="get">
  107. <table border="0">
  108. <tr>
  109.     <td>ASIN <input type="text" name="ASIN" size="20" /></td>
  110.     <td>Quantity <input type="text" name="Quantity" size="3" value="1" /></td>
  111.     <td><input type="submit" value="Add to cart" /></td>
  112. </tr>
  113. </table>
  114. <input type="hidden" name="action" value="add" />
  115. </form>
  116. EOT;
  117.  
  118. // CartItems
  119. echo <<< EOT
  120. CartItems :<br />
  121. <table border="1">
  122. <tr><th>ASIN</th><th>Title</th><th>Price</th><th>Qty</th><th>Save</th><th></th></tr>
  123. EOT;
  124. $items = array();
  125. if (isset($result['CartItems'])) {
  126.     if (isset($result['CartItems']['CartItem']['CartItemId'])) {
  127.         $items = array($result['CartItems']['CartItem']);
  128.     else {
  129.         $items $result['CartItems']['CartItem'];
  130.     }
  131. }
  132. foreach ($items as $v{
  133. echo <<< EOT
  134.     <tr>
  135.         <form action="{$_SERVER['PHP_SELF']}" method="get">
  136.         <td>{$v['ASIN']}</td>
  137.         <td>{$v['Title']}</td>
  138.         <td>{$v['Price']['FormattedPrice']}</td>
  139.         <td>
  140.             <input type="text" size="3" name="Quantity" value="{$v['Quantity']}" />
  141.             <input type="hidden" name="CartItemId" value="{$v['CartItemId']}" />
  142.         </td>
  143.         <td>
  144.             <input type="checkbox" name="SaveForLater" value="save" />
  145.         </td>
  146.         <td>
  147.             <input type="submit" value="Update" />
  148.         </td>
  149.         <input type="hidden" name="action" value="modify" />
  150.         </form>
  151.     </tr>
  152. EOT;
  153. }
  154. echo <<< EOT
  155. </table><br />
  156. EOT;
  157.  
  158. // Saved Items
  159. echo <<< EOT
  160. Saved Items to buy later :<br />
  161. <table border="1">
  162. <tr><th>ASIN</th><th>Title</th><th>Price</th><th>Qty</th><th>Move</th><th></th></tr>
  163. EOT;
  164. $items = array();
  165. if (isset($result['SavedForLaterItems'])) {
  166.     if (isset($result['SavedForLaterItems']['SavedForLaterItem']['CartItemId'])) {
  167.         $items = array($result['SavedForLaterItems']['SavedForLaterItem']);
  168.     else {
  169.         $items $result['SavedForLaterItems']['SavedForLaterItem'];
  170.     }
  171. }
  172. foreach ($items as $v{
  173. echo <<< EOT
  174.     <tr>
  175.         <form action="{$_SERVER['PHP_SELF']}" method="get">
  176.         <td>{$v['ASIN']}</td>
  177.         <td>{$v['Title']}</td>
  178.         <td>{$v['Price']['FormattedPrice']}</td>
  179.         <td>
  180.             <input type="text" size="3" name="Quantity" value="{$v['Quantity']}" />
  181.             <input type="hidden" name="CartItemId" value="{$v['CartItemId']}" />
  182.         </td>
  183.         <td>
  184.             <input type="checkbox" name="MoveToCart" value="move" />
  185.         </td>
  186.         <td>
  187.             <input type="submit" value="Update" />
  188.         </td>
  189.         <input type="hidden" name="action" value="modify" />
  190.         </form>
  191.     </tr>
  192. EOT;
  193. }
  194. echo <<< EOT
  195. </table><br />
  196. EOT;
  197.  
  198. // Clear
  199. if (isset($result['CartItems']|| isset($result['SavedForLaterItems'])) {
  200. echo <<< EOT
  201. <p><a href="{$_SERVER['PHP_SELF']}?action=clear">Clear</a></p>
  202. EOT;
  203. }
  204.     
  205. // Purchase
  206. if (isset($result['CartItems']|| isset($result['SavedForLaterItems'])) {
  207. echo <<< EOT
  208. <p><a href="{$result['PurchaseURL']}">Purchase</a></p>
  209. EOT;
  210. }
  211.  
  212. // Processing Time
  213. echo '<p>Processing Time : ' $amazon->getProcessingTime('sec</p>';
  214.  
  215. // Result
  216. echo '<p>Result :';
  217. var_dump($result);
  218. echo '</p>';
  219.  
  220. echo <<< EOT
  221. </body>
  222. </html>
  223. EOT;
  224.  
  225. ?>

Documentation generated on Mon, 11 Mar 2019 14:12:53 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.