Management API предназначено для схем интеграции, когда есть необходимость обслуживать весь пул устройств с одного входа. С помощью Management API можно получать данные устройств всего аккаунта и изменять их состояния.
API поддерживает JRPC 2.0-протокол вызова методов по аналогии с Device API.
Для работы необходимо знать ключ <authkey>
Административного устройства с которым можно обращаться по URI: https://api.giftoman.ru/m/<authkey>
Запрос позволяет зарегистрировать новое устройство на торговой точке и получить ключ устройства для дальнейшей работы с ним
setCashbox( location, extid);
Параметры запроса.
name | type | description |
---|---|---|
location | object | Объект локации (Описание Торговой точки): { — country (string(60)): Название страны по КЛАДР — city (string(60)): Название города по КЛАДР — street (string(100) опциональный): Название улицы по КЛАДР — house (string(20) опциональный): Дом, включая корпуса, литеры и т.п. (например 10/1а) — store_ext_id (string(40) опциональный): Внешний (клиентский) идентификатор торговой точки — name (string(100) опциональный): Название торговой точки } |
extid | string(100) опциональный | Внешний (партнёрский) идентификатор конкретного устройства для создания уникальных устройств по адресу |
Параметры ответа
result: { "id" : Идентификатор устройства, "auth_key": Ключ устройства для работы с Device API }
С помощью этого запроса можно как установить, так и удалить плановое значение на нужный период.
Планы устанавливаются на ту Торговую точку, где зарегистрировано данное устройство.
storePlanSet(store_ext_id, metric, plan, year [, month, day] );
Параметры.
name | type | description |
---|---|---|
store_ext_id | string(20) | Внешний идентификатор (на стороне Торговой системы или бэкофиса клиента) |
metric | string(40) |
Мнемоника, либо прямой идентификатор правила: — income : Выручка — average : Средний чек — count : Кол-во продаж — category : Выручка по СТМ — complexity : Комлексность чека по кол-ву товаров — p/ <идентификатор показателя> — прямой идентификатор показателя |
plan | DECIMAL(13,4) | Если >=0, то установка планового значения = plan, если <0, то удаление |
year | int | Год |
month (необязательный) | int | Месяц, если не указан или = -1, то выставляется план на год |
day (необязательный) | int | День, если не указан или = -1, то выставляется план на месяц, иначе — на день |
Параметры ответа
result: { "addressId" : ИД торговой точки, "metric": Идентификатор показателя, "plan": Установленный план, "year": Год, "month" : Месяц, "day": День}
После установки всех плановых значений на период необходимо вызвать метод публикации плана для актуализации значений
storePlanPublish(store_ext_id, auto );
Параметры.
name | type | description |
---|---|---|
store_ext_id | string(20) | Внешний идентификатор (на стороне Торговой системы или бэкофиса клиента) |
auto | boolean | — true — Использовать сервисную аналитику распределения по периодам. — false — Не использовать аналитику (равномерное распределение по нижним периодам) |
Параметры ответа
result: { "addressId" : ИД торговой точки, "auto": Автоматическое распределение}
Для получения планов по Торговой точке используется команда reports(id, filter, range)
reports(id, filter, range );
Параметры.
name | type | description |
---|---|---|
id | string(20) | ‘salesplans’ — Получение отчёта о планах Торговой точки |
filter | object | { «storeId»: /* Внешний идентификатор Торговой точки */ } |
range | object | { «from»: «Y-m-d» /*Дата от*/, «to»: «Y-m-d» /* Дата до */ } |
Пример запроса salesplans
{ "id":"1251506945251332", "method":"reports", "params":{ "id":"salesplans", "filter": { "storeId":100 }, "range": {"from":"2017-09-01","to":"2017-10-31"} }, "jsonrpc":"2.0" }
Пример ответа
{ "jsonrpc": "2.0", "id": "1251506945251332", "result": { "data": { "salesplans": { "id": "100", "uuid": "1457", "name": "Екатеринбург, ТЦ Курс", "data": { "periods": { "2017-09-01": { /* Список значений метрик на указанную дату*/ "1437627895975737336": { "fact": 73.16, // Фактическое значение метрики "plan": 0, //Плановое значение "forecast": 0 // Прогнозное (в фактических датах совпадает с фактом или = 0 для несуммарных метрик) } } }, ... "rules": [ // Список метрик { "id": "1437627895975737336", "name": "Средний чек по группе", "order": "0", "type": "2" },... ] } } } } }
Метод предназначается для очистки всех номенклатурных позиций от присвоенных категорий. Выполняется в случае, если далее будет обновляться не весь номенклатурный справочник.
priceCategoryReset();
Параметры.
нет
Параметры ответа
result: { "status" : "ok"}
Автоматически обновляет или создаёт (в случае отсутствия) позицию по её атрибутам.
priceUpdate(name, params );
Параметры.
name | type | description |
---|---|---|
name | string(200) | Название номенклатурной позиции (в случае отсутствия указанного params.extid будет использоваться как основной её идентификатор) |
params | associative array |
extid string(40) (optional) — Внешний уникальный идентификатор, как правило, уникальный идентификатор из справочника Торговой Системы category string(200) (optional) — Название/идентификатор категории (метка). Может использоваться микроформат для присвоения нескольких меток: [store_ext_id1,..,store_ext_idN]Категория1&&Категория2&&..&&КатегорияN. — store_ext_idN — внешний идентификатор торговой точки, либо 0 (если для всех) price decimal(10,4) (optional) — Цена позиции |
Пример запроса priceupdate
{ "id":"1251506945251332", "method":"priceUpdate", "params":{ "name":"Носки \"Бумеранг\" 41-43", "params": { "extId":"1239187239487","category":"Одежда&&Возможно нижняя&&СТМ","price":"150.00" } }, "jsonrpc":"2.0" }
Пример ответа
result: { "priceId" : <Идентификатор позиции в системе Гифтоман>}
Автоматически обновляет или создаёт (в случае отсутствия) пакет позиций (максимум = 1000).
priceUpdateBatch(items );
Параметры.
name | type | description |
---|---|---|
items | Array of Objects — Максимум 1000 элементов | Объект массива: — name (string(200)) : Человекочитаемое название товара — params (array) : Опциональный объект параметров товарной позиции { — extid string(40) (optional) — Внешний уникальный идентификатор, как правило, уникальный идентификатор из справочника Торговой Системы — category string(200) (optional) — Название/идентификатор категории (метка). Может использоваться микроформат для присвоения нескольких меток: Категория1&&Категория2&&..&&КатегорияN. — price decimal(10,4) (optional) — Цена позиции |
Пример запроса priceUpdateBatch
{ "id":"1251506945251332", "method":"priceUpdateBatch", "params":{ "items": [ { "name":"Носки \"Бумеранг\" 41-43", "params": { "extId":"1239187239487","category":"Одежда&&Возможно нижняя&&СТМ","price":"150.00" } }, { "name":"Платок \"Радость носика\"", "params": { "extId":"3219187239487","category":"Аксессуары&&СТМ","price":"120.00" } } ] }, "jsonrpc":"2.0" }
Пример ответа
result: {"count" : 2 /*<Кол-во принятых позиций>*/ }
Автоматически актуализирует расписание работы ТТ на каждый день рабочей недели.
storeSchedule(store_ext_id,schedule);
Параметры.
name | type | description |
---|---|---|
store_ext_id | string(20) | Внешний идентификатор (на стороне Торговой системы или бэкофиса клиента) |
schedule | Array of Objects | Объект массива: — wday (tinyint) : 1-Понедельник, … 7 — Воскресенье — from (string(5) ЧЧ:ММ) : Начало работы ТТ — to (string(5) ЧЧ:ММ): Конец работы ТТ — breaks (Array of objects опционально): [ { from (string(5) ЧЧ:ММ): Начало перерыва ТТ to (string(5) ЧЧ:ММ): Конец перерыва ТТ },.. ] |
Пример запроса storeSchedule
{ "id":"1251506945251332", "method":"storeSchedule", "params":{ "store_ext_id": 123, "schedule": [ { "wday":1, "from": "10:00", "to": "20:00" }, { "wday":2, "from": "10:00", "to": "20:00" }, { "wday":3, "from": "10:00", "to": "20:00" }, { "wday":4, "from": "10:00", "to": "20:00" }, { "wday":5, "from": "10:00", "to": "22:00" }, { "wday":6, "from": "11:00", "to": "19:00" }, { "wday":7, "from": "11:00", "to": "19:00" } ] }, "jsonrpc":"2.0" }
Пример ответа
result: {"addressId":"Идентификатор в системе Гифтоман"}