Отправляем заказы из ms2 в лиды CRM Битрикс24 (старый протокол)
В сообществе ни раз задавали вопрос про выгрузку заказов из MODX в CRM Битрикс24. Есть достаточно простой способ создавать лиды по старому протоколу. Делается это одним плагином на событие msOnCreateOrder. Да, функционал будет довольно ограничен, но с помощью него добавить лид вполне возможно, правда не прикрепляя к лиду товары. За то не нужно заморачиваться с созданием приложения, получения токена и т.д.
Плагин
Необходимо указать некоторые настройки в константы:
- CRM_HOST — Хост компании в Битрикс24,
- CRM_LOGIN и CRM_PASSWORD — Логин/пароль юзера в Битрикс24 с правами CRM.
switch ($modx->event->name) {
case 'msOnCreateOrder':
define('CRM_HOST', 'domain.bitrix24.ru');
define('CRM_LOGIN', 'username');
define('CRM_PASSWORD', 'password');
define('CRM_PORT', '443');
define('CRM_PATH', '/crm/configs/import/lead.php');
$data = array(
'order' => $msOrder->toArray(),
'delivery' => $msOrder->Delivery->toArray(),
'payment' => $msOrder->Payment->toArray(),
'address' => $msOrder->Address->toArray(),
'user' => $msOrder->User->toArray(),
'user_profile' => $msOrder->UserProfile->toArray(),
);
$receiver_name = explode(' ', $data['address']['receiver']);
// Формируем данные лида
$post = array(
'LOGIN' => CRM_LOGIN,
'PASSWORD' => CRM_PASSWORD,
'TITLE' => 'Заказ ' . $data['order']['num'],
'COMPANY_TITLE' => 'Сайт',
'NAME' => $receiver_name[0] ?: '',
'LAST_NAME' => $receiver_name[1] ?: '',
'COMMENTS' => $data['address']['comment'],
'OPPORTUNITY' => $data['order']['cost'],
'CURRENCY_ID' => 'RUB',
'ADDRESS' => ($data['address']['country'] . ' ' . $data['address']['region'] . ' ' . $data['address']['city'] . ', ' . $data['address']['street'] . ', ' . $data['address']['building'] . ', ' . $data['address']['room'] . ', ' . $data['address']['index']),
'PHONE_WORK' => $data['address']['phone'],
'WEB_WORK' => '',
'EMAIL_WORK' => $data['user_profile']['email'],
'STATUS_ID' => 'NEW',
'OPENED' => 'Y',
'SOURCE_ID' => 8, // Источник - Заказ на сайте
'ASSIGNED_BY_ID' => 4, // ID ответственного юзера в Битрикс24
);
// Создаем лид
if ($fp = fsockopen('ssl://' . CRM_HOST, CRM_PORT, $errno, $errstr, 30)) {
$post_str = http_build_query($post);
$headers = "POST " . CRM_PATH . " HTTP/1.0\r\n";
$headers .= "Host: " . CRM_HOST . "\r\n";
$headers .= "Content-Type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: " . strlen($post_str) . "\r\n";
$headers .= "Connection: close\r\n\r\n";
$headers .= $post_str;
fwrite($fp, $headers);
$result = '';
while (!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);
$response = explode("\r\n\r\n", $result);
}
break;
}
Итого
Как видите, все довольно просто. Можно даже немножко кастомизировать данные, которые будут попадать в CRM.
Поблагодарить автора
Отправить деньги
Комментарии: 36
Уже как 2 года назад было: FormIT. Собираем заявки(лиды) в Битрикс 24 :)
А в комментарии ниже, тоже есть отправка по новому заказу.
Но справедливости ради, этот код поприятнее выглядит)
А в комментарии ниже, тоже есть отправка по новому заказу.
Но справедливости ради, этот код поприятнее выглядит)
Паша, может через вебхук проще?
Может кому надо будет:
Идем в б24->Приложения->вебхуки
Создаем входящий вебхук с правами CRM. Копируем ссылку.
Идем в modx->системные настройки->создаем настройку «webHookUrl» и в значение вставляем скопированную ссылку.
Создаем плагин, как Выше написал Павел, на событие msOnCreateOrder
Может кому надо будет:
Идем в б24->Приложения->вебхуки
Создаем входящий вебхук с правами CRM. Копируем ссылку.
Идем в modx->системные настройки->создаем настройку «webHookUrl» и в значение вставляем скопированную ссылку.
Создаем плагин, как Выше написал Павел, на событие msOnCreateOrder
<?php
switch ($modx->event->name) {
case 'msOnCreateOrder':
if($webHookUrl = $modx->getOption('webHookUrl',null,false)){
break;
}
$data = array(
'order' => $msOrder->toArray(),
'delivery' => $msOrder->Delivery->toArray(),
'payment' => $msOrder->Payment->toArray(),
'address' => $msOrder->Address->toArray(),
'user' => $msOrder->User->toArray(),
'user_profile' => $msOrder->UserProfile->toArray(),
);
$receiver_name = explode(' ', $data['address']['receiver']);
// Формируем данные лида
$post = array(
'TITLE' => 'Заказ c сайта ' . $data['order']['num'],
'COMPANY_TITLE' => 'Сайт',
'NAME' => $receiver_name[0] ?: '',
'LAST_NAME' => $receiver_name[1] ?: '',
'COMMENTS' => $data['address']['comment'],
'OPPORTUNITY' => $data['order']['cost'],
'CURRENCY_ID' => 'RUB',
'ADDRESS' => ($data['address']['country'] . ' ' . $data['address']['region'] . ' ' . $data['address']['city'] . ', ' . $data['address']['street'] . ', ' . $data['address']['building'] . ', ' . $data['address']['room'] . ', ' . $data['address']['index']),
'PHONE_WORK' => $data['address']['phone'],
'WEB_WORK' => '',
'EMAIL_WORK' => $data['user_profile']['email'],
'STATUS_ID' => 'NEW',
'OPENED' => 'Y',
'SOURCE_ID' => 8, // Источник - Заказ на сайте
'ASSIGNED_BY_ID' => 4, // ID ответственного юзера в Битрикс24
);
// Создаем лид
$queryData = http_build_query(
array(
"fields" => $post
)
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $webHookUrl,
CURLOPT_POSTFIELDS => $queryData,
));
curl_exec($curl);
curl_close($curl);
break;
}
Пардоньте, ошибку у себя заметил:
if(!$webHookUrl = $modx->getOption('webHookUrl',null,false)){
break;
}
Александр, а у меня два вопроса как спецу по интеграции.
1. Как можно передать данные по вебхукам из обычной формы?
2. А куда девать секретный код, который выдаётся Битриксом?
1. Как можно передать данные по вебхукам из обычной формы?
2. А куда девать секретный код, который выдаётся Битриксом?
У Александра в коде ошибка. Он не обозначил метод, с которым работаем… Видимо не проверял код. В данном случае это «crm.lead.add».
1) Вот это положить в assets/b24/bxresthandler.class.php:
2) Создать настройку bx24_resturl с УРЛом вебхука.
3) Создать сниппет-хук для FormIt bx24FormItHook:
4) Вызывать примерно так:
5) Чанк tpl.AjaxForm.example содержит форму с полями, которые используются в сниппете-хуке bx24FormItHook:
1) Вот это положить в assets/b24/bxresthandler.class.php:
<?php
class bxRestHandler
{
public $url;
public $config = array();
/** @var modX $modx */
protected $modx;
/**
* @param modX $modx
* @param array $config
*/
public function __construct(modX &$modx, array $config = array())
{
$this->modx = &$modx;
$this->config = &$config;
$this->url = $this->config['url'] ?: $this->modx->getOption('bx24_resturl');
}
/**
* @param string $action
* @param array $data
* @param string $method
*/
public function request($action, array $data = array(), $method = 'GET')
{
if (empty($this->url)) {
return $this->failure('Empty url');
}
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->url . $action,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_POST => ($method == 'POST'),
CURLOPT_POSTFIELDS => http_build_query($data),
));
$response = curl_exec($curl);
if ($errno = curl_errno($curl)) {
$result = $this->failure('Bad request', array(
'errorCode' => $errno,
'errorMessage' => curl_error($curl),
));
} else {
if ($response = $this->modx->fromJSON($response)) {
if (empty($response['error']) && empty($response['error_description'])) {
$result = $this->success('', $response);
} else {
$result = $this->failure(($response['error_description'] ?: $response['error']), $response);
}
} else {
$result = $this->failure('Bad JSON string');
}
}
curl_close($curl);
return $result;
}
/**
* @param string $message
* @param array $data
*
* @return array
*/
public function success($message = '', $data = array())
{
return array(
'success' => true,
'message' => $message,
'data' => $data,
);
}
/**
* @param string $message
* @param array $data
*
* @return array
*/
public function failure($message = '', $data = array())
{
return array(
'success' => false,
'message' => $message,
'data' => $data,
);
}
}
2) Создать настройку bx24_resturl с УРЛом вебхука.
3) Создать сниппет-хук для FormIt bx24FormItHook:
<?php
if (!$bx = $modx->getService('bxresthandler', 'bxRestHandler', MODX_ASSETS_PATH . 'b24/', array(
'url' => $modx->getOption('bx24_resturl'),
))) {
return;
}
if (!is_object($hook)) {
return;
}
$data = $hook->getValues();
if (!empty($data['form'])) {
$bx->request('crm.lead.add', array(
'fields' => array(
'TITLE' => $data['form'],
'COMMENTS' => $data['comment'] ?: '',
// Контакт
'NAME' => $data['name'],
'PHONE' => array(array(
'VALUE' => $data['phone'],
'VALUE_TYPE' => 'WORK',
)),
'EMAIL' => array(array(
'VALUE' => $data['email'],
'VALUE_TYPE' => 'WORK',
)),
'ADDRESS_CITY' => $data['city'] ?: '',
//
'SOURCE_ID' => $data['source_id'], // ID источника
'ASSIGNED_BY_ID' => 56, // ID ответственного
),
));
}
4) Вызывать примерно так:
{'!AjaxForm' | snippet :[
'snippet' => 'FormIt',
'hooks' => 'email,bx24FormItHook',
'form' => 'tpl.AjaxForm.example',
]}
5) Чанк tpl.AjaxForm.example содержит форму с полями, которые используются в сниппете-хуке bx24FormItHook:
<input type="hidden" name="form" value="Контакты">
<input type="text" name="name" value="">
<input type="text" name="phone" value="">
<input type="text" name="email" value="">
<input type="text" name="city" value="">
<textarea name="comment"></textarea>
Ого! Павел! Низкий поклон вам за такой развёрнутый ответ! Буду пробовать.
С первого захода не получилось))
Вроде сделал всё по инструкции, но не создаётся лид в Битрикс24, я даже жёстко прописывал данные передаваемые из сниппета в Биртикс24, но увы…
Можете подсказать в чём может быть косяк?
Вроде сделал всё по инструкции, но не создаётся лид в Битрикс24, я даже жёстко прописывал данные передаваемые из сниппета в Биртикс24, но увы…
Можете подсказать в чём может быть косяк?
Вот такая ошибка возникает
[2017-09-19 02:13:43] (ERROR @ ******/xpdo/om/xpdoobject.class.php : 240) Error 42000 executing statement:
Array
(
[0] => 42000
[1] => 1055
[2] => Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ab_ab.FormItForm.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
)
<s></s>
Ну так решайте. Она никак не связана с моим кодом. У меня на паре сайтов все работает.
Понял. Раз не у вас, то буду копать. За код спасибо!
Эта ошибка связана с MySQL 5.7. Ищите, в сообществе данный вопрос поднимался не раз.
Я поправил ошибку. Но не в ней дело оказывается было. И после исправления лид не создаётся(
Надо смотреть, как и что вы сделали. У меня с кодом выше все корректно работает, как уже писал выше, на паре сайтов.
Вроде как всё по инструкцмм
1)Создать файл…
https://yadi.sk/i/2z6FaL1i3N2hrU
https://yadi.sk/i/9OGzs3ud3N2hWe
3) Сниппет
https://yadi.sk/i/r820Bx_A3N2i6L
1)Создать файл…
https://yadi.sk/i/2z6FaL1i3N2hrU
<?php
class bxRestHandler
{
public $url;
public $config = array();
/** @var modX $modx */
protected $modx;
/**
* @param modX $modx
* @param array $config
*/
public function __construct(modX &$modx, array $config = array())
{
$this->modx = &$modx;
$this->config = &$config;
$this->url = $this->config['url'] ?: $this->modx->getOption('bx24_resturl');
}
/**
* @param string $action
* @param array $data
* @param string $method
*/
public function request($action, array $data = array(), $method = 'GET')
{
if (empty($this->url)) {
return $this->failure('Empty url');
}
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->url . $action,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_POST => ($method == 'POST'),
CURLOPT_POSTFIELDS => http_build_query($data),
));
$response = curl_exec($curl);
if ($errno = curl_errno($curl)) {
$result = $this->failure('Bad request', array(
'errorCode' => $errno,
'errorMessage' => curl_error($curl),
));
} else {
if ($response = $this->modx->fromJSON($response)) {
if (empty($response['error']) && empty($response['error_description'])) {
$result = $this->success('', $response);
} else {
$result = $this->failure(($response['error_description'] ?: $response['error']), $response);
}
} else {
$result = $this->failure('Bad JSON string');
}
}
curl_close($curl);
return $result;
}
/**
* @param string $message
* @param array $data
*
* @return array
*/
public function success($message = '', $data = array())
{
return array(
'success' => true,
'message' => $message,
'data' => $data,
);
}
/**
* @param string $message
* @param array $data
*
* @return array
*/
public function failure($message = '', $data = array())
{
return array(
'success' => false,
'message' => $message,
'data' => $data,
);
}
}
2) Системная настройкаhttps://yadi.sk/i/9OGzs3ud3N2hWe
3) Сниппет
https://yadi.sk/i/r820Bx_A3N2i6L
<?php
if (!$bx = $modx->getService('bxresthandler', 'bxRestHandler', MODX_ASSETS_PATH . 'b24/', array(
'url' => $modx->getOption('bx24_resturl'),
))) {
return;
}
if (!is_object($hook)) {
return;
}
$data = $hook->getValues();
// if (!empty($data['form'])) {
$bx->request('crm.lead.add', array(
'fields' => array(
'TITLE' => $data['form'],
'COMMENTS' => $data['comment'] ?: '',
// Контакт
'NAME' => $data['name'],
'PHONE' => array(array(
'VALUE' => $data['phone'],
'VALUE_TYPE' => 'WORK',
)),
'EMAIL' => array(array(
'VALUE' => '',
'VALUE_TYPE' => 'WORK',
)),
'ADDRESS_CITY' => $data['city'] ?: '',
//
'SOURCE_ID' => 8, // ID источника
'ASSIGNED_BY_ID' => 1, // ID ответственного
),
));
// }
4) Вызов[[!AjaxForm?
&snippet=`FormIt`
&form=`formTpl`
&hooks=`FormItSaveForm,email,bx24FormItHook`
&formName=`AlfaKassa`
&validate=`name:minLength=^2^,phone:required`
&formFields=`name,phone`
&fieldNames=`name==Имя,phone==Телефон`
&successMessage=`Сообщение успешно отправлено, наш менеджер свяжеться с Вами в ближайшее время`
&emailTpl=`emailTpl`
&emailSubject=`*`
&emailTo=`*`
&emailFrom=`*`
&emailFromName=`*`
]]
5) Форма<form class="order-form" method="post" action="[[~[[*id]]]]">
<span class="h2">Заявка на Альфа‑Кассу</span>
<input type="hidden" name="form" value="Контакты">
<!-- <input type="hidden" name="TITLE" id="" value="Заявка"> -->
<input class="input" type="text" name="name" placeholder="Имя" value="" required>
<!-- <input class="input" type="text" name="COMPANY_TITLE" placeholder="Компания" value="" required> -->
<input class="input" type="tel" name="phone" placeholder="Телефон" value="" required>
<!-- <input class="input" type="email" name="EMAIL_HOME" placeholder="Email" value="" required> -->
<!-- <input class="input" type="text" name="PROMOCODE" placeholder="Промо код" value=""> -->
<label class="ab-check order-data">
<input type="checkbox" value="1" name="check"><span class="ab-check-custom"></span><span class="ab-check-label">Я согласен на обработку персональных данных</span>
</label>
<input class="check-btn button-red" name="submit" type="submit" value="Отправить заявку" id="order-btn">
</form>
я понимаю, что это уже никому не надо, но мало ли.
Там в пункте Системные настройки необходимо убрать слово profile/ из url
Там в пункте Системные настройки необходимо убрать слово profile/ из url
Лид нужно создавать из формы обратной связи на сайте.
А заказ из корзины минишопа нужно отправлять в виде «Сделки», а все товары записывать в «Товары сделки».
Естественно все это делать через «Входящий вебхук» битрикса.
Есть у кого-нибудь такие наработки?
А заказ из корзины минишопа нужно отправлять в виде «Сделки», а все товары записывать в «Товары сделки».
Естественно все это делать через «Входящий вебхук» битрикса.
Есть у кого-нибудь такие наработки?
А заказ из корзины минишопа нужно отправлять в виде «Сделки», а все товары записывать в «Товары сделки».
Есть у кого-нибудь такие наработки?Есть…
Сколько?
Чего «сколько»?
стоит
Если хотите воспользоваться моей услугой — пишите в скайп или телеграм…
Скайп: pavelgvozdb
Телеграм: t.me/pavelgvozdb
Скайп: pavelgvozdb
Телеграм: t.me/pavelgvozdb
В течении этой — следующей недели выпущу готовое решение на б24.
Выпросил разработку у Михаила =)
Пока функционал:
Загрузка заказов из ms2 в битрикс24
Загрузка клиентов из ms2 в битрикс24
Поиск клиентов по базе ms2 в битрикс24 перед загрузкой
Возможность синхронизировать товары
Возможность синхронизировать статусы сделок/заказов.
При оформлении заказа с ms2 добавить новый метод оплаты, который будет брать счет, сформированный в ms2 и проставлять номер заказа по логике битрикс24
Добавлю и работу с formit
Все работать будет также, через вебхук
Выпросил разработку у Михаила =)
Пока функционал:
Загрузка заказов из ms2 в битрикс24
Загрузка клиентов из ms2 в битрикс24
Поиск клиентов по базе ms2 в битрикс24 перед загрузкой
Возможность синхронизировать товары
Возможность синхронизировать статусы сделок/заказов.
При оформлении заказа с ms2 добавить новый метод оплаты, который будет брать счет, сформированный в ms2 и проставлять номер заказа по логике битрикс24
Добавлю и работу с formit
Все работать будет также, через вебхук
Хорошо, что предупредили. Собирался завтра/послезавтра еще пару статей выпустить о том, как добавлять лиды и сделки (с товарами) по новому протоколу взаимодействия (через приложение).
Выпускайте, не стесняйтесь.
Загрузка заказов из ms2 в битрикс24Только не в лид (как выше писали), а в сделку, пожалуйста.
При оформлении заказа с ms2 добавить новый метод оплаты, который будет брать счет, сформированный в ms2 и проставлять номер заказа по логике битрикс24Не совсем понял про новый метод оплаты… Зачем создавать новый метод оплаты для выдергивания номера заказа из битрикса?
По мне, так достаточно чтобы в битрикс передавался вид оплаты и статус оплаты, если не «самовывоз», при этом только в одну сторону, т.к. менеджеры будут сидеть только в битриксе, в админку сайта им незачем лазить.
1) Клиент оформляет заказ через сайт? А как идентифицировать клиента с сайта? В 90% случаев по номеру заказа. На опыте — когда звонит клиент, получается полная неразбериха. В этих целях и планировал брать номер заказа (номер счета) с б24, и то, если выбран способ оплаты на расчетный счет.
Это будет необязательным.
2) Для того, чтобы брать готовый счет с б24 (при оплате на расчетный счет) и выдавать его клиенту автоматом, при смене статуса заказа. (Например «Заказ подтвержден, ожидает оплаты»).
3) В лиды по логике попадают потенциальные клиенты. Из лида в сделку перевести — 1 клик.
Сейчас что готово работает так: если клиент делает повторный заказ (уже в базе найден), попадает в сделки. Если клиент не найден — в лиды. Таким образом можно распределять качество заказа. Товарные позиции в любом случае и туда, и туда попадают
Это будет необязательным.
2) Для того, чтобы брать готовый счет с б24 (при оплате на расчетный счет) и выдавать его клиенту автоматом, при смене статуса заказа. (Например «Заказ подтвержден, ожидает оплаты»).
3) В лиды по логике попадают потенциальные клиенты. Из лида в сделку перевести — 1 клик.
Сейчас что готово работает так: если клиент делает повторный заказ (уже в базе найден), попадает в сделки. Если клиент не найден — в лиды. Таким образом можно распределять качество заказа. Товарные позиции в любом случае и туда, и туда попадают
1) Клиент оформляет заказ через сайт? А как идентифицировать клиента с сайта? В 90% случаев по номеру заказа. На опыте — когда звонит клиент, получается полная неразбериха. В этих целях и планировал брать номер заказа (номер счета) с б24, и то, если выбран способ оплаты на расчетный счет.Если клиент оформляет на сайте. Сразу после оформления заказ (имя, тел, емыл, адрес итд) и все товары (товары из корзины) попадают в б24.
Если клиент звонит/пишет емайл. Менеджеры тоже оформляют заказ на сайте, а не в б24! т.к. нет смысла заново вводить в б24 все товары, цены, свойства, остатки.
В обоих случаях нужно автоматически идентифицировать клиента, с целью не дублирования клиента в б24, по телефону и/или емайлу.
Если клиент звонит в офис после оформления заказа, то его можно идентифицировать первоначально по телефону, имени, емайлу, голосу, а затем уточнить номер заказа, если он вдруг тупанул или богатый и сделал несколько заказов.
Идентификации проходят в системе б24, в админку минишопа менеджер не заходит.
2) Для того, чтобы брать готовый счет с б24 (при оплате на расчетный счет) и выдавать его клиенту автоматом, при смене статуса заказа. (Например «Заказ подтвержден, ожидает оплаты»).Не вижу смысла готовый счет перегонять в минишоп для того чтобы его выслать клиенту, б24 имеет кучу открытых линий и настраиваемых статусов чтобы самостоятельно справиться.
3) В лиды по логике попадают потенциальные клиенты. Из лида в сделку перевести — 1 клик.Я не знаю какие бизнесс-процессы у вас, но у меня если клиент уже выбрал товар, оформил заказ и оплатил его, то он уже не потенциальный клиент, а обыкновенный и нужно срочно начинать работу по нему.
Сейчас что готово работает так: если клиент делает повторный заказ (уже в базе найден), попадает в сделки. Если клиент не найден — в лиды. Таким образом можно распределять качество заказа. Товарные позиции в любом случае и туда, и туда попадают
Если клиент заполнил форму в контактах или хочет чтобы ему перезвонили или какой-то вопрос по товару, то его в лид записывать и звонить/писать ему по настроению.
Менеджеры тоже оформляют заказ на сайте, а не в б24! т.к. нет смысла заново вводить в б24 все товары, цены, свойства, остатки.
Идентификации проходят в системе б24, в админку минишопа менеджер не заходит.А вы мастер противоречий…
Я на личном опыте испытал проблему идентификации. Когда клиент Вам говорит «у меня заказ №1708/4», а б24 проблематично(криво) ищет по кастомным полям. Вообщем то вас никто не станет заставлять активировать данную функцию.
По e-mail? Клиент звонит, диктовать email через ip-телефонию? Глупо. По телефону? Та же практика показывает, клиент может спокойно звонить с рабочего/номера жены/второго номера…
Не вижу смысла готовый счет перегонять в минишоп для того чтобы его выслать клиенту, б24 имеет кучу открытых линий и настраиваемых статусов чтобы самостоятельно справиться.Вы неправильно поняли. Счет, она же, как правило счет-оферта генерируется через б24. Да бы не было путаницы, можно генерировать и отправлять её клиенту автоматом. Опять таки, функционально отключить можно.
оформил заказ и оплатил егоА кто сказал про оплату? Я работал в интернет-магазине с 100тней заказов в день. Как правило, 20% из них запрос цен (тендерщики), 10% оплачиваются с сайта. В рф не так то любят кота в мешке.
хочет чтобы ему перезвонилиКак раз для этого и есть открытые линии.
Сложно в это поверить, что у вас «б24 проблематично(криво) ищет», если набрать в поиске — 1708/4, у меня, например, прекрасно ищет.
Меня начинают терзать смутные сомнения, что вы сможете выпустить качественный продукт.
А если клиент ошибся с написанием емайл, то он опять — тендерщик?
Куда записывать простых лидов, которые мимо проходили и вопрос задали или форму заполнили?
Меня начинают терзать смутные сомнения, что вы сможете выпустить качественный продукт.
Как правило, 20% из них запрос цен (тендерщики), 10% оплачиваются с сайта. В РФ не так то любят кота в мешке.
Сейчас что готово работает так: если клиент делает повторный заказ (уже в базе найден), попадает в сделки. Если клиент не найден — в лиды.1 раз — тендерщик = лид, 2 раз — тендерщик уже не тендерщик = сделка?
А если клиент ошибся с написанием емайл, то он опять — тендерщик?
Куда записывать простых лидов, которые мимо проходили и вопрос задали или форму заполнили?
Сложно в это поверить, что у вас «б24 проблематично(криво) ищет», если набрать в поиске — 1708/4, у меня, например, прекрасно ищет.Вас никто не просит верить. Это факт, какой смысл мне вам лгать?
Меня начинают терзать смутные сомнения, что вы сможете выпустить качественный продукт.
У б24 есть 2 поиска.
А — кривой фильтр (над таблицей сущностей)
Б — Общий поиск (в шапке сайта)
А — почему кривой? Если Вы будете искать клиента «Федоров» хрен он Вам покажет результат. Там прямое совпадение. Нужно искать именно ИП Федоров А. Ю., причем с учетом регистра.
я 2ой месяц за эту хрень бьюсь с разработчиками.
В rest запросах да, можно выбрать точность совпадения, типа LIKE.
Б — общий шарит даже по документам. Если вбить туда скажем «12», то результатов будет много.
Документы дергаются с диска, а на диск закидываются эти документы из почтовых вложений (как правило, иначе почту и б24 Вам не интегрировать). У нас 200 сотрудников. Представьте сколько там pdf,word,excel файликов со значением «12».
Меня начинают терзать смутные сомнения, что вы сможете выпустить качественный продукт.А какое мне дело, что там вас терзает? Вас никто ни к чему не принуждает. Если вам нужно, что бы «работало как надо», Павел дал свои контакты. Не нравится — или делайте сами, или просите разработчиков за отдельную плату.
Выпросил разработку у Михаила =)Александр, не надо утрировать :)
По обоюдному согласию Вы занялись разработкой модуля, тк постоянно взаимодействуете с Б24 и лучше представляете все механизмы, которые в нем реализованы )
я вроде бы это же и написал =(
Тот самый случай, когда формулировка имеет значение :)
Данный плагин работает? Если нет, подскажите есть ли ещё решения для отправки заявок из ms2 в битрикс.
А проверить не вариант? Это старый метод. Лучше использовать вебхуки.
modB24CRM — есть вот такое решение.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.