Приём заказов с сайта (API)
Ваш сайт или приложение шлёт заказы прямо в программу
Если заказы принимает ваш сайт или мобильное приложение, они могут попадать в программу сами — оператору останется только подтвердить. Запросы устроены так же, как у FrontPad, поэтому сайт, уже работавший с FrontPad, переключается на нас сменой адреса и ключа.
Как включить
- Настройки → Общие → «API — приём заказов с сайта»: отметьте «Включено», нажмите «Создать» — программа придумает секретный ключ. Сохраните.
- Передайте разработчику сайта адрес (
https://ваш-адрес/api/index.php) и ключ. Ключ — это пароль: кто его знает, тот может создавать заказы.
123- 1«Включено» — программа принимает заказы с сайта
- 2«Создать» — новый секретный ключ (старый сразу перестанет работать)
- 3Адрес, который нужно передать разработчику сайта
- В справочниках заполните «Код API» — филиалы, точки продаж, варианты оплаты, каналы продаж, статусы, отметки заказов. Это те же номера, которыми их называет сайт.
- У товаров должен быть артикул — по нему сайт и программа понимают, что это одно и то же блюдо.
- Если сайт сам считает доставку по своим зонам, он передаёт её строкой-товаром «Доставка» (у FoodNinja — «Системные товары → Доставка»). Впишите этот артикул в поле «Артикул товара «Доставка»» в тех же настройках API. Тогда такая строка станет ценой доставки заказа, а не блюдом: в чеке — услуга «Доставка», в отчётах — отдельно от еды, на кухне её нет. Цену доставки заказа с сайта программа не пересчитывает по своим зонам — даже если оператор потом изменит заказ.
Что умеет
new_order— создаёт заказ: товары по артикулам, телефон, адрес, оплата, отметки, предзаказ.get_client— данные клиента по телефону: имя, адрес, скидка, бонусы.get_certificate— проверяет сертификат или купон.get_products— список товаров с ценами (не чаще раза в час).get_stops— что сейчас в стоп-листе.
Запрос — POST на /api/index.php?new_order обычной формой, обязательное поле secret. Ответ — {"result":"success","order_id":…,"order_number":…} или {"result":"error","error":…}. Не больше 30 запросов в минуту и 2 в секунду.
Статусы обратно на сайт
Когда заказ меняет статус, программа сама сообщает об этом сайту: POST с {"action":"change_status","order_id":…,"status":…,"datetime":…}. Адрес сайт может прислать вместе с заказом (hook_url) или вы укажете его в настройках. Статус передаётся тем номером, который стоит в «Коде API» статуса.