Перейти к основному содержимому

Создание пользователя Битрикс на основе контрагента (при импорте заказа из МС)

к сведению

Алгоритм поиска пользователя БУС на основе контрагента МС при создании заказа из МС в БУС.

Если у вас включен импорт заказов из МС в БУС, то модуль будет пытаться найти подходящего пользователя для заказа БУС на основе контрагента МС, ниже будет описан алгоритм действий модуля.

Эти же правила будут применяться, если вы включили опцию «Менять покупателя заказа БУС при изменении контрагента заказа МС» (см. ниже).

Шаг 1. Первичная проверка интеграций:​

Проверяется наличие модуля "Обмен контрагентами по API"

МойСклад: Обмен контрагентами по API

Если модуль установлен и в текущем модуле отмечена опция «Искать и создавать пользователя БУС при импорте заказа» (блок интеграции в начале вкладки «Контрагент», подробнее — Интеграции с другими модулями):

image_1

То поиск (и при необходимости создание) пользователя будет осуществлен внешним модулем. Если внешний модуль пользователя не нашёл и не создал, модуль продолжает поиск по шагам ниже.

Шаг 2. Поиск по основным полям пользователя:​

Модуль последовательно ищет пользователя и останавливается на первом найденном:

  1. По внешнему коду (XML_ID) — совпадение с внешним кодом контрагента
  2. По email адресу — совпадение с email контрагента
  3. По логину — для поиска используется тот же email контрагента
  4. По телефону для авторизации — владелец номера телефона контрагента в таблице авторизации по телефону Битрикс

Поиск по телефону для авторизации выполняется всегда, независимо от того, включена ли в главном модуле регистрация или обязательная авторизация по телефону. Номер сравнивается в нормализованном виде, поэтому формат записи (+7 или 8, скобки, пробелы, дефисы) значения не имеет. Если номер уже закреплён за пользователем сайта, заказ будет привязан к этому пользователю, а не к пользователю по умолчанию.

к сведению

Телефон контрагента предварительно приводится к цифрам и проверяется. Если номер некорректный, модуль не использует его ни при поиске, ни при создании пользователя.

примечание

Скриншот настроек главного модуля для авторизации по телефону ниже относится к старым версиям модуля: сейчас эти настройки на поиск пользователя по телефону не влияют.

image_2

Шаг 3. Расширенный поиск по настраиваемым свойствам:​

Дальше модуль применяет настройки раздела Поиск контрагента «в обратную сторону»: берёт выбранные поля в порядке приоритета и для каждого поля, заполненного у контрагента, ищет пользователя сайта.

Вариант 1. Если включен разделенный поиск для разных типов плательщиков:​

image_3

В этом варианте модуль определяет тип плательщика по типу контрагента (юр. лицо, ИП, физ. лицо) — по соответствию из опции «Тип контрагента в МС при создании» для типов плательщика сайта, на который импортируются заказы. Если отмечена опция «Объединить юр. лицо и ИП при поиске контрагента в МС», контрагенту-ИП назначается тот же тип плательщика, что и юр. лицу.

Далее модуль зеркально применяет правила поиска этого типа плательщика:

  • Если отмечена опция «Брать значения для поиска только из свойств заказа или профиля покупателя» (а для ИНН — всегда), значение поля контрагента ищется в выбранном свойстве среди профилей покупателей. Если профиль найден, берётся его пользователь и сам профиль. Как пример на скриншоте ниже, модуль будет подставлять email и телефон и искать их среди свойств профилей покупателей.
  • Иначе поиск идёт по полям самого пользователя: внешний код — по XML_ID, email — по EMAIL, телефон — сначала по телефону для авторизации, затем по полю «Телефон» в личных данных пользователя.

image_4

Вариант 2. Если не включен раздельный поиск.​

Модуль ищет напрямую по полям самого пользователя — по полям из общего списка «Выберите поля для поиска» в порядке приоритета (внешний код, email, телефон). По телефону поиск идёт сначала по телефону для авторизации, затем по полю «Телефон» в личных данных.

Поле «Телефон» в личных данных

Поле «Телефон» в личных данных пользователя заполняется в свободной форме, поэтому модуль сравнивает только цифры: «+7 (926) 139-00-18», «8 926 139-00-18» и «79261390018» считаются одним и тем же номером. Первая цифра 7 и 8 взаимозаменяемы.

Шаг 4. Создание нового пользователя, если не найден существующий:​

  • Создается новый пользователь с данными:
    • Имя — из поля «Наименование» контрагента в МС
    • Логин — email контрагента. Если email у контрагента не заполнен или длиннее 50 символов (ограничение логина в Битрикс), логин формируется как «идентификатор контрагента в МС@домен». Домен настраивается во вкладке «Прочее», по умолчанию — from.ms
    • Email — email контрагента, а если он не заполнен — тот же логин
    • Внешний код — из внешнего кода контрагента
    • Случайный пароль
    • Телефон для авторизации и поле «Телефон» в личных данных (если у контрагента есть корректный телефон)
warning

Если пользователя создать не удалось (например, email уже занят другим пользователем), заказ будет привязан к пользователю из опции «ID пользователя по умолчанию (при ошибке импорта контрагента)» во вкладке «Импорт заказа», а текст ошибки Битрикс попадёт в лог. Если пользователь по умолчанию не указан, заказ на сайте не будет создан.

Шаг 5. Работа с профилем покупателя:​

  • Если пользователь найден/создан, у него ищется профиль покупателя с нужным типом плательщика. Если таких профилей несколько, предпочтение отдаётся профилю, название которого совпадает с наименованием контрагента
  • Если профиль не найден — создается новый с названием, равным наименованию контрагента
Тип плательщика заказа

Тип плательщика определяется по контрагенту только при включённом раздельном поиске (см. шаг 3) или внешним модулем интеграции. Без раздельного поиска заказу назначается тип плательщика с ID 1.

Шаг 6. Создание контакта в CRM:​

Шаг актуален для редакции интернет магазин + CRM или коробки Б24.

  • Если включена опция «Создавать новый контакт при импорте контрагента» во вкладке «Импорт заказа»:
    • Ищет существующий контакт по телефону
    • Ищет существующий контакт по email
    • Если не найден - создает новый контакт

Менять покупателя заказа БУС при изменении контрагента заказа МС​

Опция находится в самом низу вкладки «Контрагент», в блоке «Настройки при импорте контрагента».

При отмеченной опции модуль при импорте изменений заказа из МС в уже существующий заказ сайта заново определяет пользователя по контрагенту заказа МС (по алгоритму выше) и устанавливает его покупателем заказа БУС, а также обновляет свойства заказа из профиля покупателя.

warning

Алгоритм выполняется при каждом импорте изменений заказа, а не только при смене контрагента. Если подходящий пользователь не найден, он будет создан (шаг 4).