/payrem

Payment reminer plugin for Shop-script 5

Primary LanguagePHP

Payment Reminder. Плагин для рассылки напоминаний об оплате для Shop-script 5

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

Рассылка осуществляется при запуске плагина по расписанию. Подробнее о запуске консольных команд по расписанию. Рекомендуем запускать консольное задание не реже двух раз в сутки.

Настройки плагина

В настройках плагина возможно указать:

  • статусы заказов, оплата по которым будет отслеживаться
  • методы оплаты, которые выбрал покупатель при оформлении заказа, оплату по которым надо отслеживать
  • адрес e-mail с которого будут отправляться уведомления
  • тему и текст сообщения, отправляемого покупателю
  • интервал, через который заказ нужно отменить

Также на странице настроек есть возможность отправить тестовое письмо, выбрав предварительно какой-нибудь заказ, указав адрес e-mail и задержку в днях. Для тестовой отправки не играет роли ни дата создания заказа, ни его статус, ни адрес покупателя. Все эти данные нужны лишь для корректного формирования письма, которое будет отправлено на указанный тестовый адрес. Упоминания о тестовых отправках также не будут добавлены в историю действий с заказом.

История отправок уведомлений

В случае успешной отправки уведомления в историю операций с заказом добавляется запись об отправке уведомления.

Выборка заказов для обработки. Интервалы и задержки

Отсчет задержки отправки рассчитывается с момента создания заказа.

В обработку попадают заказы, сделанные в течение суток до вычисленной, с учетом задержки, даты. Например, в настройках указано отсылать сообщения через 1 день после оформления. Обработчик запущен 15-01-2015 в 16:18:03. Значит в обработку попадут заказы, сделанные в период с 13-01-2015 16:18:03 по 14-01-2015 16:18:03. Для каждой задержки отсылается только одно уведомление, поэтому обработчик можно запускать как угодно часто.

Это правило действует как для рассылки уведомлений, так и для удаления заказов. Поэтому совсем старые неоплаченные заказы не будут удалены при первом запуске.

Автоматическое удаление заказов

В плагине предусмотрено автоматическое удаление (отмена) заказов не оплаченных в течение указанного времени. Удаление выполняется штатными процедурами магазина, с возвращением зарезервированных товаров на склад, откатом бонусов и прочим Если для операции отмены заказа в настройках магазина настроено уведомление, оно будет отправлено. Сам плагин самостоятельно уведомлений об удалении не рассылает.

Переменные, передаваемые в шаблон письма

В шаблон письма с напоминанием передаются несколько переменных. Переменные можно использовать как в теле сообщения, так и в теме письма.

$billing_address

Адрес плательщика, строка

$customer

Объект класса waContact. Полезные методы:

  • getName() — Полное имя (зависит от того, какие поля заполнены, имя, отчество, фамилия
  • get('firstname') — Имя
  • get('lastname') — Фамилия

$delay

Число. Интервал отправки в днях, которому соответствует отправляемое письмо. Сколько прошло дней с момента оформления заказа.

$email

Строка. E-mail адрес получателя.

$order

Массив с данными о заказе (без списка товаров).

array(
    'id'                    => /* ID заказа */
    'id_str'                => /* Номер заказа */
    'contact_id'            => /* ID контакта покупателя*/
    'create_datetime'       => /* строка, дата и время создания заказа ГГГГ-ММ-ДД чч:мм:сс */
    'update_datetime'       => /* строка, дата и время последнего изменения, аналогично предыдущей */
    'create_datetime_str'   => /* дата и время создания заказа в читаемом виде "5 октября 2015 04:15" */
    'state_id'              => /* Идентификатор статуса */
    'total'                 => /* Сумма заказа */
    'total_str'             => /* Сумма заказа строкой с валютой, например "4999,59 руб."
    'currency'              => /* Валюта заказа, ISO3 */
    'rate'                  => /* Курс валюты к валюте магазина */
    'tax'                   => /* Сумма налога */
    'shipping'              => /* Сумма доставки */
    'discount'              => /* Сумма скидки */
    'is_first'              => /* Первый-ли заказ у покупателя */
    'comment'               => /* Комментарий покупателя к заказу */
    'shipping_name'         => /* способ доставки, строка. Например "Курьер" */
    'payment_name'          => /* Способ оплаты, строка. Например "Банковской картой" */
    
)

$order_url

Строка, уникальная секретная ссылка на просмотр заказа. PIN-код можно получить из $order['params']['auth_pin'].

$shipping_address

Строка. Адрес доставки одной строкой

$status

Строка. Название текущего статуса заказа. Например "Подтвержден".