cl-lab / amo-middleware
Обёртка для библиотек работающих с API AmoCRM
Requires
- php: >=5.5.0
- dotzero/amocrm: ^0.3.23
This package is not auto-updated.
Last update: 2025-04-02 06:51:21 UTC
README
Установка
Через composer:
$ composer require cl-lab/amo-middleware
Использование
Для использования обёртки пропишите в файле:
use CleverLab\AmoCRM\Middleware;
$amo = new Middleware('SUBDOMAIN', 'LOGIN', 'HASH');
$result = $amo->getAccount();
Соглашения
Любая обёртка для библиотеки должна реализовывать интерфейс CleverLab\AmoCRM\Interfaces\iMiddleware
Это будет гарантировать единообразие и наличие всех необходимых методов, что позволит избежать ошшибок при изменении обёртки в клиентском коде.
При необходимости изменить поведение метода (заменить используемую им библиотеку и т.д.) не переписывать код имеющихся классов (Унаследовать класс от базового и ереопределить нужные методы).
Документация в анотация
Каждый метод обёртки, а так же методы интерфейса документированны в формате phpDoc. Так же в большинстве методов указанны ссылки на документацию по оригинальному методу API.
Документация
Параметры методов
Часть методов, например такие как: получение списка, удаление и др. Являются просто обёрткой над методами библиотеки и принимают на вход точно такие же параметры как и метод библиотеки. Подробнее узнать о передаваемых параметрах можно в документации по API AmoCRM.
Но, методы отвечающие за добавление и групповое добавление берут работу по созданию объектов на себя и принимают на вход параметры для создания этих объектов.
Рассмотрим пример добавления сделки:
За добавление одной сделки отвечает метод addLead($parameters, $debug = false).
Как же должен выглядеть массив содержащийся в $parameters? $parameters является ассациативным массивом который может содержать все те параметры, которые допустимы для данного метода https://developers.amocrm.ru/rest_api/leads_set.php но сложности начинаются на таком параметре как 'custom_fields'. Установка этого параметра в библиотеке dotzero/amocrm-php осуществляется следующим методом:
$lead->addCustomField(167379, [[388733, 'Стартап']]);
Поэтому при передаче параметров ваш массив параметров должен выглядеть так:
$parameters = array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
),
);
Метод так же принимает два необязательных параметра "enum" и "subtype", при необходимости их так же можно указать:
$parameters = array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
'enum' => true,
'subtitle' => true,
),
),
);
При групповом добавлении передаётся список параметров.
За групповое добавление сделок отвечает метод addGroupOfLeads($dataList, $debug = false).
$dataList = array(
array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
),
),
array(
'name' => 'Тестовая сделка2',
'responsible_user_id' => '789344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
array(
'id' => 168596,
'value' => [[384533, 'Стартап2']],
),
),
),
);
При добавлении других сущностей, действуют те же принципы.
При возниконовении вопросов, смотрите метод setParameters($object, $parameters)
При добавлении сущностей типа "Воронки и этапы продаж" вы столкнётесь с параметром "statuses_fields". В dotzero/amocrm-php данный параметр устанавливается следующим методом:
$pipeline->addStatusField([
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
]);
В этом случаи ваш массив должен выглядеть так:
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
),
)
);
Метод "addStatusField" в качетве необязательного параметра может принимать уникальный идентификатор этапа воронки.
Чтобы его передать сформируйте массив параметров следующим образом:
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
);
Для множественного добавления воронок, так же как и в случаи со сделками, сформируйте массив параметров. Как например:
$dataList = array(
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
),
$parameters = array(
'name' => 'Воронка 2',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending2',
'sort' => 11,
'color' => '#fffeb2',
),
),
array(
'parameters' => array(
'name' => 'Pending3',
'sort' => 2,
'color' => '#fffeb2',
),
'id' => 2154,
),
)
)
);