Центр поддержки пользователей и разработчиков

Стройте эффективные решения на нашей платформе

Методология внедрения

Принципы работы с KPI для достижения максимальной эффективности в управлении

Дальше

Кассовый модуль

Принципы работы кассового модуля и руководство пользования

Дальше

Панель управления

Возможности веб-интерфейсов и инструкции по использованию и настройке аккаунта.

Дальше

Мобильные приложения

Что умеют приложения для iOS и Android и как начать ими пользоваться

Дальше

Установка и настройка

Обновление 03 Дек '15


Требования

Минимальные требования

К кассовому оборудованию

Параметр Значение
ОС Windows XP и выше
Процессор Atom 1Ghz
Память 512MB
Свободное место на диске 40MB для ПО и дополнительно для установки .NET FrameWork 4.0
Подключение Наличие прямого или проксируемого доступа приложению в интернет
Принтер чеков COM/USB при установке в режиме драйвера слушателя чеков (см. таблицу поддерживаемых принтеров)

Поддерживаемые драйверы принтеров чеков

При установке в режиме драйвера слушателя порта принтера нужно учитывать, что POS-система должна работать с принтером напрямую в соответствии с текстовыми протоколами печати чека

Производитель Реализация
ESCPOS Частичная, зависит от формата печатаемого чека. Поддержка только текстовых данных
ATOL Фискальный режим
Штрих Фискальный режим
Меркурий Фискальный режим
Искра Фискальный режим

Поддерживаемые POS-системы

Название Варианты установки
Rkeeper v6, v7 Только драйвер слушателя порта
IIKO v3+ Драйвер слушателя порта или Установка плагина
Frontol 4+ Драйвер слушателя порта или Интеграционные скрипты
1C 7.7+ Драйвер слушателя порта или Интеграционные скрипты
Другие Драйвер слушателя порта или разработка интеграции

Настройка аккаунта

Для начала настройки аккаунта необходимо его зарегистрировать в нашей системе
Вы получите ссылку на дистрибутив, устанавливаемый на кассах, реквизиты для установки и настройки первой кассы и возможность завести свою структуру предприятия.

После регистрации в меню "Настройки" выберите в блоке "Магазин" пункт "Общая информация"

Конфигурация магазина

Здесь нужно заполнить основную информацию о вашем предприятии

Конфигурация Торговых Точек

После сохранения данных о магазине в том же блоке нужно перейти в пункт "Торговые точки"


Здесь заполняется список адресов торговых точек вашего предприятия. Нажав кнопку "Добавить" вы сможете добавить ещё один адрес торговой точки



Адрес может быть электронным или почтовым, основная его функции - для последующей удобной идентификации торговой точки

Конфигурация устройств

После добавления хотя бы одной Торговой Точки нужно добавить устройство - это конечный аккаунт для приложения на кассе торговой точки.


Добавление происходит похожим на Торговые Точки образом



Для настройки достаточно выбрать привязку к Торговой Точке, где работает Касса и назвать её для удобства дальнейшей идетификации


Установка

Возможны два варианта установки: В режиме драйвера слушателя порта и Интеграция с POS-системой.
В любом случае установщик потребует идентификатор устройства и секретный ключ, которые были получены на этапе Настройка аккаунта

Установка с интеграцией в POS-систему

В разделе Требования обозначен список POS-систем с которыми возможна интеграция

Для данного вида установки вам так же нужно зерегистрировать аккаунт и скачать дистрибутив для интеграции

Далее руководствоваться разделом Интеграция, в котором описаны принцип и методы интеграции.

Установка в режиме драйвера слушателя порта

Для установки вам потребуется дистрибутив установщика слушателя порта. После установки и запуска приложение будет ожидать печати чеков на рабочих принтерах в режиме автоопределения порта устройства и протокола.



После удачного определения экран приложения сменится на рабочий.


Конец документа

COM-Интерфейс

Последнее обновление: 01 Окт '16


Интеграция возможна на платформах MS Windows (Начиная с XP и выше)

Для начала интеграции достаточно скачать дистрибутив и установить его на кассу или станцию разработки

Данный дистрибутив работает в режимах:
- Передача данных в облако гифтоман и отображение результатов после обработки;
- Получение данных из облака и визуализация результатов.

Поддержка интеграции для POS-систем

POS-система Ссылки на файлы/документацию
IIKO Инструкция по установке ПО Гифтоман и плагинов IIKO
Архив с доступными плагинами
Frontol Инструкция по установке ПО Гифтоман и добавления сценария обработки интеграции
Готовый сценарий обработки для Frontol v4
Готовый сценарий обработки для Frontol v5
1C Интеграция
Другие Индивидуальная интеграция

Примеры кода для POS-систем

1C 7.7

ГМ = CreateObject(“Giftoman.ChequeApi”);
ГМ.<Название метода>( Параметры );

1C 8+

ГМ = Новый COMОбъект(“Giftoman.ChequeApi”);
ГМ.<Название метода>( Параметры );

Frontol 4+

var gmObject = new ActiveXObject(“Giftoman.ChequeApi”);
gmObject.<Название метода>( Параметры );

Начало покупки

Метод предназначен для начала оформления покупки по новому чеку.

PurchaseOpen ( [ total, cashier ]);

name type description
total decimal(10,4) (Опционально) Итоговая сумма чека (за вычетом скидки)
(Опционально, если нужен расчёт суммы по PurchaseAddItem())
cashier(60) BSTR (Опционально) ФИО или другое текстовое обозначение продавца

Exceptions

Значение Описание
COMException Не обнаружена директория обмена

Пример

Открытие чека с итоговой суммой 300 рублей .Кассир "Иванова И.И."

 GM.PurchaseOpen( 300.00, "Иванова И.И." );         

Добавление позиции в покупку

Добавление позиции в чек должно вызываться между открытием и закрытием чека. Каждый вызов добавляет отдельную позицию.

PurchaseAddItem( name, count, total, [, category, seller, extId] );

Параметры.

name type description
name BSTR(200) Название товарной позиции
count decimal(10,4) Количество
total decimal(10,4) Итоговая сумма (за вычетом скидки) по товарной позиции (priceDiscounted * count)
category BSTR(200) (Опционально) Строка категории (группы) товара
Можно передавать несколько категорий, разделяя их '&&'
seller BSTR(64) (Опционально) Строка имени продавца по позиции (по умолчанию продавец берётся из PurchaseOpen())
extId BSTR(48) (Опционально) Внешний идентификатор товара (из номенклатуры ТС)

Пример

Добавление товарных позиций

GM.PurchaseOpen( 300.00,"Иванова И.И." ); // Открываем покупку
GM.PurchaseAddItem('Пакет-майка',1,5.0); // Регистрируем позицию "Пакет-майка", количество 1, общая стоимость 5.0
GM.PurchaseAddItem('Огурцы зелёные',3,295,'Овощи'); // Регистрируем позицию "Огурцы зелёные", количество 3, общая стоимость 295 в категории "Овощи"
GM.PurchaseClose();  // Закрываем покупку            

Добавление атрибута к покупке

Добавление атрибута в покупку должно вызываться между открытием и закрытием чека. Каждый вызов добавляет отдельный атрибут.

PurchaseAddAttr(name, value);

Параметры

name type description
name BSTR (20) Название атрибута
withcard (value: 0,1) - использование карты лояльности
discount (value: decimal(10,4)) - скидка на покупку
bonus_sp (value: decimal(10,4)) - использование бонусных баллов
procspd (value: int) - время обработки чека, сек.
paytype/[cash,card,visa,master, e.t.c.] (value: decimal(10,4)) - разбиение суммы по платежам или указание типа платежа.
возможно использовать свои названия под разработку доп. KPI.
value BSTR (10) значение атрибута (Все значения передаются в виде строки, в том числе и числовые типа скидок и флагов)

Пример

Добавление товарных позиций

GM.PurchaseOpen( 300.00,"Иванова И.И.");
GM.PurchaseAddItem('Пакет-майка',1,5.0);
GM.PurchaseAddAttr('withcard','1'); // Обозначаем, что покупка проходит с картой лояльности Клиента
GM.PurchaseAddAttr('paytype/cash','200'); // Была проведена покупка за 200р наличными
GM.PurchaseAddAttr('discount','100'); // Определяем скидку на данную покупку
GM.PurchaseClose();              

Завершение покупки

Только при закрытии покупки система ставит её в очередь отправки в облако.

PurchaseClose([extId])

Параметры

name type description
extId BSTR (40) (Опциональный) Идентификатор чека внутри торговой системы для возможности сквозной идентификации на стороне облака.

Начало возврата

Метод предназначен для начала процедуры возврата.

RefundOpen ([total, extId ]);

name type description
total decimal(10,4) (Опционально) Сумма возврата
(Опционально, если будут указаны возвращаемые позиции)
extId BSTR(40) (Опционально) Идентификатор чека в торговой системе
(При обработке чека в облаке будет связано с начальной покупкой)

Exceptions

Значение Описание
COMException Не обнаружена директория обмена

Пример

Возврат чека с итоговой суммой 300 рублей.

 GM.RefundOpen( 300 ); //Возврат суммы чека в 300 рублей
 GM.RefundClose(); // отправка данных              

Добавление позиции в возврат

В случае, если проводится неполный возврат чека (выделенные позиции).

RefundAddItem( name, count, total [, category, seller] );

Параметры.

name type description
name BSTR(200) Название товарной позиции
count decimal(10,4) Количество возвращаемых позиций
total decimal(10,4) Итоговая сумма возврата
category BSTR(200)
Категория возвращаемого товара (Опциональный параметр)
Можно передавать несколько категорий, разделяя их '&&'
seller BSTR(64)
Продавец возвращаемого товара (Опциональный параметр)

Пример

Возврат товарных позиций

GM.RefundOpen( 300.00,"12309283445" ); // Начинаем возврат
GM.RefundAddItem('Огурцы зелёные',3,295, "Овощи СТМ", "Иванов Иван Иванович"); // Регистрируем позицию возврата "Огурцы зелёные", количество 3, общая стоимость 295
GM.RefundClose();  // Закрываем возврат            

Закрытие возврата

Отправка данных в облако.

RefundClose()

Параметры отсутствуют


Установка даты-времени покупки/возврата

Данный метод нужен при отложенной выгрузке чеков/возвратов, чтобы сохранять исходную хронологию. Так же, в его присутствии можно выполнять повторную загрузку продажи (не возврата)

Установка даты-времени должна производиться между открытием и закрытием покупки или открытием и закрытием возврата.

Время должно быть преобразовано к UTC-0

SetDateTime(BSTR datetime);

Параметры

name type description
datetime BSTR (14) Строковый формат даты-времени (yyyyMMddHHmmss) (20160515120159) - UTC-0 время на машине момента регистрации события

Пример

Установка даты-времени покупки

GM.PurchaseOpen( 300.00,"Иванова И.И.");
GM.SetDateTime('20160515120159'); // Устанавливаем время 12:01:59 от 15-го мая 2016-го года
GM.PurchaseClose();              

Общая установка продавца

Данный метод используется для отдельной установки ФИО продавца (как для продажи, так и возврата)

SetCashier(BSTR cashier);

Параметры

name type description
cashier BSTR (64) ФИО продавца

Пример

Установка продавца в чек

GM.PurchaseOpen( 300.00 );
GM.SetCashier('Грозный Иван Васильевич'); 
GM.PurchaseClose();              

Device API

Последнее обновление: 24 Окт '16

API для Устройств предназначено для прямой интеграции Server-Server или Application-Server, с доступом к данным на уровне устройства и торговой точки, к которой прикреплено это устройство.
API поддерживает JRPC 2.0-протокол вызова методов.
Для работы небходимо знать ключ <authkey> "устройства" с которым можно обращаться по URI: https://api.giftoman.ru/s/<authkey>

Протокол обмена данными

Запрос представляет собой JSON-сериализованный объект отправляемый с помощью POST-метода в виде RAW_POST_DATA

                      {
                        "jsonrpc":"2.0",
                        "id": "[Свободно-генерируемый идентификатор запроса]"
                        "method": "[Название вызываемого метода]",
                        "params":  [объект или массив аргументов вызываемого метода]
                       }
                    }

Ответ так же является JSON-сериализованным объектом

                      {
                        "jsonrpc":"2.0",
                        "id":"[Идентификатор запроса на который дан ответ]"
                        "result":[Любой тип данных - объект, массив, значение]
                      }

или отрицательный

                      {
                        "jsonrpc":"2.0",
                        "id":"[Идентификатор запроса на который дан ответ]"
                        "error": {
                        "code":"[Код ошибки]",
                        "message":"[Человекочитаемое пояснение ошибки]"
                        }
                      }

Список ошибок

Код ошибки Пояснение
-32000 Неизвестный идентификатор сотрудника
-32500 Ошибка клиента
-32600 Неправильный формат запроса
-32601 Неправильная операция
-32602 Неправильные параметры операции
-32605 Операция не удалась
-32606 Слишком частое выполнение операции
-32610 Ошибка БД
-32700 Неправильный формат сообщения
-32800 Неизвестный терминал
-32801 Терминал заблокирован
-32802 Невалидный секретный ключ
-32803 Терминал с таким идентификатором уже существует
-33000 Неизвестный пользователь
-33001 Владелец POS не найден
-33100 Отказ в авторизации

Регистрация продажи/возврата

Запрос позволяет как оформить продажу, так и возврат

purchaseRegister( token, amount, cart [, poskey ] );

Параметры.

name type description
token string(32) Локальный идентификатор покупателя, если таковой отсутствует передавать 'guest'
amount decimal(10,4) Если >0, то сумма чека, если <0, то сумма возврата
cart object Объект расширяемых (опциональных) параметров чека:
- discount (decimal(10,4)) : Скидка по чеку
- ts ( ISO 8601 : YYYY-MM-DDThh:mm:ss±hh:mm) : Точное время чека. Необходимо обязательно передавать метку времени с корректным смещением ±hh от UTC, соответствующим временному поясу торговой точки.
- cashier (string(200)) : Имя продавца
- extId (string(40)): Идентификатор чека в ТС
- positions (array) : [ Товарные позиции в чеке {
-- name (string(200)) : Название товара
-- count (decimal(10,4)) : Кол-во товара
-- total (decimal(10,4)) : Общая сумма по позиции
-- seller (string(200)) : Продавец для конкретной позиции
-- category (string(200)) : Название категории товара (Можно передать несколько категорий в строке, разделяя '&&')
-- extId (string(40)) : Внешний идентификатор товара (Артикул)
},..
]
- attributes (array) : [ Массив свободных атрибутов чека (карты лояльности, платёжные системы и т.п.) {
-- name (string(10)) : Название атрибута (английские мнемоники),
-- value (decimal(10,4)) : Значение атрибута
},..
]
poskey (опциональный) string(130) Ключ маппинга к устройству или торговой точке.
Общий формат: @store_ext_id/cashbox_ext_id
-- store_ext_id - Внешний идентификатор торговой точки, передаваемый в методе setCashbox() в объекте location.store_ext_id
-- cashbox_ext_id - Внешний идентификатор устройства (кассы), передаваемый в методе setCashbox() в аргументе метода extid
-- Пример: @111/123

Пример

{
 "jsonrpc":"2.0",
 "id":"7241520367540836",
 "method":"purchaseRegister",
 "params": {
    "token": "guest@giftoman.ru",
    "amount":100,
    "cart": 
  	{
	   "discount":0,
	   "ts": "2018-03-14T16:39:51.000Z",
	   "cashier": "Марина Ивановна",
	   "extId": "bb802ad3-d268-4946-b80c-b963aaf66b21",
	   "positions": [
	      {
		   "name": "Пирожок с повидлом",
		   "count" : 10,
		   "total" : 100,
		   "seller": "Марина Ивановна",
		   "category": "Вкусное"
		  }
	   ]
     }
   }
 }
 

Успешный ответ

{
    "jsonrpc": "2.0",
    "id": "3061520885622532",
    "result": { 
      "amount" : Зарегистрированная сумма /* Decmial(10,4) */, 
      "id": Идентификатор чека /* Unsigned Int64 */, 
      "ts": Время регистрации /* Y-m-d H:i:sT.000Z ISO 8601 формат */
    }
}	

Пакетная регистрация продаж/возвратов

Запрос позволяет за раз загрузить пакет чеков (максимум = 100)

purchaseRegisterBatch( receipts );

Параметры.

name type description
receipts Array of Objects Объект массива:
- amount (decimal(10,4)) : Итоговая сумма по чеку (скидки вычтены)
- discount (decimal(10,4)) : Итоговая скидка по чеку
- ts ( ISO 8601: YYYY-MM-DDThh:mm:ss±hh:mm) : Точное время чека. Необходимо обязательно передавать метку времени с корректным смещением ±hh от UTC, соответствующим временному поясу торговой точки.
- cashier (string(200)) : Имя продавца
- extId (string(40)): Идентификатор чека в ТС
- positions (array) : [ Товарные позиции в чеке {
-- name (string(200)) : Название товара
-- count (decimal(10,4)) : Кол-во товара
-- total (decimal(10,4)) : Общая сумма по позиции
-- seller (string(200)) : Продавец для конкретной позиции
-- category (string(200)) : Название категории товара (Можно передать несколько категорий в строке, разделяя '&&')
},..
]
- attributes (array) : [ Массив свободных атрибутов чека (карты лояльности, платёжные системы и т.п.) {
-- name (string(10)) : Название атрибута (английские мнемоники),
-- value (decimal(10,4)) : Значение атрибута
},..
]
- poskey (string(130) Ключ маппинга к устройству или торговой точке.
-- Общий формат: @store_ext_id/cashbox_ext_id
--- store_ext_id - Внешний идентификатор торговой точки, передаваемый в методе setCashbox() в объекте location.store_ext_id
--- cashbox_ext_id - Внешний идентификатор устройства (кассы), передаваемый в методе setCashbox() в аргументе метода extid
-- Пример: @111/123

Пример

{
 "jsonrpc":"2.0",
 "id":"7241520367540836",
 "method":"purchaseRegisterBatch",
 "params": {
    "receipts": [
	  {
	   "amount":100,
	   "discount":0,
	   "ts": "2018-03-14T16:39:51.000Z",
	   "cashier": "Марина Ивановна",
	   "extId": "bb802ad3-d268-4946-b80c-b963aaf66b21",
	   "positions": [
	      {
		   "name": "Пирожок с повидлом",
		   "count" : 10,
		   "total" : 100,
		   "seller": "Марина Ивановна",
		   "category": "Вкусное"
		  }
	   ]
      },
	  {
	   "amount":250,
	   "discount":0,
	   "ts": "2018-03-14T16:55:01.000Z",
	   "cashier": "Илона Давыдовна",
	   "extId": "34c39902-5554-4be3-a3b2-042c3e2a6262",
	   "positions": [
	      {
		   "name": "Пирожок с повидлом",
		   "count" : 15,
		   "total" : 150,
		   "seller": "Илона Давыдовна",
		   "category": "Вкусное"
		  }
	   ]
      }
     ]
   }
 }

Успешный ответ

{
    "jsonrpc": "2.0",
    "id": "3061520885622532",
    "result": { 
       "count" : Кол-во зарегистрированных чеков /* Unsigned INT */
    }
}	

Ошибка обработки чека

{
    "jsonrpc": "2.0",
    "id": "3061520885622532",
    "error": { 
	  "message": "Текст ошибки",
	  "code" : "Код ошибки",
      "receipt": {
	   "amount":100,
	   "discount":0,
	   "ts": "2018-03-14T16:39:51.000Z",
	   "cashier": "Марина Ивановна",
	   "extId": "bb802ad3-d268-4946-b80c-b963aaf66b21",
	   "positions": [
	      {
		   "name": "Пирожок с повидлом",
		   "count" : 10,
		   "total" : 100,
		   "seller": "Марина Ивановна",
		   "category": "Вкусное"
		  }
	   ]
      }
    }
}	

Установка планового значения

С помощью этого запроса можно как установить, так и удалить плановое значение на нужный период.

Планы устанавливаются на ту Торговую точку, где зарегистрировано данное устройство.

planSet( metric, plan, year [, month, day, day_corr_plan ] );

Параметры.

name type description
metric string(40) Мнемоника, либо прямой идентификатор правила:
- income : Выручка
- average : Средний чек
- count : Кол-во продаж
- category : Выручка по СТМ
- complexity : Комлексность чека по кол-ву товаров
- p/<идентификатор показателя> - прямой идентификатор показателя
plan DECIMAL(13,4) Если >=0, то установка планового значения = plan, если <0, то удаление
year int Год
month (необязательный) int Месяц, если не указан или = -1, то выставляется план на год
day (необязательный) int День, если не указан или = -1, то выставляется план на месяц, иначе - на день
day_corr_plan (необязательный) DECIMAL(13,4) Коррекционное значение плана на день (если указан день)

Параметры ответа

result: { "addressId" : ИД торговой точки, "metric": Идентификатор показателя, "plan": Установленный план, "year": Год, "month" : Месяц, "day": День}

Публикация плана

После установки всех плановых значений на период необходимо вызвать метод публикации плана для актуализации значений

planPublish( auto );

Параметры.

name type description
auto boolean - true - Использовать сервисную аналитику распределения по периодам.
- false - Не использовать аналитику (равномерное распределение по нижним периодам)

Параметры ответа

result: { "addressId" : ИД торговой точки, "auto": Автоматическое распределение}

Получение отчётов по Торговой точке

Для получения планов по Торговой точке используется команда reports(id [,params])

reports(id [, params ] );

Параметры.

name type description
id string(20) - 'metrics' - Получение общего отчёта "Показатели"
- 'bysellers' - Получение отчёта "Продавцы"
- 'bytradepoints' - Получение отчёта "Рейтинг торговых точек"
params object { "filter": { } , "range" : [ { "type": <id периода>, "from": "Y-m-d H:i", "to":"Y-m-d H:i"},.. ]

Пример запроса metrics

{ 
    "id":"1251506945251332",
    "method":"reports",
    "params":{
        "id":"metrics",
        "params": { "range" : [{"type":"month","from":"2018-04-01", "to":"2018-04-31 23:59"},{"type":"day","from":"2018-04-17","to":"2018-04-17 23:59:59"}]}       
    },
   "jsonrpc":"2.0"
}

Пример ответа

{
    "jsonrpc": "2.0",
    "id": "1251506945251332",
    "result": {
        "data": {
            "month": { // Отчёт по запросу params.range.type == 'month'
                "metrics": { // Список метрик
                    "id": "3656",//string
                    "store_ext_id": "0",//string
                    "name": "Тюмень, 50 лет ВЛКСМ, 63 Шаурма",//string
                    "metrics": [
                        {
                            "id": "1437627895975735595", // Уникальный идентификатор метрики : string
                            "name": "Выручка", //Название правила : string
                            "order": 0, // Порядок сортировки, рекомендуемой настройками аккаунта : short
                            "type": 1, // Клиенсткий тип данных 1 = Числовой, 2 = денежный, 3 = процентный : short
                            "fact": 401628, // Фактическое значение : double
                            "plan": 19999.9980, // Плановое значение на конец дня : double
                            "planhour": 0, //План на текущий час : double
                            "predict": 0, // Прогноз на конец дя double
                            "qty": 2287.0000 //Кол-во продаж : float
                        },
                        {
                            "id": "1437627895975735596",
                            "name": "Средний чек",
                            "order": 1,
                            "type": 2,
                            "fact": 175.61,
                            "plan": 0,
                            "planhour": 0,
                            "predict": 0,
                            "qty": 2287.0000
                        },
                        {
                            "id": "1437627895975735664",
                            "name": "Наполняемость",
                            "order": 2,
                            "type": 3,
                            "fact": 2,
                            "plan": 0,
                            "planhour": 0,
                            "predict": 0,
                            "qty": 2269.0000
                        }
                    ]
                }
            },
            "day": { // Отчёт по запросу params.range.type == 'day'
                "metrics": {
                    "id": "3656",
                    "store_ext_id": "0",
                    "name": "Тюмень, 50 лет ВЛКСМ, 63 Шаурма",
                    "metrics": [
                        {
                            "id": "1437627895975735595",
                            "name": "Выручка",
                            "order": 0,
                            "type": 7,
                            "fact": 24672,
                            "plan": 19999.9980,
                            "planhour": 0,
                            "predict": 0,
                            "ratio": 1.2336,
                            "qty": 141.0000
                        },
                        {
                            "id": "1437627895975735596",
                            "name": "Средний чек",
                            "order": 1,
                            "type": 2,
                            "fact": 174.98,
                            "plan": 0,
                            "planhour": 0,
                            "predict": 0,
                            "ratio": 1,
                            "qty": 141.0000
                        },
                        {
                            "id": "1437627895975735664",
                            "name": "Наполняемость",
                            "order": 2,
                            "type": 3,
                            "fact": 2.32,
                            "plan": 0,
                            "planhour": 0,
                            "predict": 0,
                            "ratio": 1,
                            "qty": 140.0000
                        }
                    ]
                }
            }
        }
    }
}

Пример запроса bysellers

{ 
    "id":"1251506945251332",
    "method":"reports",
    "params":{
        "id":"bysellers",
        "params": { "range" : [{"type":"month","from":"2018-04-01", "to":"2018-04-31 23:59"},{"type":"day","from":"2018-04-17","to":"2018-04-17 23:59:59"}]}       
    },
   "jsonrpc":"2.0"
}

Пример ответа

{
    "jsonrpc": "2.0",
    "id": "1251506945251332",
    "result": {
        "data": {
            "month": {
                "bysellers": {
                    "common": [ // Суммарные (общие) показатели
                        {
                            "id": "1437627895975735595", // Идентификатор показателя : string
                            "idx": "1", // Связующий идентификатор показателя общей статистики и по продавцу : string
                            "order": 1, // Рекомендуемая аккаунтом сортировка : short
                            "label": "Выручка", // Название показателя : string
                            "type": 2, // Клиенсткий тип данных 1 = Числовой, 2 = денежный, 3 = процентный : short							
                            "fact": 1509878, // Общее фактическое значение : double
                            "plan": 1269999.847, // Общее плановое значение : double
                            "qty": 8604, // Кол-во продаж
                        },
                        {
                            "idx": "2",
                            "order": 2,
                            "label": "Средний чек",
                            "type": 2, 
                            "id": "1437627895975735596",
                            "fact": 175.48617001395,
                            "plan": 0,
                            "qty": 8604
                        },
                        {
                            "idx": "3",
                            "order": 3,
                            "label": "Наполняемость",
                            "type": 1, 
                            "id": "1437627895975735664",
                            "fact": 1.948460758605,
                            "plan": 0,
                            "qty": 8542
                        }
                    ],
                    "sellers": [ // Показатели по продавцам 
                        {
                            "name": "Конищева Мария Андреевна",
                            "id": "1514522702289725696",
                            "metrics": [
                                {
                                    "idx": "1",
                                    "order": 1,
                                    "label": "Выручка",
                                    "type": 2, 									
                                    "fact": 435286,
                                    "plan": 0,
                                    "qty": 3893
                                },
                                {
                                    "idx": "2",
                                    "order": 2,
                                    "label": "Средний чек",
                                    "type": 2, 									
                                    "fact": 180.6921384807,
                                    "plan": 0,
                                    "qty": 2409
                                },
                                {
                                    "idx": "3",
                                    "order": 3,
                                    "label": "Наполняемость",
                                    "type": 1, 									
                                    "fact": 2.03098048983,
                                    "plan": 0,
                                    "qty": 2409
                                }
                            ]
                        },
                        {
                            "name": "Поступинских Анна Владимировна",
                            "id": "1517977472394792448",
                            "metrics": [
                                {
                                    "idx": "1",
                                    "order": 1,
                                    "label": "Выручка",
                                    "fact": 320182,
                                    "plan": 0,
                                    "qty": 2785
                                },
                                {
                                    "idx": "2",
                                    "order": 2,
                                    "label": "Средний чек",
                                    "fact": 171.95656831364,
                                    "plan": 0,
                                    "qty": 1862
                                },
                                {
                                    "idx": "3",
                                    "order": 3,
                                    "label": "Наполняемость",
                                    "fact": 1.841699194415,
                                    "plan": 0,
                                    "qty": 1862
                                }
                            ]
                        }
                    ]
                }
            },
            "day": {
                "bysellers": {
                    "common": [
                        {
                            "idx": "1",
                            "order": 1,
                            "label": "Выручка",
                            "id": "1437627895975735595",
                            "fact": 24672,
                            "plan": 19999.998,
                            "qty": 141
                        },
                        {
                            "idx": "2",
                            "order": 2,
                            "label": "Средний чек",
                            "id": "1437627895975735596",
                            "fact": 174.9786,
                            "plan": 0,
                            "qty": 141
                        },
                        {
                            "idx": "3",
                            "order": 3,
                            "label": "Наполняемость",
                            "id": "1437627895975735664",
                            "fact": 2.3224,
                            "plan": 0,
                            "qty": 140
                        }
                    ],
                    "sellers": [
                        {
                            "name": "Конищева Мария Андреевна",
                            "id": "1514522702289725696",
                            "metrics": [
                                {
                                    "idx": "1",
                                    "order": 1,
                                    "label": "Выручка",
                                    "fact": 24704,
                                    "plan": 0,
                                    "qty": 255
                                },
                                {
                                    "idx": "2",
                                    "order": 2,
                                    "label": "Средний чек",
                                    "fact": 176.4569,
                                    "plan": 0,
                                    "qty": 140
                                },
                                {
                                    "idx": "3",
                                    "order": 3,
                                    "label": "Наполняемость",
                                    "fact": 2.3224,
                                    "plan": 0,
                                    "qty": 140
                                }
                            ]
                        }
                    ]
                }
            }
        }
    }
}

Management API

Management API предназначено для схем интеграции, когда есть необходимость обслуживать весь пул устройств с одного входа. С помощью Management API можно получать данные устройств всего аккаунта и изменять их состояния.
API поддерживает JRPC 2.0-протокол вызова методов по аналогии с Device API.
Для работы небходимо знать ключ <authkey> Административного устройства с которым можно обращаться по URI: https://api.giftoman.ru/m/<authkey>
Примечание Для работы с Management API нужно использовать ключ специального типа терминала: "Административный терминал".


Добавление устройства

Запрос позволяет зарегистрировать новое устройство на торговой точке и получить ключ устройства для дальнейшей работы с ним

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) - Цена позиции

Пример запроса priceupdate

{ 
	"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) ЧЧ:ММ): Конец перерыва ТТ
   },..
]

Пример запроса priceupdate

{ 
	"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: 
{ 
  "count" : 2 /*<Кол-во принятых позиций>*/ 
}

SDK для платформ

Последнее обновление: 17 Дек '15


Android SDK v0.1.0

Для мобильных устройств и кассовых на платформе Android. В пакет включены методы регистрации покупок в облаке, получения актуальных данных о выполнении KPI и Плановых показателей.

Скачать пакет можно здесь https://partner.giftoman.ru/files/android.sdk.v0.1.0.zip

Для работы необходим ключ доступа устройства, который вы можете получить в аккаунте.


Примеры интеграции с платформами

Последнее обновление: 15 Май '16


Интеграция с 1С 8.0+

Программа 1С в процедурах взаимодействия с торговым оборудованием передаёт информацию о своих операциях в кассовый модуль Гифтоман, установленный на этом же персональном компьютере. Данные передаются путем подключения внешней библиотеки (COM-сервера) и вызова её методов.
Для корректной интеграции система должна передавать данные ТОЛЬКО в местах её неотменяемой пользователем регистрации.

Для случая 1С 7.7 используется аналогичная схема интеграции, отличающаяся методом создания COM-объекта Драйвер_Гифтоман = CreateObject(“Giftoman.ChequeApi”); и другими названиями объектов документа чека

Подключение компоненты

Подключение компоненты может проводиться как в момент инициализации окружения 1С, так и непосредственно в цикле продажи. Мы рекомендуем организовать отдельную общую процедуру для того, чтобы облегчить работу в случае потери соединения с COM-сервером.

Процедура Подключить_Гифтоман() Экспорт
        
        Попытка
                        Драйвер_Гифтоман = Новый COMОбъект("Giftoman.ChequeApi");
                        ОбщегоНазначения.ЗапишемЛогДополнительный(ПараметрыСеанса.ТекущийПользователь, "ок");
                        Прервать;
        Исключение
                        ОписаниеОшибки1 = "Не зарегистрирована библиотека Гифтоман. Обратитесь в службу технической поддержки Гифтоман.";
                        ОписаниеОшибки2 = ОписаниеОшибки();
                        Сообщение = ОписаниеОшибки1 + Символы.ПС + ОписаниеОшибки2;
        КонецПопытки;

КонецПроцедуры

Обработчик регистрации продажи

При закрытии чека инициализировать необходимые переменные: Итоговую сумму, скидку, а так же определить момент возврата

ИтоговаяСуммаЧека = 0;
ИтоговаяСкидкаЧека = 0;
ИтоговаяСуммаЧека = ФР.Quantity * Товар.Итог("Сумма");
ИтоговаяСкидкаЧека = Товар.Итог("СкидкаСумма");

Если ВидОперации = Перечисления.ВидыОперацийЧекККМ.Продажа Или ВидОперации = Перечисления.ВидыОперацийЧекККМ.ПродажаСертификатов Или ВидОперации = Перечисления.ВидыОперацийЧекККМ.Депозит Тогда
   // Прямая продажа
Иначе
    // Подготовка данных для проведения "возврата"
    ИтоговаяСуммаЧека = - ИтоговаяСуммаЧека;
    ИтоговаяСкидкаЧека = - ИтоговаяСкидкаЧека;
КонецЕсли;

После вывода чека на печать шлём данные в модуль Гифтоман

Если ИтоговаяСуммаЧека Тогда // Только в случае ненулевого чека
    
    Подключить_Гифтоман();
    ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "Начало чека. Объект Гифтоман " + ?(Драйвер_Гифтоман <> Неопределено, "определен", "не определен") + ", сумма " + ИтоговаяСуммаЧека + ", скидка " + ИтоговаяСкидкаЧека + ", Опт " + Опт); // Лог
    Если Драйвер_Гифтоман <> Неопределено Тогда

         Попытка
               ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "Вызов PurchaseOpen");
               Драйвер_Гифтоман_Ответ = Драйвер_Гифтоман.PurchaseOpen(ИтоговаяСуммаЧека /* Сумма чека за вычетом скидки */,  "Розница" /* Продавец */);
               ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "ок"); // Лог

               Для Каждого СтрокаТовара Из Товар Цикл
                        НаименованиеПозиции = СтрокаТовара.Номенклатура.Код1С + "; " + СтрокаТовара.Номенклатура;
                        Драйвер_Гифтоман.PurchaseAddItem(НаименованиеПозиции, СтрокаТовара.Количество, СтрокаТовара.Сумма, "");
               КонецЦикла;

               ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "Вызов PurchaseClose"); // Лог
               Драйвер_Гифтоман.PurchaseClose(); // Закрытие чека и отправка данных в Гифтоман
               ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "ок"); // Лог
               Прервать;
         Исключение // Обработка в случае потери связи с COM-сервером
               Сообщение = ОписаниеОшибки();
               ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "Вызвано Исключение: " + Сообщение);
               Подключить_Гифтоман();
         КонецПопытки;
		 
    КонецЕсли;
    ОбщегоНазначения.ЗапишемЛогДополнительный(Кассир, "Конец чека."); // Лог
КонецЕсли;

Интеграция с IIKO

Для интеграции с IIKO достаточно установить готовый плагин под соответствующую версию IIKO. Плагин запускается автоматически при старте IIKO

Плагины

v3.5
v3.9
v4.2.1172
v4.2.+
v4.3+
v4.4+

Установка до версии iiko 4.3

Для установки на главную кассу скопируйте содержимое архива плагина в папку:

  • C:\Program Files\iikoRMS\Front.Net\Plugins\ - для Windows XP / POS Ready 2009
  • C:\Program Files (x86)\iikoRMS\Front.Net\Plugins\ - для Windows 7 / POS Ready 7 / 8

Установка начиная с версии iiko 4.3

Для установки на главную кассу скопируйте файл плагина Giftoman.IIKO.plugin.dll в папки (подпапку iikoWaiter необходимо создать вручную):

  • C:\Program Files\iikoRMS\Front.Net\Plugins\Giftoman - для Windows XP / POS Ready 2009
  • C:\Program Files (x86)\iikoRMS\Front.Net\Plugins\Giftoman - для Windows 7 / POS Ready 7 / 8

  • Действует правило: одна подпапка - один плагин.


    Интеграция с Frontol

    Интеграция с Frontol 4 производится через сценарий обработки продаж, настраиваемый в административной части Frontol

    Сценарии

    для v4
    для v5

    Установка для версии 4

    В экране "Скидки и сценарии" добавить сценарий для v4


    Далее открыть подменю “Скидки и сценарии” \ “Объекты” и добавить “Объект скидки”


    Указать в “Объекте скидки” созданный сценарий “Отправка данных в Гифтоман” и нажать ОК

    Конец документа.

    Методология

    Обновление 26 Дек '15


    Введение

    За основу примеров мы берём успешные внедрения в бизнесах различного уровня, построенных на активных продажах: розничная торговля, быстрое питание, рестораны, сфера услуг e.t.c.

    Наш инструмент является частью автоматизации бизнес-процессов предприятия и как всякая автоматизация направлен в первую очередь на уменьшение издержек и увеличение эффективности работы сотрудников

    Для Управляющего - это экономия времени, затрачиваемого на подготовку оперативных данных по продажам для внесения коррекций в процесс. Для Продавца - постоянный мотив к действию, без ожидания очередного сигнала со стороны Управляющего

    Основная идея: эффективное использование нашего инструмента как информационного канала внутри предприятия.

    Ценность канала будет тем выше, чем адекватней передаваемый сигнал управления (KPI), поэтому все примеры методов сводятся к выбору: какой именно показатель станет задачей и мотивацией для ваших сотрудников.

    Если в вашем бизнесе уже действует та или иная схема мотивации, скорее всего вы найдёте её в нашем списке и сможете использовать в качестве шаблона при настройке инструмента.

    Примечание
    Все описанные методологии носят рекомендательный характер. Это означает, что мы всецело приветствуем свободу интерпретаций и расширение методов под нужды каждого клиента.

    Общие положения

    Для всех вариантов KPI характерны три стимула: Социальный, Премиальный и Штрафной.

    Социальный стимул

    В этом случае большая часть воздействия лежит в разрезе отношений Сотрудника и Работодателя: выполнение планов сотрудником упрочняет его статус-кво и должно открывать принципиальные возможности.

    Такой вариант подходит предприятиям с низкой ротацией кадров и как следствие высокой их ценой.

    Одна из вариаций Социальной схемы - Соревновательная, в которой Продавцы напрямую соревнуются по показателям выполнения KPI. В совокупности с Премированием (например, премирование занявших три первых места в десятке), это может стать мощным стимулом повышения продуктивности работы.

    Премиальный стимул

    Премирование за выполнение KPI одна из самых распространённых и рабочих схем. Она же одна из самых неустойчивых перед человеческим фактором. Со стороны работодателя премия не должна быть эмоциональным фактором: только тщательный расчёт "делаешь больше - получаешь больше"

    Однако, со стороны исполнителя всё с точностью наоборот: слишком далёкий порог получения премии может легко демотивировать сотрудника.

    Поэтому зачастую эта схема подкрепляется Штрафной и может быть причиной высокой ротации кадров в компании.

    Штрафной стимул

    В независимом виде штрафы практически не встречаются и являются дополнением предыдущих стимулов. В большинстве случаев это правило 80%: штрафы накладываются только в случае, если не достигнуто 80% выполнения плана.

    В таком случае расчёт заработной платы происходит из заранее фиксированной суммы вознаграждения, остальная часть является "премиальной" и прогрессивно рассчитывается по факту выполнения планов.
    Как следствие, сильное невыполнение планов сотрудником приводит к заметной экономии на его заработной плате.

    Некоторые KPI поддерживают дополнительные возможности автоматизации: Автоматический прогноз, Автоматическая коррекция плана и Автоматическое планирование

    Автоматический прогноз

    Система составляет автоматический прогноз на основе актуальных данных о продажах, помогая тем самым Продавцу и Управляющему оценить ситуацию заранее и не расслабляться в неведении.
    Для большинства ситуаций подходит формула прогноза по средней скорости продаж:

    Прогноз выручки = Выручка за пройденное время работы + ( Выручка за пройденное время работы / Пройденное время работы ) * Оставшееся время работы

    Автоматическая коррекция плана

    Если торговая точка недовыполнила план "вчера", то на "сегодня" он будет автоматически скорректирован по формуле

    Коррекция на текущий день = Суммарное недовыполнение на текущий день / Количество оставшихся дней в календарном месяце.

    Система не превысит определённый лимит коррекции (по умолчанию это 20% от суммарной), чтобы сохранить достижимость и стимулироавть Продавца следовать заданной цели.

    Автоматическое планирование

    При включенном автоматическом планировании система регулярно анализирует поток регистрируемых продаж и при приближении к очередному периоду планирования автоматически ставит план на этот период.

    Мы учитываем несколько факторов в этом алгоритме :

    Фактор Значимость Описание
    Отраслевой Высокая Отрасль, которую вы указываете при регистрации аккаунта в нашей системе. Важный фактор, определяющий выбор общей стратегии планирования.
    Сезонный Высокая Зависит от Отраслевого, определяет общие колебания фактора выручки в календарном году
    Периодический Средняя Так же зависит от Отраслевого, определяет периоды колебаний внутри рабочих периодов (как правило - рабочие недели)
    Экономический Низкая Общий фактор, поквартально рассчитывающийся по индексам потребительской активности и индекса цен на недвижимость.
    Примечание
    Алгоритм не может полностью заместить человеческий фактор, поэтому результат его расчётов проходит через процедуру подтверждения и коррекции Управляющим торговой точки.

    KPI: Общая выручка Автоматический прогноз Автоматическая коррекция Автоматическое планирование

    Если ваше предприятие поддерживает общий план по выручке на торговую точку, то это самый простой KPI для настройки и дальнейшей работы в нашей системе.

    До продавцов ежемоментно доставляется информация о том, сколько заработала торговая точка за рабочий день и сколько нужно ещё заработать, чтобы достичь цели.

    В качестве основных KPI предлагается выделять План по выручке на день и План по выручке на месяц - это основа для оперативного понимания ситуации как со стороны Продавца, так и Управляющего.

    Применимость

    Подходит абсолютно всем предприятиям как самая простая постановка задачи. Лучший вариант для предприятий, работающих на активное привлечение покупателей.

    Расчёт плановых значений

    Расчёт плана по выручке является краеугольным камнем экономического анализа, в некоторых предприятиях включающий в себя сотни факторов. Поэтому здесь мы приводим общую идею расчёта этого KPI.

    План на следующий месяц = Среднемесячная выручка за 3 прошлых месяца * 110%

    Общая идея этой формулы - всегда ориентироваться на рост, сохраняя достижимую дистанцию до цели. В конкретных случаях конечно же нужно учитывать человеческий фактор, оптимизацию логистики и возможное повышение или понижение спроса на ваш продукт.


    KPI: Выручка в группе товаров Автоматический прогноз Автоматическая коррекция

    План выручки по целевым группам товаров, за выполнение которого Продавец как правило получает вознаграждение, является эффективным усилением мотивации Продавца: чем чётче сформулирована задача, тем очевидней результат её выполнения.

    Применимость

    Данный метод подходит для предприятий, которые

    • Активно адаптируются под потребности рынка
    • Имеют широкий ассортимент и разделение его на ходовой и вторичный
    • Имеют ответственность перед поставщиками определённых товаров
    • Регулярно проводят акции по целевым товарам

    Расчёт плановых значений

    Ключевая группа: когда необходимо удерживать определённый уровень продаж группы товаров:
    В этом случае Продавцам ставится задача продавать товары из указанной группы не меньше определённого порога по отношению к остальным

    План на следующий месяц = План по общей выручке * Доля %

    Драйвер роста: когда выделенная группа товаров косвенно усиливает продажи остальных товаров:
    В таком варианте идея расчёта этого KPI практически не отличается от плана общей выручки

    План на следующий месяц = Среднемесячная выручка по группе товаров за последние 3 месяца * 110%


    KPI: Количество проданных в группе товаров Автоматическое планирование

    Данный KPI является одним из наиболее понятных и достижимых для Продавца. Как правило, Продавец премируется за факт продажи конкретных товаров из выделенных групп. KPI может быть применён как для продажи ключевых товаров, так и сопутствующих.

    Применимость

    Данный метод подходит для

    • Ресторанов быстрого питания
    • Предприятий, решающих задачу продажи остатков
    • Тем, у кого Продавец имеет возможность длительного диалога с Покупателем для допродажи

    Расчёт плановых значений для ключевых товаров

    В случае, если KPI рассчитывается для ключевого товара - это как правило схема Честная сделка, в которой вознаграждение Продавца состоит из двух частей: фиксированной и премиальной.

    В таком случае рассчитывается порог премирования за день. Формульная основа:

    Порог премирования за день = Среднемесячное количество продаж товара за 3 месяца * 110% / 30

    Расчёт плановых значений для сопутствующих товаров

    Премирование за сопутствующие товары может происходить как с порогом премирования, так и без него, в зависимости от установленной Управляющим сложности продажи указанного товара


    Метод: переход с почасовой на сдельную оплату труда

    Есть ряд случаев, где на первое место выходит оптимизация оплаты труда: Честная сделка с Продавцом, когда вместо фиксированной оплаты труда предлагается смешанная схема фиксированная ставка + премиальная часть

    Применимость

    В первую очередь для

    • Предприятий быстрого питания
    • Ресторанного бизнеса
    • Предприятий с высокой ротацией кадров и низкой начальной мотивацией сотрудника

    Расчёты

    В общем случае рекомендуется брать фиксированную часть от 50% до 70% средней ставки. Далее идeт Сдельная часть и Премиальная часть.

    Сдельная часть = Средняя ставка - Фиксированная часть

    Сдельная часть рассчитывается по порогу достижения плана выбранного KPI

    Для KPI Общая выручка, Выручка в группе товаров

    Интервал сдельной части = [ 80% * Установленный план по KPI, 100% * Установленный план по KPI ]

    Для KPI Количество проданных в группе товаров

    Порог сдельной части на день = Среднемесячное количество продаваемых товаров за последние 3 мес * 110% / 30

    Тут же рассчитывается премия за проданную единицу товара не выше порога дневной сделки

    Премия за проданную единицу товара ниже порога дневной сделки = Сдельная часть / Среднемесячное кол-во продаваемых товаров за последние 3 мес

    При перевыполнении плановых значений назначается мотивирующая премия

    Премия выше порога дневной сделки = Премия за проданную единицу товара ниже порога дневной сделки * 150%


    Кассовый модуль

    Обновление 11 Фев '19


    Принцип работы

    Кассовый модуль является отдельным .NET приложением с рядом информационных интерфейсов, позволяющих продавцу или менеджеру в любой момент оценить состояние работы торговой точки.
    Для того, чтобы это было возможно кассовый модуль так же реализует механизм сохранения продаж в облаке.

    Минимальные требования для работы

    Параметр Значение
    Операционная система Windows XP (SP1-SP3, PosReady 2007, PosReady 2009), Windows 7, Windows 8
    CPU 1 Ghz ARM
    RAM 512MB
    .NET Framework 4.0
    Наличие доступа в Интернет на кассе Да (проксируемый или маршрут до шлюза)
    Дополнительно Административный доступ при установке приложения

    Версия для скачивания доступна по ссылке

    При правильной установке и настройке в левом верхнем углу появится значок при нажатии на который откроется интерфейс кассового модуля

    Элементы навигации

    При нажатии на иконку приложения Гифтоман на кассе открывается основной экран с KPI. В верхней части экрана - Панель навигации:


    1. Открытие сервисного экрана
    2. Открытие экрана KPI
    3. Открытие экрана персональных продаж сотрудников
    4. Открытие экрана рейтинга торговых точек
    5. Сворачивание экрана приложения Гифтоман обратно в иконку

    Сервисный экран

    На экране отображаются данные для связи с Службой технической поддержки Гифтоман и Инструкция по работе с приложением Гифтоман на кассе для сотрудников торговой точки.


    Экран KPI

    На экране отображаюсь ключевые плановы показатели (KPI) для торговой точки, которые согласованы Центральным офисом Торговой сети

    Информационная панель экрана KPI


    В верхней части экрана, ниже навигационной панели, отображены:

    1. время, на которое произведено последнее обновление данных на экране KPI
    2. Количество чеков в магазине на момент последнего обновления данных на экране KPI
    3. Иконка “Обновить” - кнопка, которую необходимо нажать, чтобы обновить данные на экране KPI. Обновление данных в приложении Гифтоман на кассе происходит автоматически при сворачивании экрана приложения.


    Карточка KPI


    1. Название KPI - формулировка названия планового показателя, которая используется в Торговой сети
    2. Плановый период расчета - для какого периода по времени рассчитывается KPI (может быть - дневной, недельный, месячный, годовой)
    3. Значение плана на период - цель продаж на конец периода. План продаж на месяц загружается в Гифтоман централизованно по согласованию с Центральным офисом Торговой сети. Дневные плановые показатели Гифтоман может рассчитывать автоматически на каждый торговый день с учетом результатов предыдущих дней и оставшегося плана на месяц.
    4. Шкала фактического выполнения плана - рассчитывается из данных по фактическим продажам из чеков на текущий момент. Может быть окрашена в красный или зеленый цвет. Красная шкала - фактические продажи ниже плана. Зеленая шкала - фактические продажи превышают плановое значение.
    5. Шкала прогнозного выполнения плана - может быть окрашена в красный или зеленый цвет. Красный прогноз - план не будет выполнен. Зеленый прогноз - план будет выполнен.
    6. Значение выполнения плана по прогнозу на конец периода - рассчитывается автоматически, обновляется после каждой продажи. Для некоторых показателей KPI прогнозное значение не может быть рассчитано (долевые показатели, средний чек, комплексность)
    7. Фактические продажи на текущий момент - рассчитывается из данных по фактическим продажам из чеков на текущий момент
    8. Разница между планом и фактом в рублях на текущий момент - вычисляемое значение разницы между планом на конец периода и фактическими продажами на текущий момент. Может быть окрашена в красный или зеленый цвет. Красное значение - фактические продажи ниже планового значения. Зеленый цвет - фактические продажи превышают плановое значение.


    Экран персональных продаж сотрудников

    На экране отображаются фактические показатели продаж сотрудников, информацию о которых Гифтоман получает из чеков.


    1. Текущая дата и время последнего обновления данных в рейтинге персональных продаж
    2. Порядковый номер строки с данными по сотруднику
    3. Индикатор периода, за который Гифтоман отображает персональные продажи сотрудников - “За день” и “За месяц”
    4. Название KPI - совпадает с названиями показателей с экрана KPI
    5. Строка с Общими показателями по торговой точке - агрегированные данные по каждому KPI по всем сотрудникам. Средние показатели считаются, как средние по торговой точке.
    6. Фактические продажи по сотруднику и процент вклада персональных продаж сотрудника в общий агрегированные результат по фактическим продажам по KPI
    7. Иконка “Обновить” - кнопку, которую нужно нажать, чтоб обновить данные по продажам в приложении Гифтоман.


    Экран рейтинга торговых точек

    На экране отображается рейтинг торговых точек внутри региона или сети по проценту выполнения планов продаж на период. Торговые точки сортируются по убыванию процента выполнения плана по KPI в первом столбце. Фактические продажи на экране не демонстрируются, все показатели выводятся на экран в процентах.


    1. Текущая дата и время последнего обновления данных в рейтинге торговых точек
    2. Порядковый номер строки с данными по торговой точке
    3. Индикатор периода, за который Гифтоман отображает рейтинг торговых точек
    4. Название KPI - совпадает с названиями показателей с экрана KPI
    5. Выделенная строка (синий фон) - место торговой точки в рейтинге

    Информационная панель экрана рейтинга магазинов


    В верхней части экрана, ниже навигационной панели, отображены:

    1. Дата расчета рейтинга торговых точек
    2. Иконка “Показать за месяц” - кнопка, при нажатии которой Гифтоман рассчитает и выведет на экран рейтинг торговых точек по выполнению планов продаж месяца
    3. Иконка “Предыдущий день” - кнопка, при нажатии которой Гифтоман рассчитает и выведет на экран рейтинг торговых точек за предыдущий день.
    4. Иконка “Обновить” - кнопка, при нажатии которой произойдет обновление данных на экране рейтинга торговых точек. Обновление данных в приложении Гифтоман на кассе происходит автоматически при сворачивании экрана приложения.


    Панель управления

    Обновление 12 Фев '19


    Главный экран Личного кабинета пользователя на сайте https://partner.giftoman.ru/login
    На экране отображается общая информация по выполнению всех KPI, настроенных в Гифтоман.


    1. Фильтр “Выбор периода” - используется для выбора периода для расчета показателей на Главной странице
    2. Фильтр “Зоны” - используется для выбора группы торговых точек для расчета показателе на Главной странице
    3. Фильтр “Все города” - используется для выбора города. Данные будут сгруппированы по всем торговым точкам, находящимся в выбранном городе.
    4. Фильтр “Все адреса” - используется для выбора конкретных торговых точек
    5. Фильтр “Все продавцы” - используется для выбора сотрудника. Чаще всего, используется Директорами торговых точек.
    6. Кнопка “Сбросить фильтры” - используется для возвращение фильтров в состояние “ничего не выбрано”
    7. Переключатель “аналитический вид” - переключение между интерфейсами отчетов на графиках “Динамика выполнения планов” и “График линейных показателей”
    8. Значок “Опции” - выгрузка данных с Главной страницы в .xls
    9. Панель “Меню” используется для выбора страницы в Личном кабинете для просмотра отчетов и статистики


    Фильтр “Выбор периода”


    1. Начальная дата выбранного периода
    2. Конечная дата выбранного периода
    3. Активация режима “сравнение периодов” - используется при необходимости сравнить два периода
    4. Меню “Преднастроенные периоды” - используется для быстрого выбора периодов - сегодня, текущий месяц, прошлый месяц, текущий год
    5. Переключатель между месяцами
    6. Синим фоном - выделение текущего выбранного периода
    7. Значок “синий круг” - выделение текущей даты


    Блок “Показатели KPI”


    1. Название KPI. Совпадает с названиями в Мобильном приложении и на Кассовом модуле
    2. Тикер “Галочка” для выбора KPI для добавления на график просмотра аналитических отчетов или линейного выполнения плана
    3. Селекторы “Красные треугольники” - определяют, какая часть блока KPI выбрана для просмотра процента выполнения плана.
    4. “Цветной блок KPI” - отображает процент выполнения плана и разницу в рублях между планом и фактом или планом и прогнозом. Зависит от выбора селектором “Красные треугольники”. Если селектор стоит на части “План-Фактное сравнение” - в цветном блоке отображаются данные по сравнению фактических продаж на момент просмотра и планового значения на момент просмотра. Если селектор стоит на части “Планово-Прогнозное сравнение” - в цветном блоке отображается сравнение прогнозного значения на конец выбранного периода и планового значения на конец выбранного периода.
    5. Значок “Переключение” - используется для переключения и выбора между “План-Фактным сравнением” (верхняя часть блока ниже цветной части) и “Планово-Прогнозным сравнением (нижняя часть блока)
    6. Сравнение План-Фактных показателей на текущий момент
    7. Сравнение План-Прогнозных показателей на конец периода
    8. Красный цвет - выполнение планов ниже 80%
    9. Желтый цвет - выполнение планов от 90 до 100%
    10. Зеленый цвет - выполнение планов выше 100%


    График “Аналитический вид”


    1. График “Динамика выполнения плана” - демонстрирует процент выполнения плана продаж каждый день. Сплошная линия - фактическое выполнение в процентах. Пунктирная линия - прогнозируемое выполнение.
    2. Зеленая граница на графике - граница выполнения плана 100%
    3. Желтая граница - граница выполнения плана 90%
    4. Красная граница - граница выполнения плана 80%


    График накопительного итога

    График демонстрирует накопительные результаты по выполнению плана продаж каждый день - запланированные результаты, фактические продажи и разница между плановыми показателями и реализацией планов. План на день суммируется каждый день и график показывает накопительную запланированную сумму - крупная пунктирная линия. Фактические продажи также суммируются и выводятся на график - сплошная зеленая линия. Прогнозные суммарные значения также суммируются и выводятся на график - мелкий пунктир.


    Статистика по торговым точкам

    График демонстрирует фактическое выполнение плана продаж в процентах по торговым точкам. График используется для сравнения результатов работы схожих торговых точек.


    1. Фильтр “Метрика” - используется для выбора KPI для построение графика и демонстрации показателей в блоках KPI по торговым точкам
    2. Фильтр “Сортировать по” - используется для сортировки торговых точек в блоках KPI по возрастанию (от минимального процента выполнения плана) или по убыванию (от максимального процента выполнения плана)
    3. Скролл-панель для проматывания списка торговых точек влево и вправо
    4. Сплошная линия на графике - фактическое выполнение плана в процентах
    5. Пунктирная линия на графике - прогнозное значение выполнения плана в процентах
    6. Зеленая шкала на графике - граница выполнения плана 100%
    7. Желтая шкала - граница выполнения плана 90%
    8. Красная шкала - граница выполнения плана 80%


    Информация по сети

    Информация по сети - агрегационный отчет по фактическому выполнению планов на текущий момент и по прогнозу на конец месяца для каждого уровня иерархии управления - регионы, группы торговых точек, торговые точки, сотрудники.


    1. Фильтр “Выбор периода” - используется для выбора периода для расчета таблицы “Информация по сети”.
    2. Фильтр “Метрика” - используется для выбора KPI для расчета и демонстрации таблицы “Информация по сети”
    3. Зоны иерархии управления - демонстрируют уровни агрегации данных по продажам “сверху вниз” - от Регионов до Сотрудников в магазине. Название каждой строки кликабельно. При нажатии на названии строки происходит переход “на уровень ниже” в иерархии агрегации данных.
    4. Текущая выбранная дата. Четыре столбца ниже текущей даты - плановые и фактические показатели на текущую дату.
    5. Дата конца месяца. Четыре столбца ниже даты окончания месяца - плановые и прогнозные значения на конец месяца.
    6. Название каждого столбца кликабельно. При нажатии на название столбца происходит перерасчет таблицы по выбранному столбцы “по возрастанию” и, при повторном нажатии, “по убыванию”.


    График линейных показателей

    График демонстрирует при использовании переключателя “аналитический вид”. График показывает фактическое выполнение планов продаж каждый день. При наведении курсора на точку на графики - будет показано значение за день на графике.


    1. Шкала значений
    2. Шкала дат в выбранном периоде. При выборе “за сегодня” - шкала отображает часы в течение дня
    3. Сплошная линия - сумма (значение) фактических продаж за каждый день
    4. Крупный пунктир - плановое значение на каждый день
    5. Мелкий пунктир - прогнозное значение на каждый день
    6. Линия, определяющая последний день недели - воскресенье.


    Рейтинг “По прогнозу”

    Страница “Рейтинг: По прогнозу” открывается через левое меню навигации на черной панели в левой части страницы. Рейтинг по прогнозу - распределение торговых точек, группы магазинов и регионов в формате рейтинга по прогнозируемому значению выполнения планов.


    1. Фильтр “Выбор группировки” - все региональные менеджеры, все зональные менеджеры, все директора магазинов, свои зональные менеджеры, свои директора магазинов. Наполнение фильтра зависит от уровня доступа сотрудника к данным в Гифтоман.
    2. Фильтр “Выбор периода” - используется для выбора периода для расчета рейтинга по прогнозу.
    3. Название таблицы рейтинга. В названии отражен период, за который рассчитан рейтинг и выводятся показатели плановых и прогнозных значений.
    4. Название столбца с KPI совпадает с показателями KPI на Панели управления и в Мобильном приложении Гифтоман. При нажатии на название столбца - рейтинг будет пересчитан по выбранному показателю “По возрастанию” или “По убванию”.
    5. Скролл-панель для проматывания таблицы с рейтингом по прогнозу влево и вправо
    6. Зеленая цвет ячейки - выполнение плана по прогнозу выше 100%
    7. Желтый цвет ячейки - выполнение плана по прогнозу от 90% до 100%
    8. Красный цвет ячейки - выполнение плана по прогнозу ниже 90%


    Рейтинг “План-Факт”

    Страница “Рейтинг: План-Факт” открывается через левое меню навигации на черной панели в левой части страницы. Рейтинг план-факт - распределение торговых точек, группы магазинов и регионов в формате рейтинга по фактическому проценту выполнения планов продаж.


    1. Фильтр “Выбор группировки” - все региональные менеджеры, все зональные менеджеры, все директора магазинов, свои зональные менеджеры, свои директора магазинов. Наполнение фильтра зависит от уровня доступа сотрудника к данным в Гифтоман.
    2. Фильтр “Выбор периода” - используется для выбора периода для расчета рейтинга по плановым и фактическим значениям
    3. Название таблицы рейтинга. В названии отражен период, за который рассчитан рейтинг и выводятся показатели плановых и фактических значений
    4. Название столбца с KPI совпадает с показателями KPI на Панели управления и в Мобильном приложении Гифтоман. При нажатии на название столбца - рейтинг будет пересчитан по выбранному показателю.
    5. Скролл-панель для проматывания таблицы с рейтингом влево и вправо
    6. Зеленая цвет ячейки - выполнение плана по прогнозу выше 100%
    7. Желтый цвет ячейки - выполнение плана по прогнозу от 90% до 100%
    8. Красный цвет ячейки - выполнение плана по прогнозу ниже 90%


    Рейтинг “Персональные продажи Продавцов”

    Рейтинг “Персональные продажи продавцов” находится на странице “Рейтинг: План-Факт” ниже таблицы.


    1. Выбор адреса торговой точки для просмотра рейтинга персональных продаж продавцов по конкретному адресу
    2. Название таблицы рейтинга. В названии отражен период, за который рассчитан рейтинг и выводятся показатели фактических продаж
    3. ФИО продавцов, продажи которых отражены в рейтинге
    4. Переключение между страницами рейтинга
    5. В таблице рейтинга демонстрируются фактические данные по продажам. Персональных планов в системе Гифтоман нет.
    6. Название столбца - название показателя KPI. Совпадает с названиями KPI на Панели управления и в Мобильном приложении. По умолчанию, продажи отсортированы по убыванию. При клике на название столбца - таблица рейтинга пересчитается по выбранному показателю. При повторном клике таблица пересчитается от по возрастанию.


    Календарь планов

    Календарь планов - интерфейс для контроля и настройки плановых показателей в Гифтоман. Календарь планов открывается через левое меню навигации на черной панели в левой части страницы.


    1. Фильтр “Зоны” - используется для выбора группы торговых точек для фильтрации торговых точек в календаре планов
    2. Фильтр “Все города” - используется для выбора города для фильтрации торговых точек в выбранном городе
    3. Фильтр “Адрес” - выбор адреса конкретной торговой точки для настройки планов в календаре
    4. Галочки План, Факт, Прогноз - добавление колонок с соответствующими названиями в таблицу Календаря. Установка или снятие галочки добавляют или убирают столбцы в таблицу.
    5. Фильтр “Показывать дни” - выбор дня недели для демонстрации в таблице Календаря
    6. Галочка “Автоматический расчет” - аналитический расчет дневных планов продаж с учетом индивидуальных профилей для каждого дня недели
    7. Кнопка “Опубликовать планы” - используется после завершения настройки всех плановых показателей для отправки их на все приложения Гифтоман для конечных пользователей
    8. Иконка “Замок” - ячейка, отмеченная “замком”, была изменена пользователем вручную, т.к. планы в данной ячейке были загружены конкретным пользователем. История изменений находится ниже таблицы календаря.
    9. Переключение в режим просмотра “по месяцам” - используется при необходимости просмотреть данные за год по каждому месяцу.
    10. История - журнал всех изменений, вносимых пользователями в планы в календаре
    11. Помощь - подсказка о работе с календарем и использовании горячих клавиш
    12. Опции - выгрузка данных из Календаря планов в .xls


    Мобильное приложение

    Обновление 12 Фев '19


    Приложение Гифтоман реализовано на платформах Android и iOS.
    Для входа в мобильное приложение необходимы логин и пароль. Данные для входа в Мобильное приложение совпадают с данными для входа в Личный кабинет.


    1. Иконка “Меню” - переход на другие страницы приложения: Рейтинги, Персональные продажи, Выполнение планов, Задачи
    2. Страница “Все точки” - или главная страница. Демонстрирует агрегированные данные по всем торговым точкам, к которым пользователь имеет доступ. В случае, если пользователь отвечает за работу только одной торговой точки - данная страница будет основной.
    3. Переключение между вкладками приложения для просмотра конкретных торговых точек, групп магазинов, регионов происходит через слайд влево или вправо. Переключение также доступно при клике на название вкладки.
    4. Иконка “Выпадающий список” - используется для выбора конкретной торговой точки внутри вкладки с регионом или группой торговых точек
    5. Кнопка “Обновить” используется для обновления данных в приложении в ручном режиме.
    6. Блок KPI - при нажатии на каждый блок происходит переход на подробную статистику персональных продаж сотрудников по KPI и на график “План, Факт, Прогноз”
    7. Фильтр “Выбор периода” используется для выбора нужного периода или даты для просмотра данных по выполнению KPI в мобильном приложении


    Информация по сети

    1. Название KPI. Совпадает с названиями KPI в Панели управления в Личном кабинете
    2. Плановое значение на конец выбранного периода.
    3. Фактическое значение на текущий момент
    4. Дельта - разница между плановым значением на конец периода и фактическим выполнением на текущий момент
    5. Прогнозное значение на конец периода. Красный шрифт в прогнозе - прогноз отрицательный, ниже плана. Зеленый шрифт в прогнозе - прогноз выше плана, план будет выполнен.
    6. Шкала прогресса - фактическое выполнение плана на текущий момент
    7. Шкала прогноза - прогнозное значение на конец периода