В зависимости от целей и задач которые преследует внешняя система во взаимодействии с системой лояльности ProBonus можно выделить несколько типовых сценариев интеграции.
В данном разделе описаны базовые кейсы и указаны конкретные методы API необходимые для их реализации.
Если требуемая вам логика взаимодействия не описана в данном разделе, вы можете написать нам на soft@carbis.ru и мы обязательно поможем найти решение.
API ProBonus предусматривает два различных способа авторизации:
Поддерживаются оба варианта. Но вариант 2 проще и удобнее. В сваггере доступны оба варианта.
Учет лояльности (скидки/бонусы/потраты) за все покупки совершенные гостем через систему r_keeper происходит автоматически и все данные об этих транзакциях попадают в базу ProBonus.
В некоторых случаях транзакция (которую нужно учесть в рамках ProBonus) происходит за рамками контура r_keeper (например, заказ на доставку который по итогу не будет создан в r_keeper, т.к. внешний модуль доставки не имеет интеграции с кассовой системой и существует отдельно). При этом сумма покупки должна быть учтена в оборотах по счету гостя (учет потрат для расчета лестницы, начисление/списание бонусов за внешнюю покупку и т.п.).
Для этой цели используется метод /api/v0/external/register_check.
Описание переменных
restCode - Код ресторана (из справочника Настройки-Рестораны), к которому нужно отнести данную транзакцию для отчетов.
checkGuid - Уникальный номер внешней транзакции (в формате GUID). Важно! Система ProBonus не контролирует уникальность переданного GUID в рамках своей БД. Контроль уникальности лежит на внешней системе.
accountId - id счета по которому совершена транзакция.
rkUnit - Код станции (рабочего места) в ресторане, к которому нужно отнести данную транзакцию для отчетов. Рекомендуем указывать код, заведомо определяющий что это не настоящая станция в ресторане. Например, 999 или 888 или любой другой трёхзначный.
externalCheck - Номер транзакции во внешней системе (может использоваться для дальнейшей сверки транзакций между двумя отчетами).
bonusSpentSum - Сумма (в копейках), которую нужно списать со счета в оплату транзакции.
discountSum - Сумма скидки (в копейках), которую гость получил во внешней системе
bonusAccruedSum - Сумма (в копейках), которую нужно начислить на счет за данную транзакцию.
moneySpentSum - Сумма (в копейках), которую гость потратил (оплатил) в рамках данной транзакции.
checkData - Любая текстовая информация о содержимом внешнего чека.
Метод /api/v0/external/return_check используется для отката всех начислений сделанных в ProBonus в случае отмены покупки во внешней системе.