corlinea Posted July 20, 2012 Share Posted July 20, 2012 Bonjour, Pour un développement très spécifique sur prestashop 1.5, j'aurai besoin d'ajouter des produits au panier depuis une page que j'ai moi même développé. J'ai donc utiliser la fonction updateQty qui se trouve dans la classe Cart. Cependant, le produit n'est pas rajouter entièrement au panier, j'ai uniquement un enregistrement dans la table ps_cart_product avec l'id cart à 0. Auriez vous des explications a me fournir. Je vous remercie. Link to comment Share on other sites More sharing options...
math_php Posted July 20, 2012 Share Posted July 20, 2012 Bonjour, Pourrais tu montrer le bout de code qui ajoute au panier ? As tu récupéré l'id_guest et/ou l'id_customer du visiteur ? Link to comment Share on other sites More sharing options...
corlinea Posted July 20, 2012 Author Share Posted July 20, 2012 Voici le bout de code. $cart = new Cart(); $quantity = 1; $id_product = 2; $cart->id_customer = $id_customer; $cart->updateQty($quantity, $id_product, $id_product_attribute = NULL, $operator = 'up'); La fonction ne prend pas en paramètre d' id_customer. Cordialement. Link to comment Share on other sites More sharing options...
math_php Posted July 20, 2012 Share Posted July 20, 2012 En fonction de ton code : $cookieLifetime = (time() + (((int)Configuration::get('PS_COOKIE_LIFETIME_FO') > 0 ? (int)Configuration::get('PS_COOKIE_LIFETIME_FO') : 1)* 3600)); $cookie = new Cookie('ps', '', $cookieLifetime); $id_cart = $cookie->__get('id_cart'); $id_lang =$cookie->__get('id_lang); $cart = new Cart($id_cart,$id_lang); Normalement tout est dans le cookie Bon dev Link to comment Share on other sites More sharing options...
corlinea Posted July 23, 2012 Author Share Posted July 23, 2012 Bonjour, Merci pour ton bout de code cependant la variable $id_cart est toujours vide. Merci. Link to comment Share on other sites More sharing options...
math_php Posted July 23, 2012 Share Posted July 23, 2012 Bonjour, Ok pas de chance j'ai voulu trop bien faire en indiquant $id_lang pour l'objet Cart. Ca déclenche une erreur Sql : la table cart_lang n'existe pas. Alors maintenant si tu mets ce code dans un fichier à la racine de ton site : <?php require(dirname(__FILE__).'/config/config.inc.php'); $cookieLifetime = (time() + (((int)Configuration::get('PS_COOKIE_LIFETIME_FO') > 0 ? (int)Configuration::get('PS_COOKIE_LIFETIME_FO') : 1)* 3600)); $cookie = new Cookie('ps', '', $cookieLifetime); $id_cart = $cookie->__get('id_cart'); var_dump($id_cart); $id_lang =$cookie->__get('id_lang'); var_dump($id_lang); $cart = new Cart($id_cart); var_dump($cart); Tu auras tout ce qu'il te faut, (mets quelque chose en panier pour etre sur d'avoir un id_cart. Bon dev Link to comment Share on other sites More sharing options...
corlinea Posted July 23, 2012 Author Share Posted July 23, 2012 J'ai toujours le même soucis mais la ce bout de code fonctionne si l'utilisateur à déjà mis quelque chose dans son panier ? Mais si c'est la première dois qu'il arrive sur la boutique comment lui générer un id_cart ? Je précise c'est un ajout de produit au panier pour la première fois. Je te remercie. Link to comment Share on other sites More sharing options...
math_php Posted July 23, 2012 Share Posted July 23, 2012 Bien vu, Il faudrait voir dans le CartController pour l'ajout avec création du panier, je m'en sert ça fonctionne sans problème. Par contre un truc que j'aurai du demander avant : Ton code il est dans quoi ? Un module, un controller, une page php sans rapport avec PS, dans l'équivalent d'un site externe ? Ca va marcher Link to comment Share on other sites More sharing options...
corlinea Posted July 23, 2012 Author Share Posted July 23, 2012 Mon code est dans une page externe qui n'a aucun rapport avec prestashop mais j'utilise certaine classe de prestashop dans mon code. Si je comprend bien il y a une fonction dans le CartController qui peu me permettre de créer un panier sans utiliser la fonction updateQty ? Merci. Link to comment Share on other sites More sharing options...
math_php Posted July 24, 2012 Share Posted July 24, 2012 Ouille, Là il va falloir ré étudier le problème. Comment veux tu ajouter dans le panier : - via ajax ? - par un lien ? - par l'envoi d'un formulaire ? On est d'accord que l'article existe déjà dans prestashop ? Link to comment Share on other sites More sharing options...
corlinea Posted July 24, 2012 Author Share Posted July 24, 2012 Les articles existe bien dans prestashop. J'ai développé un configurateur ou l'utilisateur sélectionne des options pour avoir un produit final. Au final j'ai donc les id_produits ainsi que les quantité que l’utilisateur à choisie mais la ou je bloque c'est comment les transmettre au panier puis qu'il soit redirigé par la suite vers le panier. Merci Link to comment Share on other sites More sharing options...
math_php Posted July 24, 2012 Share Posted July 24, 2012 (edited) Ok, mais le problème c'est le contexte à partir duquel tu veux ajouter tes produits et c'est aussi tes choix de présentation qui vont imposer tel ou tel façon d'utilisation du code. - Tes visiteurs sont forcément passés par la partie prestashop ? : c'est bon ils ont un cookie, on peut faire une requete ajax sinon un simple lien avec l'id_product peut suffire http://127.0.0.1/prestashop_site/cart.php?qty=1&id_product=80&add Edited July 24, 2012 by math_php (see edit history) Link to comment Share on other sites More sharing options...
corlinea Posted July 24, 2012 Author Share Posted July 24, 2012 Au départ, il arrive sur une page d'identification, après identification ils ont le choix soit d'aller sur le configurateur soit 'aller sur la boutique. Donc le cookie est bien crée. Ce qui est complexe ici c'est qu'il a pas qu'un seul produit c'est plusieurs options qui sont considérés dans prestashop comme des produits. N'hesite pas si tu a besoin de plus d'information et merci surtout. Link to comment Share on other sites More sharing options...
math_php Posted July 24, 2012 Share Posted July 24, 2012 Allez ça va marcher. As tu une démo en ligne ? Si c'est ultra confidentiel envoi moi le lien en message privée. Donc tu es sur que tes clients on un cookie prestashop, ça c'est bon. Apres tu sais faire un lien ou un bouton pour lequel dynamiquement en javascript tu vas modifier l'url pour que ça dirige le client vers le panier avec le bon id_produit ? Je t'ai envoyé ma démo en message privée. objectif : on trouve la solution cette aprem Link to comment Share on other sites More sharing options...
corlinea Posted July 24, 2012 Author Share Posted July 24, 2012 Oui les client après identification on bien un cookie presatshop mais dans le cookie aucun id_cart n'apparait donc ce que je veux juste c'est générer cet id. Mon but est de ne pas me taper les requêtes SQL pour générer mon panier. Est ce que quand le client se connecte un id_cart doit se générer automatiquement ? Link to comment Share on other sites More sharing options...
math_php Posted July 24, 2012 Share Posted July 24, 2012 (edited) Non Prestashop ne crée pas un id_cart pour chaque visiteur, il ne le crée que si le visiteur ajoute un article. Ton visiteur peut arriver sur le site, repartir de suite, il n'aura pas d'id_cart. Examine le lien de l'ajout panier dans le fonctionnement standard de prestashop et essaye de construire le même. Tu n'auras rien de plus à faire. Par défaut ajax récupére le clic et joue une animation, mais le lien est aussi valide pour diriger vers le panier tout en ajoutant. Edited July 24, 2012 by math_php (see edit history) Link to comment Share on other sites More sharing options...
corlinea Posted July 24, 2012 Author Share Posted July 24, 2012 Très bien je vais voir ça je te remercie pour ton aide. 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