Cli php shop followup

start_followup_cli

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

Входящие параметры (передаются по ссылке)

$params array Массив параметров триггерных рассылок.
$params[‘followups’] array Список рассылок со значениями полей в таблице shop_followup.
$params[‘followups’][][‘id’] int ID рассылки.
$params[‘followups’][][‘name’] string Название рассылки, видимое в бекенде магазина.
$params[‘followups’][][‘delay’] int Задержка перед отправкой рассылки перед переводом заказа в выбранный статус, выражена в секундах.
$params[‘followups’][][‘first_order_only’] bool Отправлять ли рассылку только для первого заказа покупателя.
$params[‘followups’][][‘same_state_id’] bool Отправлять ли рассылку, только если статус заказа изменился.
$params[‘followups’][][‘subject’] string Тема рассылки.
$params[‘followups’][][‘body’] string Текст рассылки.
$params[‘followups’][][‘last_cron_time’] string Последнее время срабатывания рассылки в формате SQL DATETIME.
$params[‘followups’][][‘from’] string Адрес отправителя. Если значение пустое, будет использоваться отправитель триггерных рассылок, установленный по умолчанию.
$params[‘followups’][][‘source’] string Обозначение источника заказов: пустое значение — отправлять рассылку для заказов изо всех источников; значение ‘backend’ — отправлять только для заказов, созданных в бекенде; адрес витрины магазина — отправлять только для заказов, оформленных на этой витрине.
$params[‘followups’][][‘status’] bool Активирована ли рассылка.
$params[‘followups’][][‘transport’] string Транспорт отправки рассылки: ’email’ или ‘sms’.
$params[‘followups’][][‘state_id’] string Идентификатор статуса заказа, после перевода в который нужно отправлять рассылку — спустя период, указанный в поле ‘delay’.

Источник

start_followup_cli

$params array Followup parameters.
$params[‘followups’] array Followups-related data from ‘shop_followup’ table.
$params[‘followups’][][‘id’] int Followup ID.
$params[‘followups’][][‘name’] string Followup name from store settings.
$params[‘followups’][][‘delay’] int Delay in seconds between order status change and the allowed followup sending time.
$params[‘followups’][][‘first_order_only’] bool Whether a followup must be sent only for a customer’s first order.
$params[‘followups’][][‘same_state_id’] bool Whether a followup must be sent only if an order status has changed.
$params[‘followups’][][‘subject’] string Followup message subject.
$params[‘followups’][][‘body’] string Followup message text.
$params[‘followups’][][‘last_cron_time’] string Followup’s last sending time in SQL DATETIME format.
$params[‘followups’][][‘from’] string Sender address. If empty, default followup sender is used.
$params[‘followups’][][‘source’] string Order source name; empty value means to send a followup for orders from any sources; value ‘backend’ means to send a followup only for orders manualy created in the backend; a storefront’s address as a value means to send a followu ponly for orders placed via that storefront.
$params[‘followups’][][‘status’] bool Followup status.
$params[‘followups’][][‘transport’] string Sending transport—’email’ or ‘sms’.
$params[‘followups’][][‘state_id’] string ID of an order status a change to which must trigger the sending of a followup after the expiration of time specified in ‘delay’ field.

Источник

Триггерные рассылки (отложенные сообщения)

Shop-Script умеет автоматически отправлять email- и SMS-уведомления покупателям через некоторое время после изменения статуса заказа. Такие отложенные по времени сообщения называются триггерными рассылками.

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

Читайте также:  Javascript all text nodes

Как настроить отправку триггерных рассылок

  1. Для создания новой рассылки перейдите в раздел бекенда Shop-Script «Маркетинг → Настройки → Триггерные рассылки» и щелкните «Новое сообщение».
  2. Укажите название сообщения — оно не будет показано получателям, но будет отображаться в бекенде для вашего удобства.
  3. Выберите транспорт, т. е. способ отправки уведомления: email или SMS.

Для отправки SMS-уведомлений установите в «Инсталлере» плагин интеграции с SMS-провайдером и настройте подключение к провайдеру в разделе «Настройки» (секция «SMS») в бекенде Shop-Script.

  • через сколько часов после перехода заказа в указанный статус нужно отправлять сообщение
  • нужно ли отправлять уведомление для повторных заказов покупателя

50 комментариев

Все настроено. Вот что выдается в результате на почту админу: Cron: 0 1 * * * www-data /usr/bin/php -q /home/*******/*****.ru/docs/cli.php shop OrderreminderSendnotif
/bin/bash: 0: command not found

Та же проблема. Служба поддержки хостинга говорит что Для запуска php-скрипта можно воспользоваться следующей командой: cd /home/*******/*****.ru/docs/ && /opt/php/bin/php -c /home/*******/etc/php.ini /home/*******/*****.ru/docs/cli.php И более ничего не должно быть в этой строке, т. к. команда такого типа: cd /home/*******/*****.ru/docs/ && /opt/php/bin/php -c /home/*******/etc/php.ini /home/*******/*****.ru/docs/cli.php shop followup
или /opt/php/bin/php -c /home/mosbaby/etc/php.ini /home/mosbaby/mosbaby.ru/docs/cli.php shop followup
ни к чему не приводит
Или предлагают вариант адрес скрипта с параметрами. /usr/local/bin/wget -O — -q «http://nic.ru/cron.php?var1=xxx&var2=yyy» Но где взять эти параметры? Помогите!

Похоже, что это ограничение используемого вами хостинга. Если вам не удастся добиться от администрации хостинга обеспечения поддержки параметров при вызове PHP-скрипта в консольном режиме, видимо, остаётся только сменить хостинг. Попросите администрацию хостинга пояснить, чем вызвано введение такого ограничения.

Вот так вроде должно работать sh — c «/opt/php/bin/php -c $HOME/etc/php.ini $HOME/домен/docs/cli.php shop followup»

Помогите, пожалуйста, найти решение. Отложенные сообщения, формирует разные ссылки при ТЕСТОВОМ сообщении и НАСТОЯЩЕМ (по крону, через 14 дней). При отправке тестового сообщения всё нормально, формирует ссылку вида: https://site.com/tovar/ При отправке реального отложенного сообщения через 14 дней клиенту формирует ссылку: https://site.comhttp//site.com/tovar/ (Вставляет посередине лишнее «http//site.com» причем без двоеточия.) При этом в письме есть еще ссылки на главную и в личный кабинет. Они «нормальные».
В шаблоне сообщения указано так, как советовал Михаил на форуме https://support.webasyst.ru/936/otlozhennye-soobsh.

CRON настроем так: @daily php /var/www/user/data/www/site.com/cli.php shop followup
Если тестовое сообщение с правильными ссылками, значит проблема в CRON? А может в комбинации смарти+крон?

shop->productUrl($product)|replace:'http//site.com':''>

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

|replace:'http//site.com':'' - не помогает

Ему не важно — пишешь ты http:// или https://
Ссылки кликабельные но http:// в любом из двух случаев. Не критично, конечно, но мутно.

Читайте также:  Php запуск java скрипта

Работает, но если две витрины, то подставляет домен одной и той же витрины, вне зависимости, с какой витрины был оформлен заказ. В моем случае, к сожалению, совсем не ту витрину ставит. Проблеме уже больше года. Неужели так и не найдено нормальное решение?

Оплаченным заказ становится, после того как с ними будет выполнено действие «Оплачен» или «Выполнен».

По факту, отложенное сообщение отправляется только после действия «Оплачен». Есть ли опция по выбору статуса заказа, после которого отправляется отложенное сообщение?

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

Пока таких планов нет. Но вы можете повлиять на их появление, добавив пожелание в хабе поддержки: https://support.webasyst.ru/ideas/. Списком идей в этом разделе пользуются разработчики Webasyst и другие разработчики плагинов (в списке плагинов есть функция поиска).

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

Если у вас есть доступ к исходному коду, попробуйте в файле wa-apps/shop/lib/actions/settings/followups/shopSettingsFollowupsTest.controller.php после

try < $contact = $o['contact_id'] ? new shopCustomer($o['contact_id']) : wa()->getUser(); $contact->getName(); > catch (Exception $e) < $contact = new shopCustomer(wa()->getUser()->getId()); >
$contact_data = $contact->getCustomerData(); foreach (ifempty($contact_data, array()) as $field_id => $value) < if ($field_id !== 'contact_id') < $contact[$field_id] = $value; >>
$contact = new shopCustomer($o['contact_id']);
$contact_data = $contact->getCustomerData(); foreach (ifempty($contact_data, array()) as $field_id => $value) < if ($field_id !== 'contact_id') < $contact[$field_id] = $value; >>

Добрый день. Подскажите пожалуйста, что нужно поправить в коде уведомлений чтобы отправлялось общее количество бонусных балов клиенту. Заранее, большое спасибо!

В версии Shop-Script 8.15 для этого можно использовать переменную , описанную в шпаргалке. Возможно, в вашей версии эта переменная тоже доступна.

Михаил, Добрый день. Подскажите пожалуйста, что нужно поправить в коде уведомлений чтобы отправлялось общее количество бонусных балов клиенту.
Вы на форуме подсказали по поводу тригерных рассылок и это работает:
-Александр Элс 1 сентября 2017 06:51 #
-В триггерной рассылке не работает код для отправки накопленных бонусных баллов.
-Баланс вашего бонусного счета:
-Выводится 0. Видимо пользователь не подтягивается. Можно ли это исправить?-
—Михаил Ушенин Webasyst 1 сентября 2017 11:37 # Если у вас есть доступ к исходному коду, попробуйте в файле wa-apps/shop/lib/actions/settings/followups/shopSettingsFollowupsTest.controller.php после
try < $contact = $o['contact_id'] ? new shopCustomer($o['contact_id']) : wa()->getUser(); $contact->getName(); > catch (Exception $e) < $contact = new shopCustomer(wa()->getUser()->getId()); >
—добавить
$contact_data = $contact->getCustomerData(); foreach (ifempty($contact_data, array()) as $field_id => $value) < if ($field_id !== 'contact_id') < $contact[$field_id] = $value; >>
—И в файле wa-apps/shop/lib/cli/shopFollowup.cli.php после строки $contact = new shopCustomer($o[‘contact_id’]); добавьте то же самое: $contact_data = $contact->getCustomerData(); foreach (ifempty($contact_data, array()) as $field_id => $value) < if ($field_id !== 'contact_id') < $contact[$field_id] = $value; >> Я разобрался по аналогии с файлом wa-apps/shop/lib/actions/settings/notifications/shopSettingsNotificationsTest.controller.php
но не могу понять каков аналог файлу wa-apps/shop/lib/cli/shopFollowup.cli.php и что нужно дописать или переписать
Заранее, большое спасибо!
Версия Webasyst 1.14.9.567
Версия Shop-Script 6.3.0.44568

Читайте также:  letter-spacing

Ваш вопрос не имеет прямого отношения к теме статьи. Задайте его на форуме, пожалуйста: другие пользователи или наши сотрудники помогут вам. Или обратитесь за дополнительными доработками программного кода к партнёрам Webasyst.

Добрый день, разъясните, пожалуйста логику работы триггерных рассылок: 1. как работает отправка при указании: «Отправлять через 336 часов после перевода заказа в статус Выполнен» ? Похоже, что у нас пошла рассылка всем клиентам, которые очень давно делали заказ, а не только 336 часов назад. 2. где можно увидеть кому и когда было отправлена триггерная рассылка (в бэкенде, в текстовом логе, в БД, . )? 3. как плагин определяет что по заказу уже была рассылка?

1. Возможно, у вас в таблице shop_followup в поле last_cron_time не сохранилось время настройки триггерного сообщения. Если там хранится значение NULL , то рассылка отправится всем клиентам с подходящими заказами со времени создания магазина. Проверьте, пожалуйста. Если там хранится NULL, удалите это триггерное сообщение из настроек магазина и создайте новое. После этого в поле last_cron_time должно сохраниться обновлённое время. Если так и произошло, то все следующие триггерные рассылки будут отправляться только нужным клиентам. Почему могло раньше не сохраниться правильное значение времени , сказать не возьмусь — возможно, это ошибка в одном из обновлений магазина. 2. Факт отправки триггерной рассылки записывается в историю соответствующего заказа. 3. Это не плагин, а стандартный модуль магазина. Перед очередной отправкой он сверяется с информацией об истории отправки триггерных рассылок по данному заказу.

Источник

Оцените статью