Голосование

У вас есть сайт?





PHPShop:Модуль-Информирер о смене статуса заказа

Как сделать самому отправку e-mail при смене статуса заказа в PHPShop (ver. 3.5)?

Посмотреть описание доработки

ВНИМАНИЕ!!!

Данное описание подходит только для старых версий PHPShop (менее ver.4.0)., для PHPShop ver. 4.0 и версии 5.0 разработан модуль распространяемый бесплатно. Подробнее тут 

Теория:

В данной статье идет речь о том, как сделать отправку писем покупателям при смене статуса заказа на движке PHPShop (на примере 2-х статусов). Если разберетесь с 2-мя статусами, то по аналогии сможете выполнить такую отправку для любого количества статусов.

1. Вносим изменения в конфигурационный файл (config.ini)

Код:

[w4a_order_status]

1 = 4;     # где 4-ID статуса заказа для мыла №1

2 = 3;     #  где 3-ID статуса заказа для мыла №2

zag1 = "Статус 1 вашего заказа изменился"; # заголовок для письма 1

zag2 = "Статус 2 вашего заказа изменился"; # заголовок для письма 2

from = "info@ site.ru";                # e-mail от кого шлется письмо

 

[w4a_del_period]

1 = 12;   #где 14-ID-доставки, а 12-кол. дней доставки

И т.д. (прописать все варианты доставки)

2.  Вносим изменения в файле редактора заказа (adm_visitorID.php):

2.1 в функцию actionUpdate() добавить следующие строки:

Код:

                // шлем мыло при смене статуса (прописывается в конфиге)

for($ii=1;$ii<=2;$ii++){

$w4a_status = $GLOBALS['SysValue']['w4a_order_status'][$ii];

    if($data['statusi'] != $w4a_status && $_POST['statusi_new'] == $w4a_status ){

        $_classPath=$_SERVER['DOCUMENT_ROOT'].'//phpshop/';

                  PHPShopObj::loadClass("parser");

                  PHPShopObj::loadClass("mail");

                  $w4a_order = unserialize($data['orders']);

                   // определяем переменные

                  $GLOBALS['SysValue']['other']['name']= $w4a_order['Person']['name_person'];

                  $GLOBALS['SysValue']['other']['postIdent']= $w4a_order['Person']['dos_post'];

                  $GLOBALS['SysValue']['other']['date']= $w4a_order['Person']['dos_date'];

                  $GLOBALS['SysValue']['other']['deliveryPeriod']= $GLOBALS['SysValue']['w4a_del_period'][$w4a_order['Person']['dostavka_metod']];

                  $GLOBALS['SysValue']['other']['ouid']= $data['uid'];

                  $content = PHPShopParser::file($_classPath.'lib/templates/order/order_status_'.$ii.'.tpl',true);

                  $zag = $GLOBALS['SysValue']['w4a_order_status']['zag'.$ii];

                  $to = $w4a_order['Person']['mail'];

                  $from = $GLOBALS['SysValue']['w4a_order_status']['from'];

                  $PHPShopMail= new PHPShopMail($to,$from,$zag,$content);

 

           }

   }

2.2 В функции actionStart(), находим формирование блока с данными Покупатель. и заменяем ;$Tab1 на:

Код:

// ФИО покупателя    $Tab1.=$PHPShopGUI->setField(__("Покупатель"), $PHPShopGUI->setTextarea('person[name_person]', $order['Person']['name_person'], 'none', '370px', '30px') . $PHPShopGUI->setLine() .                    $PHPShopGUI->setInputText(__("Время доставки от"), 'person[dos_ot]', $order['Person']['dos_ot'], 50, false, 'left') .                    $PHPShopGUI->setInputText(__("до"), 'person[dos_do]', $order['Person']['dos_do'], 50, false, 'left') . $PHPShopGUI->setLine() . $PHPShopGUI->setInputText(__("Дата доставки"), 'person[dos_date]', $order['Person']['dos_date'], 80, false, 'left') .                    $PHPShopGUI->setInputText(__("Почтовый №"), 'person[dos_post]', $order['Person']['dos_post'], 100, false, 'left') , 'left') . $PHPShopGUI->setLine();

 

3.

Создаем 2 шаблонных файла:

 //phpshop/lib/templates/order/order_status_1.tpl
//phpshop/lib/templates/order/order_status_2.tpl

 

Данные шаблоны содержат тексты отправляемых писем. Можно использовать следующие переменные:

Код:

@ name @ - Имя покупателя

@ ouid @ - № заказа

@ date @ - Дата

@ postIdent @ - ИД почтового отправления

@ deliveryPeriod @ срок доставки

Ниже привожу пример использования.
Шаблон 2:
Код:

Здравствуйте,  @ name @

Ваш заказ №  @ ouid @  отправлен  @ date @ .

Ваш почтовый идентификатор  @ postIdent @ .

Отследить свой заказ Вы можете по ссылке #ссылка @ postIdent @ .

Ожидаемый срок доставки  @ deliveryPeriod @  дн.

Спасибо

Шаблон 2:
Код:

Здравствуйте,  @ name @

Ваш заказ № @ ouid @  упакован и будет передан в почтовое отделение для отправки.

Последующую информацию мы сообщим Вам в течение 3х дней.

 Спасибо

4. Ну и последний штрих: дабы не потерять данные изменения при последующих обновлениях CMS PHPShop, нужно внести файл adm_visitorID.php в блэк-лист.   

 
Вы здесь:  Главная PHPShop:Модуль-Информирер о смене статуса заказа

Доработки PHPSHOP

Расширить функционал Вашего магазина на PHPSHOP можно с помощью разнообразных доработок PHPShop которые профессионально выполнят наши специалисты, разработают модуль для PHPShop

Мы рекомендуем

Мы рекомендуем