В последние два десятилетия на рынке наблюдается рост продаж новых и пока ещё не очень привычных для нас систем — касс самообслуживания (self-checkout).Они представляют собой электронно-механические устройства, предназначенные для самостоятельного расчета и оплаты товара[1].

Преимущества таких касс относительно классических заключаются в следующем:

1) возможность сократить штат сотрудников за счет организации автоматизированного процесса, что позволит сократить ежемесячные затраты компании;

2) обеспечение чувства защищённости у покупателя за счет того, что все действия он выполняет сам, и покупатель будет уверен, что его не обсчитали;

3) эффективное использование торговой площади, т.к. на месте одной стандартной кассы можно установить от 4 до 6 касс самообслуживания;

4) за счет увеличения количества касс на той же торговой площади, увеличится пропускная способность магазина, и уменьшатся очереди;

Не смотря на то, что стоимость касс самообслуживания в несколько раз выше, окупаемость данного оборудования составляет всего 1-2 года[2]. Но, даже беря в расчёт долгосрочную перспективу, не все организации могут позволить себе переоборудование кассами типа self-checkout. На рынке почти все кассы данного типа представлены зарубежными компаниями-гигантами. И в среднем цена одной такой кассы составляет 0,5 млн. рублей. Если разработать программное обеспечение и собрать кассу самообслуживания «с нуля», то это позволит весьма ощутимо снизить стоимость, что даёт шанс составить серьезную конкуренцию зарубежной продукции.

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

Современная касса самообслуживания состоит из следующих элементов:

1) сенсорного монитора,

2) сканера штрих-кодов,

3) электронных весов,

4) купюроприемника,

5) диспансера купюр,

6) пин-пада, благодаря которому возможно расплатиться за покупку банковской карточкой,

7) карт-ридера,

8) веб-камеры,

9) принтера чеков или же фискального регистратора,

10) монетоприемника,

11) лотка для выдачи сдачи,

12) стола для упаковки товара[3].

Для того чтобы совершить покупку клиенту необходимо совершить следующие действия:

1. Отсканировать товар;

2. Положить товар в пакет, размещённый заранее на весовой платформе (если вес товара будет совпадать, то система его пропустит);

3. Оплатить товар наличными средствами или картами;

4. В случае наличной оплаты при необходимости получить сдачу;

5. Получить чек.

Рассмотрим каждый из этих пунктов более подробно, а именно, как было реализовано взаимодействие данных между модулями кассы самообслуживания.

При сканировании штрих-кода полученная последовательность символов сравнивается с имеющимися строками в базе данных (БД). Штрих-коды хранятся в таблице «BARCODE» (в качестве первичного ключа выступает непосредственно штрих-код). Если запись найдена, то подтягиваются данные («карточка») товара из других таблиц, фотография товара и др. Если же штрих-код не найден, то в пользовательском интерфейсе появится сообщение о необходимости повторного сканирования товара.

Обмен данными сканеров и ПК через RS-232 достаточно прост, и большинство производителей выпускают сканеры c одинаковым протоколом. Сканер по одному байту передает данные до тех пор, пока не поступит символ (байт) перевода строки 13 DEC (CR). Основное отличие сканеров состоит в настроечных параметрах соединения. Такпараметры сканера VMC BurstScan V представлены в таблице 1 [4]:

Таблица 1

Параметры соединения сканера VMC BurstScan V


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

Сравнение веса происходит следующим образом. Все веса «статических» товаров (вес товара постоянный, например банка кофе определенного производителя) и «динамических» (вес товара может иметь разный вес, например, взвешенные лимоны в торговом зале) имеют соответствующие флаги в таблице «WEIGHT» БД.

Если товар невесовой, то значение текущего веса сравнивается со значением из БД для соответствующего товара.

Для весового товара обработка правильности веса немного иная. Такие товары кодируются в соответствии со стандартом EuropeanArticleNumber— 13 (EAN-13)[5]. Структура кода следующая:

• первая цифра 2, означает, что это весовой штрих-код;

• следующие 6 цифр — это артикул (внутренний код), присвоенный продукции,

• следующие 2 цифры — это вес данной продукции в килограммах;

• следующие 3 цифры — это вес данной продукции в граммах;

• последняя 13-я цифра — контрольное число [6].

В случае если веса равны (плюс/минус погрешность), то вес суммируется с предыдущим и, в дальнейшем, сравнение веса осуществляется следующим образом:

ABS(<Значение весов>)>=(<Суммарный вес>+<Правильный вес>) — <Погрешность>,

ABS(<Значение весов>)<=(<Суммарный вес>+<Правильный вес>) +<Погрешность>,

где <Суммарный вес> — запомненное значение прошлого взвешиванию.

Если 2 условия выполняются, то вес корректный.

Обмен данными весов и ПК через RS-232 на примере CAS AD имеет следующий вид. Компьютер посылает управляющий байт ENQ (05 HEX). Весы отвечают байтом ACK (06 HEX). Компьютер посылает запрос DC1. Весы передают данные в формате представленном на рисунке 1:


Рисунок 1- Формат данных, передаваемый весами

STA — признак стабильности веса. Если вес стабилен — значение «S», если нестабилен — «U». SIGN — знак веса: отрицательный вес: «-», нулевой или положительный вес: " «, перегрузка: «F». От W5 до W0 — значение веса, при перегрузке весов — значения «F». UN1 и UN0 — единица измерения kg или lb. BCC — контрольный байт.

После того как покупатель примет решение о завершении покупать товары, то он перейдет на страницу (форму) выбора оплаты. На этом этапе клиенту запрещено сканировать товар или взвешивать его.

Протоколы обменов у большинства поставщиков POS-терминалов разные. Как правило, они поставляют драйвера. Так, например, для подключения терминала от Сбербанка VerifoneVX-820 на ОС Windows необходимо установить соответствующий драйвер, в диспетчере устройств найти порт, на который был установлен терминал и при необходимости в ПО поменять параметры порта (число БОД, четность и т.д.). Для управления POS-терминалом необходимо знать коды, который получает и возвращает пинпад. Так, код 403 означает, что ПИН-код, введенный на терминале является неверным [7].

Последним этапом работы с покупателем является печать чека. С точки зрения технической реализации этот этап достаточно прост. Большинство языков программирования умеют печатать документы. Печать чеков практически ничем не отличается, здесь необходимо найти принтер, который поддерживает печать бумаги небольшой ширины. К ним относятся, например, принтер TSC[8].

В качестве элемента печати выступает HTML-блок (страница). В качестве параметров на HTML-страницу передается код чека, шапка (адрес, ИНН магазина и др.), список приобретенных товаров, общая стоимость, а также дополнительная информация (купоны, скидки и др.). После этого чек «закрывается» в БД.

Библиографический список

  1. Будущее за кассами самообслуживания — преимущества селф-чекаутов и сферы применения [Электронный ресурс]. — URL: http://kassa-spb.ru/blog/budushchee-za-kassami-samoobsluzhivaniya---preimushchestva-self-chekautov-i... — Дата обращения 05.04.2020.
  2. Кассы самообслуживанияприменения [Электронный ресурс]. — URL: https://shtrih-m-spb.ru/articles/kassy-samoobsluzhivaniya/- Дата обращения05.04.2020.
  3. Будущее за кассами самообслуживания — преимущества селф-чекаутов и сферы применения [Электронный ресурс]. — URL: http://kassa-spb.ru/blog/budushchee-za-kassami-samoobsluzhivaniya---preimushchestva-self-chekautov-i... — Дата обращения 07.04.2020.
  4. Ручные сканеры штрих-кодовBurstScanLitev2 и BurstScanV: Инструкция по эксплуатации / ООО «Видящие машины», 2019. — 19 с.
  5. EuropeanArticleNumber [Электронный ресурс]. — URL: https://amp.dev.google-info.org/592474/1/european-article-number.html — Дата обращения 22.05.2020.
  6. Маркирование весовой продукции — Информация [Электронный ресурс]. — URL: https://ean-13.ru/shtrihkodirovanie_ean-13_code_vesovaya_produktsiya.html- Дата обращения 22.05.2020.
  7. Установка связки терминала оплаты банковской картой (Сбербанк) и программы «Абонемент» — Коды ошибок UPOS (универсального ПО POS-терминалов Сбербанка России) с расшифровками. [Электронный ресурс]. — URL: https://support.ucs.ru/ru/node/9027 — Дата обращения 23.05.2020.
  8. TSC- Alpha-3R. [Электронный ресурс]. — URL: https://www.tscprinters.com/EN/Product/Series/Mobile_Barcode_Printers/Alpha-3R — Дата обращения 23.05.2020.