Доступ к клиентам

Доступ к клиентам по АПИ

Структура моделей, назначение полей

Модель Client — представляет клиента

* @property integer $id // ИД
* @property string $address // Адрес
* @property string $home_phone // Домашний телефон
* @property string $work_phone // Рабочий телефон
* @property string $note // Текст
* @property integer $type_id // Тип клиента
* @property integer $how_find // Как нашли
* @property double $balance //Текущий баланс
* @property string $email // email
* @property integer $city_id // ИД города из модели city
* @property string $date_register // Дата регистрации
* @property string $cell_phone // Мобильный телефон
* @property string $zip // Почтовый индекс
* @property string $last_name // Фамилия
* @property string $first_name //Имя
* @property string $middle_name // Отчество
* @property string $status // 'ACTIVE' - активный,'DISABLED' - неактивный,'DELETED' - удален,'TEMPORARY' - временный
* @property integer $discount //Скидка
* @property string $passport_series //Паспортные данные
* @property string $lab_number //Лабораторный номер
* @property string $street_id // ИД улицы
* @property string $apartment // Номер дома и квартиры
* @property string $unsubscribe // Отписан от уведомлений
* @property integer $in_blacklist //Клиент в черном списке - 1, не в черном списке - 0 
* @property string $last_visit_date // Дата последнего посещения
* @property string $number_of_journal // Номер журнала
* @property integer $phone_prefix //Код страны
* @property object $city_data  // Полная информация о городе 
* @property object $street_data  // Полная информация об улице 
* @property object $client_type_data //Полная информация о типе клиента (временный, постоянный)

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

По умолчанию клиент создается со статусом ACTIVE
Для создания временного клиента нужно указать status — «TEMPORARY».

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/client' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"last_name":"LastName",
"first_name":"FirtsName",
"status":"TEMPORARY"
}'

Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "client": [
          {
               "id": "10",
               "address": "",
               "home_phone": "",
               "work_phone": "",
               "note": "",
               "type_id": null,
               "how_find": null,
               "balance": "0.0000000000",
               "email": "",
               "city": "",
               "city_id": null,
               "date_register": "2021-09-20 09:08:48",
               "cell_phone": "",
               "zip": "",
               "registration_index": null,
               "vip": "0",
               "last_name": "LastName",
               "first_name": "FirtsName",
               "middle_name": "",
               "status": "TEMPORARY",
               "discount": "0",
               "passport_series": "",
               "lab_number": "",
               "street_id": "0",
               "apartment": "",
               "unsubscribe": "0",
               "in_blacklist": "0",
               last_visit_date": "0000-00-00 00:00:00",
               "number_of_journal": "",
               "phone_prefix": ""
          }
          ]
     }
}

Поиск клиента

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/client/clientsSearchData?search_query=0957778899' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Поиск выполняется по полям — Фамилия, Имя, Отчество клиента, номер телефона, e-mail, кличка питомца, название породы. Можно указывать только Фамилию, Имя или Отчество, а если хотите всё вместе, порядок должен быть такой: Имя(first_name) Отчество(middle_name) Фамилия(last_name).

Параметры

*search_query - ФИО
start - с какой записи выгружать, по умолчанию 0
limit - ограничение, сколько записей выгружать. По умолчанию 10
* - обязательные параметры

Ответ сервера

{
    "data": {
        "client": [
            {
               "client_id": 60,
               "last_name": "Иванов",
               "first_name": "Иван",
                "middle_name": "Иванович",
                "email": "",
                "address": "",
                "in_blacklist": 0,
                "description": "",
                "balance": "0.0000000000",
                "type": null,
               "cell_phone": "1234567890",
               "status": "ACTIVE",
                "apartment": "",
                "phone_prefix": "",
                "city_id": 252,
                "city_title": "Город",
                "city_type_id": 1,
                "street_id": null,
                "street_title": null,
                "street_type": null,
                "clinic_phone_prefix": "7",
                "pets": [
                    {
                        "pet_id": 18817,
                        "alias": "Павлик Морозов",
                        "sex": "unknown",
                        "birthday": null,
                        "owner_id": 60,
                        "pet_type": "dog",
                        "breed": "Питбультерьер",
                        "pet_type_title": "Собаки",
                        "pet_type_id": 2
                    }
                ]
            }
        ]
    },
    "success": true
}

Модель Street — улицы

* @property integer $id
* @property string $title
* @property integer $city_id
* @property string $type // Тип улицы enum(street,bulvar,prospeсt,pereulok)

Модель City — города

* @property integer $id // id 
* @property string $title // название 
* @property $type_id // тип населенного пункта

Модель clientPhone — поиск клиентов по номеру телефона нужно осуществлять через эту модель

* @property integer $client_id // содержит id клиента
* @property string $type // может принимать 'home','work' или 'cell'
* @property string $original_phone // содержит оригинальное значение
* @property string $clean_phone // содержит чистый телефон, только цифры.

Модель Pet — питомца

* @property integer $id // ИД питомца
* @property integer $owner_id // Ид владельца
* @property integer $type_id // Вид
* @property string $alias // Кличка
* @property string $sex // Пол enum(MALE, FEMALE, CASTRATED, STERIALIZED)
* @property string $date_register //Дата регистрации
* @property string $birthday // Дата рождения
* @property string $note // Примечание
* @property integer $breed_id // Порода
* @property integer $color_id // цвет
* @property string $deathnote // Примечание при отметке о смерти
* @property string $deathdate // Дата смерти
* @property string $chip_number // Номер чипа
* @property string $lab_number //Номер для лаборатории
* @property string $status //Статус
* @property string $picture //Картинка

Модель PetType — вид питомца

* @property integer $id // ИД
* @property string $title // Название

Модель Breed — породы

* @property integer $id
* @property string $title
* @property integer $pet_type_id

Примеры запросов

Общие сведения о запросах к API

Создание временного клиента

curl -l -H "Accept: application/json" -H "X-REST-API-KEY: {REST API KEY}" -X \ 
POST -d '{"first_name": "Alex", "last_name":"Solt", "status":"TEMPORARY"}' \ https://{DOMAIN NAME}/rest/api/client
{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "client": [{
               "id": "2",
               "address": "",
               "home_phone": "",
               "work_phone": "",
               "fax": "",
               "note": "",
               "type_id": "3",
               "how_find": "8",
               "balance": "0",
               "email": "",
               "city": "",
               "city_id": "50",
               "date_register": "2012-06-15 16:38:28",
               "cell_phone": "",
               "zip": "",
               "registration_index": null,
               "vip": "0",
               "last_name": "Петров",
               "first_name": "Петр",
               "middle_name": "",
               "status": "ACTIVE",
               "discount": "0",
               "passport_series": "",
               "lab_number": "",
               "street_id": "0",
               "apartment": "",
               "unsubscribe": "0",
               "number_of_journal": "",
               "phone_prefix": "0"
          }]
     }
}


Создание питомца с минимальными данными

curl --location -g --request POST 'https://{DOMAIN NAME}/rest/api/pet' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
    {
      "alias": "Little Devil",
      "owner_id": "5",
      "pet_type": "8",
      "breed_id": "600"
    }
}'


{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "pet": [
            {
               "id": 5,
               "owner_id": 5,
               "type_id": 8,
               "alias": "Little Devil",
               "sex": "unknown",
               "date_register": "2024-09-04 13:00:56",
               "birthday": null,
               "note": "",
               "breed_id": null,
               "old_id": null,
               "color_id": null,
               "deathnote": null,
               "deathdate": null
               "chip_number": "",
               "lab_number": "",
               "status": "alive",
               "picture": null,
               "weight": "0.0000000000",
               "edit_date": "2024-09-04 13:00:56",
               "owner": {
                    "id": 5,
                    "address": "",
                    "home_phone": "",
                    "work_phone": "",
                    "note": "",
                    "type_id": null,
                    "how_find": null,
                    "balance": "0.0000000000",
                    "email": "",
                    "city": "",
                    "city_id": 145,
                    "date_register": "2021-06-22 16:19:44",
                    "cell_phone": "",
                    "zip": "",
                    "registration_index": null,
                    "vip": 0,
                    "last_name": "Иванов",
                    "first_name": "Иван",
                    "middle_name": "Иванович",
                    "status": "ACTIVE",
                    "discount": 0,
                    "passport_series": "",
                    "lab_number": "",
                    "street_id": 0,
                    "apartment": "",
                    "unsubscribe": 0,
                    "in_blacklist": 0,
                    "last_visit_date": "2021-06-22 16:24:27",
                    "number_of_journal": "",
                    "phone_prefix": ""
                },
                "type": {
                    "id": 8,
                    "title": "Собачий",
                    "picture": "dog",
                    "type": "dog"
                },
                "breed": {
                    "id": 600,
                    "title": "Австралийская келпи",
                    "pet_type_id": 8
                }
            }
        ]
    }
}

Список обязательных полей

Создание клиента:
Обязательных полей для запроса нет. При передаче пустого запроса создаст клиента с пустыми полями.

Обновление клиента:
Обязательных полей для запроса нет, передадут поле из сущности, его и обновит.

Powered by