LoyaltyScripts — набор сервисных методов для массовых операций над бонусами и кошельками через API (пересчёт балансов, перенос бонусов, ручное начисление). Используются техподдержкой и разработкой при разборе инцидентов.
https://app.remarked.ru/api/v2/lsapp/helpers/LoyaltyScripts{
"method": "reloadBonusesBalanceV2",
"params": {
"point": 347000,
"wallet_id": 119
}
}
| Метод | Описание | Параметры |
|---|---|---|
reloadBonusesBalanceV2 |
Пересчёт «Бонусов всего» | point, wallet_id |
moveBonusesBalance |
Перенос бонусов с кошельков iiko/keeper | point, wallet_id |
moveBonusesBalanceByGuestsIds |
То же, по списку ID гостей | point, wallet_id, guests |
reloadBonusesBalanceByIdsV2 |
Пересчёт кошельков по ID гостей | point, guests |
createWalletsAndTransferBonuses |
Создание кошельков + перенос бонусов | point, wallet_id, provider |
refillBonusesByGuestId |
Начисление бонусов с записью и комментарием | point, wallet_id, provider, sum, comment, guests |
getDishesGroups |
Иерархия групп для блюд | point, dishes |
| Параметр | Тип | Описание |
|---|---|---|
point |
int | Поинт (для сети — общий) |
wallet_id |
int | ID кошелька (из БД или ЛК при редактировании) |
guests |
array | Массив ID гостей |
dishes |
array | Массив ID блюд |
provider |
string | rkeeper или iiko |
sum |
int | Сумма бонусов (> 0) |
comment |
string | Комментарий, виден во вкладке «Бонусы ПЛ» |
Скрипт обращается к LoyaltyScripts по HTTP. Токен берётся из защищённого конфига/переменной окружения и в коде не хранится.
<?php
$url = 'https://app.remarked.ru/api/v2/ls';
$token = getenv('REMARKED_LS_TOKEN'); // токен из защищённого окружения, не хардкодить
$payload = [
'method' => 'refillBonusesByGuestId',
'params' => [
'point' => 347000,
'wallet_id' => 119,
'provider' => 'iiko',
'sum' => 500,
'comment' => 'Компенсация по обращению',
'guests' => [40404100, 40404101],
],
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $token,
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
// Проверять не только HTTP-код, но и поле status/message внутри JSON-ответа
echo "HTTP {$status}: {$response}\n";
Безопасность: токены LoyaltyScripts и любых API-методов не указываются в коде и документации. Используйте переменные окружения или защищённое хранилище (доступы — раздел 18 внутренней БЗ).