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

[Решено] Разные письма для статусов заказов


Илья Шибанов

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

Доброе.

Предлагаю небольшое дополнение к магазину.

Как то вечером подумал что отзывы могут служить хорошей стимуляцией для покупки. Но как стимулировать само написание отзывов?

Подумав решил немного воспользоваться статусами заказов.

Цель: при установке статуса заказа "Доставлен". Клиенту отправляется письмо с благодарностью о покупке и просьбой оставить отзыв на сайте.

Реализация:

Первое что пришлось сделать это отфильтровать статус "Доставлен" и если установлен он отсылать клиенту письмо с определенным, а не стандартным шаблоном.

admin/order.php


// Sent mail
      if ( $_POST['new_status'] == 6){
    $html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail_end.html');
                                }
                                else {
    $html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html');
                                }
    $txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt');
[/code] Теперь если установлен статус "Доставлен" (id=6) клиенту отправляется шаблон change_order_mail_end.html Привожу содержание шаблона change_order_mail_end.html:
[code]<table  width="100%" border="0" align="center" cellpadding="4" cellspacing="0">
  <tr>
    <td style="border-bottom: 1px solid; border-color: #cccccc;"><div align="right"><img src="{$logo_path}logo.gif"></div></td>
  </tr>
  <tr>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Уважаемый/ая {$NAME}!</strong><br>
      <br>
      Мы получили уведомление, что заказ ваш доставлен. Благодарим Вас за покупку!<br>
      <br>
      {$NAME}, мы постоянно стремимся улучшить работу нашего магазина, и нам было бы очень приятно получить от Вас отзыв.<br>
      Остались ли Вы довольны качеством товара, удобством магазина? Возможно у Вас есть предложения или замечания?<br>
      Нам очень важно Ваше мнение. <br>
      <br>
      И конечно нам всегда приятно получать положительные отзывы.<br>
      <br>
      Большое спасибо за понимание.<br>

      <br>
      С уважением, магазин <a href=xhunt.ru>xhunt.ru</a><br>
      <br>
      <a href=http://xhunt.ru/product_reviews_write.php?products_id={$PRODUCT_NR}>Оставить отзыв</a><br>
      <a href=http://xhunt.ru>Магазин "Русский охотник"</a>
Для того что бы клиенту отправлялась ссылка на стр. с отзывов о товаре мне пришлось применить метку {$PRODUCT_NR}, которая отображает id купленного товара (если товаров больше чем один, отображает с меньшим id) Описание метки {$PRODUCT_NR}: admin/order.php

$this_productID_query = vam_db_query("select products_id from " . TABLE_ORDERS_PRODUCTS . " where orders_id = " .$this_orderID." LIMIT 1");
$this_productID = vam_db_fetch_array($this_productID_query);

$vamTemplate->assign('PRODUCT_NR', $this_productID['products_id']);
[/code]

Собственно и все.  =)

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

Очень хороший и нужный способ обратной связи с покупателем. Спасибо Илье. Простите за глупый вопрос: В какое место добавлять код?или это не имеет значения?

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

Не верю я в эту задумку.

Мы пробовали стимулировать написание отзывов скидками. Ничего из этого не вышло. А уж простое письмо...

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

Так это уже маркетинг ;-)

Здесь инструмент дали, а как им копать - каждый сам решает.

Чего-то не работает у меня отправка нового письма, может версия у меня старовата, такое впечатление, что конструкция

  if ( $_POST['new_status'] == 6)

не работает

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

Саша, не подскажешь, почему в файле admin/orders.php

строки:

$html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html');
$txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt');[/code]

встречаются 2 раза?

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

Это задаётся текстовое пиьсмо и .html письмо.

В зависимости от опции Разрешить html-письма в Админке - Настройки - Настройка email используется либо обычный шаблон с текстом, либо html файл с текстом.

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

То, что эти 2 строки задают разные шаблоны, я "догадывался" :)

Вопрос в том, что именно эти "2 строки" появляются в двух местах файла.

Строки 114-115 и строки 319-320.

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

Первый - для отправки письма со страницы просмотра конкретного заказа.

Второй - для отправки письма из списка заказов, при массовой смене статусов.

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

что-то в этом коде не так:

$this_productID_query = vam_db_query("select products_id from " . TABLE_ORDERS_PRODUCTS . " where orders_id = " .$this_orderID." LIMIT 1");$this_productID = vam_db_fetch_array($this_productID_query);$vamTemplate->assign('PRODUCT_NR', $this_productID['products_id']);

сначала ругается на LIMIT 1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1 | select products_id from orders_products where orders_id = LIMIT 1; | /admin/orders.php?oID=321&action=edit

потом если меняю на

$this_productID_query = vam_db_query("select products_id from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$this_orderID . "' LIMIT 1");

ошибки нет, но и метка {$PRODUCT_NR} в письме пустая

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

Не туда вставили значит код, код я так понимаю для списка заказов, а Вы вставили внутрь заказа.

Либо попробуйте заменить (int)$this_orderID на (int)$_GET['oID']

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

заменить (int)$this_orderID на (int)$_GET['oID']

вот так работает метка при изменении статуса с карточки товара!

еще условие

if ( $_POST['new_status'] == 6)

не работает с карточки заказа, - присылает старый вариант письма без отзыва

заменил на

if ( $_POST['status'] == 6)

Вобщем там надо разный код ставить для изменения статуса из карточки заказа и для массового изменения.

У меня получилось, спасибо Саше за подсказку ;-)

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

А у меня в orders.php конструкция:


$nords = $_POST['new_status'];
echop $nords;
$nordss = $_POST['status'];
echop $nordss;
[/CODE]

не работает.

Кто знает, подскажите.

Разбираюсь с этим тут >>> http://vamshop.ru/forum/topic/10585-шаблоны-писем-статусов-заказа/

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

Куда именно вставлять? в какое место

ставлю в 247 строчку. ничего не меняется (((


// Sent mail
$this_productID_query = vam_db_query("select products_id from " . TABLE_ORDERS_PRODUCTS . " where orders_id = " .$this_orderID." LIMIT 1");
$this_productID = vam_db_fetch_array($this_productID_query);
$vamTemplate->assign('PRODUCT_NR', $this_productID['products_id']);
if ( $_POST['new_status'] == 6){
$html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail_end.html');
}
else {
$html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html');
}
$txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt');


if ( $_POST['status'] == 6){
$html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail_end.html');
}
else {
$html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html');
}
$txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt');
[/CODE] Заменил
[CODE]
(int)$this_orderID на (int)$_GET['oID']

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

Сделал для себя с учетом последних версий. Добавил возможность отправлять разные шаблоны писем для разных статусов заказов. Работает и при разовой и при массовой смене статусов. Ну и ссылку на отзыв о товаре воткнул при статусе "доставлено".

Кто сам не справится по мотивам этой темы, можете обращаться. Помогу за долю малую.

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

Большое спасибо автору за идею и [:|||||||:] за реализацию - индивидуальные шаблоны можно назначить к любому стаутусу- все на удивление удобно и экономит массу времени )

Ссылка на сообщение
Поделиться на другие сайты
  • 1 year later...
// Sent mail
      if ( $_POST['new_status'] == 6){
     $html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail_end.html');
                                }
                                else {
     $html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html');
                                }
    $txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt');
[/code]

Подскажите, как сделать, чтобы этот код также работал для постоянных клиентов, если они делают новые заказы, а не только для новых покупателей?

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