Añadir Transportista en Albarán o Factura

Añadir el transportista contratado en la factura y el albarán en PrestaShop de forma fácil

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (4 votos, promedio: 5,00 de 5)
Cargando...

Simplemente mostrar el transporte contratado por parte del cliente puede ser de ayuda para la gestión de los pedidos y de la logística de una tienda online PrestaShop

En PrestaShop se pueden configurar distintos transportes con diferentes características y en ocasiones puede ser necesario añadir el transporte contratado por parte del cliente en el albarán de entrega o en la factura de PrestaShop para facilitar la logística y la gestión de los pedidos. Añadir el nombre del transporte en la factura o en el albarán es muy fácil y solo se debe hacer lo siguiente:

Editar los ficheros PHP de classes/pdf/HTMLTemplateInvoice.php para la factura o classes/pdf/HTMLTemplateDeliverySlip.php para el albarán. Al inspeccionar estos archivos PHP es necesario encontrar la función getContent() en torno a la línea 52.

public function getContent() {

Dentro de la función buscar la asignación de variables a SMARTY, tal que:

$this->smarty->assign(array( ...

Antes de la linea de  asignación, se debe llamar a la clase Carrier para obtener los datos del transporte del pedido, por lo tanto se debe color previa a la asignación

$carrier = new Carrier((int)$this->order->id_carrier);
$this->smarty->assign(array( ...

Por último se añade la variable $carrier dentro de la asignación de variables de Smarty, junto con el resto de variables que ya tenga, y que no se deben tocar. Para ello simplemente se añade una coma al final del último elemento y después la variable $carrier.

$carrier = new Carrier((int)$this->order->id_carrier);
$this->smarty->assign(array(
'order' => $this->order,
... NO TOCAR EL RESTO
'carrier' => $carrier
));

Con estos cambios en el código fuente, ya están las variables asignadas a las plantillas de smarty, ahora solo queda mostrarlo en el PDF, para ello se edita pdf/invoice.tpl para la factura o pdf/delivery-slip.tpl para el albarán y colocaremos {$carrier->name} donde se deba mostrar el transporte contratado, por ejemplo se puede buscar el comentario <!– / CUSTOMER INFORMATION –> y añadir tras el:

<!-- / CUSTOMER INFORMATION -->
<b>{l s='Transporte' pdf='true'}</b><br />
<table style="width: 100%;">
<tr>
<td>{$carrier->name} </td>
</tr>
</table>

Esta es la forma fácil para añadir el nombre del transporte en la factura o en el albarán de una tienda PrestaShop, pero no la correcta. Para programadores avanzados, y para que esta método sea mucho mejor, en lugar de modificar los ficheros en classes/pdf/, se debe sobre escribir el método, para ello hay que crear un fichero con el nombre HTMLTemplateInvoice.php para la factura o  HTMLTemplateDeliverySlip.php para el albarán dentro de la carpeta override/classes/pdf y por ejemplo, para el caso de la factura de Prestashop, se deben implementar los cambios anteriores correspondientes en un fichero con un contenido similar a este:

class HTMLTemplateInvoice extends HTMLTemplateInvoiceCoreclass HTMLTemplateInvoice extends HTMLTemplateInvoiceCore
{    
   /**
   * HTMLTemplateInvoice::getContent()      
   * @return string     
   **/    
   public function getContent()    
   {
      parent::getContent();   
   }
}

Deja una respuesta