← Назад ко всем проектам

Личный проект

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

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

Технологии

PHPMySQLWooCommerceWordPress

Услуги

  • Проектирование и разработка CRM на PHP
  • Двусторонняя интеграция с REST API WooCommerce
  • Ролевая модель доступа для внешних недоверенных исполнителей
  • Логирование выполнения и обратная запись статуса заказа

Результаты

  • CRM, показывающая заказы WooCommerce в реальном времени
  • Четыре роли: администратор, исполнитель, продавец, финансовый управляющий
  • Ограниченные учётки, не пускающие внешних исполнителей в админку WooCommerce
  • Лог выполнения: кто и с каким заказом работал

Задача

Магазин продаёт цифровые игры для консолей, а покупку можно завершить только зайдя в аккаунт PlayStation самого покупателя - учётные данные он указывает вместе с заказом. Значит, за каждым заказом стоит человек: прочитать доступы, войти, купить игру, отметить выполнение. Масштабировать это - значит нанимать людей, а единственным способом дать кому-то заказ была учётка администратора WooCommerce, то есть выдать весь магазин - клиентов, выручку, настройки - ради одного заказа.

Рассмотренные варианты

  1. Выдавать каждому исполнителю админку WooCommerce - отклонено. Роли WooCommerce построены вокруг управления магазином, а не вокруг выполнения одного заказа: самая узкая роль, которая всё ещё видит детали заказа, видит и куда больше нужного.
  2. Раздавать заказы вручную через таблицы и мессенджеры - отклонено. Учётные данные расползлись бы по местам, которые никто не контролирует, и не осталось бы следа, кто и когда открывал заказ.
  3. Отдельная CRM рядом с магазином, читающая заказы через API WooCommerce - выбрано. Магазин остаётся источником правды по заказам, а CRM берёт на себя вопрос, кому что показывать.

Решение

Построить CRM, которая забирает заказы из WooCommerce по мере их создания и показывает исполнителю ровно тот набор данных, который нужен для заказа перед ним, и ничего сверх. Модель доступа держится на четырёх ролях: администратор, исполнитель, продавец и финансовый управляющий. Внешний недоверенный исполнитель получает ограниченную учётку и не заходит в админку WooCommerce вовсе - именно это и позволило работать с многими такими исполнителями сразу. Каждое действие пишется в лог выполнения.

aA🔒crm.local/home.php
+
Заказы

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-минутный звонок