Jump to content

Recommended Posts

LordBelial

Очень хочется покупателю отправлять не голый текст с данными, а красиво оформленное письмо.

В шаблоне писем добавить html и стилей, но интаприратор не сработал и выдал весь html  в текст письма.

Как сделать красивый шаблон письма в магазине? 

И так же хочется больше меток. А именно:

  1. Способ оплаты:
  2. Способ доставки:
  3. Дата и время: (кода был создан заказ)
  4. Телефон:
  5. E-mail:
  6. Доп. информация:
  7. Товары по одельности выводились, через {foreach}, что бы их данные выводить через таблицу

 

 

 

такие метки как {base_path} {config value=telephone} не срабатывают.

Link to post
Share on other sites
support

Насчёт html-писем, в /app/Controller/Component/EmailComponent.php можно добавить:

$this->IsHTML = true;

после:

$this->CharSet = 'utf-8';
Link to post
Share on other sites
support

По поводу меток.

 

Это нужно править /app/Controller/OrdersController.php

Метод place_order

 

Там задаются метки, сейчас попробую добавить.

Link to post
Share on other sites
support

Прицепил /app/Controller/OrderController.php

 

Добавлены метки:

{$shipping_method}

{$payment_method}

{$date}

{$phone}

{$email}

{$order_total}

 

foreach по умолчанию не получится, потому что шаблон письма не использует smarty.

 

foreach используется в коде, в place_order методе.

 

 

OrdersController.php

Link to post
Share on other sites
LordBelial

 

Насчёт html-писем, в /app/Controller/Component/EmailComponent.php можно добавить:

$this->IsHTML = true;

после:

$this->CharSet = 'utf-8';

 

Не помогло :(

Он все равно выводит на экран весь html, который я прописываю в админка-настройка-шаблоны писем - псевдоним new-order

Link to post
Share on other sites
LordBelial

В OrdersController.php ошибка

$body = str_replace('{$phone}', $order['Order']['email'], $body);
$body = str_replace('{$email}', $order['Order']['phone'], $body);
Link to post
Share on other sites
support

Так html-код и должен обображаться в админке.

 

По идее, html превраится в страницу только при отправке письма, т.е. когда его смотреть будут в почтовом клиенте.

Link to post
Share on other sites
LordBelial

Так html-код и должен обображаться в админке.

 

По идее, html превраится в страницу только при отправке письма, т.е. когда его смотреть будут в почтовом клиенте.

 

Так я про письма.

 

В них (письмах, приходящих на почту) html не преобразуется.

Тот, html, который был написан в админке, приходит и на почту.

Link to post
Share on other sites
LordBelial

Надо было указать не

$this->IsHTML = true;

а
 

$this->IsHTML(true);

В такой конфигурации все работает ;)

Link to post
Share on other sites
  • 3 months later...
Алексей Павлов

Если я ставлю метку {$products} то в письме получаю следующее:

1 x Товар = 250 Почта России - бандероль 1 класса (со страховкой): 265 Всего: 515 

 

Нельзя ли как то разделить каждую позицию? или сделать чтобы в {$shipping_method} выводилась стоимость доставки, а {$order_total} будет выводиться отдельной позицией

Link to post
Share on other sites
support

По умолчанию всё вместе.

 

Это тольео править /app/Controller/OrdersController.php

 

Метод place_order если речь про письмо с заказом.

Link to post
Share on other sites
Алексей Павлов

Я так понял что правится это тут

$order_products = '';
			foreach($order['OrderProduct'] AS $product) {
				$order_products .= $product['quantity'] . ' x ' . $product['name'] . ' = ' . $product['quantity']*$product['price'] . ' рублей; ' . "\n";
				if ('' != $product['filename']) {
					$order_products .= __('Download link: ', true) . FULL_BASE_URL . BASE . '/download/' . $order['Order']['id'] . '/' . $product['id'] . '/' . $product['download_key'] . "\n";
				}
			}

			$order_products .= "\n" . ' Доставка: ' . $order['ShippingMethod']['name'] . ': ' . $order['Order']['shipping'] . ' рублей; ' . "\n";
			$order_products .= __('Order Total',true) . ': ' . $order['Order']['total'] . ' рублей ' . "\n";

			$body = str_replace('{$products}', $order_products, $body);

Я внес изменения ('Доставка', 'рублей')

Но изменений в полученном письме нет...

Link to post
Share on other sites
support

На новом заказе пробовали?!

 

В старых заказах понятно, что уже ничего не изменится, это ж код для отправки письма сразу после оформления заказа.

 

Вроде как меняете всё правильно.

Link to post
Share on other sites
Алексей Павлов

Конечно в новых )))

 

Вот что приходит:

1 x ХХХХХ, Красный ХХХХХХ Юго-Восточная Азия = 250 Почта России - бандероль 1 класса (со страховкой): 198 Всего: 448 

Link to post
Share on other sites
support

Может всё-таки нет тот код правите.

 

А если строку Order Total удалить, из письма пропадёт строка Всего ?!

Link to post
Share on other sites
Алексей Павлов

Ничего не понимаю! Сейчас скачал это файл, он оказался девственно чист. Что же тогда я сегодня на другом компе правил?  :what:

Link to post
Share on other sites
support

Так я вот и говорю, что может не там правите, может не в той папке или ещё что.  :cg:

Link to post
Share on other sites
  • 5 months later...

А есть еще метка адрес заказчика? Только ее мне не хватает для полноценного письма.  Хотелось бы что бы о заказе вся информация была в письме и не лазить в админку только за адресом. Спасибо!

Link to post
Share on other sites

Так в письмо вставяется ведь адрес доставки по умолчанию.

Link to post
Share on other sites

К сожалению, по умолчанию у меня адреса не было (см. ниже). Если метка есть для адреса можете ее написать что бы я добавил? Спасибо!

 

 

 

Ваш заказ подтверждён.
Номер заказа: 18

Заказанные товары:
1 x Маска для лица коллагеновая с биозолотом = 40

Новая почта - курьерская доставка: 0
Всего: 40


Спасибо!

Link to post
Share on other sites

По умолчани в шаблоне письма о заказе /templates/шаблон/mail/russian/order_main.txt есть такой код:

{if $SHIPPING_METHOD}
Доставка: {$SHIPPING_METHOD}
 
Адрес доставки вашего заказа:
{$address_label_shipping}
 
{/if}

 

Либо у Вас шаблон письма исправленный, либо при оформлении не выбирается способ доставки.

Link to post
Share on other sites

Мы по моему о разных версия CMS говорим. У меня vamshop2 и таких путей точно нету )

 

Вставил эту метку но она не работает

 

Вы заказали:
1 x xxx = 100
1 x xxx = 40
1 x xxx = 90

Укрпочта: 15
Всего: 245



Адрес доставки
------------------------------------------------------
{$address_label_shipping}


Способ оплаты
------------------------------------------------------
Оплата на карту Приватбанка

Link to post
Share on other sites

Да, пардон, не заметил.

 

Глянул код, действительно полного адреса нет.

 

А в каком виде надо адрес выводить?

 

Полность типа индекс, горож и т.д.?

Link to post
Share on other sites
×
×
  • Create New...