aguiu Posted June 24, 2017 Share Posted June 24, 2017 Cuando recibo pedidos telefónicos, meto los pedidos con la función "Añadir nuevo pedido" en pedidos del backoffice, luego me pide que busque al cliente para el pedido, pero prestashop solo tiene la posibilidad de buscar el cliente por nombre, pero sería mucho mas rápido poder buscar el cliente por numero de teléfono, ya que cuando me llaman veo el numero de teléfono en la pantalla de mi teléfono y sin preguntarle siquiera al cliente ya podría buscarlo y seria más rápido. ¿Como podría modificar mi prestashop para que busque a los clientes también por numero de teléfono? Gracias de antemano Link to comment Share on other sites More sharing options...
ventura Posted June 25, 2017 Share Posted June 25, 2017 Para ello deberás sobreescribir o hacer un override en archivo classes/Customer.php de la function public static function searchByName dejandola asi mas o menos para que se añada el nº de teléfono y el nº de movil si lo hubiera public static function searchByName($query, $limit = null) { $sql_base = 'SELECT * FROM `'._DB_PREFIX_.'customer` c LEFT JOIN `'._DB_PREFIX_.'address` g ON g.id_customer = c.id_customer'; $sql = '('.$sql_base.' WHERE c.`email` LIKE \'%'.pSQL($query).'%\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; $sql .= ' UNION ('.$sql_base.' WHERE c.`id_customer` = '.(int)$query.' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; $sql .= ' UNION ('.$sql_base.' WHERE c.`lastname` LIKE \'%'.pSQL($query).'%\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; $sql .= ' UNION ('.$sql_base.' WHERE c.`firstname` LIKE \'%'.pSQL($query).'%\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; $sql .= ' UNION ('.$sql_base.' WHERE g.`phone` LIKE \'%'.pSQL($query).'%\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; $sql .= ' UNION ('.$sql_base.' WHERE g.`phone_mobile` LIKE \'%'.pSQL($query).'%\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).')'; if ($limit) { $sql .= ' LIMIT 0, '.(int)$limit; } return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); } Luego si quieres que aparezca el nº de teléfono en el panel de cliente una vez encontrado, hara falta sobreescribir tambien el archivo admin\themes\default\template\controllers\orders\form.tpl añadiendo en esta parte de la function searchCustomers() , la parte que esta en color if(res.found) { var html = ''; $.each(res.customers, function() { html += '<div class="customerCard col-lg-4">'; html += '<div class="panel">'; html += '<div class="panel-heading">'+this.firstname+' '+this.lastname; html += '<span class="pull-right">#'+this.id_customer+'</span></div>'; html += '<span>'+this.email+'</span><br/>'; html += '<span class="text-muted">'+((this.phone != '') ? this.phone : '')+'</span><br/>'; html += '<span class="text-muted">'+((this.phone_mobile!= '') ? this.phone_mobile: '')+'</span><br/>'; html += '<span class="text-muted">'+((this.birthday != '0000-00-00') ? this.birthday : '')+'</span><br/>'; html += '<div class="panel-footer">'; html += '<a href="{$link->getAdminLink('AdminCustomers')}&id_customer='+this.id_customer+'&viewcustomer&liteDisplaying=1" class="btn btn- default fancybox"><i class="icon-search"></i> {l s='Details'}</a>'; html += '<button type="button" data-customer="'+this.id_customer+'" class="setup-customer btn btn-default pull-right"><i class="icon-arrow- right"></i> {l s='Choose'}</button>'; html += '</div>'; html += '</div>'; html += '</div>'; }); 1 Link to comment Share on other sites More sharing options...
aguiu Posted June 28, 2017 Author Share Posted June 28, 2017 Perfecto, funciona de maravilla, eres un crack! gracias Link to comment Share on other sites More sharing options...
jisas7 Posted April 26, 2023 Share Posted April 26, 2023 hola, de que version de prestashop es esta modificacion? Gracias 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