Замокать вебхук заказа 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