171 похожих чатов

Всем привет! Вопрос по компоненту для amocrm. у меня работает в

режиме хука для Formit - ajaxform.
Проблема - не создается контакт в amo, телефон пишется в доп полях.
Создается на сколько я понял, только когда авторизован в modx.
Поковырял исходники. Там вроде как контакт создается на событие - OnUserFormSave (создание, обновление юзера).
Мне надо бы для анонимов сделать. Кто сталкивался?

9 ответов

10 просмотров

Покажи вызов ajaxForm

Сергей-Моисеев Автор вопроса
Николай Савин
Покажи вызов ajaxForm

их много. Ну например вот {'!AjaxForm' | snippet : [ 'frontend_css' => '', 'hooks' => 'nospam,email,FormItSaveForm,amoCRMAddContact', 'formName' => 'Форма санатория', 'formFields' => 'phone,name,categories,arrival_date,departure_date,count,email', 'fieldNames' => ' phone==Телефон, name==Имя, categories==Категории номера, arrival_date==Дата прибытия, departure_date==Дата отбытия, count==Кол-во человек, email==E-mail, ', 'form' => '@FILE chunks/forms/sanatorium.tpl', 'amoCRMmodxAmoFieldsEq' => 'phone||email||name||categories==1081063||arrival_date==1080875||departure_date==1080877||count==1080293||url==1080301||istochnic==1081083', 'emailTpl' => '@FILE chunks/tpls/formit/email.tpl', 'emailSubject' => 'Новая заявка с сайта', 'emailTo' => 'emailTo' | config, 'emailFrom' => 'emailFrom' | config, 'emailFromName' => 'Санатории КМВ', 'validate' => 'phone:required', 'validationErrorMessage' => 'Форма не отправлена, пожалуйста, проверьте заполненные поля.' ]}

Сергей Моисеев
их много. Ну например вот ...

Заполнено верно. Не так давно еще кто-то писал о такой же проблеме. Возможно механизм самого AMO изменился.

Сергей-Моисеев Автор вопроса
Николай Савин
Заполнено верно. Не так давно еще кто-то писал о...

ВОт код создания контакта //Если контакт в базе AMO не найден добавляю новый. Иначе обновляю //TODO Разделить на разные методы if (empty($amoUserId)) { unset($contact['id']); //Добавляю новый контакт $response = $this->tools->invokeEvent('amocrmOnBeforeUserSend', [ 'contact' => $contact, 'action' => 'add', 'modUserId' => $modUserId, 'amoUserId' => $amoUserId, 'amoCRM' => $this, ]); $contact = array_merge($contact, $response['data']['contact']); $data = [$contact]; $result = $this->tools->sendRequest('/api/v4/contacts', $data, 'POST'); $contactData = $result['_embedded']['contacts'][0]; if (isset($contactData['id'])) { $amoUserId = $contactData['id']; if ($modUserId) { $this->setUserId($modUserId, $amoUserId); } } $this->tools->invokeEvent('amocrmOnUserSend', [ 'contact' => $contact, 'action' => 'add', 'modUserId' => $modUserId, 'amoUserID' => $amoUserId, 'amoCRM' => $this, 'amoCRMResponse' => $result, ]); return $amoUserId; } Надо попробовать подебажить его наверное

Для начала. Во-первых событие регистрации пользователя в данном случае не при чем. Инициация передачи контакта в CRM происходит из хука Во вторых для решения проблемы нужно расставить логи и посмотреть где теряются данные. Регистрацией клиента занимается класс amocrm/controllers/contacts.php Открыть метод prepareContact() и в нем по ходу процесса расставить логи. Затем то же самое в методе addContact()

Сергей-Моисеев Автор вопроса
Сергей-Моисеев Автор вопроса
Сергей Моисеев
ВОт код создания контакта //Если контакт в баз...

Т.е получается вот этот код из хука не работает?

Сергей Моисеев
Т.е получается вот этот код из хука не работает?

Это код не из хука. А из класса компонента. Я не знаю, я не работаю с АМО. Он работал точно. Возможно какие то механизмы изменились. Говорю же расставь логи и посмотри на каком шаге теряются данные

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта