БАЗА ЗНАНЬ
PHP 5.6–8.3ionCube Loader 13+OpenCart / ocStore 2.3–3.x
Головна/Документація/Планувальник і cron
Відкладені події

Правила, черга, журнал і cron

Планувальник перетворює події магазину на контрольовані майбутні завдання з журналом кожного рішення.

01

Чотири робочі екрани

  • Правила — що й коли створювати
  • Черга — що очікує виконання
  • Журнал — що відбулося
  • Cron — чи працює запуск
02

Запуск

  1. Створіть тестове правило з безпечним отримувачем.
  2. Налаштуйте cron-команду з інтервалом, рекомендованим у модулі.
  3. Перевірте час останнього запуску.
  4. Створіть тестову подію.
  5. Прослідкуйте її шлях через чергу і журнал.
ПОВНА ІНСТРУКЦІЯ

Усі поля, варіанти та перевірки

Нижче наведено повний профільний розділ офіційної інструкції модуля, без скорочень і маркетингового переказу.

13. Відкладені події

Відкладені події - це повідомлення, які модуль надсилає не одразу, а через заданий час.

Приклади:

  • через 10 хвилин після нового замовлення нагадати про оплату;
  • через 1 день після доставки попросити відгук;
  • через 2 години після реєстрації без замовлення надіслати бонус;
  • через 30 хвилин після зміни статусу повідомити адміністратора.

13.1 Правила

Правило описує, коли створити відкладене повідомлення, кому його надіслати і за яких умов.

Логіка правила проста:

  1. Подія відбувається в магазині.
  2. Модуль перевіряє умови правила.
  3. Якщо умови підходять, модуль створює завдання в черзі.
  4. Завдання чекає свого часу.
  5. Cron запускається і відправляє завдання.
  6. Результат потрапляє в журнал і звіт.

Якщо cron не налаштований, завдання може з'явитися в черзі, але не буде відправлене. Це часта причина проблеми: правило є, текст є, але клієнт нічого не отримує, бо серверний cron не запускається.

Як створити правило

  1. Відкрийте Відкладені події -> Правила.
  2. Натисніть Додати правило.
  3. Вкажіть Назва правила.
  4. Увімкніть правило.
  5. Виберіть Подія.
  6. Виберіть Отримувач.
  7. Заповніть умови, якщо вони потрібні.
  8. Вкажіть затримку і одиницю часу.
  9. Виберіть канал надсилання.
  10. Напишіть текст повідомлення.
  11. Натисніть Зберегти.

Події

ПодіяКоли спрацьовуєПриклад використання
Зміна статусу замовленняКоли замовлення переходить у вибраний статус.Попросити відгук після статусу Доставлено.
Нове замовленняКоли клієнт створив замовлення.Нагадати про оплату через 10 хвилин.
Реєстрація клієнтаКоли клієнт зареєструвався.Надіслати вітальне повідомлення.
Після реєстрації без замовленняКоли клієнт зареєструвався, але не зробив покупку.Надіслати бонус або підказку через 1 день.

Що важливо: події Зміна статусу замовлення і Нове замовлення працюють із замовленнями, тому для них доступні умови по сумі, товарах, категоріях, виробниках і статусах. Подія Після реєстрації без замовлення перед відправкою ще раз перевіряє, чи клієнт справді не зробив покупку.

Отримувачі

ОтримувачХто отримаєКоли вибрати
КлієнтПокупець із замовлення або профілю.Для клієнтських нагадувань.
АдміністраторАдмінський контакт.Для службових нагадувань менеджеру.
Довільний номерНомер, який ви вручну вказали.Для складу, керівника або тестового номера.

Для Довільного номера можна вказати один або кілька номерів через кому. Для Адміністратора використовуються контакти з поля Телефон адміністратора. Для Клієнта модуль бере телефон із замовлення або профілю.

Умови

УмоваЩо перевіряєКоли використовувати
Статус замовленняПравило працює тільки для вибраного статусу.Для правил після конкретного статусу.
Група клієнтаПравило працює тільки для групи клієнтів.Для VIP, оптових або роздрібних клієнтів.
Сума відМінімальна сума замовлення.Бонус тільки для замовлень від певної суми.
Сума доМаксимальна сума замовлення.Окремі повідомлення для малих замовлень.
ID товарівНаявність конкретних товарів.Інструкція після покупки конкретного товару.
ID категорійНаявність товарів із категорій.Повідомлення по групі товарів.
ID виробниківНаявність товарів певного виробника.Гарантійне або брендове повідомлення.
Скасувати це правило при статусахСкасовує завдання, якщо замовлення перейшло в один із цих статусів.Щоб не надсилати повідомлення по скасованому замовленню.

ID товарів, категорій і виробників вводяться через кому. Якщо не знаєте ID, відкрийте товар, категорію або виробника в адмінці OpenCart і подивіться ID в адресі сторінки.

Як читати умови:

  • порожні умови означають “працює для всіх”;
  • Будь-який статус означає, що правило не прив'язане до конкретного статусу;
  • Будь-яка група означає, що група клієнта не важлива;
  • Сума від без Сума до означає “від цієї суми і вище”;
  • Сума до без Сума від означає “до цієї суми”;
  • якщо одночасно задані товари, категорії і виробники, правило стає вузьким, тому тестуйте його на реальному тестовому замовленні.

Час і повтори

ПолеЩо робитьРекомендація
ЗатримкаЧерез скільки часу відправити.Вкажіть число.
ХвилиниЗатримка в хвилинах.Для коротких нагадувань.
ГодиниЗатримка в годинах.Для повідомлень у той самий день.
ДніЗатримка в днях.Для відгуків або повторних контактів.
Канал надсиланняЧерез що відправити.Для важливого - SMS, для менш критичного - Viber/Telegram.
СпробиСкільки разів повторити при помилці.1-3 достатньо для більшості магазинів.
Дублікати: Замінити очікуюче завданняНове завдання замінює старе очікуюче.Рекомендовано, щоб не надсилати дублікати.
Дублікати: Залишати всі задачіКожна подія створює окреме завдання.Використовуйте тільки якщо дублікати справді потрібні.
Політика скасування: Скасовувати при глобальних статусахЗавдання скасується при глобальних статусах скасування.Рекомендовано для клієнтських повідомлень.
Політика скасування: Не скасовуватиЗавдання не скасується глобальними статусами.Для службових повідомлень, які треба відправити завжди.
Враховувати години тишіНе відправляти в заборонений час.Рекомендовано для клієнтів.

Що означає панель готовності планувальника

У вкладці відкладених подій модуль показує, чи готовий планувальник до роботи.

ПеревіркаЩо означаєЩо робити, якщо не виконано
Модуль увімкненоЗагальний статус модуля активний.Увімкніть Налаштування -> Статус.
Планувальник увімкненоУ вкладці cron увімкнений статус планувальника.Увімкніть Статус у Cron / Налаштування.
Є активне правилоЄ хоча б одне увімкнене правило.Створіть або увімкніть правило.
Cron працює нормальноСерверний cron запускався і завершувався.Налаштуйте cron на хостингу і перевірте токен.

Статистика Очікують, Надіслані, Скасовані, Помилки показує загальний стан завдань. Якщо Помилки ростуть, не запускайте нові масові правила, поки не зрозуміли причину.

Приклади правил

ЗадачаЯк налаштувати
Нагадати про оплату через 10 хвилинПодія Нове замовлення, отримувач Клієнт, затримка 10 хвилин, умова по статусу неоплаченого замовлення, дублікати Замінити.
Попросити відгук після доставкиПодія Зміна статусу замовлення, статус Доставлено, затримка 1 день, години тиші Вкл, скасування при статусах Скасовано і Повернення.
Повідомити менеджера, якщо VIP-клієнт зробив замовленняПодія Нове замовлення, отримувач Адміністратор, група клієнта VIP, затримка 0-5 хвилин, канал Telegram або SMS.
Надіслати інструкцію після покупки товаруПодія Зміна статусу замовлення, статус Відправлено або Оплачено, ID товарів, затримка 1 година, отримувач Клієнт.
Повернути клієнта після реєстрації без покупкиПодія Після реєстрації без замовлення, затримка 1 день, отримувач Клієнт, текст із бонусом або підказкою.

13.2 Черга завдань

Черга показує повідомлення, які вже створені, але ще не відправлені.

ДіяЩо робить
Відправити заразПереносить завдання на негайну відправку.
Скасувати завданняСкасовує завдання і переносить його в журнал.
Очистити чергуСкасовує всі активні очікуючі завдання.

Очищення черги не видаляє історію. Завдання переходять у статус Скасовано.

Статуси завдань у черзі та журналі

СтатусЩо означає
ОчікуєЗавдання створене і чекає часу відправки або запуску cron.
НадісланоЗавдання успішно відправлене.
СкасованоЗавдання не відправлятиметься, бо його скасували вручну, замінили або замовлення перейшло у статус скасування.
ПомилкаМодуль намагався відправити, але канал або провайдер повернув проблему.

Якщо відкладена SMS/Viber-задача вперлась у бюджетний ліміт, модуль не вважає це помилкою провайдера. Завдання лишається в черзі, отримує next_attempt_at приблизно через 30 хвилин, а в таймлайні зʼявляється подія Очікує бюджет / budget_wait. Лічильник спроби доставки від цього не збільшується.

У черзі видно номер завдання, правило, телефон, короткий текст, час відправки, наступну спробу, кількість спроб і таймлайн. Таймлайн потрібен, щоб зрозуміти шлях завдання: створено, відкладено, очікує бюджет, перенесено, скасовано, відправлено або впало з помилкою.

13.3 Журнал

Журнал показує завершені, скасовані або помилкові завдання.

ДіяЩо робить
ПовторитиПовертає завдання в чергу для повторної спроби.
Очистити журналВидаляє завершені записи журналу.

Журнал не є чергою. Якщо очистити журнал, активні очікуючі завдання не зникнуть.

Причини в журналі

ПричинаЩо означає
Години тишіЗавдання не відправилось зараз, бо діє заборонений час.
Умови правила більше не виконуютьсяПеред відправкою модуль перевірив правило ще раз і побачив, що умови вже не підходять.
Замовлення перейшло у фінальний статусЗамовлення потрапило в глобальний статус скасування.
Спрацював статус скасування правилаСпрацював статус, заданий саме в цьому правилі.
Скасовано адміністраторомЗавдання вручну скасували в адмінці.
Чергу очищено адміністраторомЗавдання скасоване через очищення черги.
Правило видаленоЗавдання скасоване, бо правило видалили.
Замінено новішим завданнямПолітика дублікатів Замінити прибрала старе завдання.
Ліміт бюджету SMS/ViberЗавдання тимчасово не надіслано, бо вичерпано глобальний ліміт, OTP-резерв, ліміт відкладених надсилань, межу для недовірених OTP або аварійний бюджетний поріг.

13.4 Cron

Cron потрібен, щоб відкладені повідомлення реально відправлялися. Без cron правило може створити завдання, але воно не піде клієнту.

Як налаштувати cron

  1. Відкрийте Відкладені події -> Cron / Налаштування.
  2. Увімкніть статус планувальника.
  3. Скопіюйте Cron URL.
  4. Передайте URL хостингу або додайте його в панелі cron.
  5. Запускайте URL кожні 1-5 хвилин.
  6. Після запуску перевірте Стан cron, Останній старт, Останнє завершення.

Поля cron

ПолеЩо робитьЩо вибрати
СтатусВмикає планувальник.Увімкніть, якщо використовуєте відкладені події.
Cron URLПосилання для запуску планувальника.Скопіюйте і передайте хостингу.
Cron токенЗахищає cron від стороннього запуску.Не публікуйте і не міняйте без оновлення cron на хостингу.
Макс. SMS за запуск cronОбмежує кількість відправок за один запуск.Поставте помірне значення, щоб не перевантажити провайдера.
Макс. час роботи cronНе дає одному запуску працювати занадто довго.Залиште стандартне, якщо черга невелика.
Ліміт повторних спробСкільки разів повторити відправку при помилці.1-3 зазвичай достатньо.
Очищати виконані задачі через днівВидаляє старі завершені і скасовані задачі.7-30 днів, залежно від потрібної історії.
Початок тишіПочаток періоду, коли не треба писати клієнтам.Наприклад 21:00.
Кінець тишіКінець періоду тиші.Наприклад 09:00.
Часовий пояс тишіЗа яким часом рахувати тишу.Вкажіть часовий пояс магазину.
Глобальні статуси скасуванняСтатуси, які скасовують очікуючі повідомлення.Додайте Скасовано, Повернення та інші фінальні негативні статуси.

Шаблон повідомлення хостингу:

Потрібно налаштувати cron для OpenCart-модуля SAP - SMS / OTP Pro.
Запускайте Cron URL з вкладки "Відкладені події -> Cron / Налаштування" кожні 1-5 хвилин.
Метод запуску: звичайний HTTP-запит за цим URL.
Потрібна швидка перевірка?Відкрити діагностику →
ПРЯМИЙ ЗВ’ЯЗОК

Потрібна адаптація або Telegram-сервер?

Зв’язок з автором модуля щодо сумісності, встановлення, нестандартної теми, оформлення замовлення та платного підключення Telegram-сервера.