Настройка сервиса «Онлайн продаж» происходит через файл конфигурации Apsettings.json, который в свою очередь представляет из себя набор параметров, разбитых на блоки. Оформления данного файла в виде графического интерфейса сервиса «Онлайн продаж» не предусмотрено
При необходимости внести изменения в работу сервиса «Онлайн продаж» пользователь открывает файл конфигурации в любом удобном ему редакторе и производит необходимые ему изменения
Файл конфигурации позволяет настроить как работу сервиса в целом, так и работу конкретного виджета в частности, в том числе файл конфигурации позволяет добавлять запускаемые на сервисе виджеты
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| Urls | Строка | Порт, который будет прослушивать служба | Нет, если не указать – прослушивает порт 5000 | http://*:5200 |
| Widgets | Массив объектов | Настройки каждого конкретного виджета | Да | Отдельная сущность |
| DocumentsSettings | Массив объектов | Настройки электронной расписки | Нет | Отдельная сущность |
| Имя параметра | Тип | Описание | Обязателен? | Пример | Использование |
|---|---|---|---|---|---|
| WidgetGuid | Строка | Идентификатор виджета в формате Guid | Нет, если не задать, будет сгенерирован | a0f283d1-0c67-46ae-b979-f3fc8e7539a4 | |
| ApiAddress | Строка | Адрес, по которому доступна служба онлайн продаж для этого виджета, в формате http://URL:ПОРТ/v1/ | Да | http://123.45.67.68:5000/v1/ | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| LogoURL | Строка | Активная ссылка на логотипе | нет | "LogoUrl": "https://www.bars-it.com" | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| MaxGoodsAgeInDays | Число | Определяет период времени в днях, за которое выгружается информация об операциях | Нет | 90 | ✅Виджет №1 ❌Виджет №2 ❌Виджет №3 |
| InformationString | Строка | Текст, который будет выведен в разделе «помощь» | Нет | Здесь могла быть ваша реклама | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| AgreementText | Строка | Текст с пользовательским соглашением | Да, для виджета №3 | Здесь могла быть ваша реклама | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| RulesText | Строка | Текст с правилами посещения комплекса | Нет | Здесь могла быть ваша реклама | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| TelegramLink | Строка | Ссылка на аккаунт Telegram. Отображается в разделе «Помощь» | Нет | https://t.me/PavelDurov | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| WhatsAppLink | Строка | Ссылка на аккаунт WhatsApp. Отображается в разделе «Помощь» | Нет | https://wa.me/uselessThing | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| Phone | Строка | Кликабельный текст с номером телефона. Отображается в разделе «Помощь» | Нет | +79123456789 | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| WidgetType | Число | Определяет какой виджет будет использоваться в работе (с идентификацией, без идентификации, с регистрацией) | Да | "WidgetType": 0, - виджет с идентификацией "WidgetType": 1, - виджет без идентификации "WidgetType": 2, - виджет с регистрацией | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| Website | Строка | Кликабельный текст с сайтом объекта. Отображается в разделе «Помощь» | Нет | https://www.bars-it.com/ | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| AgreementURL | Строка | Кликабельный текст с пользовательским соглашением. Отображается в разделе «Помощь» и подтверждается при оплате | Нет | https://www.bars-it.com/ | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| RulesURL | Строка | Кликабельный текст с правилами посещения комплекса. Отображается в разделе «Помощь» и подтверждается при оплате | Нет | https://www.bars-it.com/ | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| CheckoutCredentials | Число | Запрос клиентских реквизитов | 0: клиентские реквизиты не запрашиваются 1: запрашивает Email если он отсутсвует в ПД клиента 2: запрашивает телефон если он отсутсвует в ПД клиента 3: запрашивает телефон или Email если Email отсутсвует в ПД клиента 4: запрашивает Email два раза если он отсутсвует в ПД клиента |
"CheckoutCredentials": 1 | ✅Виджет №1 ✅Виджет №2 ❌Виджет №3 |
| SmsAuthText | строка | Нет | Текст отправляемого SMS в формате: "{SmsAuthText}: {код}" | Код авторизации: {код}" | ✅Виджет №1 ❌Виджет №2 ✅Виджет №3 |
| SmsServiceUrl | строка | Нет | Адрес, по которому доступна сервис уведомлений | "SmsServiceUrl": "http://SMS:1111/ | ✅Виджет №1 ❌Виджет №2 ✅Виджет №3 |
| Customization | Объект | Настройки визуальной кастомизации виджета | Нет | Отдельная сущность | |
| WebStoreConfig | Объект | Настройки доступа к службе WebStore | Да | Отдельная сущность | |
| HideSections | Объект | Настройки скрытия разделов и интерфейсе виджета | Нет | Отдельная сущность | |
| YaMetrikaId | Строка | Идентификатор счётчика сервиса Яндекс Метрика | Нет | 96572283 | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| SearchClientMode | Битовое поле | Приоритет поиска клиента | 1: Номер телефона 2: Почта 4: Бортовой номер\UID Иное значение \ Значение некорректно \ Не заполнено |
7 | ✅Виджет №1 ❌Виджет №2 ❌Виджет №3 |
| AllowChangePersonalData | true или false | Редактирование персональных данных | Нет | false | ❌Виджет №1 ❌Виджет №2 ✅Виджет №3 |
Параметр можно не задавать, тогда будут отображаться все секции
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| HideClientInfo | true или false | Скрыть раздел «Информация о клиенте» | Нет | true |
| HideProductsMode | Битовое поле | Отображаемые разделы: 1: Депозит 2: Услуга 4: Долг 8: Мероприятие |
Нет | 15, где 8+4+2+1 |
| HideSectionsMode | Битовое поле | Отображаемые разделы: 1: Купить 2: Баланс 4: Покупки 8: Помощь 16: Карта |
Нет | 31, где 16+8+4+2+1 |
| HideProductsCalendar | true или false | Скрыть раздел календаря | Нет | false |
Параметр можно не задавать, тогда будет отображаться стандартный дизайн
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| BackgroundPath | Строка | Путь до фонового изображения, обладает приоритетом над цветом фона | Нет | |
| BackgroundRepeat | Строка (CSS) | Повторять фон или нет. Не задано - не повторяется. Варианты: repeat, repeat-x, repeat-y, space, round, no-repeat, no-repeat center / cover или другой CSS тег | Нет | repeat-y |
| BackgroundColor | Строка (CSS) | Цвет фона. Может быть в формате HEX (#00824A), слова (green, red) или другой CSS тег | Нет | #00824A |
| LogoPath | Строка | Путь до изображения с логотипом | Нет | |
| PrimaryColor | Строка (CSS) | Основной цвет в формате HEX), слова (green, red) или другой CSS тег | Нет | #00824A |
| SecondaryColor | Строка (CSS) | Дополнительный цвет в формате HEX), слова (green, red) или другой CSS тег | Нет | #00824A |
| CustomCSS | Строка (CSS) | Дополнительные параметры CSS, которые будут переданы в код виджета. Не забывайте про экранирование скобок и кавычек (добавляйте / перед спец. символами) | Нет | "CustomCSS": "body {font-size: 13px color:#cc0033 !important} .HelpComponent-module_helpComponent__3Tquh {color:#00CED1;font-weight:bold}" |
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| WebStoreUrl | Строка | Адрес до WebStore | Да | http://127.0.0.1:9010 |
| SiteId | Строка | ID сайта, которая будет использовать служба. ID сайтов добавляются в настройках WebStore | Да | 5 |
| PrivateKey | Строка | Секретный ключ, которым подписываются запросы к WebStore. Указывается в настройках WebStore | Да | Secret123 |
| Acquirings | Массив объектов | Сведения об эквайрингах, с помощью которых можно будет оплачивать заказы на виджете | Да (исключение - виджет с регистрацией) | Отдельная сущность |
| Profiles | Массив объектов | Настройки сопоставления каждого виджета и профиля WebStore. Аналог используемой кассы в Bars | Да | Отдельная сущность |
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| InternalId | Число | Внутренний идентификатор эквайринга. Задаётся автоматически, если не указать вручную | Нет | 0 |
| WebStoreAcquiringId | Число | Идентификатор эквайринга в WebStore | Да | 1 |
| Name | Строка | Текст, который будет выводится в выборе метода оплаты для этого эквайринга. Если не задать, то будет отображаться «Онлайн-оплата картой» или «Система быстрых платежей», в зависимости от типа эквайринга | Нет | Оплата альфа-банком |
| IsSBP | true или false | Флаг — это СБП эквайринг или нет. Если не задать, то будет равен false | Нет | false |
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| WebStoreProfileId | Число | Идентификатор профиля в WebStore | Да | 1 |
| WidgetId | Строка | Идентификатор виджета. | Нет, если не задать, то автоматически будет сопоставлен (1 по счёту профиль с первым виджетом, 2 со вторым и т.д.) | a0f283d1-0c67-46ae-b979-f3fc8e7539a4 |
| Имя параметра | Тип | Описание | Обязателен? | Пример |
|---|---|---|---|---|
| GenerateDocuments | Число | 0: функционал не используется 1: генерация документа единожды. Генерация проходит при регистрации клиента 2: генерация документа при каждой авторизации\покупке |
Нет | ✅Виджет №1 ✅Виджет №2 ✅Виджет №3 |
| DocumentsDirectory | Строка | Каталог, куда сохраняются расписки. Если не задан, то используется корневой каталог | Нет | C:\RulesDocuments |
| RulesTemplatePath | Строка | Путь до шаблона. Если не задан, то используется RulesTemplate.xlsx из корневого каталога | Нет | C:\RulesDocuments\tempalete.xlsx |
| StrictMode | true или false | Возвращать ошибку при неуспешной генерации документа | Нет | false |
{
"Urls": "http://*:5200",
"DocumentsSettings": {
"GenerateDocuments": true,
"DocumentsDirectory": "C:\\Users\\USER\\Desktop\\Widget\\RulesDocuments"
},
"StaticFilesSettings": {
"IndexPath": ".\\widgets",
"PublicPath": ".\\widgets",
"SinglePageMode": true,
"ReturnServiceResponseIfError": false
},
"Widgets": [
{
"Id": "0",
"ApiAddress": "http://widgetdk.duckdns.org:5200/v1/",
"LogoUrl": "https://www.bars-it.com",
"YaMetrikaId": "96572283",
"SmsServiceUrl": "http://expo.ru:8080",
"SmsAuthText": "Привет. Я код: ",
"CheckoutCredentials": 1,
"HideSections": {
"HideProductsMode": 14,
"HideSectionsMode": 31,
"HideProductsCalendar": false
},
"MaxGoodsAgeInDays": 90,
"InformationString": "ППС «Барс» для автоматизации горнолыжных курортов, аквапарков и бассейнов, парков аттракционов, музеев, мультимедийных комплексов, стадионов, спортивных арен, катков, ледовых дворцов, выставок и экспозиций.",
"TelegramLink": "https://t.me/Alexandr_30",
"WhatsAppLink": "http://wa.me/123",
"Website": "https://www.bars-it.com/",
"AgreementUrl": "https://www.bars-it.com/politika-konfidencialnosti",
"RulesText": "Дети до 12 лет допускаются только в сопровождении взрослых, все посетители обязаны использовать купальные принадлежности (купальники/плавки) и принимать душ перед входом в зоны аквапарка. Запрещено проносить стеклянную тару, еду и напитки в водные зоны, а также бегать, нырять в непредназначенных для этого местах. Посетители с открытыми ранами, инфекционными заболеваниями или в состоянии алкогольного опьянения не допускаются; соблюдайте указания инструкторов и правила безопасности на аттракционах.",
"Phone": "+79220320875",
"WidgetType": 0,
"Customization": {
"BackgroundPath": "",
"BackgroundRepeat": "repeat",
"BackgroundColor": "rgba(255, 255, 255, 1)",
"LogoPath": "C:\\DataKrat\\logo2.png",
"PrimaryColor": "rgba(255, 76, 1, 0.8)",
"SecondaryColor": "rgba(255, 76, 1, 0.3)",
"CustomCSS": "body {font-size: 13px !important}"
},
"WebStoreConfig": {
"WebStoreUrl": "http://server:9010/",
"SiteId": "2",
"PrivateKey": "2",
"Acquirings": [
{
"InternalId": 1,
"WebStoreAcquiringId": 1,
"Name": "",
"IsSBP": true
},
{
"InternalId": 2,
"WebStoreAcquiringId": 2,
"Name": "",
"IsSBP": false
}
],
"ProfileId": 1
}
},
{
"Id": "1",
"LogoUrl": "http://widgetdk.duckdns.org:5200/web/1/",
"ApiAddress": "http://widgetdk.duckdns.org:5200/v1/",
"YaMetrikaId": "96572283",
"WidgetType": 1,
"ShowTickets": true,
"CheckoutCredentials": 0,
"AgreementUrl": "https://www.bars-it.com/politika-konfidencialnosti",
"RulesText": "Дети до 12 лет допускаются только в сопровождении взрослых, все посетители обязаны использовать купальные принадлежности (купальники/плавки) и принимать душ перед входом в зоны аквапарка. Запрещено проносить стеклянную тару, еду и напитки в водные зоны, а также бегать, нырять в непредназначенных для этого местах. Посетители с открытыми ранами, инфекционными заболеваниями или в состоянии алкогольного опьянения не допускаются; соблюдайте указания инструкторов и правила безопасности на аттракционах.",
"HideSections": {
"HideProductsCalendar": false
},
"InformationString": "ППС «Барс» для автоматизации горнолыжных курортов, аквапарков и бассейнов, парков аттракционов, музеев, мультимедийных комплексов, стадионов, спортивных арен, катков, ледовых дворцов, выставок и экспозиций.",
"TelegramLink": "https://t.me/Alexandr_30",
"Website": "https://www.bars-it.com/",
"Phone": "+79220320875",
"Customization": {
"BackgroundPath": "C:\\DataKrat\\Фон1.jpg",
"BackgroundRepeat": null,
"BackgroundColor": null,
"LogoPath": "C:\\DataKrat\\logo.png",
"PrimaryColor": "rgba(0, 130, 74, 1)",
"SecondaryColor": "rgba(0, 130, 74, 0.3)",
"CustomCSS": "body {font-size: 13px !important}"
},
"WebStoreConfig": {
"WebStoreUrl": "http://localhost:9010/",
"SiteId": "2",
"PrivateKey": "2",
"Acquirings": [
{
"InternalId": 2,
"WebStoreAcquiringId": 2,
"Name": "",
"IsSBP": false
},
{
"InternalId": 1,
"WebStoreAcquiringId": 1,
"Name": "",
"IsSBP": true
}
],
"ProfileId": 1
}
},
{
"Id": "2",
"LogoUrl": "https://www.bars-it.com",
"ApiAddress": "http://widgetdk.duckdns.org:5200/v1/",
"YaMetrikaId": "96572283",
"SmsServiceUrl": "http://expo.ru:8080",
"WidgetType": 2,
"AgreementText": "Я, ознакомился и согласен с Правилами посещения водно-развлекательного комплекса являющимися неотъемлемой частью настоящего соглашения, и обязуюсь соблюдать их, а также отвечать за их соблюдение сопровождаемыми мной лицами, в т.ч несовершеннолетними. Я осознаю и понимаю, что посещение мной и/или сопровождаемыми мной лицами (в т.ч. несовершеннолетними) не исключает определенную опасность и потенциальный риск получения травмы. Принимая во внимание изложенное, я осознаю важность предоставленной информации, предупреждений и правил и соглашаюсь их выполнять. Я в полном объеме принимаю ответственность (в т.ч. материальную) за свои противоправные, а также нарушающие Правила посещения водно-развлекательного комплекса действия или бездействия, а также за подобные действия (бездействия) со стороны сопровождаемых мною лиц (в т.ч. несовершеннолетних). Я обязуюсь возместить имущественный ущерб, а также вред жизни и здоровью, причиненный мной и/или сопровождаемыми мною лицами (в т.ч. несовершеннолетними) в результате таких действий (бездействия), другим посетителям площадки, детям, иным третьим лицам, собственнику водно-развлекательного комплекса (исполнителю оказываемых услуг). Я согласен, что при нарушении правил мною или сопровождаемыми мной лицами (в т.ч. несовершеннолетними), я и/или сопровождаемые лица могут быть удалены с территории комплекса по решению сотрудников или администрации комплекса без возврата денежных средств. Я несу личную ответственность за достоверность предоставленных мной данных в отношении меня и сопровождаемых мной лиц (в т.ч. несовершеннолетних). Я подтверждаю, что услуги, предоставляемые ФОК ЛЕТО не противопоказаны мне и сопровождающим мной лицам (в т.ч. несовершеннолетним) по состоянию здоровья. Я подтверждаю, что повреждений кожи, кожных заболеваний, признаков простуды, вирусных инфекций в том числе Covid-19 я и/или сопровождаемые мной лица (в т.ч. несовершеннолетние), не имеют. Я даю согласие на оказание первой медицинской помощи при необходимости себе и /или сопровождаемым мной лицам (в т.ч. несовершеннолетним), лицам имеющим соответствующую квалификацию. Я подтверждаю, что достиг возраста 18 лет и даю согласие на обработку (сбор, систематизацию, накопление, хранение, обновление, изменение, уничтожение) моих персональных данных и сопровождаемых мной лиц ( в т.ч. несовершеннолетних) (согласно закону №152-ФЗ от 27.07.06 г. О персональных данных)",
"Customization": {
"BackgroundPath": "C:\\DataKrat\\Фон1.jpg",
"BackgroundRepeat": null,
"BackgroundColor": null,
"LogoPath": "C:\\DataKrat\\logo.png",
"PrimaryColor": "rgba(0, 130, 74, 1)",
"SecondaryColor": "rgba(0, 130, 74, 0.3)",
"CustomCSS": "body {font-size: 13px !important}"
},
"WebStoreConfig": {
"WebStoreUrl": "http://localhost:9010/",
"SiteId": "2",
"PrivateKey": "2",
"Acquirings": null,
"ProfileId": 1
}
}
]
}
"BackgroundRepeat": "no-repeat top / contain",
Для установки виджета в режиме службы Windows для автоматического запуска при старте операционной система - необходимо выполнить следующие действия:
sc create Имя_службы binPath="путь к исполняемому файлу" DisplayName= "Видимое наименование службы(так будет называться в списке служб)" type=own start=auto
Пример команды:
sc create Bars.Widget2.0 binPath="C:\Program Files (x86)\DataKrat\Bars\Widget 2.0\Widget v1.5.0\Bars.WebStore.BackendWidget.exe" DisplayName= "Bars.Widget2.0" type=own start=auto
Дефолтные параметры:
"IndexPath": ".\\widgets",
"PublicPath": ".\\widgets",
Исправить - прописать полный путь до папки Widgets.
Исправленные параметры:
"IndexPath": "C:\\Program Files (x86)\\DataKrat\\Bars\\Widget 2.0\\Widget v1.5.0\\widgets",
"IndexPath": "C:\\Program Files (x86)\\DataKrat\\Bars\\Widget 2.0\\Widget v1.5.0\\widgets",
```