Модули и интеграции

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


Интеграция с Опенкарт

Модуль для складской программы позволяет получать новые заказы из магазина, обновлять в магазине статус выполненных заказов, добавлять в магазин новые товары, а также обновлять со склада количество и цены товаров. Для работы необходимо установить дополнение для Опенкарт. Дополнение расширяет стандартное API и может использоваться для интеграции с другими складскими программами. Дополнение к ИМ размещено на GitHub, там же описание и руководство по установке.
Для автоматической синхронизации (обновление цен, количества и импорт заказов) в корне проекта есть скрипт cron_updateoc.php, который можно добавить в системный планировщик (cron или task sheduler). Также его можно вызвать по адресу https://<адрес сайта>/cron_updateoc.php. В начале скрипта устанавливается имя статуса, с которым импортируются заказы.

В Модуле-> Опенкарт-> Настройки нужно указать адрес ИМ, а также аккаунт API, который создается в административной панели Опенкарт.

На странице Модули-> Опенкарт-> Заказы в складской системе выбираем статус заказов ИМ, которые считаются новыми, и загружаем список из магазина. Затем импортируем в складскую программу. На каждую запись создается документ Заказа. На этой странице можно обновить статусы заказов в ИМ после их обработки.

На странице Модули-> Опенкарт-> Товары можно экспортировать новые товары со склада в магазин, а также импортировать из магазина, если товар там оказался ранее. Соответствие товаров обеспечивается по артикулу. Также можно в любой момент восстановить в магазине цены и количество в соответствии со складом.

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

Модуль по функциональности аналогичен модулю интеграции с Опенкарт.

В Модуле-> WooCommerce-> Настройки нужно указать адрес ИМ, а также ключи, которые создаются в административной панели магазина.

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

Модуль по функциональности аналогичен модулю интеграции с Опенкарт.

В Модули-> PromUA-> Настройки нужно указать адрес ИМ, а также ключ, который создается в административной панели магазина.

Iнтеграція з Хорошоп

Модули по функциональности аналогичен модулю интеграции с Опенкарт.

У Модуле->Хорошоп-> Настройки нужно указать адрес сайта, логин и пароль (из списка админов в настройках сайта хорошопа)

Онлайн каталог

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

Выставить каталог домашней страницей можно в настройках модуля. Перейти в админку можно по адресу http://<адрес сайта>/store. На основе заказов магазина автоматически создаются заказы в журнале заказов.
Для настройки магазина необходимо выбрать склад и указать его в настройках модуля интернет-магазина. После этого товары будут доступны для редактирования в каталоге в модуле магазина. Для отображения в каталоге в справочнике ТМЦ должен быть тип Товар и указана категория.
Дизайн по умолчанию - на Twitter Bootstrap.

База знаний

Органайзер для хранения неструктурированных данных в иерархическом виде. По сути встроенный проект Zippy Note. Так как пользователи являются пользователями одной корпоративной системы, добавлена возможность совместного просмотра и редактирования топиков.

Проекты и задачи

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

Модуль фискализации РРО (Украина)

Модуль предназначен для автоматической отправки чеков и z-отчетов в налоговую.
Для работы модуля также необходимо ввести регистрационные данные РРО из личного кабинета в налоговой. В справочнике компаний ввести название компании, ЕДРПОУ и ИНН (для плательщиков НДС) и настроить работу с приватным ключом и сертификатом. Также необходимо указать название и адрес торговой точки, фискальные и локальные номера в справочнике POS терминалов. В случае использования стороннего ключа (например, ключа ПриватБанка) необходимо зарегистрировать в личном кабинете налоговой идентификатор ключа, загруженного в программу.
Работа с фискализированными чеками ведется, в основном, в АРМ кассира. Перед началом работы необходимо открыть смену для данного POS терминала. После окончания работы по клику "закрытие смены" автоматически формируется z-отчет и закрывается смена.
Также фискализация при выборе соответствующего POS терминала, на котором открыта смена, происходит при внесении оплаты в журнале оплат и в накладной на возврат.
Данные из налоговой (РРО, смены и отправленные документы) можно просмотреть на странице в модуле фискализации.

В качестве библиотеки используется проект ppolib. Дополнительное ПО при этом не требуется, но библиотека работает довольно медленно. В частности, загрузка ключа занимает до минуты и может не выполниться на медленных серверах, поэтому желательно установить тайм-аут работы в несколько раз больше, чем стандартные 30 сек, или использовать внешний сервер.
Загрузка (проверка) ключей и сертификатов выполняется в справочнике компаний.

Интеграция с Новой Почтой

Модуль предоставляет возможность создавать отправки через Api Новой Почты и отслеживать их статус.
Перед началом использования в настройках модуля необходимо добавить ключ доступа и данные отправителя по умолчанию. Декларация НП создается в журнале Продаж при выборе в списке нужной ТТН в статусе Готово к отправке.
Просмотр и управление декларациями на стороне НП осуществляется со специальной страницы в модуле.
Перед началом работы в настройках модуля необходимо обновить локальные справочники городов и отделений.

Для ускорения работы справочники городов и отделений предварительно скачиваются и периодически обновляются нажатием кнопки Обновить на странице настроек модуля. Файлы скачиваются в папку uploads (с правом записи) в корне сайта.

Подключение и использование принтеров

Программа может использовать два типа принтеров - широкий (A4) и узкий (чековый). Широкий принтер предназначен для вывода печатных форм первичных документов (накладных и др.). Подключается как обычный системный принтер и не требует настроек в программе.
Узкий принтер предназначен для печати чеков, квитанций, ценников и этикеток. Может быть подключен как системный или как принтер ESC/POS через дополнительное программное обеспечение (печатный сервер). Тип подключения задается в профиле пользователя.
Для узкого принтера создаются отдельные шаблоны печатных форм в папке templates/printform (с префиксом _ps), структура которых зависит от типа подключения. Если принтер подключен как системный, его формы содержат HTML-разметку, как и формы стандартного широкого принтера, и вывод осуществляется браузером через системный драйвер. Если принтер подключен через печатный сервер, печатные формы содержат специальную разметку в XML, соответствующую набору команд принтера.
Подключение принтера через печатный сервер позволяет выводить информацию (включая штрих-коды) непосредственно с помощью принтера, что обеспечивает лучшее качество печати. То есть специализированная чековая информация выводится средствами аппаратного и программного обеспечения, предназначенными для этого. Печатный сервер может быть реализован различными способами - это могут быть серверные программы для настольных ПК, а также расширения для браузера или мобильные приложения. В настройках принтера (в профиле пользователя) указывается адрес сервера, куда браузер будет отправлять набор команд ESC/POS в виде массива байтов в формате JSON (например, "[27,116,17]"). Задачей печатного сервера является перенаправление этих команд на принтер через любой интерфейс подключения.

Готовые реализации печатного сервера

Для принтеров, совместимых с ESC/POS

Оба решения могут использоваться как готовые (в случае с USB-принтером) или быть основой для собственной реализации.
Если используются отдельные принтеры для чеков и этикеток, можно запустить два экземпляра программы. Главное, чтобы они использовали разные порты. Например, 8080 и 8082.


Программа для Node.js Скачать

Платформонезависимый вариант для NodeJs. Запуск стандартный:
npm install
node index.js
Проект использует библиотеку node-escpos, позволяющую подключить как USB-принтер, так и с использованием других интерфейсов. Адрес и порт сервера указываются в config.json. Для принтера может понадобиться указать идентификатор производителя и продукта (зависит от способа подключения).


Программа для Windows Скачать

Программа для установки USB-принтеров обычными пользователями Windows. Запускается из папки bin/PrintServer.exe. Требует установленного фреймворка .Net6.0. Для предыдущих версий Windows можно запустить полную сборку из папок win-x64 или win-x86 для 64- или 32-разрядных версий соответственно.
В файле appsettings.json необходимо указать название принтера, так как оно записано в системе (список принтеров в настройках).

Обе программы можно проверить через браузер, введя http://127.0.0.1:8080/test.
Рабочий адрес http://127.0.0.1:8080/print задается в настройках профиля пользователя склада.
Адрес печатного сервера по умолчанию может быть изменен. Например, если вы печатаете чеки с планшета через Wi-Fi.

Описание тегов шаблонов печатных форм для принтера ESC/POS

Шаблон должен соответствовать структуре XML. Как правило, теги определяют соответствующие команды для принтера. Теги могут иметь обязательные или необязательные атрибуты. Также реализация некоторых тегов, например, cut или beep, зависит от модели принтера. Некорректно указанные теги будут пропущены.
Описание тегов
Тег Пример Описание
text <text>Привет, дружище</text> Текст в кодировке UTF-8
font <font>a</font> Шрифт (a или b). Может иметь атрибут bold="true"
size <size height="2" width="2"></size> Размер текста. Обязательные атрибуты height и width. Значения - коэффициенты (от 1 до 8)
align <align>center</align> Выравнивание (left, center, right)
separator <separator>*</separator> Строка символов
barcode <barcode type="code128">1234567890</barcode> Штрих-код. Обязательный атрибут type ('code128','code39','EAN13').
Может иметь атрибуты height (0-255) и width (2 - 6)
qrcode <qrcode>http://mysite.ua/</qrcode> QR-код. Может иметь атрибут size от 1 до 24. Например, size="12"
newline <newline></newline> Перевод строки
cash <cash>2</cash> Открыть денежный ящик. Пин-код 2 или 5
cut <cut></cut> Отрезать после печати.
partialcut <partialcut></partialcut> Частично отрезать после печати.
beep <beep></beep> Звуковой сигнал
color <color>0</color> Цвет. Может принимать значения 0 или 1
commands <commands>27,116,17</commands> Последовательность команд принтера. Байты (0 - 255) через запятую
row,col <row>
<col length="22" >11.11.2022</col><col align="left" length="10" >100.00</col>
</row>
Печать данных по колонкам в виде таблицы. Колонка должна иметь обязательный атрибут length - ширина столбца в символах. Сумма не может превышать ширину печати, заданную в настройках (по умолчанию 32 символа). Колонка может иметь атрибут align="left" для выравнивания текста внутри колонки. Текст, выходящий за пределы колонки, будет обрезан.


Подключение телеграм чат-бота

Бот создается стандартным способом с помощью @BotFather. Токен, который будет сгенерирован, вводится в общих настройках. Затем необходимо активировать диалог с новосозданным ботом. Список команд - /help. Для получения сообщений необходимо войти так же, как и на сайте.

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

Для отправки чеков в ГНА через CheckBox нужно включить модуль в общих настройках и указать в справочнике касс (POS-терминалов), что данный терминал использует фискализацию. Также необходимо ввести лицензионный ключ и пин-код кассира, полученные из настроек касс в в личном кабинете CheckBox.
Аналогично встроенному ПРРО перед началом работы необходимо открыть смену в АРМ кассира и закрыть после завершения работы.

API для интеграции со стороны внешних систем.

API предназначено для интеграции со сторонними системами и мобильными приложениями. С помощью API можно синхронизировать справочники номенклатуры и контрагентов, получать и создавать документы и т.д.
Описание API по адресу <сайт склада>/api/help

Интеграция с ВчасноКаса

Для отправки чеков в ГНА через ВчасноКаса нужно включить модуль в общих настройках и указать в справочнике касс (POS-терминалов), что данный терминал использует фискализацию. Также необходимо ввести токен доступа, полученный из списка касс в личном кабинете ВчасноКаса.
Аналогично встроенному ПРРО перед началом работы необходимо открыть смену в АРМ кассира и закрыть после завершения работы.