Для работы с функциями YCLIENTS у вас должно быть установлено приложение TWIN.
yclients.createRecord
Записывает клиента на услугу.
Сигнатура: yclients.createRecord(salonId int, params Map) ?int
Аргументы:
salonId int
— идентификатор филиала.params Map
— параметры записи:staffId int
— идентификатор сотрудника (обязательный параметр).
services List
— список услуг (обязательный параметр).Каждый элемент — ассоциативный массив с полем:
id int
— идентификатор услугиclient Map
— информация о клиенте (обязательный параметр):
phone string
— номер телефона клиента (обязательный параметр).name string
— имя клиента (обязательный параметр, если клиент новый).email string
— email клиента.datetime string
— дата и время (обязательный параметр).seanceLength int
— длительность сеанса в секундах (обязательный параметр).saveIfBusy bool
— сохранять ли запись, если время занято или нерабочее (по умолчанию false).sendSms bool
— отправлять ли SMS с деталями записи клиенту (по умолчанию false)omment string
— комментарий к записиsmsRemainHours int
— за сколько часов до визита выслать SMS-напоминание (0 — если не нужно, по умолчанию 1)emailRemainHours int
— за сколько часов до визита выслать email-напоминание (0 — если не нужно, по умолчанию 12)
attendance int
— статус записи (по умолчанию 0):customFields Map
— дополнительные поля, настроенные в филиале.recordLabels List
— список идентификаторов категорий записи.customColor string|nil
— цвет записи (по умолчанию null
).apiId string|nil
— идентификатор внешней системы (по умолчанию null
).Пример использования:
$recordId = yclients.createRecord(25344, {"staffId": 2303331, "services": [{"id": 11428840}], "client": {"phone": "79876543210", "name": "Семён", "email": "semen@gmail.com"}, "datetime": "2023-06-07 15:00", "seanceLength": 3600,"saveIfBusy": false, "sendSms": false, "comment": "Комментарий к записи", "smsRemainHours": 1, "emailRemainHours": 12, "attendance": 2, "customFields": {"priority":"high"}, "recordLabels": ["67345", "78549"], "customColor": nil, "apiId": "7894"});
yclients.recordDetails
Получает данные о записи.
Сингатура: yclients.recordDetails(salonId int, recordId int) ?Map
Аргументы:
salonId int
— идентификатор филиалаrecordId int
— идентификатор записиВозвращаемое значение: Ассоциативный массив (Map
), если запись найдена, или nil
— в случае ошибки.
Пример использования:
$record = yclients.recordDetails(25344, 52157914);
// $record будет содержать:
// {
// "id": 52157914,
// "client": {
// "id": 167359987,
// "name": "Семён",
// "surname": "",
// "phone": "+79876543210",
// "card": "",
// "email": "semen@gmail.com"
// },
// "staff": {
// "id": 2303331,
// "name": "Анисимова Полина",
// "specialization": "специалист",
// "position": {
// "id": 231647,
// "title": "Парикмахер"
// }
// },
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "cost": 1000,
// "costToPay": 0,
// "manualCost": 0,
// "costPerUnit": 0,
// "discount": 0,
// "firstCost": 0,
// "amount": 1
// }
// ],
// "date": "2023-06-03T14:33:00+00:00",
// "createDate": "2023-05-31T05:51:44+00:00",
// "comment": "",
// "attendance": 2,
// "length": 4200,
// "lastChangeDate": "2023-06-02T10:26:50+00:00",
// "prepaid": false,
// "prepaidConfirmed": false,
// "deleted": true,
// "apiId": "7894"
//}
yclients.rescheduleRecord
Переносит запись на новое время.
Сигнатура: yclients.rescheduleRecord(salonId int, recordId int, datetime string) bool
Аргументы:
salonId int
— идентификатор филиала.recordId int
— идентификатор записи.datetime string
— новая дата и время в формате y-MM-dd HH:mm
.Возвращаемое значение: true
— в случае успеха, false
— в случае ошибки.
Пример использования:
$success = yclients.rescheduleRecord(25344, 52157914, "2023-06-07 16:00");
yclients.confirmRecord
Подтверждает запись.
Сигнатура: yclients.confirmRecord(salonId int, recordId int) bool
Аргументы:
salonId int
— идентификатор филиала.recordId int
— идентификатор записи.Возвращаемое значение: true
— в случае успеха, false
— в случае ошибки.
Пример использования:
$success = yclients.confirmRecord(25344, 52157914);
yclients.cancelRecord
Отменяет запись.
Сигнатура: yclients.cancelRecord(salonId int, recordId int) bool
Аргументы
salonId int
— идентификатор филиала.recordId in
t — идентификатор записи.Возвращаемое значение: true
— в случае успеха, false
— в случае ошибки.
Пример использования:
$success = yclients.cancelRecord(25344, 52157914);
yclients.deleteRecord
Удаляет запись.
Сигнатура: yclients.deleteRecord(salonId int, recordId int) bool
Аргументы:
salonId int
— идентификатор филиала.recordId int
— идентификатор записи.Возвращаемое значение: true
— в случае успеха, false
— в случае ошибки.
Пример использования:
$success = yclients.deleteRecord(25344, 52157914);
yclients.searchRecords
Выполняет поиск записей по заданному филиалу.
Сигнатура: yclients.searchRecords(salonId int, filters Map) ?List
Аргументы:
salonId int
— идентификатор филиала.filters Map
— фильтры поиска:
staffId int
— идентификатор сотрудника.clientId int
— идентификатор клиента.createdUserId int
— идентификатор пользователя, создавшего запись.startDate string
— дата сеанса, возвращает записи начиная с указанной даты.endDate string
— дата сеанса, возвращает записи до указанной даты.cStartDate string
— дата создания записи, возвращает записи, созданные начиная с указанной даты.cEndDate string
— дата создания записи, возвращает записи, созданные до указанной даты.changedAfter string
— дата создания или изменения записи, начиная с указанной даты.changedBefore string
— дата создания или изменения записи, до указанной даты.Возвращаемое значение: Список записей (List
) при успешном запросе или nil
в случае ошибки.
$records = yclients.searchRecords(25344);
//$records будет содержать:
//[
// {
// "id": 52157914,
// "companyId": 25344,
// "staffId": 2303331,
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "cost": 1000,
// "manualCost": 1000,
// "costPerUnit": 1000,
// "discount": 0,
// "firstCost": 1000,
// "amount": 1
// }
// ],
// "staff": {
// "id": 2303331,
// "name": "Сотрудник 2",
// "specialization": "мужской мастер",
// "position": {
// "id": 264317,
// "title": "Парикмахер"
// },
// "avatar": "",
// "avatarBig": "",
// "rating": 0,
// "votesCount": 0
// },
// "date": "2023-08-13T07:40:00+00:00",
// "datetime": "2023-08-13T04:40:00+00:00",
// "createDate": "2023-08-08T11:18:04+00:00",
// "comment": "",
// "online": false,
// "visitAttendance": 0,
// "attendance": 0,
// "confirmed": true,
// "seanceLength": 3600,
// "length": 3600,
// "smsBefore": true,
// "smsNow": false,
// "smsNowText": "",
// "emailNow": false,
// "notified": false,
// "masterRequest": true,
// "apiId": "",
// "fromUrl": "",
// "reviewRequested": false,
// "visitId": 0,
// "createdUserId": 787095,
// "paidFull": 1,
// "prepaid": false,
// "prepaidConfirmed": false,
// "lastChangeDate": "2023-08-08T11:18:04+00:00",
// "customColor": "",
// "customFontColor": "",
// "recordLabels": [
// {
// "id": 104474,
// "title": "категория",
// "color": "#3b2c54"
// "icon": "icon"
// "fontColor": "#ffffff"
// }
// ],
// "activityId": 0,
// "documents": [
// {
// "id": 8172893,
// "typeId": 7,
// "storageId": 0,
// "userId": 787095,
// "companyId": 25344,
// "number": 8172893,
// "comment": "",
// "dateCreated": "2023-08-13T06:40:00+00:00",
// "categoryId": 0,
// "visitId": 0,
// "recordId": 52157914,
// "typeTitle": "Визит"
// }
// ],
// "smsRemainHours": null,
// "emailRemainHours": null,
// "bookformId": 0,
// "recordFrom": "",
// "isMobile": false,
// "isSaleBillPrinted": false
// }
//]
yclients.recordsByVisits
Позволяет найти записи клиента по истории его посещений.
Сигнатура: yclients.recordsByVisits(salonId int, filters Map) ?List
Аргументы:
salonId
— идентификатор филиала.filters Map
— фильтры поиска:
clientId int
— идентификатор клиента.clientPhone string
— телефон клиента (обязателен, если не указан clientId
).from string
— дата начала периода.to string
— дата окончания периода.paymentStatuses List
— список статусов оплаты визита ("not_paid"
, "paid_not_full"
, "paid_full"
, "paid_over"
).attendance int
— статус посещения (-1
— не пришел, 0
— ожидание, 1
— пришел, 2
— подтвердил запись).Возвращаемое значение: List
в случае успеха или nil
в случае ошибки.
Примечание: Для использования функции необходимо передать либо clientId
, либо clientPhone
, чтобы идентифицировать клиента.
$records = yclients.recordsByVisits(25344, {"clientId": 2303331});
// $records будет содержать:
// [
// {
// "id": 52157914,
// "comment": "",
// "date": "2023-06-21T15:00:00+00:00",
// "visitId": 550229870,
// "attendance": 0,
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "firstCost": 1000,
// "discountPercent": 0,
// "costToPay": 1000,
// "paidSum": 0,
// "paymentStatus": "not_paid"
// }
// ],
// "staff": {
// "id": 2331303,
// "name": "Сотрудник 1",
// "companyId": 25344,
// "specialization": "специалист",
// "avatar": "",
// "avatarBig": "",
// "position": {
// "id": 264317,
// "title": "Парикмахер"
// }
// },
// "company": {
// "id": 25344,
// "title": "Twin"
// },
// "tips": {
// "hasTips": false,
// "sum": null
// },
// "comer": null
// }
// ]
yclients.bookingDates
Запрашивает даты, доступные для бронирования.
Сигнатура: yclients.bookingDates(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map
Аргументы:
salonId
— идентификатор филиала.serviceIds List
— список идентификаторов услуг (опционально).staffId int
— идентификатор сотрудника (опционально).date string
— дата в формате y-MM-dd
(опционально).Возвращаемое значение: Map
в случае успеха или nil
в случае ошибки.
Формат ответа:
bookingDays
— массив дней, доступных для бронирования по указанным услугам.bookingDates
— массив дат с доступными сеансами для сотрудника или филиала.workingDays
— массив рабочих дней, сгруппированных по месяцам.workingDates
— массив дат рабочих смен сотрудника или филиала.// Запрашивает даты доступные для бронирования с фильтром по услугам
$dates = yclients.bookingDates(25344, [75426, 58654]);
// Запрашивает даты доступные для бронирования с фильтром по сотруднику
$dates = yclients.bookingDates(25344, nil, 2303331);
// Запрашивает даты доступные для бронирования с фильтром по дате
$dates = yclients.bookingDates(25344, nil, nil, «2023-06-08»);
// Запрашивает даты доступные для бронирования с фильтром по сотруднику и дате
$dates = yclients.bookingDates(25344, nil, 2303331, «2023-06-08»);
// Запрашивает даты доступные для бронирования с фильтром по услугам и дате
$dates = yclients.bookingDates(25344, [75426, 58654], nil, «2023-06-08»);
// $dates будет содержать:
// {
// «bookingDays»: {
// «6»: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
// «7»: [1, 2, 3, 4, 8, 9, 12, 14, 20, 26, 28],
// «8»: [1, 5, 7]
// },
// «bookingDates»: [
// «2023-06-20», «2023-06-21», «2023-06-22», «2023-06-23», «2023-06-24»,
// «2023-06-25», «2023-06-26», «2023-06-27», «2023-06-28», «2023-06-29»,
// «2023-06-30», «2023-07-01», «2023-07-02», «2023-07-03», «2023-07-04»,
// «2023-07-08», «2023-07-09», «2023-07-12», «2023-07-14», «2023-07-20»,
// «2023-07-26», «2023-07-28», «2023-08-01», «2023-08-05», «2023-08-07»
// ],
// «workingDays»: {
// «6»: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
// «7»: [1, 2, 3, 4, 8, 9, 12, 14, 20, 26, 28],
// «8»: [1, 5]
// },
// «workingDates»: [
// «2023-06-20», «2023-06-21», «2023-06-22», «2023-06-23», «2023-06-24»,
// «2023-06-25», «2023-06-26», «2023-06-27», «2023-06-28», «2023-06-29»,
// «2023-06-30», «2023-07-01», «2023-07-02», «2023-07-03», «2023-07-04»,
// «2023-07-08», «2023-07-09», «2023-07-12», «2023-07-14», «2023-07-20»,
// «2023-07-26», «2023-07-28», «2023-08-01», «2023-08-05»
// ]
// }
</details>
## Получение доступных услуг для бронирования: `yclients.bookingServices`
Запрашивает услуги, доступные для бронирования.
**Сигнатура**: `yclients.bookingServices(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map`
**Аргументы**:
- `salonId` — идентификатор филиала.
- `serviceIds List` — список идентификаторов услуг; при использовании будут возвращены как выбранные услуги, так и дополнительные, доступные по фильтрам.
- `staffId int` — идентификатор сотрудника (опционально).
- `date string` — дата и время в формате `y-MM-dd HH:mm`. Если указана только дата, время будет установлено автоматически как `00:00`.
**Возвращаемое значение**: `Map` в случае успеха или `nil` в случае ошибки.
**Формат ответа**:
- `services List` — список услуг, доступных для бронирования.
- `categories List` — список категорий услуг (категории бронировать нельзя).
<details>
<summary>Примеры использования</summary>
```php
// Запрашивает доступные услуги
$services = yclients.bookingServices(25344);
// Запрашивает доступные услуги с учетом только необходимых
$services = yclients.bookingServices(25344, [75426, 58654]);
// Запрашивает доступные услуги сотрудника
$services = yclients.bookingServices(25344, nil, 2303331);
// Запрашивает доступные услуги на определенное время
$services = yclients.bookingServices(25344, nil, nil, "2023-06-08 12:00");
// Запрашивает доступные услуги сотрудника на определенное время
$services = yclients.bookingServices(25344, nil, 2303331, "2023-06-08 12:00");
// $services будет содержать:
// {
// "services": [
// {
// "id": 11440288,
// "title": "Стрижка",
// "categoryId": 11440287,
// "priceMin": 1000,
// "priceMax": 2000,
// "discount": 0,
// "comment": "",
// "weight": 2,
// "active": 1,
// "sex": 0,
// "image": "",
// "prepaid": "forbidden",
// "seanceLength": 3600,
// "abonementRestriction": 0,
// "prepaidSettings": {
// "status": "forbidden",
// "prepaidFull": {
// "amount": 1000,
// "currency": "RUB"
// },
// "prepaidMin": {
// "amount": 1000,
// "percent": 100,
// "currency": "RUB"
// }
// }
// },
// {
// "id": 12685752,
// "title": "Окрашивание",
// "categoryId": 11440287,
// "priceMin": 3000,
// "priceMax": 3000,
// "discount": 0,
// "comment": "",
// "weight": 0,
// "active": 1,
// "sex": 0,
// "image": "",
// "prepaid": "forbidden",
// "seanceLength": null,
// "abonementRestriction": 0,
// "prepaidSettings": {
// "status": "forbidden",
// "prepaidFull": {
// "amount": 3000,
// "currency": "RUB"
// },
// "prepaidMin": {
// "amount": 3000,
// "percent": 100,
// "currency": "RUB"
// }
// }
// }
// ],
// "categories": [
// {
// "id": 11440287,
// "title": "Категория услуг",
// "sex": 0,
// "apiId": 0,
// "weight": 1
// }
// ]
// }
yclients.bookingStaff
Запрашивает сотрудников, доступных для бронирования.
Сигнатура:
yclients.bookingStaff(salonId int, serviceIds List = nil, date string = nil) ?List
Аргументы:
salonId
— идентификатор филиала.serviceIds List
— список идентификаторов услуг (опционально).date string
— дата в формате y-MM-dd
(опционально).Возвращаемое значение:
List
в случае успеха или nil
в случае ошибки.
// Запрашивает доступных сотрудников
$staff = yclients.bookingStaff(25344);
// Запрашивает доступных сотрудников с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654]);
// Запрашивает доступных сотрудников с учетом даты
$staff = yclients.bookingStaff(25344, nil, "2023-06-08");
// Запрашивает доступных сотрудников на определенную дату с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654], "2023-06-08");
// $staff будет содержать:
// [
// {
// "id": 2631363,
// "apiId": null,
// "name": "Сотрудник 2",
// "specialization": "мужской мастер",
// "rating": 0,
// "showRating": 1,
// "userId": null,
// "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
// "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
// "commentsCount": 0,
// "votesCount": 0,
// "bookable": true,
// "information": "",
// "positionId": 263147,
// "scheduleTill": "2023-08-31",
// "weight": 2,
// "fired": 0,
// "status": 0,
// "hidden": 0,
// "user": null,
// "prepaid": "forbidden",
// "position": {
// "id": 217643,
// "title": "Парикмахер"
// }
// },
// {
// "id": 2331303,
// "apiId": null,
// "name": "Сотрудник 1",
// "specialization": "специалист",
// "rating": 0,
// "showRating": 1,
// "userId": null,
// "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
// "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
// "commentsCount": 0,
// "votesCount": 0,
// "bookable": true,
// "information": "",
// "positionId": 231647,
// "scheduleTill": "2023-07-02",
// "weight": 1,
// "fired": 0,
// "status": 0,
// "hidden": 0,
// "user": null,
// "prepaid": "forbidden",
// "position": {
// "id": 217643,
// "title": "Парикмахер"
// }
// }
// ]
yclients.bookingStaffSeances
Запрашивает ближайшие доступные сеансы сотрудника.
Сигнатура: yclients.bookingStaffSeances(salonId int, staffId int, serviceIds List = nil, date string = nil) ?Map
Аргументы:
salonId
— идентификатор филиала.staffId
— идентификатор сотрудника.serviceIds List
— список идентификаторов услуг (опционально).date string
— дата в формате y-MM-dd
(опционально).Возвращаемое значение: Map
в случае успеха или nil
в случае ошибки.
// Запрашивает доступные сеансы сотрудника
$staffSeances = yclients.bookingStaffSeances(25344, 2331303);
// Запрашивает доступные сеансы сотрудника с учетом услуг
$staffSeances = yclients.bookingStaffSeances(25344, 2331303, [75426, 58654]);
// $staffSeances будет содержать:
// {
// "seanceDate": "2023-06-20",
// "seances": [
// {
// "time": "13:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-20T10:00:00+00:00"
// },
// {
// "time": "13:30",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-20T10:30:00+00:00"
// }
// ]
// }
yclients.bookingTimes
Запрашивает список сеансов, доступных для бронирования.
Сигнатура: yclients.bookingTimes(salonId int, staffId int, date string, serviceIds List = nil) ?List
Аргументы:
salonId
— идентификатор филиала.staffId
— идентификатор сотрудника.date
— дата в формате y-MM-dd
.serviceIds List
— список идентификаторов услуг (опционально).Возвращаемое значение: List
в случае успеха или nil
в случае ошибки.
Примеры использования:
// Запрашивает доступные сеансы сотрудника
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20");
// Запрашивает доступные сеансы сотрудника на определенные услуги
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20", [75426, 58654]);
// $times будет содержать:
// [
// {
// "time": "6:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T03:00:00+00:00"
// },
// {
// "time": "6:30",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T03:30:00+00:00"
// },
// {
// "time": "19:00",
// "seanceLength": 3600,
// "sumLength": 3600,
// "datetime": "2023-06-21T16:00:00+00:00"
// }
// ]
yclients.searchClient
Выполняет поиск клиента по переданным фильтрам.
Сигнатура: yclients.searchClient(salonId int, filters Map) ?int
Аргументы:
salonId
— идентификатор филиала.filters Map
— фильтры поиска:
phone string
— номер телефона клиента (необязательный параметр).email string
— адрес электронной почты клиента (необязательный параметр).Возвращаемое значение: int
, если клиент найден, или nil
, если клиент не найден.
Примеры использования:
// Поиск клиента по номеру телефона
$clientId = yclients.searchClient(1, {'phone': '11111111111'});
// Поиск клиента по почте
$clientId = yclients.searchClient(1, {'email': 'test@mail.com'});
yclients.clientDetails
Получает данные о клиенте.
Сигнатура: yclients.clientDetails(salonId int, clientId int) ?Map
Аргументы:
salonId
— идентификатор филиала.clientId
— идентификатор клиента.Возвращаемое значение: Объект Map
, если клиент найден, или nil
, если клиент не найден.
Пример использования:
$client = yclients.clientDetails(1, 1);
// $client будет содержать:
// {
// "id": 1,
// "email": "test@mail.com",
// "name": "name",
// "surname": "",
// "patronymic": "",
// "phone": "+111111111",
// "categories": [],
// "sex": "Неизвестно",
// "discount": 0,
// "importance": "Без класса важности",
// "card": "",
// "birthDate": "",
// "comment": "",
// "smsCheck": false,
// "smsNot": false,
// "spent": 0,
// "balance": 0,
// "visits": 0,
// "lastChangeDate": "2022-12-19T10:47:21+0400",
// "customFields": []
// }
yclients.createClient
Создает нового клиента.
Сигнатура: yclients.createClient(salonId int, params Map) ?int
Аргументы:
salonId
— идентификатор филиала.params Map
— параметры клиента:
name string
— имя клиента (обязательный параметр).phone string
— телефон клиента (обязательный параметр).email string
— адрес электронной почты клиента (необязательный параметр).sexId int
— пол клиента (1
— мужской, 2
— женский, 0
— неизвестен).importanceId int
— класс важности клиента (0
— нет, 1
— бронза, 2
— серебро, 3
— золото).discount int
— скидка клиента.card string
— номер карты клиента.birthDate string
— дата рождения клиента в формате yyyy-mm-dd
.spent int
— сумма, потраченная клиентом на момент добавления.smsCheck int
— статус SMS-уведомлений (1
— поздравлять с днем рождения по SMS, 0
— не поздравлять).categories List
— список идентификаторов категорий клиента.customFields Map
— дополнительные поля клиента в формате "api-key": "value"
.Возвращаемое значение: int
, если клиент создан успешно, или nil
, если создание не удалось.
Пример использования:
$clientId = yclients.createClient(1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'testclient@mail.com', 'sexId': 1, 'birthDate': '1999-01-01'});
yclients.updateClient
Редактирует информацию о клиенте.
Сигнатура: yclients.updateClient(salonId int, clientId int, params Map) bool
Аргументы:
salonId
— идентификатор филиала.clientId
— идентификатор клиента.params Map
— параметры клиента:
name string
— имя клиента (обязательный параметр).phone string
— телефон клиента (обязательный параметр).email string
— адрес электронной почты клиента.sexId int
— пол клиента (1
— мужской, 2
— женский, 0
— неизвестен).importanceId int
— класс важности клиента (0
— нет, 1
— бронза, 2
— серебро, 3
— золото).discount int
— скидка клиента.card string
— номер карты клиента.birthDate string
— дата рождения клиента в формате yyyy-mm-dd
.spent int
— сумма, потраченная клиентом на момент добавления.smsCheck int
— статус SMS-уведомлений (1
— поздравлять с днем рождения по SMS, 0
— не поздравлять).customFields Map
— дополнительные поля клиента в формате "api-key": "value"
.Возвращаемое значение: true
, если клиент успешно отредактирован, или false
, если редактирование не удалось.
Пример использования:
$client = yclients.updateClient(1, 1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'updateclient@mail.com'});
yclients.createClientComment
Добавляет комментарий к клиенту.
Сигнатура: yclients.createClientComment(salonId int, clientId int, text string) ?int
Аргументы:
salonId
— идентификатор филиала.clientId
— идентификатор клиента.text
— текст комментария.Возвращаемое значение: int
, если комментарий создан, или nil
, если создание не удалось.
Пример использования:
$commentId = yclients.createClientComment(1, 1, 'text');