COM - ИНТЕРФЕЙС
Интеграция возможна на платформах MS Windows (Начиная с XP и выше)
Для начала интеграции достаточно скачать дистрибутив и установить его на кассу или станцию разработки.
Поддержка интеграции для POS-систем
POS-системыСсылки на файлы/документацию
IIKOОписание интеграции с IIKO
FRONTOLОписание интеграции с Frontol
ДругиеОписание тех.задание

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

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

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

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

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

PurchaseOpen ( [ total, cashier ]);
Параметры:
NAMETYPEDESCRIPTION
totaldecimal(10,4) (Опционально)Итоговая сумма чека (за вычетом скидки) (Опционально, если нужен расчёт суммы по PurchaseAddItem())
cashierBSTR(60) (Опционально)ФИО Кассира/Продавца (на чек). Доп.в фигурных скобках, можно указать идентификатор кассира
Exceptions
ЗНАЧЕНИЕОПИСАНИЕ
COMExceptionНе обнаружена директория обмена
Пример
Открытие чека с итоговой суммой 300 рублей .Кассир "Иванова И.И."

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

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

PurchaseAddItem( name, count, total, [, category, seller, extId] );
Параметры:
NAMETYPEDESCRIPTION
nameBSTR(200)Название товарной позиции
countdecimal(10,4)Количество
totaldecimal(10,4)Итоговая сумма (за вычетом скидки) по товарной позиции (priceDiscounted * count)
categoryBSTR(200)(Опционально)Категория/доп.метка товара. Можно передавать несколько категорий, разделяя их '&&'
sellerBSTR(64) (Опционально)Строка имени продавца по позиции (по умолчанию продавец берётся из PurchaseOpen())
extIdBSTR(48) (Опционально)Внешний идентификатор товара (из номенклатуры ТС)
Пример
Добавление товарных позиций

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

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

PurchaseAddAttr(name, value);
Параметры:
NAMETYPEDESCRIPTION
nameBSTR(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.
valueBSTR(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])
Параметры:
NAMETYPEDESCRIPTION
extIdBSTR (40)Внешний идентификатора чека (уникальный для торговой точки).

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

RefundOpen ([total, extId ]);
Параметры:
NAMETYPEDESCRIPTION
totaldecimal(10,4) (Опционально)Сумма возврата (Опционально, если будут указаны возвращаемые позиции)
extIdBSTR(40) (Опционально)Внешний идентификатора чека (уникальный для торговой точки). При обработке чека в облаке будет связано с начальной покупкой.
Exceptions
ЗНАЧЕНИЕОПИСАНИЕ
COMExceptionНе обнаружена директория обмена
Пример
Возврат чека с итоговой суммой 300 рублей.

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

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

RefundAddItem( name, count, total [, category, seller] );
Параметры:
NAMETYPEDESCRIPTION
nameBSTR(200)Название товарной позиции
countdecimal(10,4)Количество возвращаемых позиций
totaldecimal(10,4)Итоговая сумма возврата
categoryBSTR(200)Категория/доп.метка возвращаемого товара. Можно передавать несколько категорий/дом.меток, разделяя их '&&'
sellerBSTR(64)ФИО продавца возвращаемого товара
Пример
Возврат товарных позиций

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

Закрытие возврата
Отправка данных в облако

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

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

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

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

SetDateTime(BSTR datetime);
Параметры:
NAMETYPEDESCRIPTION
datetimeBSTR(14)Строковый формат даты-времени (yyyyMMddHHmmss) (20160515120159) - UTC-0 время на машине момента регистрации события
Пример
Установка даты-времени покупки

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

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

SetCashier(BSTR cashier);
Параметры:
NAMETYPEDESCRIPTION
cashierBSTR (64)ФИО продавца
Пример
Установка продавца в чек

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