Jump to content

Desglose de IVA en "Detalles del pedido"


David López

Recommended Posts

Hola, muy buenas.

Quisiera saber cómo poder solucionar lo siguiente.

Cuando mi cliente recibe un email de un pedido en su correo, de alguien que ha comprado en su tienda, le sale todo correcto: ref del producto, características del producto, cantidad, precios y total. Pero en los precios, no sale una nueva barra o campo desglosando (especificando) el IVA tanto del producto como del transporte. En la factura final sí que sale todo, pero donde no sale desglosado es en "Detalles del pedido"(que es mensaje que llega al correo), cosa bastante importante para la persona encargada de generar el pedido. Os adjunto una captura para que vean mejor a qué me refiero.

He estado buscando, pero todo hace referencia al desglose de la factura final, y no al desglose en el email del pedido que el cliente recibe de un comprador. He estado mirando en los archivos de mailalerts, pero ahí no es. No doy con la solución. Igual es algo de back-office, pero lo tengo todo correctamente.

¡Saludos y espero de vuestra ayuda!
¡Muchas gracias!

post-963792-0-55354000-1441389525_thumb.jpg

Link to comment
Share on other sites

Hola.

 

En este hilo https://www.prestashop.com/forums/topic/64418-editar-las-plantillas-de-email/page-2?do=findComment&comment=1192866 he encontrado la casi solución, Inntimo dice lo que hizo, pero a mi quedan unas dudas y por eso no termino de lograrlo.

 

Para empezar, he encontrado a modificar: new_order.html (que es el email con la plantilla que le llega al cliente tras un pedido de algún comprador). Aquí, como dije y muestro en la captura, me gustaría que se desglosara el iva del producto y transporte. Justo antes del TOTAL hay una suma de impuestos, pero lo que quiero es que debajo de cada precio, se le desglose el impuesto. El cliente va a tener este email y plantilla como referencia única y principal para antes y después de sacar el pedido a la calle.

 

Como digo, no sé qué añadir exactamente a este archivo y si es a él al que hay que añadírselo y no a otro (PaymentModule.php), o a ambos diferentes cosas.

 

Y un problema, el producto lleva el 10% y el transporte el 21%.

 

¿Me pueden terminar de echar una buena mano? Lo agradecería mucho. 

 

¡Saludos!

Link to comment
Share on other sites

Hola.

 

He seguido dándole vueltas y vueltas y ya he avanzado yo mismo, pero surge un problema.

 

Dentro del archivo PaymentModule.php he añadido las dos variables correspondientes. Están al final del todo y son las que corresponderían a sacar desglosado el iva del producto y el iva del transporte.

 

 

// Send an e-mail to customer (one order = one email)
if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && $this->context->customer->id)
{
$invoice = new Address($order->id_address_invoice);
$delivery = new Address($order->id_address_delivery);
$delivery_state = $delivery->id_state ? new State($delivery->id_state) : false;
$invoice_state = $invoice->id_state ? new State($invoice->id_state) : false;
                                                $iva = $total_paid_notax * 0.21 ;
 
$data = array(
'{firstname}' => $this->context->customer->firstname,
'{lastname}' => $this->context->customer->lastname,
'{email}' => $this->context->customer->email,
'{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n"),
'{invoice_block_txt}' => $this->_getFormatedAddress($invoice, "\n"),
'{delivery_block_html}' => $this->_getFormatedAddress($delivery, '<br />', array(
'firstname' => '<span style="font-weight:bold;">%s</span>',
'lastname' => '<span style="font-weight:bold;">%s</span>'
)),
'{invoice_block_html}' => $this->_getFormatedAddress($invoice, '<br />', array(
'firstname' => '<span style="font-weight:bold;">%s</span>',
'lastname' => '<span style="font-weight:bold;">%s</span>'
)),
'{delivery_company}' => $delivery->company,
'{delivery_firstname}' => $delivery->firstname,
'{delivery_lastname}' => $delivery->lastname,
'{delivery_address1}' => $delivery->address1,
'{delivery_address2}' => $delivery->address2,
'{delivery_city}' => $delivery->city,
'{delivery_postal_code}' => $delivery->postcode,
'{delivery_country}' => $delivery->country,
'{delivery_state}' => $delivery->id_state ? $delivery_state->name : '',
'{delivery_phone}' => ($delivery->phone) ? $delivery->phone : $delivery->phone_mobile,
'{delivery_other}' => $delivery->other,
'{invoice_company}' => $invoice->company,
'{invoice_vat_number}' => $invoice->vat_number,
'{invoice_firstname}' => $invoice->firstname,
'{invoice_lastname}' => $invoice->lastname,
'{invoice_address2}' => $invoice->address2,
'{invoice_address1}' => $invoice->address1,
'{invoice_city}' => $invoice->city,
'{invoice_postal_code}' => $invoice->postcode,
'{invoice_country}' => $invoice->country,
'{invoice_state}' => $invoice->id_state ? $invoice_state->name : '',
'{invoice_phone}' => ($invoice->phone) ? $invoice->phone : $invoice->phone_mobile,
'{invoice_other}' => $invoice->other,
'{order_name}' => $order->getUniqReference(),
'{date}' => Tools::displayDate(date('Y-m-d H:i:s'), null, 1),
'{carrier}' => ($virtual_product || !isset($carrier->name)) ? Tools::displayError('No carrier') : $carrier->name,
'{payment}' => Tools::substr($order->payment, 0, 32),
'{products}' => $product_list_html,
'{products_txt}' => $product_list_txt,
'{discounts}' => $cart_rules_list_html,
'{discounts_txt}' => $cart_rules_list_txt,
'{total_paid}' => Tools::displayPrice($order->total_paid, $this->context->currency, false),
'{total_products}' => Tools::displayPrice($order->total_paid - $order->total_shipping - $order->total_wrapping + $order->total_discounts, $this->context->currency, false),
'{total_discounts}' => Tools::displayPrice($order->total_discounts, $this->context->currency, false),
'{total_shipping}' => Tools::displayPrice($order->total_shipping, $this->context->currency, false),
'{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $this->context->currency, false), 
'{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $this->context->currency, false),
'{total_iva_productos}' => Tools::displayPrice(($order->total_products_wt - $order->total_products), $this->context->currency, false),
'{total_iva_envio}' => Tools::displayPrice(($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $this->context->currency, false)
);
 
 
Por otro lado, en el archivo new_order.html (que es la plantilla concreta de "detalles del pedido), he añadido ambas variables. Están correctamente puestas, porque como van a ver en la imagen adjunta, se muestran muy bien. El problema es que no recoge la orden que se le da desde PaymentModule.php, por que no hace la cuenta debida y únicamente se me muestra el html. Creo entonces, que el problema está en estas dos líneas de código en rojo creadas en PaymentModule.php.
 
¿Pueden terminar de ayudarme?
 
¡Muchas gracias!
¡Saludos!
 
 

 

 

post-963792-0-17452700-1441787058_thumb.png

Link to comment
Share on other sites

Hola, buenas.

 

Ya he solucionado el tema. 

 

Las dos líneas de código que estaba agregando en PaymentModule.php, había que agreagarlas en mailerts.php. El archivo new_order.html se dejaba con su actualización que se le hizo, pero era únicamente encontrar el archivo correcto donde agregar estas dos líneas de código.

 

Ahora, me pregunto yo.

 

Yo lo he hecho en esta ocasión con los emails que llegan tras el pago por transferencia bancaria. ¿No sirve con esa modificación que se ha hecho para los otros dos o tres pagos? Por ejemplo, si en vez de pagar mediante transferencia bancaria, se hace con tarjeta, paypal o contrareembolso, ¿saldría también? Entiendo que debería modificar/añadir los html y texto en los archivos correspondientes, pero con las dos líneas agregadas en mailerts.php., ¿bastaría para que se efectuara esta cuenta como deseamos en todos los pagos?

 

¡Muchas gracias!

¡Saludos!

Link to comment
Share on other sites

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...