Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v1.x.
Avatar do usuário
Por andersonnarciso
Mensagens
#12349
Galera, estou recebendo o e-mail da loja indicando que foi feito o pedido, porem sem formatação HTML, e não faço idéia de qual arquivo vem esse e-mail pois no na admin/mail só um único arquivo que não é o oerder.php então não sei de onde que vem o e-mail de venda para o admin da loja. O email está chegando assim:

Você recebeu um pedido.

Pedido Nº: 13
Adicionado em: 28/11/2011
Situação do Pedido: Pendente

Produtos
1x Caveira (Camisetas Estampadas) <span class="s_currency s_before">R$</span>25,00
-CorPreto
-TamanhoM

Total do Pedido
Sub-Total <span class="s_currency s_before">R$</span>25,00 PAC. Entrega: 6 dias úteis. <span class="s_currency s_before">R$</span>11,90 Total <span class="s_currency s_before">R$</span>36,90

Os comentários para seu pedido são:

teste

text_payable


text_address
Rua 708, nº - Casa Branca - Itapema

text_payment

Alguma solução? :/
Avatar do usuário
Por denisgomes
Mensagens
#12464
Veja a pasta /catalog/view/theme/<seu tema>/template/mail/. Se não houver o arquivo order.tpl lá, veja a pasta /catalog/view/theme/default/template/mail/ (o OpenCart busca os arquivos do template default quando não encontra o mesmo arquivo na pasta do template que você está usando).
Avatar do usuário
Por andersonnarciso
Mensagens
#13770
Olá pessoal! Voltando a bater mais uma vez nesta tecla, não entendo porque o aviso que recebo de uma compra não vem com o html formatado e o que o cliente recebe vai... Tudo bem se o temaplate não tiver o order.php ele vai buscar o order.php do template default, porem do mesmo jeito ele não vem formatado... Alguém sabe me dizer o porque?

You have received an order.

Order ID: 6
Date Added: 13/01/2012
Order Status: Pending

Products
1x Teste (Teste) <span class="s_currency s_before">$</span>38.00

Order Totals
Sub-Total <span class="s_currency s_before">$</span>38.00 Flat Rate <span class="s_currency s_before">$</span>5.00 Total <span class="s_currency s_before">$</span>43.00
Avatar do usuário
Por Renato Frota
Mensagens
#13776
O OpenCart é preparado para enviar ao cliente:

1- E-mail e-mail com duplo conteúdo (html e texto) para o cliente, onde o conteúdo HTML é puxado do template mail/order.php, e o texto está embutido na própria catalog/model/checkout/order.php. Se o leitor do cliente suportar HTML, aparece o conteúdo do template, do contrário, ele lê o texto puro.

2- E-mail somente com o texto puro para o(s) admin(s).

Existem adaptações via extensões, como essa:

http://www.opencart.com/index.php?route ... on_id=2221

Ou se você quiser simplesmente receber uma cópia do pedido em HTML (usando o mesmo template que vai pro cliente), altere a catalog/model/checkout/order.php

Procure:
Código: Selecionar todos
$mail = new Mail(); 
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');
$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject($subject);
$mail->setText($text);
$mail->send();
troque por:
Código: Selecionar todos
// HTML
$template->data['text_greeting'] = $language->get('text_new_received') . "\n\n";
$template->data['invoice_no'] = '';
$template->data['text_invoice_no'] = '';
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
   $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
   $html = $template->fetch('default/template/mail/order.tpl');
}
$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id . ' (' . $order_total . ')');
$mail->setSubject($subject);
$mail->setTo($this->config->get('config_email'));
$mail->setHtml($html);
$mail->send();
Avatar do usuário
Por andersonnarciso
Mensagens
#13806
Renato Frota escreveu:O OpenCart é preparado para enviar ao cliente:

1- E-mail e-mail com duplo conteúdo (html e texto) para o cliente, onde o conteúdo HTML é puxado do template mail/order.php, e o texto está embutido na própria catalog/model/checkout/order.php. Se o leitor do cliente suportar HTML, aparece o conteúdo do template, do contrário, ele lê o texto puro.

2- E-mail somente com o texto puro para o(s) admin(s).

Existem adaptações via extensões, como essa:

http://www.opencart.com/index.php?route ... on_id=2221

Ou se você quiser simplesmente receber uma cópia do pedido em HTML (usando o mesmo template que vai pro cliente), altere a catalog/model/checkout/order.php

Procure:
Código: Selecionar todos
$mail = new Mail(); 
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');
$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject($subject);
$mail->setText($text);
$mail->send();
troque por:
Código: Selecionar todos
// HTML
$template->data['text_greeting'] = $language->get('text_new_received') . "\n\n";
$template->data['invoice_no'] = '';
$template->data['text_invoice_no'] = '';
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
   $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
   $html = $template->fetch('default/template/mail/order.tpl');
}
$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id . ' (' . $order_total . ')');
$mail->setSubject($subject);
$mail->setTo($this->config->get('config_email'));
$mail->setHtml($html);
$mail->send();
Dae Renato, cara obrigado pelo se retorno. Sua solução foi perfeita amigo, só ouve um detalhe.. O título do email ficou assim: Nome da Loja - Pedido 43 (<span class="s_currency s_before">R$</span>49,90)
Avatar do usuário
Por Renato Frota
Mensagens
#13815
Teste assim:
Código: Selecionar todos
// HTML
$template->data['text_greeting'] = $language->get('text_new_received') . "\n\n";
$template->data['invoice_no'] = '';
$template->data['text_invoice_no'] = '';
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
   $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
   $html = $template->fetch('default/template/mail/order.tpl');
}
$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id . ' (' . $order_info['total'] . ')');
$mail->setSubject($subject);
$mail->setTo($this->config->get('config_email'));
$mail->setHtml($html);
$mail->send();
Se não funcionar, só removendo o <span > na unha (com str_replace)
Avatar do usuário
Por andersonnarciso
Mensagens
#13831
Renato Frota escreveu:Teste assim:
Código: Selecionar todos
// HTML
$template->data['text_greeting'] = $language->get('text_new_received') . "\n\n";
$template->data['invoice_no'] = '';
$template->data['text_invoice_no'] = '';
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
   $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
   $html = $template->fetch('default/template/mail/order.tpl');
}
$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id . ' (' . $order_info['total'] . ')');
$mail->setSubject($subject);
$mail->setTo($this->config->get('config_email'));
$mail->setHtml($html);
$mail->send();
Se não funcionar, só removendo o <span > na unha (com str_replace)
Não funcionou, ai ele não envia o e-mail.. Acho que porque ficaria sem a função send "$mail->send();" não? Removendo o span na unha onde? No mesmo arquivo?
Avatar do usuário
Por Renato Frota
Mensagens
#13834
andersonnarciso escreveu:
Renato Frota escreveu:Teste assim:
Código: Selecionar todos
// HTML
$template->data['text_greeting'] = $language->get('text_new_received') . "\n\n";
$template->data['invoice_no'] = '';
$template->data['text_invoice_no'] = '';
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
   $html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
   $html = $template->fetch('default/template/mail/order.tpl');
}
$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id . ' (' . $order_info['total'] . ')');
$mail->setSubject($subject);
$mail->setTo($this->config->get('config_email'));
$mail->setHtml($html);
$mail->send();
Se não funcionar, só removendo o <span > na unha (com str_replace)
Não funcionou, ai ele não envia o e-mail.. Acho que porque ficaria sem a função send "$mail->send();" não? Removendo o span na unha onde? No mesmo arquivo?
Mas tem a $mail->send();

Acho que você não viu a barra de rolagem. Acostume-se a usar o botão "selecionar tudo" em cima do bloco de código pra evitar esse tipo de problema.

:mrgreen: