escaho Posted October 16, 2015 Share Posted October 16, 2015 Bonjour, Je suis en train de développer un module pour ajouter un champ perso dans la commande. Pour cela je passe bien évidemment par le panier pour que l'utilisateur puisse saisir ce champ. Mais j'ai un petit soucis. J'ai réussi à faire fonctionner mon champ lorsque l'utilisateur saisie sa donnée, elle apparait bien en bdd, mais lorsque l'utilisateur arrive sur la page des paiements, le champ en bdd est effacé. Je n'arrive vraiment pas à comprendre. A titre d'info, à l'installation mon module surchage Cart.php et Order.php pour créer mon champ et bien sur les entrèes en bdd sont aussi créer. La saisie utilisateur est récupérer en ajax pour l'insérer dans la bdd. Mon module est donc simplement accroché à "hookHeader" pour les css/js et "hookDisplayShoppingCartFooter" pour l'affichage du formulaire. Quelqu'un pourrait me dire comment faire pour que mon champ ne soit pas effacé sur la page des paiements ? Et peut-on aussi me confirmer que mon champ passera automatiquement dans la commande en suivant ? Merci d'avance. Driss Link to comment Share on other sites More sharing options...
escaho Posted October 21, 2015 Author Share Posted October 21, 2015 Bonjour à tous, je revient pour signaler que j'ai résolu mon problème et donner les infos pour ceux que ça pourrait intéresser. Mon problème etait du au fait que j'enregistrer mon champ sur le hook actionCartSave et comme ce dernier est appelé sur plusieurs étapes du processus de commande (peut-être même toutes) et que ma variable n'apparaissait qu'à l'étape 1, elle finissait par être effacée puisque considérer comme vide. J'ai donc enregistrer cette dernière via une fonction ajax dont voici le code : $("#form").submit(function() { $.ajax({ url: baseDir +"modules/module_name/ajax.php", type: "POST", data: "ajax=true&name="+$("#champ").val(), success: function(data) { console.log(data); } }); }); <?php require_once(dirname(__FILE__).'../../../config/config.inc.php'); require_once(dirname(__FILE__).'../../../init.php'); $cookie = Context::getContext()->cookie; $id_cart = $cookie->id_cart; $champ = Tools::getValue('name'); $sql = 'UPDATE '._DB_PREFIX_.'cart SET nouveau_champ = "'. $champ .'" WHERE id_cart = "'. $id_cart .'"'; if (!Db::getInstance()->Execute($sql)) { echo "Une erreur dans la base de donnée est survenue."; return false; } return true; Voila, il suffisait ensuite sur le hook actionValidateOrder de transférer le champ du panier vers la commande. 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