SetLoyalty ◾️ Экспорт анкетных данных покупателей через топик Kafka

Публичное пространство

SetLoyalty ◾️ Экспорт анкетных данных покупателей через топик Kafka

Включение и настройка функциональности производится сотрудниками CSI и только по запросу. По умолчанию выгрузка данных выключена.

https://crystals.atlassian.net/browse/SLS-3355

https://crystals.atlassian.net/browse/CR-10605

Описание

В Set Loyalty реализована возможность передачи информации о покупателях в топик брокера сообщений Kafka для чтения внешними системамиВ соответствующий топик будут выгружаться сообщения в JSON-формате при создании и редактировании анкет в Set Loyalty.

Настройка 

Топик Kafka создает DevOps CSI через запрос менеджеру проекта.

Ограничения

  • Срок хранения сообщений в Kafka: 7 дней по умолчанию.

  • Данные начнут выгружаться с момента включения топика. Изменения, внесенные ранее, не попадут в Kafka.

  • Данные по бонусным операциям, уровневой программе лояльности и другая информация, не относящаяся к анкетным данным, передаваться в сообщении не будет.

Список выгружаемых данных

Поле

Описание

Поле

Описание

id

Код (ID) покупателя

type

Тип сообщения:

  • CREATE - создать анкету

  • UPDATE - обновить анкету

data

id

Код (ID) покупателя

firstName

Имя

lastName

Фамилия

middleName

Отчество

phone

Номер телефона

email

Адрес электронной почты

createdDate

Дата регистрации покупателя

activatedDate

Дата активации (для случаев, когда профиль изначально был анонимным)

updatedDate

Дата последнего изменения профиля

shop

Магазин, где был зарегистрирован покупатель ("0", если регистрация произведена через UI или API)

registrationPlace

Канал регистрации

agreeEmail

Согласие на коммуникацию по e-mail

agreeSMS

Согласие на коммуникацию по SMS

children

name

Имя ребенка

birthDate

Дата рождения ребенка

gender

Пол ребенка

customFields

id

ID поля

  • birthday - дата рождения

  • comments - комментарий

  • family_status - семейное положение

  • gender - пол

  • city - город

  • mobile_registration - регистрация в мобильном приложении

  • house - дом

  • building - корпус

  • automobile - наличие автомобиля

  • street - улица

  • socialLevel - социальный статус

  • animals - домашние животные

  • region - регион

  • apartment - квартира

  • refuse_receipt - отказ от чека

  • field_X - произвольное созданное поле анкеты, где X - номер поля

value

Значение

cards

https://crystals.atlassian.net/browse/SLS-5211

https://crystals.atlassian.net/browse/CR-15553

number

Номер карты лояльности

category

id

Идентификатор категории карты

name

Название категории

createDate

Дата создания категории

status

Статус карты:

  • CREATED

  • ISSUED

  • REPLACE

  • BLOCKED

statusReason

Причина смены статуса

createDate

Дата создания карты

updateDate

Дата последнего обновления карты

shop

Идентификатор магазина, где карта была выдана

completed

Признак заполненности анкеты

deleted

Признак архивации покупателя

Пример сообщений

Пример сообщения при создании анкеты покупателя:

{ "id": "6", "type": "CREATE", "data": { "id": "6", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "phone": "79173332486", "email": "ivanov_ivan1254@hotmail.com", "createdDate": "2024-03-13T16:10:37.27163+03:00", "activatedDate": "2024-03-15T11:49:35.292411594+03:00", "updatedDate": "2024-03-15T11:49:35.292411594+03:00", "shop": "0", "registrationPlace": "INFO_STAND", "agreeEmail": true, "agreeSMS": true, "children": [ { "name": "Петр", "birthDate": "2024-03-12", "gender": "UNKNOWN" } ], "customFields": [ { "id": "birthday", "value": "2024-03-06" }, { "id": "comments", "value": "qwe" }, { "id": "family_status", "value": "married" }, { "id": "gender", "value": "male" }, { "id": "city", "value": "СПБ" }, { "id": "field_1", "value": "123" }, { "id": "mobile_registration", "value": "true" }, { "id": "house", "value": "1" }, { "id": "building", "value": "1" }, { "id": "automobile", "value": "true" }, { "id": "street", "value": "Невский" }, { "id": "socialLevel", "value": "1" }, { "id": "animals", "value": "FISH,DOG" }, { "id": "region", "value": "РФ" }, { "id": "apartment", "value": "1" }, { "id": "refuse_receipt", "value": "true" } ], "cards": [ { "number": "0000123456789", "category": { "id": 1, "name": "Карты лояльности", "createDate": "2020-02-02T10:10:10.000" }, "status": "CREATED", "statusReason": null, "createDate": "2020-02-02T10:10:10.000", "updateDate": "2020-02-02T10:10:10.000", "shop": "91" } ], "completed": true, "deleted": false } }

 

Пример сообщения при внесении изменений в анкетные данные покупателя:

{ "id": "6", "type": "UPDATE", "data": { "id": "6", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "phone": "79173332486", "email": "ivanov_ivan_new@hotmail.com", "createdDate": "2024-03-13T16:10:37.27163+03:00", "activatedDate": "2024-03-15T11:49:35.292411594+03:00", "updatedDate": "2024-03-15T11:49:35.292411594+03:00", "shop": "0", "registrationPlace": "INFO_STAND", "agreeEmail": true, "agreeSMS": true, "children": [ { "name": "Петр", "birthDate": "2024-03-12", "gender": "UNKNOWN" } ], "customFields": [ { "id": "birthday", "value": "2024-03-06" }, { "id": "comments", "value": "qwe" }, { "id": "family_status", "value": "married" }, { "id": "gender", "value": "male" }, { "id": "city", "value": "СПБ" }, { "id": "field_1", "value": "123" }, { "id": "mobile_registration", "value": "true" }, { "id": "house", "value": "1" }, { "id": "building", "value": "1" }, { "id": "automobile", "value": "true" }, { "id": "street", "value": "Невский" }, { "id": "socialLevel", "value": "1" }, { "id": "animals", "value": "FISH,DOG" }, { "id": "region", "value": "РФ" }, { "id": "apartment", "value": "1" }, { "id": "refuse_receipt", "value": "true" } ], "cards": [ { "number": "0000123456789", "category": { "id": 1, "name": "Карты лояльности", "createDate": "2020-02-02T10:10:10.000" }, "status": "CREATED", "statusReason": null, "createDate": "2020-02-02T10:10:10.000", "updateDate": "2020-02-02T10:10:10.000", "shop": "91" } ], "completed": true, "deleted": false } }