Dida la geek Posted May 6, 2014 Share Posted May 6, 2014 Bonjour à tous,tout récemment, j'ai décidé d'installer une boutique pour mon commerce. Étant un peu beaucoup geek, je me suis lancé dans ce grand défis seul et sans connaissance.J'ai appris pas mal rien qu'en lisant ce forum (merci à tous d'ailleur).Aujourd'hui, je cherche a modifier la recherche client lors de la création des commandes dans le BO de prestashop v1.5.6.2.Ce que je cherche a faire exactement :j'utilise des groupes qui on des réductions pour mes clients. Jusque la ça va. Par contre je voudrais lors de ma recherche client, pouvoir afficher le groupe d’accès dans le petit carré de chaque client.Ce sera peut être plus clair avec une image ;-) J'ai cherché mais je ne trouve pas le fichier ou ce trouve cela.Merci pour votre aide,Dida Link to comment Share on other sites More sharing options...
J. Danse Posted May 6, 2014 Share Posted May 6, 2014 Bonjour, Dans AdminOrdersController, il y a la méthode suivante: ajaxProcessSearchCustomers(). Celle-ci est en charge de lancer la recherche (Customer::searchByName()) et de retourner, sous format JSON, les résultats obtenus. Le traitement du JSON obtenu se déroule dans la fonction JavaScript searchCustomers() inclue dans le fichier admin\themes\default\template\controllers\orders\form.tpl Il faudra donc surement modifié les deux fonctions, PHP et JavaScript, afin de récupérer le nom du groupe par défaut (et non son ID obtenu) et le restituer dans la liste. Link to comment Share on other sites More sharing options...
Dida la geek Posted May 6, 2014 Author Share Posted May 6, 2014 Cool, Merci j.danse. Donc voici la function ;-) public function ajaxProcessSearchCustomers() { if ($customers = Customer::searchByName(pSQL(Tools::getValue('customer_search')))) $to_return = array('customers' => $customers, 'found' => true); else $to_return = array('found' => false); $this->content = Tools::jsonEncode($to_return); } J'ai bien compris commment faire pour modifier la partie de form.tpl. Par contre j'ai un peu de mal avec ce bout de code pour la recherche SQL. Serais tu assez sympa pour mettre ... sur la piste ? ;-) Link to comment Share on other sites More sharing options...
J. Danse Posted May 6, 2014 Share Posted May 6, 2014 En fait, il faut faire quelque chose comme suit: public function ajaxProcessSearchCustomers() { if ($customers = Customer::searchByName(pSQL(Tools::getValue('customer_search')))) { foreach($customers as $c => $customer) { $group = new Group((int)$customer['id_default_group']); $customers[$c]['default_group'] = $group->name; } $to_return = array('customers' => $customers, 'found' => true); } else $to_return = array('found' => false); $this->content = Tools::jsonEncode($to_return); } Link to comment Share on other sites More sharing options...
Dida la geek Posted May 6, 2014 Author Share Posted May 6, 2014 Je crois que je suis trop blonde :'( Voici donc ce que j'ai ... enfin ce que j.dance a donné. Mais cela ne semble pas fonctionner enfin je me retrouve avec un super "[object Object]". Fichier ./controllers/admin/AdminOrdersController.php public function ajaxProcessSearchCustomers() { if ($customers = Customer::searchByName(pSQL(Tools::getValue('customer_search')))) { // Début de modification foreach($customers as $c => $customer) { $group = new Group((int)$customer['id_default_group']); $customers[$c]['id_default_group'] = $group->name; } // Fin de modification $to_return = array('customers' => $customers, 'found' => true); } else $to_return = array('found' => false); $this->content = Tools::jsonEncode($to_return); } Fichier ./adminxxxx/themes/default/template/controllers/orders/form.tpl function searchCustomers() { $.ajax({ type:"POST", url : "{$link->getAdminLink('AdminOrders')|escape:'html'}", async: true, dataType: "json", data : { ajax: "1", token: "{$token}", tab: "AdminOrders", action: "searchCustomers", customer_search: $('#customer').val()}, success : function(res) { if(res.found) { var html = '<ul>'; $.each(res.customers, function() { html += '<li class="customerCard"><div class="customerName"><a class="fancybox" href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1">'+this.firstname+' '+this.lastname+'</a></div>'; html += '<div class="customerEmail"><a href="mailto:'+this.email+'">'+this.email+'</a></div>'; html += '<br/><b>'+this.id_default_group+'</b>'; // Ligne modifiée html += '<a onclick="setupCustomer('+this.id_customer+');return false;" href="#" class="id_customer button">{l s='Choose'}</a></li>'; }); html += '</ul>'; } else html = '<div class="warn">{l s='No customers found'}</div>'; $('#customers').html(html); resetBind(); } }); } Link to comment Share on other sites More sharing options...
Dida la geek Posted May 13, 2014 Author Share Posted May 13, 2014 Petit Up, car je suis toujours dans la muise et toujours pas suffisament de temps pour apprendre tout ces languages ... y a vraiment perso ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 13, 2014 Share Posted May 13, 2014 Essayez de voir avec ceci, plutôt: $group = new Group((int)$customer['id_default_group'], (int)$this->context->language->id); Link to comment Share on other sites More sharing options...
Dida la geek Posted May 13, 2014 Author Share Posted May 13, 2014 Super merci. Je suis hyper contente que ce fonctionne. Et j'ai +/- compris. Temps que j'y suis, je cherchais aussi a mettre le nom du client que l'on a selectionner dans cette même page de commande. Aurais tu idée d'ou cela pourrais se trouver ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 13, 2014 Share Posted May 13, 2014 Hum. Le mettre où ? :-/ Link to comment Share on other sites More sharing options...
Dida la geek Posted May 13, 2014 Author Share Posted May 13, 2014 Toujours dans la partie commande, une fois que tu as sélectionner un client, la partie inférieur te permet d'encoder la commande. Le truc c'est que si tu as par exemple un client qui s'appelle du Dupond. Dupond étant un nom fort rependu, j'ai 6 Dupond je clique sur mon client et la partie inférieur (panier) se développe. une fois que j'ai cliqué dessus impossible de savoir sur lequel on a cliqué... Donc la question est est-il possible de mettre genre juste au dessus de la recherche produit est il possible de mettre le nom du client sur lequel on a cliqué ? cela permet de rester tout le long de la commande certain d'avoir le bon client de chargé. Link to comment Share on other sites More sharing options...
Dida la geek Posted May 15, 2014 Author Share Posted May 15, 2014 Personne ? Link to comment Share on other sites More sharing options...
nullos Posted May 21, 2014 Share Posted May 21, 2014 (edited) Salut Dida, Toujours dans la partie commande, une fois que tu as sélectionner un client, la partie inférieur te permet d'encoder la commande. Le truc c'est que si tu as par exemple un client qui s'appelle du Dupond. Dupond étant un nom fort rependu, j'ai 6 Dupond je clique sur mon client et la partie inférieur (panier) se développe. une fois que j'ai cliqué dessus impossible de savoir sur lequel on a cliqué... Donc la question est est-il possible de mettre genre juste au dessus de la recherche produit est il possible de mettre le nom du client sur lequel on a cliqué ? cela permet de rester tout le long de la commande certain d'avoir le bon client de chargé. Cela m'interesse aussi ;-) Edited May 21, 2014 by nullos (see edit history) Link to comment Share on other sites More sharing options...
Dida la geek Posted June 3, 2014 Author Share Posted June 3, 2014 Dsl nullos mais ya pas grand monde qui semble pouvoir nous aider ;-) Peut etre pourrait on partager l'avancement que nous avons dans le domaine, a deux on est tjrs plus fort lol 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