Дано: онлайн-школа с пятью продуктами, каждый из которых имеет несколько потоков (от 2 до 9). Всего 20 тренингов, к которым нужно открывать доступы.
Задача: у участников клуба должны быть доступны к ранее пройденным курсам. Доступ должен открываться на период действия подписки.
Решил реализовывать через группы.
Для каждого запуска каждого продукта создал отдельную группу вида: «Клуб: Продукт 1. Месяц и год запуска».
В тренингах настроил доступ «Выбранные группы и те, кто купил тренинг» и отметил соответствующую группу в каждом.
Логика процесса открытия доступа
Процесс по объекту «Покупка» с периодической проверкой.
Условия проверки: продукт — Клуб и статус — Активна.
В процессе блоки «Условие» проверяют наличие завершённого заказа у пользователей.
Если заказ есть — добавляем в группу по этому продукту и переходим к проверке следующего. И так по всем продуктам, к которым нужно открыть доступ.
Закрытие доступа после завершения подписки
Здесь совсем простой процесс. Тоже по объекту «Покупка».
Проверка периодическая, условие запуска: продукт — «Клуб» и статусы — Отменена, Завершена или Заморожена.
В процессе сразу после запуска добавил блок удаления из группы, в котором отметил все группы по клубу, чтобы не делать снова множество проверок.