Для работы с функциями 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);
// Запрашивает даты доступные для бронирования с фильтром по услугам
$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"
// ]
// }
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
— список категорий услуг (категории бронировать нельзя).// Запрашивает доступные услуги с учетом только необходимых
$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
// }
// ]
// }
</details>
## Получение доступных сотрудников для бронирования: `yclients.bookingStaff`
Запрашивает сотрудников, доступных для бронирования.
**Сигнатура**:
`yclients.bookingStaff(salonId int, serviceIds List = nil, date string = nil) ?List`
**Аргументы**:
- `salonId` — идентификатор филиала.
- `serviceIds List` — список идентификаторов услуг (опционально).
- `date string` — дата в формате `y-MM-dd` (опционально).
**Возвращаемое значение**:
`List` в случае успеха или `nil` в случае ошибки.
<details>
<summary>Примеры использования</summary>
```php
// Запрашивает доступных сотрудников
$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');
yclients.cancelRecord
Отменяет запись через смену статуса в CRM Yclients. Это действие позволяет клиенту получить уведомление об отмене, если уведомления настроены в Yclients.
Сигнатура: yclients.cancelRecord(salonId int, recordId int) bool
Аргументы:
salonId int
— идентификатор филиала.recordId int
— идентификатор записи.Возвращаемое значение: true
— в случае успеха, false
— в случае ошибки.
Пример использования:
$success = yclients.cancelRecord(25344, 52157914);