# Настройка кассового ПО Frontol ### Загрузка основного сценария Код основанного сценария работы кассового места содержится в [файле **main.js**](https://rzn-wb-02.1c-hosting.com/books/integratsiya-s-frontol/page/sostav-ustanovochnogo-paketa "Состав установочного пакета"). Для загрузки сценария и установки его как основного необходимо запустить утилиту «Frontol Администратор», открыть базу, для которой предполагается установить сценарий. Далее перейти в раздел *«Скидки и сценарии»*, создать новый сценарий, открыть файл main.js с диска или скопировать содержимое файла в открытый сценарий: [![изображение_2022-11-15_172008535.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-172008535.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-172008535.png) Для корректной работы сценария, необходимо установить значения переменных в заголовке файла установить значения переменным в начале в заголовке файла:
Имя переменнойОписание
bsServerАдрес процессингового сервера. Доступные сервера: [https://demo.bonus.rarus-online.com:88/](https://demo.bonus.rarus-online.com:88/) - Тестовый сервер; [https://bonus.rarus-online.com:88/](https://bonus.rarus-online.com:88/) - Боевой сервер;
bsUserИмя пользователя сервиса, полученное при регистрации
bsPasswordПароль пользователя сервиса, полученный при регистрации. Для безопасности пароль не вводится в открытом виде, нужно ввести шестнадцатеричное значение хеш-функции от значения пароля. Вычислить такое значение можно, например, на сайте [http://www.sha1-online.com/](http://www.sha1-online.com/)
bsShopIDУникальный идентификатор магазина, используется для аналитики продаж
bsKKTIDУникальный идентификатор кассы
bsKKTNameНаименование кассы
bsCodeCertificatePositionКод товара, который используется при продаже сертификатов
bsCodeCertificatePaymentКод вида оплаты, который используется при оплате чека сертификатом
bsClientNameInputTypeТип ввода имени клиента. Доступны значения: - OneInput – одно поле для Фамилии, Имени и Отчества. - ThreeInputs – для указания Фамилии, Имени и Отчества используются разные поля. - **var** bsLogLevel = 'off';
bsLogLevelУровень журналирования. Доступны значения *`error`, `info`, `debug`,* `off`. Каждый последующий уровень журналирования включает в себя предыдущий. Например, при указании уровня `debug` в файлы журналов будут выводиться сообщения с уровнями `error` и `info`. `off` - полностью отключает журналирование
bsLogRootPathКорневой каталог, в который будут сохраняться файлы журнала. В этом каталоге автоматически создаются отдельные подкаталоги с файлами журнала. Каждый файл содержит информацию за один час работы системы. В качестве разделителя пути к каталогу необходимо использовать двойной обратный слэш(\\\\) в конце пути также необходимо наличие \\\\
bsPendingDocQueueКорневой каталог, в который будут сохраняться файлы с информацией о документах, которые не удалось отправить на обработку в сервис по причине плохого соединения с сервисом. Такие документы будут повторно отправляться при старте системы. В качестве разделителя пути к каталогу необходимо использовать двойной обратный слэш(\\\\) в конце пути также необходимо наличие \\\\
bsBarcodeInputSequenceПоследовательность клавиш вызова окна ввода штрихкода карты. Если значение не указано, после поиска карты по штрихкоду/телефону не будет выполняться подстановка штрихкода карты в документ. Значение должно совпадать с назначенной в системе для этого действия комбинацией клавиш
bsCardTypeCodes
Коды видов карт бонусного сервиса. Проверка наличия карт в сервисе будет выполняться только для карт подходящих под условия указанных видов.
После настройки можно сохранить сценарий и выбрать его в качестве основного в поле *«В начале сеанса запускать».* [![изображение_2022-11-15_172053596.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-172053596.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-172053596.png) Более простым способом настройки будет использование [утилиты настройки](https://rzn-wb-02.1c-hosting.com/books/integratsiya/page/utilita-nastroyki-stsenariya "Утилита настройки сценария"). Она запускается по-умолчанию после установки новой версии скрипта. ### Настройка бонусных скидок и оплаты бонусными баллами Для корректного применения рассчитанных процессингом скидок и оплаты бонусными баллами необходимо настроить маркетинговую акцию. Для этого нужно перейти в раздел *«Скидки и сценарии» -> «Маркетинговые акции»* и создать новую скидку: [![изображение_2022-11-15_172139304.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-172139304.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-172139304.png) Для скидки устанавливается признак «Срабатывает всегда». После, нужно указать два мероприятия «Оплата» и «Скидка», которые отражают логику применения оплаты бонусными баллами и скидок соответственно к документу: [![изображение_2022-11-15_173130045.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-173130045.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-173130045.png) Каждое мероприятие должно иметь тип «Автоматическая скидка из сценария», не иметь модуля условий(т.е. быть безусловными). На каждую скидку назначается функция расчета из загруженного ранее скрипта. Для мероприятия «Скидка», указываются следующие настройки и функция ```JavaScript ApplySumDiscountToPosition('rarusBonus') ``` [![изображение_2022-11-15_173228523.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-173228523.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-173228523.png) Для мероприятия «Оплата», указываются следующие настройки и функция ```JavaScript ApplyBonusPaymentToPosition() ``` [![изображение_2022-11-15_173415260.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-173415260.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-173415260.png) ### Идентификация карт Считывание бонусных карт выполняется типовой командой платформы FRONTOL. Для корректной интеграции необходимо определиться с префиксами штрихкодов бонусных карт и в разделе «Скидки и наценки» -> «Виды карт» создать один или несколько видов карт соответствующий диапазонам: [![изображение_2022-11-15_174146411.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-174146411.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-174146411.png) Такие карты НЕ будут регистрироваться в системе FRONTOL определение будет выполняться на процессинге, поэтому необходимо установить признак «Использовать для незарегистрированных карт»

Обязательно в сценарии настроить значение кодов видов карт в переменной `bsCardTypeCodes`. Коды не внесенные в массив будут работать по логике Frontol и не будут проверяться на сервисе управления лояльностью.

### Дополнительные функции и значения Основной сценарий предоставляет набор функций, которые можно использовать для в качестве команд кассира в основном режиме работы. Состав команд: - Регистрация нового пользователя бонусного сервиса - Привязка новой карты к пользователю бонусного сервиса - Расчет скидок на процессинге с применением к текущему документу - Ввод оплаты бонусными баллами - Отмена рассчитанных скидок и оплаты баллами - Поиск карты пользователя бонусного сервиса по номеру телефона - Сброс дисконтной карты пользователя - Поиск промо-кода бонусного сервиса - Очистка промо-кода бонусного сервиса - Продажа подарочного сертификата бонусного сервиса - Отмена продажи подарочного сертификата бонусного сервиса - Оплата документа подарочным сертификатом бонусного сервиса Команды реализованы в виде функций глобальном контексте основного сценария: - **function** RegisterNewCustomer() - **function** AttachCard() - **function** CalculateDiscounts(interactive) - **function** EnterBonusPayment() - **function** ClearAllDiscounts(interactive) - **function** SearchCardByPhone() - **function** ClearCard(interactive) - **function** SearchCoupon() - **function** ClearCoupon(interactive) - **function** AddCertificate() - **function** DeleteCertificate() - **function** EnterCertificatePayment() Эти команды можно назначить на кнопки пользовательского интерфейса или горячие клавиши.

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

Настройка производится в разделе «Настройки» -> «Макеты экрана» и «Настройки» -> «Раскладки». Для назначения функции на кнопку интерфейса пользователя необходимо в макете экрана выбрать элемент типа кнопка и указать в качестве действия значение Специальные/Сценарий и в качестве параметра указать имя функции. [![изображение_2022-11-15_175342106.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175342106.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175342106.png) Для назначения функции на горячую клавишу необходимо проделать аналогичные действия: [![изображение_2022-11-15_175423356.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175423356.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175423356.png) Также основной сценарий предоставляет набор переменных, значение которых можно отобразить в интерфейсе пользователя. Состав доступных переменных: - rarusBonusPayment – Количество бонусных баллов, которыми оплачен документ. - rarusBarcode – Штрихкод считанной и идентифицированной процессингом карты. - rarusUserName – Имя пользователя сервиса, связанного с картой. - rarusCardEntered – признак того, что введена карта клиента.. Настройка вывода этих значений выполняется в конструкторе макета экранной формы «Настройки» -> «Макеты экрана». Для вывода используется элемент с типом «Информация», в качестве текста необходимо выбрать «Текущий документ \\ Пользовательская переменная», в качестве значения имя переменной. Например: [![изображение_2022-11-15_175456767.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175456767.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175456767.png) ### Подарочные сертификаты Для корректной продажи подарочных сертификатов бонусного сервиса необходимо настроить товар. Для этого нужно перейти в раздел *«Справочники» -> «Товары»* и создать новый товар: [![изображение_2022-11-15_175616548.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175616548.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175616548.png) Необходимо указать уникальный код товара и установить признак предмета расчета в значение «Аванс, предоплата». Указанный код товара необходимо ввести в сценарии в переменную bsCodeCertificatePosition. Для того чтобы была возможность продавать данный товар необходимо в карточке товара на вкладке «Разрезы/цены/остатки» необходимо ввести остатки и цены на товар. Остатки можно указать нулевыми, цена должна быть не нулевой. [![изображение_2022-11-15_175730529.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175730529.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175730529.png) На вкладке «Контроль» необходимо снять галки у следующих опций «Списание остатков», [![изображение_2022-11-15_175801356.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175801356.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175801356.png) Для того чтобы отрабатывали опции заданные в карточке товара необходимо в разделе *«Справочники» -> «Глобальный контроль» установить у опций «Списание остатков», «Запрос цены», «Скидки» и «Редактирование цены»* значение *«Товар».* Для возможности оплаты подарочным сертификатом необходимо в разделе *«Системные справочники» ->* группа *«Оплаты» -> «Виды» создать новый вид оплаты.* [![изображение_2022-11-15_175839548.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175839548.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175839548.png) [![изображение_2022-11-15_175956242.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/scaled-1680-/izobrazhenie-2022-11-15-175956242.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2022-11/izobrazhenie-2022-11-15-175956242.png) Необходимо указать уникальный код вида оплаты. Указанный код товара необходимо ввести в сценарии в переменную bsCodeCertificatePayment. Возврат оплаты подарочными сертификатами возможен только наличными поэтому необходимо установить опцию «Разрешить возврат наличными» ### Вывод дополнительных свойств пользователя в интерфейсе кассы Решение позволяет выводить значения дополнительных свойств пользователя, созданных в личном кабинете системы управления лояльностью, в интерфейсе кассового ПО Фронтол. Для того чтобы настроить вывод необходимо в редакторе макета экрана добавить поле с типом "Информация" и установить значение из пользовательской переменной документа. [![изображение_2023-05-29_162812148.png](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-05/scaled-1680-/izobrazhenie-2023-05-29-162812148.png)](https://rzn-wb-02.1c-hosting.com/uploads/images/gallery/2023-05/izobrazhenie-2023-05-29-162812148.png)

Подробно о редактировании макетов экрана можно узнать из руководства администратора, поставляемого с кассовым ПО Фронтол

В качестве имени переменной нужно использовать следующий шаблон ***user\_prop\_<Идентификатор свойства>.*** Идентификатор свойства можно получить и указать в личном кабинете системы управления лояльностью.