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":"Идентификатор в системе Гифтоман"}