# Работа с клиентами (покупателями) Объект покупателя инициализируется следующим образом: ```php $customer = new AtolOnline\Entities\Client(); ``` У объекта покупателя могут быть указаны любые из следующих атрибутов: * email (тег ФФД 1008); * ИНН (тег ФФД 1128); * наименование (тег ФФД 1127); * номер телефона (тег ФФД 1008). > Все эти атрибуты являются **необязательными**. > Если указаны одновременно и email, и номер телефона, то ОФД отправит чек только на email. Указать эти атрибуты можно двумя способами: ```php // 1 способ - через конструктор $customer = new AtolOnline\Entities\Client( 'John Doe', // наименование '+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456 'john@example.com', // email '+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928 ); // 2 способ - через сеттеры $customer = (new AtolOnline\Entities\Client()) ->setEmail('john@example.com') ->setInn('+fasd3\q3fs_=nac9901 3928c-c') // 3399013928 ->setName('John Doe') ->setPhone('+1/22/99*73s dsdas654 5s6'); // +122997365456 // либо комбинация этих способов ``` Метод `setEmail()` проверяет входную строку на длину (до 64 символов) и валидность формата email. Выбрасывает исключения: * `AtolEmailTooLongException` (если слишком длинный email); * `AtolEmailValidateException` (если email невалиден). Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр). Выбрасывает исключение `AtolInnWrongLengthException` (если длина строка ИНН некорректна). Метод `setName()` проверяет входную строку на длину (до 256 символов). Выбрасывает исключение `AtolNameTooLongException` (если слишком длинное наименование). Метод `setPhone()` чистит входную строку от всех символов, кроме цифр и знака `+`, и проверяет длину (до 64 символов). Выбрасывает исключение `AtolPhoneTooLongException` (если слишком длинный номер телефона). Конструктор может выбрасывать любое из указанных выше исключений, если в него передаются значения. Получить установленные значения атрибутов можно через геттеры: ```php $customer->getInn(); $customer->getEmail(); $customer->getName(); $customer->getPhone(); ``` Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`: ```php echo $customer; $json_string = (string)$customer; ``` Чтобы получить те же данные в виде массива, нужно вызвать метод `jsonSerialize()`: ```php $json_array = $customer->jsonSerialize(); ```