Кастомный пайплайн заказов
Задача
Заказ проходил резерв, внешнюю обработку и возврат результата. Статусы WooCommerce описывали только оплату и выполнение.
Роль и объём
Машину состояний собрал сам: хуки заказа, meta, вызовы внешнего процессора. Письма, оплата и склад оставались на штатных сценариях Woo.
Ограничения
Между системами заказ терялся или двоился. Нужны явные переходы, идемпотентный id и запрет тихих update_status из темы.
Архитектура
Checkout │ ▼ WooCommerce order ├── State machine ├── Order meta └── Service calls │ ▼ External processor
Реализация
Хуки заказа, явные переходы, meta с идемпотентным id. Внешний вызов только из разрешённого состояния. Повтор безопасен.
Отказы и повторы
Запрещены прямые update_status из темы. Переходы логируются. Откат — отдельный переход, не «тихий» edit. Повтор не создаёт второй внешний документ.
Результат
Заказ не зависает между системами. Повтор обработки не создаёт второй внешний документ.
Стек
PHP · WooCommerce · hooks · order meta
Похожая система?
Обсудим ограничения и контур — не сайт с нуля.