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

Технологии
Услуги
- →Проектирование и разработка CRM на PHP
- →Двусторонняя интеграция с REST API WooCommerce
- →Ролевая модель доступа для внешних недоверенных исполнителей
- →Логирование выполнения и обратная запись статуса заказа
Результаты
- ✓CRM, показывающая заказы WooCommerce в реальном времени
- ✓Четыре роли: администратор, исполнитель, продавец, финансовый управляющий
- ✓Ограниченные учётки, не пускающие внешних исполнителей в админку WooCommerce
- ✓Лог выполнения: кто и с каким заказом работал
Задача
Магазин продаёт цифровые игры для консолей, а покупку можно завершить только зайдя в аккаунт PlayStation самого покупателя - учётные данные он указывает вместе с заказом. Значит, за каждым заказом стоит человек: прочитать доступы, войти, купить игру, отметить выполнение. Масштабировать это - значит нанимать людей, а единственным способом дать кому-то заказ была учётка администратора WooCommerce, то есть выдать весь магазин - клиентов, выручку, настройки - ради одного заказа.
Рассмотренные варианты
- Выдавать каждому исполнителю админку WooCommerce - отклонено. Роли WooCommerce построены вокруг управления магазином, а не вокруг выполнения одного заказа: самая узкая роль, которая всё ещё видит детали заказа, видит и куда больше нужного.
- Раздавать заказы вручную через таблицы и мессенджеры - отклонено. Учётные данные расползлись бы по местам, которые никто не контролирует, и не осталось бы следа, кто и когда открывал заказ.
- Отдельная CRM рядом с магазином, читающая заказы через API WooCommerce - выбрано. Магазин остаётся источником правды по заказам, а CRM берёт на себя вопрос, кому что показывать.
Решение
Построить CRM, которая забирает заказы из WooCommerce по мере их создания и показывает исполнителю ровно тот набор данных, который нужен для заказа перед ним, и ничего сверх. Модель доступа держится на четырёх ролях: администратор, исполнитель, продавец и финансовый управляющий. Внешний недоверенный исполнитель получает ограниченную учётку и не заходит в админку WooCommerce вовсе - именно это и позволило работать с многими такими исполнителями сразу. Каждое действие пишется в лог выполнения.

Order fulfilment CRM, scrollable snapshot of the demo stand
Назначение заказа
Навигация
Реализация
PHP-приложение на компонентах Illuminate - база данных, HTTP, валидация и события - с PHP-DI для связывания, Phinx для миграций, Monolog для логирования и MySQL снизу. С WordPress и WooCommerce общается по REST API: новый заказ появляется в CRM сразу после оформления в магазине, а смена статуса на «обработан» пишется обратно в магазин, а не остаётся во второй системе.
Главное здесь - модель доступа. Роли определяют, какие поля заказа пользователь вообще может прочитать, поэтому нужные для выполнения данные не уходят дальше того, кто этот заказ выполняет, а лог фиксирует, кто с чем работал.
Результат
Обработка заказа вышла примерно на 10 минут. Но важнее другое: подключение внешнего исполнителя перестало быть вопросом доверия - он получает учётку, ограниченную назначенными ему заказами, и магазин смог держать много исполнителей параллельно, а не ограничиваться теми, кому можно дать админский доступ.
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок