Здравствуйте я использую обертку api amo crm
отсюда
Все прекрасно работает . Все поля обновляются кроме мульти полей. Вот основной код c пояснениями
use \AmoCRM\Handler;
use \AmoCRM\Request;
use \AmoCRM\Lead;
use \AmoCRM\Contact;
use \AmoCRM\Note;
use \AmoCRM\Task;
require('autoload.php');
/* Предположим, пользователь ввел какие-то данные в форму на сайте */
$name = $_POST['name'];
$phone = $_POST['phone'];
$test = $_POST['test']; // С формы сайта мульти поля. Подстановка успеха не имела в само поле с api amo crm.
$city = $_POST['city'];
//$city2 = $_POST['city'][1];
//$city3 = $_POST['city'][2];
$email = 'user@user.com';
$utm_source = $_POST['utm_source'];
//$message = $_POST['help'];
//$ma = array('4110502','','4110502');
$message = implode(', ',$test);
//Попытка подставить коды полей из amo crm из value тоже успехом не увенчалась он просто выбирает первое поле и все
$rty1 =4110502;
$rty2 =4110504;
$rty3 =4110506;
/* Оборачиваем в try{} catch(){}, чтобы отлавливать исключения */
try {
$api = new Handler('domain, 'admin@mail.ru',true);
/* Создаем сделку,
$api->config содержит в себе массив конфига,
который вы создавали в начале */
$lead = new Lead();
$lead
/* Название сделки */
->setName('Заявка тест q')
/* Назначаем ответственного менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Кастомное поле */
->setCustomField(
$api->config['LeadFieldCustom2'],$utm_source // ID поля
)
->setCustomField(
$api->config['LeadFieldCustom3'],$city // ID поля
)
/*Кастомное мульти поле. */
->setCustomField(
$api->config['LeadFieldCustom1'],
$api->config['LeadFieldCustom1Value1'],$rty1,
$api->config['LeadFieldCustom1Value2'],$rty2,
$api->config['LeadFieldCustom1Value3'],$rty3
)
/* Теги. Строка - если один тег, массив - если несколько */
->setTags(['тег 1', 'тег 2'])
/* Статус сделки */
->setStatusId($api->config['LeadStatusId']);
/* Отправляем данные в AmoCRM
В случае успешного добавления в результате
будет объект новой сделки */
$api->request(new Request(Request::SET, $lead));
/* Сохраняем ID новой сделки для использования в дальнейшем */
$lead = $api->last_insert_id;
/* Создаем контакт */
$contact = new Contact();
$contact
/* Имя */
->setName($name)
/* Назначаем ответственного менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Привязка созданной сделки к контакту */
->setLinkedLeadsId($lead)
/* Кастомные поля */
->setCustomField(
$api->config['ContactFieldPhone'],
$phone, // Номер телефона
'MOB' // MOB - это ENUM для этого поля, список доступных значений смотрите в информации об аккаунте
)
->setCustomField(
$api->config['ContactFieldEmail'],
$email, // Email
'WORK' // WORK - это ENUM для этого поля, список доступных значений смотрите в информации об аккаунте
)
/* Теги. Строка - если один тег, массив - если несколько */
->setTags(['тег контакта 1', 'тег контакта 2']);
/* Проверяем по емейлу, есть ли пользователь в нашей базе */
$api->request(new Request(Request::GET, ['query' => $phone], ['contacts', 'list']));
/* Если пользователя нет, вернется false, если есть - объект пользователя */
$contact_exists = ($api->result) ? $api->result->contacts[0] : false;
/* Если такой пользователь уже есть - мержим поля */
if ($contact_exists) {
$contact
/* Указываем, что пользователь будет обновлен */
->setUpdate($contact_exists->id, $contact_exists->last_modified + 1)
/* Ответственного менеджера оставляем кто был */
->setResponsibleUserId($contact_exists->responsible_user_id)
/* Старые привязанные сделки тоже сохраняем */
->setLinkedLeadsId($contact_exists->linked_leads_id);
}
/* Создаем заметку с сообщением из формы */
$note = new Note();
$note
/* Привязка к созданной сделке*/
->setElementId($lead)
/* Тип привязки (к сделке или к контакту). Смотрите комментарии в Note.php */
->setElementType(Note::TYPE_LEAD)
/* Тип заметки (здесь - обычная текстовая). Смотрите комментарии в Note.php */
->setNoteType(Note::COMMON)
/* Текст заметки*/
->setText('Проблема: '.$message);
/* Создаем задачу для менеджера обработать заявку */
$task = new Task();
$task
/* Привязка к созданной сделке */
->setElementId($lead)
/* Тип привязки (к сделке или к контакту) Смотрите комментарии в Task.php */
->setElementType(Task::TYPE_LEAD)
/* Тип задачи. Смотрите комментарии в Task.php */
->setTaskType(Task::CALL)
/* ID ответственного за задачу менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Дедлайн задачи */
->setCompleteTill(time() + 60 * 2)
/* Текст задачи */
->setText('Обработать заявку');
/* Отправляем все в AmoCRM */
$api->request(new Request(Request::SET, $contact));
$api->request(new Request(Request::SET, $note));
$api->request(new Request(Request::SET, $task));
} catch (\Exception $e) {
echo $e->getMessage();
}
Кто знает как заставить работать эт обертку с мульти полями, что надо настроить?