Модель 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 } } ] } }
Список обязательных полей
Создание клиента:
Обязательных полей для запроса нет. При передаче пустого запроса создаст клиента с пустыми полями.
Обновление клиента:
Обязательных полей для запроса нет, передадут поле из сущности, его и обновит.