guardlabs
Наш власний тестовий стенд, не клієнтський проєкт
ChoiceQR / KeyCRM · синхронізація замовлень

ChoiceQR → KeyCRM: нове замовлення летить у CRM автоматично

Гість зробив замовлення через QR-меню ChoiceQR — офіціанту чи менеджеру не треба вручну переносити його в KeyCRM. Стенд ловить вебхук order.created від ChoiceQR (реальна схема з їхньої документації), мапить кожне поле на формат KeyCRM, відсікає повтори одного й того ж замовлення і показує, що піде в KeyCRM ще до того, як там з'явиться платний ключ.

ChoiceQR

webhook order.created: клієнт, товари, доставка, оплата

Цей сервіс

дедуп за ID замовлення, мапінг полів, лог помилок

KeyCRM

POST /order: покупець, товари, оплата, коментар

Що саме показує стенд

1

Повний набір полів клієнта

Ім'я, телефон, адреса доставки, спосіб доставки, дата/час, товари з кількістю і ціною, загальна сума, коментар клієнта, спосіб оплати, джерело — усе з реальної схеми order.created ChoiceQR.

2

Без дублів

ChoiceQR повторює вебхук, якщо не отримав 2xx. Сервіс запам'ятовує ID замовлення і другий прихід тієї ж події просто позначає як дубль — у KeyCRM нічого зайвого не потрапить.

3

Лог помилок

Якщо KeyCRM відповів помилкою, недоступний, або формат замовлення несподіваний — запис іде у публічний лог нижче з причиною, нічого не губиться мовчки.

4

Готово розширювати

Той самий дедуп-шар і той самий event-роутинг за type легко покриє наступні події ChoiceQR — order.accepted, order.cancelled, order.delivery.update — це вже зміна статусу в KeyCRM, друге питання клієнта в ТЗ.

Мапінг полів (ChoiceQR → KeyCRM)

Потрібно клієнтуChoiceQR (order.created)KeyCRM (POST /order)
ім'я клієнтаdelivery.customer.namebuyer.full_name
телефонdelivery.customer.phonebuyer.phone
адреса доставкиdelivery.customer.address.*manager_comment (адреса)
спосіб доставкиtype (delivery/takeaway/table)manager_comment (тип)
дата та час доставкиdelivery.whenmanager_comment (час)
товари, кількість, цінаitems[]{name,count,price}products[]{name,quantity,price}
загальна сумаtotalpayment_amount
коментар клієнтаcustomerComments[]manager_comment
спосіб оплатиpayBypayment_method
джерело замовлення(фіксовано: ChoiceQR)source_id

KeyCRM не має окремих полів під адресу/дату доставки на рівні API-замовлення — тому вони йдуть у manager_comment читабельним рядком; якщо потрібно окремими колонками — це два додаткові кастомні поля в KeyCRM, налаштовуються за хвилини в самому KeyCRM.

Спробуйте самі

Зліва — приклад вебхука ChoiceQR (можна редагувати), справа — що піде в KeyCRM і що відповість цей сервіс. Другий клік по тій самій кнопці без змін ID покаже дедуп дублів.

тут з'явиться відповідь сервісу і що пішло в KeyCRM…
Публічний лог подій
ще немає подій

Як перевірити, що це не картинка