Buscar pedidos por número de seguimiento en Prestashop

Traducción literal de la guía de Vekia.

Aunque vamos a editar el controlador original recordar que lo optimo es hacer un override.

Editamos fichero: /controllers/admin/AdminOrdersController.php

Buscamos la siguiente instrucción:

$this->_join = '
LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`)
LEFT JOIN `'._DB_PREFIX_.'address` address ON address.id_address = a.id_address_delivery
LEFT JOIN `'._DB_PREFIX_.'country` country ON address.id_country = country.id_country
LEFT JOIN `'._DB_PREFIX_.'country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = '.(int)$this->context->language->id.')
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`)
LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
Código

Y vamos a modificar la consulta del siguiente modo:

Código modificado

Como podéis ver en la captura, hemos añadido encima del primer elemento de la consulta la siguiente instrucción:

LEFT JOIN `'._DB_PREFIX_.'order_carrier` oc ON a.`id_order` = oc.`id_order`

Por último, en el mismo fichero, buscamos la siguiente instrucción:

'id_order' => array(
'title' => $this->l('ID'),
'align' => 'text-center',
'class' => 'fixed-width-xs'
),

Que corresponde a la columna de ID pedido del listado de pedidos.

ID Pedido

Y añadimos debajo la siguiente instrucción:

'tracking_number' => array(
'title' => $this->l('tracking number'),
'havingFilter' => true,
),

Código modificado

Ahora veremos que en el listado de pedidos podremos buscar los pedidos por el número de seguimiento.

Numero de seguimiento

Documento para Prestashop 1.6

Recordar que lo ideal no es editar el controlador original, sino hacer un override del controlador en: /override/controllers/admin/