Перейти до основного вмісту

Оновлення (створення) карти клієнта

URI: /api/v1/promotion/customer

Метод використовується для створення або оновлення дисконтної картки покупця.

Запит виконується методом POST у json форматі з даними.

⚠️ Запит повинен містити заголовок Accept: application/json

Пошук анкети виконується окремо за двома полями:

  • phone
  • discount_card_number

Алгоритм обробки запиту:

  • Збіг за обома параметрами (phone і discount_card_number)

Якщо phone та discount_card_number знаходяться в одній анкеті, оновлюються всі поля, передані у тілі запиту.

  • Збіг за різними анкетами

Якщо phone та discount_card_number знаходяться в різних анкетах, видається помилка.

  • Збіг тільки за phone

Якщо discount_card_number не знайдено, оновлюються всі дані карти, де знайдено phone. Бонуси на рахунку клієнта залишаються без змін.

  • Збіг тільки за discount_card_number

Якщо phone не знайдено, оновлюються всі дані карти, де знайдено discount_card_number. Бонуси на рахунку клієнта залишаються без змін.

  • Відсутність збігів за обома параметрами

Якщо phone та discount_card_number не знайдено, створюється нова анкета.

Параметри запиту

Ім'яТипОбов'язковийОпис
phonestringТакНомер телефона клієнта
last_namestringТакПрізвище клієнта
first_namestringТакІм'я клієнта
middle_namestringНіІм'я по батькові клієнта
city_namestringНіНазва населеного пункту проживання клієнта
addressstringНіАдреса клієнта
address_indexstringНіПоштовий індекс клієнта
address_flatstringНіНомер квартири/будинку клієнта
emailstringНіАдреса електронної пошти клієнта
birthdaystringНіДата народження клієнта
genderstringНіСтать клієнта:
m - чоловік
f - жінка
discount_card_numberstringНіНомер дисконтної картки клієнта
want_free_samplesbooleanНіПрапор згоди отримання безкоштовних зразків
contact_via_phonebooleanНіПрапор згоди зв'язку через телефон
contact_via_smsbooleanНіПрапор згоди зв'язку через СМС
contact_via_emailbooleanНіПрапор згоди зв'язку через електронну пошту
contact_via_messengerbooleanНіПрапор згоди зв'язку через месенджери
agree_terms_conditionsbooleanНіПрапор згоди з правилами та умовами
phone_verifiedbooleanНіПрапор підтвердження номера телефона клієнта

Приклад запиту

Запит: /api/v1/promotion/customer
{
"phone": "380991234567",
"last_name": "Тест",
"first_name": "Анна",
"middle_name": "Тест",
"city_name": "Конотоп",
"address": "Test",
"address_index": "22066",
"address_flat": "12",
"email": "[email protected]",
"birthday": "1993-07-16",
"gender": "f",
"discount_card_number": null,
"want_free_samples": true,
"contact_via_phone": true,
"contact_via_sms": true,
"contact_via_email": true,
"contact_via_messenger": true,
"agree_terms_conditions": true,
"phone_verified": false
}

Параметри відповіді

Ім'яТипОпис
dataobjectДані клієнта
data.phonestringНомер телефона клієнта
data.last_namestringПрізвище клієнта
data.first_namestringІм'я клієнта
data.middle_namestringІм'я по батькові клієнта
data.city_namestringНазва населеного пункту проживання клієнта
data.emailstringАдреса електронної пошти клієнта
data.birthdaystringДата народження клієнта
data.genderstringСтать клієнта:
m - чоловік
f - жінка
data.discount_card_numberstringНомер дисконтної картки клієнта
data.want_free_samplesstringПрапор згоди отримання безкоштовних зразків
data.contact_via_phonestringПрапор згоди зв'язку через телефон
data.contact_via_smsstringПрапор згоди зв'язку через СМС
data.contact_via_emailstringПрапор згоди зв'язку через електронну пошту
data.contact_via_messengerstringПрапор згоди зв'язку через месенджери
data.agree_terms_conditionsstringПрапор згоди з правилами та умовами
data.phone_verifiedstringПрапор підтвердження номера телефона клієнта
data.childrenarrayСписок з роками народження дітей клієнта
data.loyaltystringПрапор активної програми лояльності
data.loyalty_datestringСтрок дії програми лояльності
data.bonusesfloat/doubleКількість бонусів на рахунку клієнта
data.typeobjectТип карти
data.type.idstringID типу карти
data.type.namestringНазва типу карти
data.addressstringАдреса клієнта
data.address_post_codestringПоштовий індекс клієнта
data.address_flatstringНомер квартири/будинку клієнта
data.childrenarrayСписок з роками народження дітей клієнта
data.loyaltybooleanПрапор активної програми лояльності
data.loyalty_datestringСтрок дії програми лояльності

Приклад відповіді

Відповідь: /api/v1/promotion/customer
{
"data": {
"phone": "380991234567",
"last_name": "Тест",
"first_name": "Анна",
"middle_name": "Тест",
"city_name": "Конотоп",
"email": "[email protected]",
"birthday": "16.07.1993",
"gender": "female",
"discount_card_number": "3809998080340",
"want_free_samples": 1,
"contact_via_phone": 1,
"contact_via_sms": 1,
"contact_via_email": 1,
"contact_via_messenger": 1,
"agree_terms_conditions": 1,
"phone_verified": 0,
"bonuses": 0,
"type": {
"id": null,
"name": null
},
"address": null,
"address_post_code": null,
"address_flat": null,
"children": [],
"loyalty": false,
"loyalty_date": null
}
}

Приклади неуспішних відповідей

Відповідь: 400 Bad Request
{
"message": "A card with this phone number and card number already exist separately"
}