Перейти к содержанию
Форум поддержки пользователей VamShop

Оформление писем


Рекомендуемые сообщения

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

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

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

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

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

 

 

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

$this->IsHTML = true;

после:

$this->CharSet = 'utf-8';
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Метод place_order

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

{$shipping_method}

{$payment_method}

{$date}

{$phone}

{$email}

{$order_total}

 

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

 

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

 

 

OrdersController.php

Ссылка на сообщение
Поделиться на другие сайты

 

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

$this->IsHTML = true;

после:

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

 

Не помогло :(

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

Ссылка на сообщение
Поделиться на другие сайты

В OrdersController.php ошибка

$body = str_replace('{$phone}', $order['Order']['email'], $body);
$body = str_replace('{$email}', $order['Order']['phone'], $body);
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

$this->IsHTML = true;

а
 

$this->IsHTML(true);

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

Ссылка на сообщение
Поделиться на другие сайты
  • 3 months later...
Алексей Павлов

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
Алексей Павлов

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

$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);

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
Алексей Павлов

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

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
Алексей Павлов

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

Ссылка на сообщение
Поделиться на другие сайты
  • 5 months later...

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

 

 

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

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

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


Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

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



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


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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...