Замокать вебхук заказа Shopify
GET-мок в духе вебхука заказа Shopify: номер заказа растёт с каждым вызовом, сумма и email покупателя — случайные.
Шаблон отдаёт вебхук заказа в форме Shopify, где order_number увеличивается на каждом вызове, а сумма и почта покупателя случайные. Это удобно для кода, который должен справляться с потоком разных заказов, а не с одной и той же фикстурой: дедупликация, порядок обработки и идемпотентность требуют больше одного значения.
Отдаёт готовое событие — скормите его прямо своему обработчику.
Тело ответа
{
"id": 5734891234567,
"order_number": {{seq}},
"total_price": "{{faker.price}}",
"currency": "USD",
"line_items": [
{
"title": "Wireless Mouse",
"quantity": 2,
"price": "19.99"
}
],
"customer": {
"email": "{{faker.email}}"
}
}
Поля, на которые стоит обратить внимание
| Поле | Что означает |
|---|---|
| order_number | Растёт с каждым вызовом через {{seq}} — так же ведёт себя номер заказа в Shopify. |
| total_price | Случайная сумма через {{faker.price}}; в реальном заказе — сумма позиций плюс налоги и доставка. |
| currency | Код валюты, здесь захардкожен как USD. |
| line_items | Позиции заказа — здесь один фиксированный товар, у настоящего заказа их может быть много. |
| customer.email | Случайный email через {{faker.email}}. |
Создать мок
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"response_body": "{\"id\":5734891234567,\"order_number\":{{seq}},\"total_price\":\"{{faker.price}}\",\"currency\":\"USD\",\"line_items\":[{\"title\":\"Wireless Mouse\",\"quantity\":2,\"price\":\"19.99\"}],\"customer\":{\"email\":\"{{faker.email}}\"}}"
}'
Вызвать
curl https://quickmock.dev/m/<slug>
Что вы получите
GET /m/<slug> -> 200 a Shopify-style order webhook
order_number counts up per call, total_price/customer.email are random
Чем это отличается от настоящего
Это один урезанный заказ вместо полного набора полей настоящего заказа Shopify, и запрос не подписан. order_number растёт через {{seq}}; total_price и customer.email — случайные при каждом вызове.
Источники
Частые вопросы
- Он подключается к магазину Shopify?
- Нет. Это один урезанный заказ с вашего мок-URL, без магазина, склада и API за спиной. Настоящий заказ Shopify несёт заметно больше полей, чем показано здесь.
- Почему order_number меняется на каждом вызове?
- Используется токен последовательности — так же ведут себя и настоящие номера заказов Shopify. Фикстура с фиксированным идентификатором не поймает баг, где код считает два разных заказа одним.
- Сходится ли total_price с позициями заказа?
- Нет — сумма случайная на каждом вызове, а позиции фиксированные. Если ваш код пересчитывает итог по позициям, сначала поправьте тело ответа, чтобы одно сходилось с другим.
Готовы попробовать?
Хорошо сочетается с гайдом: Протестировать приём вебхуков
Похожие шаблоны
Обновлено: 2026-10-17