WP Product Code Manager
Плагин WordPress, превращающий цифровую выдачу из задачи, которую кто-то выполняет, в следствие оплаты. Коды со статусом, обработчики создания заказа и смены статуса и API с авторизацией по токену, чтобы канал маркетплейса выдавал тем же путём.

Стек
Проблема
Магазин цифровых товаров выдавал коды активации вручную. Человек следил за списком заказов, находил свободный код в таблице, вставлял его в письмо и вычёркивал - значит, доставка занимала ровно столько, сколько нужно человеку, чтобы заметить заказ, а купившие ночью ждали до утра. И значит, один и тот же код мог уйти дважды, потому что мешала этому только внимательность.
Вторая половина проблемы - охват. Заказы приходили не только с витрины: канал маркетплейса тоже создавал заказы и ждал выдачи за минуты. То, что выполняет заказ, должно было вызываться извне WordPress, не раздавая при этом админских аккаунтов.
До → После
| До | После |
|---|---|
| Оператор следит за списком заказов и вставляет коды руками | Выдачу запускают события заказа: следить не нужно никому |
| Скорость выдачи ограничена рабочими часами | Код приходит сразу после оплаты, в любое время суток |
| Коды учитываются в таблице: возможна двойная отправка | Коды хранятся со статусом; выдача и активация: зафиксированные события |
| Доступно только из админки WordPress | API с авторизацией по токену: внешние системы выполняют заказ напрямую |
| Заказы маркетплейса: отдельный ручной процесс | Один и тот же путь выдачи независимо от источника заказа |
| Нет записи о том, какой код ушёл в какой заказ | Код, заказ и статус связаны и доступны запросом |
Как это работает
- Коды генерируются и хранятся. Плагин владеет созданием кодов и держит каждый со своим статусом, поэтому запас - это таблица со следом операций, а не ячейка в файле.
- Выдачей управляют события заказа. Обработчики слушают создание заказа и смену его статуса. Когда оплаченному заказу нужен код, обработчик подбирает его и прикрепляет - именно это превращает выдачу из задачи, которую кто-то выполняет, в следствие оплаты.
- Активация - отдельный шаг. Выдача кода и его активация разведены, поэтому код, который отдали, но не погасили, отличим от израсходованного.
- Тот же сценарий доступен по API. Эндпоинты закрыты токеном, так что внешняя система, интеграция с маркетплейсом или внутренний инструмент, выполняет заказ без сессии и без админского аккаунта. Логика выдачи существует ровно в одной реализации и вызывается с обеих сторон.
- Внешние заказы адресуемы. Плагин умеет получать множество заказов, пришедших из внешнего канала, благодаря этому выдача на маркетплейсе становится запросом, а не сверкой.
Основные возможности
- Генерация и хранение кодов со статусом у каждого
- Разделённые операции выдачи и активации
- Обработчики создания заказа и смены статуса - выдача без участия человека
- REST API с авторизацией по токену для внешнего выполнения заказов
- Выборка заказов, пришедших из внешнего канала маркетплейса
- Связка кода, заказа и статуса для последующего разбора
Установка
- Загрузите папку плагина в
/wp-content/plugins/и активируйте - Дайте активации создать таблицы кодов
- Сгенерируйте или импортируйте начальный запас кодов
- Выпустите токен API для каждой внешней системы, которая будет выполнять заказы
- Проведите тестовый заказ целиком и убедитесь, что код прикрепился сам
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок