← Все кейсы

CASE STUDY / 02

WOOCOMMERCE × ORDERS

Кастомный пайплайн заказов

Задача

Заказ проходил резерв, внешнюю обработку и возврат результата. Статусы 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

Похожая система?

Обсудим ограничения и контур — не сайт с нуля.

Следующий кейс: Платёжный шлюз с бизнес-правилами