Jump to content

Mostrar mensaje del cliente en factura PDF


Recommended Posts

Hola,

 

Cuando el cliente compra un producto, en el proceso de compra, puede añadir un mensaje.
Intento que ese mensaje se muestre en el PDF de la factura. Uso Prestashop 1.6, y todos los tutoriales al respecto que he encontrado son de versiones anteriores. ¿Podéis ayudarme? es bastante urgente.

 

Gracias.

Link to comment
Share on other sites

Tienes que incluir la funcion getproducts en un override

/override/classes/order/OrderInvoice.php

Con este codigo

<?php
 
class OrderInvoice extends OrderInvoiceCore
{



public function getProducts($products = false, $selectedProducts = false, $selectedQty = false)
	{
		if (!$products)
			$products = $this->getProductsDetail();

		$order = new Order($this->id_order);
		$customized_datas = Product::getAllCustomizedDatas($order->id_cart);

		$resultArray = array();
		foreach ($products as $row)
		{
		
			// message info
			if( end($products) === $row ) {
				$row['first_order_message'] = nl2br($order->getFirstMessage());
			}
			// message info end
		
		
			// Change qty if selected
			if ($selectedQty)
			{
				$row['product_quantity'] = 0;
				foreach ($selectedProducts as $key => $id_product)
					if ($row['id_order_detail'] == $id_product)
						$row['product_quantity'] = (int)($selectedQty[$key]);
				if (!$row['product_quantity'])
					continue;
			}

			$this->setProductImageInformations($row);
			$this->setProductCurrentStock($row);
			$this->setProductCustomizedDatas($row, $customized_datas);

			// Add information for virtual product
			if ($row['download_hash'] && !empty($row['download_hash']))
			{
				$row['filename'] = ProductDownload::getFilenameFromIdProduct((int)$row['product_id']);
				// Get the display filename
				$row['display_filename'] = ProductDownload::getFilenameFromFilename($row['filename']);
			}
			
			$row['id_address_delivery'] = $order->id_address_delivery;
			
			/* Stock product */
			$resultArray[(int)$row['id_order_detail']] = $row;
		}

		if ($customized_datas)
			Product::addCustomizationPrice($resultArray, $customized_datas);

		return $resultArray;
	}
	}

Luego en el archivo

/pdf/invoice.tpl   
themes/tu_tema/pdf/invoice.tpl  <-- En caso de tenerla esta sería--->

Incluyes la variable del primer mensaje del pedido, debajo de esto  {$tax_tab} y lo colocas ya como quieras



<div style="margin-top: 70px">
{if $order_detail.first_order_message}	<p style="text-align: left; font-weight: bold"> {l s='Customer message:' pdf='true'}</p> <br/>
{$order_detail.first_order_message}
{/if}</div>
Link to comment
Share on other sites

  • 8 months later...

Hola, ¿podrían ayudarme?

 

Estoy tratando de "mostrar los mensajes que dejan los clientes" en la factura, tal y como habéis explicado aquí el procedimiento, pero sin embargo este archivo "/override/classes/order/OrderInvoice.php" no lo tengo, sólo un "index.php" con información irrelevante, ¿ese archivo está en algún otro lugar, o tengo que crearlo?.

 

Gracias y espero vuestra ayuda, y si puede ser explicada con detalles porfi

 

Un saludo

Link to comment
Share on other sites

El archivo "Orderinvoice.php" lo he encontrado en "miweb/classes/order/OrderInvoice.php", pero he probado a introducir el código aquí descrito pero no funciona, de hecho a la hora de realizar el pedido se queda en blanco debido a un error, lo he puesto con el encabezado de clase "class OrderInvoice extends OrderInvoiceCore" y sin el, tanto dentro como fuera del código que hay en ese archivo...

 

Sigo investigando mientras podéis ayudarme a resolver mi problema, gracias!

Link to comment
Share on other sites

El archivo "Orderinvoice.php" lo he encontrado en "miweb/classes/order/OrderInvoice.php", pero he probado a introducir el código aquí descrito pero no funciona, de hecho a la hora de realizar el pedido se queda en blanco debido a un error, lo he puesto con el encabezado de clase "class OrderInvoice extends OrderInvoiceCore" y sin el, tanto dentro como fuera del código que hay en ese archivo...

 

Sigo investigando mientras podéis ayudarme a resolver mi problema, gracias!

 

Ya he visto que has dado el tema por solucionado en otro hilo. La proxima vez indica la version de Pretashop que tienes instalada para que se pueda ayudar de manera mas precisa

Link to comment
Share on other sites

  • 4 months later...
  • 1 year later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...