Для чтения визуальной составляющей схемы XSD, а также типами обязательных данных, ознакомьтесь с правилами использования. |
<cards-catalog>
cards-catalog | |||
Поле | Тип данных | Описание | Обязательное |
internal-card-type | Комплексный | Список типов внутренних карт | Нет |
internal-card | Комплексный | Список внутренних карт | Нет |
bonus-account | Комплексный | Список обновлений бонусных счетов | Нет |
<internal-card-type>
cards-catalog/internal-card-type | |||
Поле | Тип данных | Описание | Обязательное |
guid | Long | Уникальный идентификатор категории внутренних карт. Ключевое поле. | Да |
name | String | Название категории внутренних карт | Да |
color | String | Цвет категории карты из списка:
| Нет |
personalized | Boolean | Признак персональной категории карт, для карт персонализированной категории система будет требовать заполнение анкеты | Нет |
percentage-discount | Double | Процент скидки категории карт Если не размер процента скидки отсутствует, тогда задается значение = 0 | Да |
work-period-start | Date | Дата начала действия категории, по умолчанию устанавливается время импорта | Нет |
work-period-end | Date | Дата окончания действия категории, по умолчанию время срока действия категории карт не ограничен | Нет |
show-card-from-range-notification | Boolean | Информировать кассира о добавлении карты из диапазона Допустимые значения:
| Нет |
deleted | Boolean | Передается true для удаления категории Допустимые значения:
| Нет |
card-range | Комплексный | Список диапазонов карт | Нет |
<card-range>
cards-catalog/internal-card-type/card-range | |||
Поле | Тип данных | Описание | Обязательное |
guid | Long | Уникальный идентификатор диапазона внутренних карт. Ключевое поле | Да |
startField | String | Номер первой карты диапазона | Да |
countField | nonNegativeInteger | Количество карт в диапазоне | Да |
deleted | Boolean | Передается true для удаления диапазона | Да |
<internal-card>
cards-catalog/internal-card | ||||
Поле | Тип данных | Описание | Обязательное | |
number | String | Номер карты | Да | |
amount | Double | Сумма накоплений на карте | Нет | |
expiration-date | Date | Дата окончания срока действия, более приоритетный срок действия, чем общий срок действия категории карт | Нет | |
status | Комплексный | Статус карты из списка
| Да | |
deleted | Boolean | Передается true для удаления карты | Да | |
card-type-guid | Long | Ссылка на идентификатор категории карт.
| Нет | |
percentage-discount | Double | Процент скидки по карте. Заполняется, если не указан Card-type-guid. Карта будет привязана к категории с данным процентом карты | Нет | |
attached-to-counterparty | Boolean | Привязка карты к контрагенту (юридическому лицу). Допустимые значения:
| Нет | |
client | Комплексный | Привязка карты к клиенту | Нет | |
counterparty | Комплексный | Привязка карты к контрагенту (юридическому лицу) | Нет | |
purchase-accumulation | Комплексный | Накопления по карте | Нет |
<client>
cards-catalog/internal-card/client | ||||
Поле | Размер | Тип данных | Описание | Обязательное |
---|---|---|---|---|
guid | Long | Идентификатор клиента | Да | |
last-name | 128 | String | Фамилия клиента | Нет |
first-name | 128 | String | Имя клиента | Нет |
middle-name | 128 | String | Отчество клиента | Нет |
сlient-type | typeClient | Тип клиента:
| Нет | |
birth-date | Date | Дата рождения клиента | Нет | |
sex | sexType | Пол клиента. По умолчанию не указан.
| Нет | |
marital | Boolean | Семейное положение: Замужем/Женат Допустимые значения:
| Нет | |
auto | Boolean | Наличие автомобиля Допустимые значения:
| Нет | |
pass-number | 12 | String | Номер паспорта | Нет |
pass-serie | 12 | String | Серия паспорта | Нет |
phone | 12 | String | Телефон | Нет |
128 | String | Электронная почта клиента | Нет | |
city | 128 | String | Название города | Нет |
region | 128 | String | Регион/Область | |
district | 128 | String | Район | Нет |
district-area | 128 | String | Район города | Нет |
zip | 6 | String | Индекс | Нет |
street | 128 | String | Улица | Нет |
house | 6 | String | Номер дома | Нет |
building | 6 | String | Корпус (строение) | Нет |
apartment | 6 | String | Квартира | Нет |
mobile-phone | 128 | String | Мобильный телефон | Нет |
smartphone-type | smartphoneType | Тип мобильного телефона
| Нет | |
mobile-operator | 64 | String | Оператор мобильной связи или выдавший карту | Нет |
children-age | 12 | String | Возраст детей. | Нет |
delivery | 128 | String | Кем выдан? | Нет |
delivery-date | Date | Когда выдан? | Нет | |
send-catalog | Boolean | Согласие на отправку каталога Допустимые значения:
| Нет | |
send-by-sms | Boolean | Согласие на отправку смс Допустимые значения:
| Нет | |
send-by-email | Boolean | Согласие на отправку по электронной почте Допустимые значения:
| Нет | |
shop-number | 5 | Integer | Номер магазина, в котором выдали карту | Нет |
other | 255 | String | Адрес, прочая информация | Нет |
receipt-feedback | receipt-feedbackType | Способ оповещения этого держателя карты о совершенной покупке, а также для отправки электронных чеков ОФД.
| Нет | |
wants-e-card | Booleand | Признак того, что клиент хочет получить электронную карту (отправлять на телефон или e-mail прислали png-изображение с штрих-кодом его номера карты). По умолчанию: false Допустимые значения:
| Нет | |
deleted | Boolean | Признак удаления клиента Допустимые значения:
| Да | |
isCompleted | boolean | Признак заполненности анкеты клиента (по умолчанию false) Допустимые значения:
| Нет |
<counterparty>
Данная привязка означает, что дисконтная карта будет использоваться юридическим лицом.
cards-catalog/internal-card/counterparty | ||||
Поле | Размер | Тип данных | Описание | Обязательное |
---|---|---|---|---|
inn | 9, 10 или 12 символов | Integer | ИНН контрагента. Ключевое обязательное поле. | Да |
kpp | 9 | Integer | КПП, не обязательное поле так как может отсутствовать у ИП | Да |
name | 255 | String | Наименование Контрагента (короткое) | Да |
full-name | 1024 | String | Полное наименование контрагента. | Нет |
address | 255 | String | Юридический адрес контрагента | Да |
physical-address | 255 | String | Фактический адрес контрагента | Нет |
debitor-number | 128 | String | Идентификатор контрагента (дебитора) во внешней системе. | Да |
debitor-type | String | Тип контрагента (дебитора) во внешней системе
| Да |
<cards-catalog> <internal-card card-type-guid="12621262" number="12620001" expiration-date="2049-12-31T00:00:00" status="ACTIVE" attached-to-counterparty="true"> <counterparty inn="1212121212" kpp="123456789" name="Тестовое юрлицо" full-name="" address="Тестовый адрес" debitor-number="1245648725"/> <client guid = "198116" last-name = "Юридический" first-name = "Роман" middle-name = "Аркадьевич" sex = "MALE" birth-date = "1976-05-01" email="roman@crystals.ru" send-by-email="true" receipt-feedback="BY_EMAIL"/> </internal-card> </cards-catalog> |
Привязка дисконтной карты Set10 к контрагенту используется в системе для возможности осуществления продажи юридическим лицам с соблюдением требований законодательства и автоматическим формированием и выдачей соответствующих сопроводительных документов.
Для возможности загрузки данных о контрагенте используется тег counterparty, в котором передаётся информация о самом юридическом лице, его наименовании и адресах – физическом и юридическом.
Привязка контрагента к карте осуществляется за счёт того, что тег <counterparty>
вложен внутрь тега <Internal-card>
.
Также осуществляется дополнительная проверка на то, что если у самой карты установлен атрибут attached-to-counterparty
, то наличие корректного вложенного тега <counterparty>
является обязательным условием импорта данной карты.
Пример возможной связки клиентов, карт и контрагентов:
<purchase-accumulation>
cards-catalog/internal-card/purchase-accumulation | |||
Поле | Тип данных | Описание | Обязательное |
---|---|---|---|
operation-type | Boolean | Тип операции:
| Да |
shop-number | Integer | Номер магазина | Да |
cash-number | Integer | Номер кассы | Да |
shift-number | Integer | Номер смены | Да |
purchase-number | Integer | Номер чека | Да |
purchase-date | DateTime | Дата чека | Да |
purchase-sum | Integer | Сумма чека | Да |
<bonus-account>
|
cards-catalog/bonus-account | |||
Поле | Тип данных | Описание | Обязательное |
---|---|---|---|
guid | Long | Идентификатор клиента | Да |
bonus-update | String | Остаток бонусного счёта | Да |
Обработка пакета данных в модуле карт подразумевает следующие этапы:
Оба этапа выполняются в одной транзакции для избежания потери данных в случае сбоев в работе.
internal-card-type
данные в SetRetail10 перезаписываются безусловно. Идентификатором для перезаписи категории является поле guid
.work-period-end
при импорте новой категории категория карт, их экземпляры становятся бессрочными.card-range
, данные в SetRetail10 перезаписываются безусловно. Идентификатором для перезаписи диапазона карт является поле guid
.internal-card
, данные в SetRetail перезаписываются безусловно. Идентификатором для перезаписи является поле number
.createDate
заполняется при создании карты датой проведения импорта.card-type-guid
.cardTypeGuid
, которых не соответствует ни одному guid
из списка уже заведенных в SetRetail10 категорий карт, будут отклонены системой.Альтернативная схема импорта карт:
card-type-guid
должен отсутствовать, percentage-discount
. Такие категории карт, предварительно могут быть заведены в SetRetail10. discount-percent
не существует, или одновременно не указан cardTypeGuid
и percentage-discount
, карта будет отклонена системой.
|
сlient
данные перезаписываются безусловно. Идентификатором для перезаписи клиента является поле guid
.В Set10 cуществуют две возможности разделения продажи на кассах для физических и юридических лиц.
Для изменения логики работы кассы при продаже товаров по таким картам, необходима дополнительная настройка в шаблонах касс.
counterparty
с корректно заполненными атрибутами.attached-to-counterparty
).counterparty
и проверка корректности заполнения требуемых полей по контрагенту, таких как ИНН, КПП и т.д.сlient-type
.PRIVATE
– физическое лицо.JURISTIC_PERSON
– юридическое лицо.