noranova Posted December 12, 2014 Share Posted December 12, 2014 Buenos dias, estoy intentando modificar la factura que llega al email una vez que se realiza el pedido. Hay variables a las que me gustaria realizarle algún tipo de operación, generalmente quitar o añadir el I.V.A. Lo estoy realizando en order_conf.html y ahí las variables que recibe son por ejemplo {firstname} {lastname} {total_tax_paid} etc. Según veo éstas no son variables de smarty. Mi idea era introducir un codigo javascript en el html y realizar las operaciones modificando el valor de dichas variables, pero no sé como recibirlas en javascript, (ya que no se de que tipo son siquiera) y como asignarle como valor el resultado de la operación que haga. Si alguien pudiera arrojarme algo de luz lo agradecería. Saludos. Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 Buenos dias, estoy intentando modificar la factura que llega al email una vez que se realiza el pedido. Hay variables a las que me gustaria realizarle algún tipo de operación, generalmente quitar o añadir el I.V.A. Lo estoy realizando en order_conf.html y ahí las variables que recibe son por ejemplo {firstname} {lastname} {total_tax_paid} etc. Según veo éstas no son variables de smarty. Mi idea era introducir un codigo javascript en el html y realizar las operaciones modificando el valor de dichas variables, pero no sé como recibirlas en javascript, (ya que no se de que tipo son siquiera) y como asignarle como valor el resultado de la operación que haga. Si alguien pudiera arrojarme algo de luz lo agradecería. Saludos. Si son variables de Smarty, fijate que esas variables que estas diciendo de los emails generales (en este caso el email order_conf.html ), suelen proceder del fichero: /classes/PaymentModule.php --- En cambio, módulos que usan propios emails (no todos, solo algunos) como el de "Alertas por Correo" (Alertas por comerciante), si nos fijamos en el fichero: /modules/mailalerts/mailalerts.php Crea sus propias variables que luego manda al fichero: new_order.html Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Muchas gracias, si creía que éstas variables procedían de otro fichero. Mi pregunta entonces es: para realizar operaciones sobre dichas variables (creo que deben hacerse sobre order_conf.html) como puedo usar estas variables en javascript , probé con {literal} y nada. Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 Muchas gracias, si creía que éstas variables procedían de otro fichero. Mi pregunta entonces es: para realizar operaciones sobre dichas variables (creo que deben hacerse sobre order_conf.html) como puedo usar estas variables en javascript , probé con {literal} y nada. Es mejor que las hagas antes en el *.php y luego mandas la variable resultante al email. Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 '{total_products}' => Tools::displayPrice($order->total_paid - $order->total_shipping - $order->total_wrapping + $order->total_discounts, $this->context->currency, false), A {total_producs} quiero realizarle una operación. Mi idea es, y corrígeme si me confundo, ir al final del fichero y utilizar directamente {total_products} y realizarle una opearcion. Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 ¿Que operacion quieres realizar? Cuentame (Lo digo porque dependiendo de que lo quieres hacer, sera mejor usar una variable nueva o reutilizar una variable existente) Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Pues en la factura el {total_products} me incluye el IVA y quiero que no lo tenga, por lo tanto al valor de {total_products} habria que quitarle el 21%. Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 Una cosa es la factura y otra el email. ¿Tu quieres cambiar el valor en el email, o en el pdf de la factura? (Es que son dos cosas totalmente distintas) Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Quiero cambiarlo en el email Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 Yo en mi caso depende cambiar el valor de la variable, para no machacar cosas, siempre intento crear una nueva, el problema de esto es que tendria que escribir la variable otra vez en el email y en los emails que usen la otra variable, lo que prefieras... De todos modos si quieres que no se muestre el iva ¿Eso no se puede configurar desde el panel? Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Pues mira en el email debo de tener: -Precio de cada producto que se ha comprado sin iva -Compra total sin iva -Papel de regalo sin iva -Transporte sin iva -Impuesto total (aquí irian todos los ivas de todas las cosas - compra total,papel,transporte) -Total pagado (el total de todo) No se si me explico, pero éso es lo que necesito. Estuve intentando hacerlo desde el panel pero no he sido capaz. Estoy abierto a cualquier tipo de recomendación. Link to comment Share on other sites More sharing options...
ventura Posted December 12, 2014 Share Posted December 12, 2014 Para que te muestre los precios sin iva, dejalo asi '{total_products}' => Tools::displayPrice($order->total_products), Link to comment Share on other sites More sharing options...
galindogadea Posted December 12, 2014 Share Posted December 12, 2014 Veo que ya te ha comentado ventura una opcion, de todos modos, yo siempre prefiero usar una variable adicional, depende usar una existente. (Seran manias mias xD) Ya nos contaras que tal va todo. Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Lo que he hecho es lo siguiente en PaymentModule.php: //'{total_products}' => Tools::displayPrice($order->total_paid - $order->total_shipping - $order->total_wrapping + $order->total_discounts, $this->context->currency, false), '{total_products}' => Tools::displayPrice($order->total_products), Y sigue saliendome el precio con iva Link to comment Share on other sites More sharing options...
ventura Posted December 12, 2014 Share Posted December 12, 2014 Añade esto tambien '{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $currency, false), Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Muchas gracias, os vuelvo a copiar mi código. Según entiendo en el código debería funcionar. Pero me muestra los productos sin iva y el total me lo muestra con IVA '{order_name}' => $order->getUniqReference(), '{date}' => Tools::displayDate(date('Y-m-d H:i:s'),null , 1), '{carrier}' => $virtual_product ? Tools::displayError('No carrier') : $carrier->name, '{payment}' => Tools::substr($order->payment, 0, 32), '{products}' => $this->formatProductAndVoucherForEmail($products_list), '{discounts}' => $this->formatProductAndVoucherForEmail($cart_rules_list), '{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_products}' => Tools::displayPrice($order->total_products, $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_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $currency, false)); Link to comment Share on other sites More sharing options...
noranova Posted December 12, 2014 Author Share Posted December 12, 2014 Pues no me lo está haciendo...hay posibilidad de que pueda ser de otra cosa? Gracias por todo Link to comment Share on other sites More sharing options...
ventura Posted December 12, 2014 Share Posted December 12, 2014 Ponlo asi tal cual '{total_products}' => Tools::displayPrice($order->total_products), Link to comment Share on other sites More sharing options...
marcosmh Posted January 17, 2015 Share Posted January 17, 2015 Hola, Pido ayuda para una cuestión. Es sobre el módulo mailalerts. Cuando envía el correo con el nuevo pedido (new order), la variable {date} sólo muestra el día-mes-año. ¿Qué tendría que cambiar y dónde para que mostrará también la hora del pedido? Un saludo y gracias. Link to comment Share on other sites More sharing options...
Recommended Posts