Avisos
Vaciar todo

[Resuelto] Busqueda de clientes por numero de telefono  

 
SANDRO
 SANDRO
Usuario experto

Buenas tardes, 

Necesito poder buscar al cliente por su numero de teléfono al realizar un pedido desde el backoffice, en lugar de buscarlo por nombre o apellidos.

Creo que hay que modificar :

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>';

});

 

 

Pero necesito soporte para poder modificarlo.

Gracias de antemano.

 

 

Contenido solo visible a usuarios registrados

Respondido : 09/05/2021 3:56 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro,

Disculpa si no logro comprender bien la consulta, como deseas realizar la búsqueda del teléfono. Si es posible indícanos con mas detalles que deseas realizar de esta forma podemos enviarte que como mayor detalle lo que nos comentas

Un Saludo 😊 

Respondido : 09/05/2021 4:23 pm

SANDRO
 SANDRO
Usuario experto

@karen

Buenas tardes, 

Los clientes me mandan los pedidos por telefono y al crearlos desde el backoffice necesitaria que me buscase los clientes por telefono, ahora solo te da la opcion de buscar por nombre y apellidos.

Gracias

Respondido : 09/05/2021 6:32 pm
SANDRO
 SANDRO
Usuario experto
Respondido por: @patri_arrhotmail-com

@karen

Buenas tardes, 

Los clientes me mandan los pedidos por telefono y al crearlos desde el backoffice necesitaria que me buscase los clientes por telefono, ahora solo te da la opcion de buscar por nombre y apellidos.

Gracias

He encontrado la solución que os adjunto al primer mensaje pero necesito soporte para poder realizar esos cambios, si no hay otra forma de conseguir que filtre por numero de telefono.

 

Respondido : 09/05/2021 6:34 pm

Cursos Gratuitos WordPress

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro,

Entiendo en este caso veo que necesitas modificar los archivos que mencionas al principio para añadir la configuración que necesitas, si es asi, lo primero que debes hacer es ingresar a tu cuenta cPanel -> Administrador de Archivos -> Public_html

Screenshot

Luego debes ingresar a la carpeta que tienes los archivos de tu sitio web y ubicar el directorio -> public_html/tu_web/classes/Customer.php y editar este archivo y ubicar la función que indica

public static function searchByName
Screenshot

Esta debes sustituirla por tu nueva función

Screenshot

Una vez guardado los cambios debes ingresar al directorio admin\themes\default\template\controllers\orders\form.tpl y añadir en el archivo donde se encuentran la función function searchCustomers() lo que menciona en el código estas lineas adicionales

html += '<span class="text-muted">'+((this.phone != '') ? this.phone : '')+'</span><br/>';

html += '<span class="text-muted">'+((this.phone_mobile!= '') ? this.phone_mobile: '')+'</span><br/>';

Ten en cuenta que estas modificando archivos directamente del core de prestashop por lo que te sugiero antes de realizar cualquier cambio hagas una copia de seguridad de tu sitio web y los archivos de esta forma si se genera un error puedes restaurarla

Adicional veo que este complemento puede ayudarte a añadir lo que necesitas -> Contenido solo visible a usuarios registrados

Solo ten en cuenta que estos complementos son de pago por lo que te sugiero contactes con el desarrollador del plugin y le preguntes si te permite añadir lo que necesitas

Un Saludo

 

Respondido : 09/05/2021 7:25 pm
SANDRO
 SANDRO
Usuario experto

@karen

Muchas gracias, lo intentare pero me parece muy complicado.

No hay ninguna opcion de editar los campos que aparecen cuando filtras el archivo de las direcciones de los clientes o el listado de pedidos?

Por ejemplo que en listado de pedidos aparezca ademas de 

ID   Referencia   Nuevo cliente Entrega   Cliente   Total   Pago   Estado   Fecha   PDF

que aparezca también el teléfono del pedido.

 

Gracias;

Respondido : 09/05/2021 9:21 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro,

En este caso esta no es una opción por defecto de prestashop por lo que para añadir esto se requiere modificar el código si no quieres modificarlo te recomiendo contactes con nuestro directorio de colaboradores quienes pueden ayudarte a agregar lo que necesitas.

Otra una opción que puedes verificar es el complemento que te menciono anteriormente -> Contenido solo visible a usuarios registrados teniendo en cuenta verificar con del desarrollador del mismo ya estos son de pago por lo que te sugiero compruebes funciona para lo que deseas añadir.

Un Saludo

 

Respondido : 09/05/2021 9:35 pm
SANDRO
 SANDRO
Usuario experto

@karen

Muchisimas gracias, asi lo haré.

Saludos.

Respondido : 09/05/2021 9:47 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro,

Gracias a ti, siempre es un placer poder auyudarte

Quedamos muy atentos como ha ido todo

Un Saludo 😊 

Respondido : 09/05/2021 9:57 pm
SANDRO
 SANDRO
Usuario experto

@karen,

Estoy revisando esto que os pregunte hace un par de años y estoy intentando añadir el mismo codigo a la tienda nueva que esta en prestashop 1.7, pero no funciona.

No vale la misma modificación en esta versión?

GRacias;

Respondido : 15/06/2023 4:29 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro, 

En este caso para nuevas versiones es posible que el código varíe y no funcione de la misma forma, algo que puedes revisar es el modulo que te comente anteriormente → Contenido solo visible a usuarios registrados

Actualmente, veo que tienen compatibilidad con la versión 8.0 de Prestashop 

Un Saludo 

Respondido : 15/06/2023 4:48 pm
SANDRO
 SANDRO
Usuario experto

Muchas gracias, lo miraré.

Respondido : 15/06/2023 5:26 pm

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Sandro, 

Gracias a ti, es un placer siempre poder ayudarte. 

No dudes en escribirnos si tienes cualquier otra consulta

Un Saludo 😊 

Respondido : 15/06/2023 5:29 pm