alguien22 Posted June 2, 2015 Share Posted June 2, 2015 (edited) Wenas... ¿Cómo puedo configurar un Email para que cuando el cliente haya "Confirmado su pedido" lo reciba de forma automática? Un Saludo Edited June 3, 2015 by ctb (see edit history) Link to comment Share on other sites More sharing options...
aixos Posted June 2, 2015 Share Posted June 2, 2015 Hola ves a PEDIDOS----> Estados de pedidos y alli puedes marcar Saludos Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 Lo que he hecho es crear una nueva plantilla "algo.html" en el directorio "/mails/es/" y en "PEDIDOS ---> Estados de pedidos" he agregado un nuevo estado, marcando la casilla "Enviar un e-mail al cliente cuando una orden cambie a este estado" y he seleccionado mi plantilla pero no le llega al cliente esa plantilla. Un Saludo Link to comment Share on other sites More sharing options...
aixos Posted June 2, 2015 Share Posted June 2, 2015 (edited) ¿Le llega la plantilla normal ? supongo que estas en modo real en un servidor Edited June 2, 2015 by aixos (see edit history) Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 Las plantillas de confirmación del pedido(order_conf.html) y de pago por transferencia bancaria(bandwire.html) si le llegan, pero la que he creado(datos.html) no. Link to comment Share on other sites More sharing options...
ventura Posted June 2, 2015 Share Posted June 2, 2015 Tienes carpeta mails en la ruta ¿? themes/tu_tema/mails En caso de tenerla tienes que añadir alli la plantilla para que la envie Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 (edited) No tengo ninguna carpeta "mails" dentro de /themes/default-bootstrap/ Todos las plantillas "mails" están dentro de la carpeta "/mails/es/" "/mails/en/" "/mails/ca/" etc... Edited June 2, 2015 by ctb (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted June 2, 2015 Share Posted June 2, 2015 No tengo ninguna carpeta "mails" dentro de /themes/default-bootstrap/ Todos las plantillas "mails" están dentro de la carpeta "/mails/es/" "/mails/en/" "/mails/ca/" etc... La manera de sobreescribir esa carpeta y sus contenidos es añadirla en la carpeta de tu tema, por eso te lo decia. Hay muchas plantillas que la incluyen por defecto Link to comment Share on other sites More sharing options...
aixos Posted June 2, 2015 Share Posted June 2, 2015 Intenta modificar la order_conf Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 (edited) Eso ya lo pensé, pero lo que quiero es que se envie un nuevo email creado por mí a parte. Lo que he pensado es hacerlo con código, por ejemplo: en el fichero "payment_execution.tpl" agregar un input oculto(<input name="emaill" id="emaill" class="emaill" readonly="readonly" value="{$cookie->email}" type="email" style="display: none;"/>) en el formulario que recoga el email del usuario y después cuando se clickea en el botón de "Confirmar Pedido" te lleve también al fichero creado por ti en /mails/es/datos.php Dentro del fichero "datos.php" está este codigo: <?php $email_usuario = $_POST['emaill']; $datos = '<body> <div> <h1>Prueba de Envio</h1> </div> </body>'; $from = $email_usuario; $subject = 'Prueba'; $headers = "From: ".$from."\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; mail($from,$subject,$datos,$headers); ?> Edited June 2, 2015 by ctb (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted June 2, 2015 Share Posted June 2, 2015 (edited) En el archivo \classes\PaymentModule.php Busca el hook actionValidateOrder Y copia la funcion Mail::Send( con el contenido del correo que quieres enviar, lo ideal seria hacerlo en un modulo anclandolo a ese hook Edited June 2, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 Hook::exec('actionValidateOrder', array( 'cart' => $this->context->cart, 'order' => $order, 'customer' => $this->context->customer, 'currency' => $this->context->currency, 'orderStatus' => $order_status Mail::Send("[email protected]","Datos","Prueba de Envio") )); He añadido la línea del Mail pero no le manda el email al cliente... Link to comment Share on other sites More sharing options...
ventura Posted June 2, 2015 Share Posted June 2, 2015 Es que ahi no va, esta parte es la que te interesa if (Validate::isEmail($this->context->customer->email)) Mail::Send( (int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $this->context->customer->email, $this->context->customer->firstname.' '.$this->context->customer->lastname, null, null, $file_attachement, null, _PS_MAIL_DIR_, false, (int)$order->id_shop ); Link to comment Share on other sites More sharing options...
alguien22 Posted June 2, 2015 Author Share Posted June 2, 2015 (edited) Muchísimas Gracias Amigo, me has solucionado un problema que llevaba 3 días intentado solucionarlo Ahora lo que intento es que lo que pongo en la línea: Mail::l('Gracias', (int)$order->id_lang), se traduzca como: Mail::l('Thanks', (int)$order->id_lang), cuando reciba el email el cliente Es decir, se traduzca en el idioma en el que esté la página Un Saludo Edited June 2, 2015 by ctb (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted June 2, 2015 Share Posted June 2, 2015 (edited) Eso miralo en Localización / Traducciones | Tipo de traduccion --> Traducciones plantillas de email Edited June 2, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
alguien22 Posted June 3, 2015 Author Share Posted June 3, 2015 He mirado lo que has dicho, pero al final no era lo que decía y he tomado la decisión de poner esto: if ((int)$order->id_lang == 1) //Este es el id del lenguage en Español { Mail::Send( (int)$order->id_lang, 'datos', Mail::l('Datos', (int)$order->id_lang), $data, $this->context->customer->email, $this->context->customer->firstname.' '.$this->context->customer->lastname, null, null, $file_attachement, null, _PS_MAIL_DIR_, false, (int)$order->id_shop ); } if ((int)$order->id_lang == 4) //Este es el id del idioma en Ingles { Mail::Send( (int)$order->id_lang, 'data', Mail::l('Data', (int)$order->id_lang), $data, $this->context->customer->email, $this->context->customer->firstname.' '.$this->context->customer->lastname, null, null, $file_attachement, null, _PS_MAIL_DIR_, false, (int)$order->id_shop ); } Y me funciona perfectamente. Muchas Gracias Por Todo Un Saludo Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now