djidi Posted August 27, 2013 Share Posted August 27, 2013 (edited) Bonjour,Dans le cadre du développement d'un site n'ayant qu'un seul produit, je souhaiterais créer un script permettant de faire un ajout automatique du produit dans le panier.Le processus se ferait ainsi :1) Clic d'un lien dans le menu principal (Ex: Commandez le produit)2) Création panier + ajout du produit3) Redirection automatique vers la page "commande rapide" ou il rentre ses informations (Nom, prénom, adresse...)J'ai essayé via les webservices avec le code suivant : <?php define('DEBUG', true); define('PS_SHOP_PATH', 'xxx'); define('PS_WS_AUTH_KEY', 'xxx'); require_once($_SERVER['DOCUMENT_ROOT'].'/_pn/PSWebServiceLibrary.php'); $psXML = <<<XML <prestashop> <cart> <id/> <id_address_delivery>0</id_address_delivery> <id_address_invoice>0</id_address_invoice> <id_currency>2</id_currency> <id_customer>0</id_customer> <id_guest>0</id_guest> <id_lang>5</id_lang> <id_carrier>1</id_carrier> <recyclable>1</recyclable> <gift>0</gift> <gift_message/> <associations> <cart_rows> <cart_row> <id_product>16</id_product> <id_product_attribute>0</id_product_attribute> <quantity>1</quantity> </cart_row> </cart_rows> </associations> </cart> </prestashop> XML; try { $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $xml = new SimpleXMLElement($psXML); $opt = array( 'resource' => 'carts' ); $opt['postXml'] = $xml->asXML(); $xml = $webService->add( $opt ); } catch (PrestaShopWebserviceException $ex) { echo 'Other error: <br />' . $ex->getMessage(); } ?> Cependant après cela, il n'y a pas de panier créé et je ne sais pas s'il y a une autre étape avec les webservices ou une erreur de ma part.Merci d'avance. Edited October 24, 2013 by djidi (see edit history) Link to comment Share on other sites More sharing options...
webpulser Posted August 27, 2013 Share Posted August 27, 2013 Bonjour, Je pense qu'il y a beaucoup plus simple. Le panier est déjà créé de base. Il suffit d'utiliser le même bouton que pour l'ajout au panier d'une fiche produit et rediriger le client à l'étape 2. A voir avec la fonction add d'ajax-cart.js du module blockcart. Link to comment Share on other sites More sharing options...
LeGoss Posted October 23, 2013 Share Posted October 23, 2013 Bonjour Pouvez vous m'aider, je cherche la meme info ? Je ne connais pas ajax-cart non plus Merci Link to comment Share on other sites More sharing options...
djidi Posted October 24, 2013 Author Share Posted October 24, 2013 (edited) Salut, Merci à Webpulser pour la réponse et les indications de départ, ca m'avait permis de résoudre mon pb. Voici le code avec en commentaire les modifications à faire. var quantity = 1; // Quantité de produits à insérer dans le panier. var idProduct = 16; // Changer par l'identifiant du produit. var idCombination = 0; $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: baseUri + '?rand=' + new Date().getTime(), async: true, cache: false, dataType : "json", data: 'controller=cart&add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''), success: function(jsonData,textStatus,jqXHR) { // Action à effectuer une fois le produit ajouté. }, error: function(XMLHttpRequest, textStatus, errorThrown) {} }); Edited October 24, 2013 by djidi (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now