Что умеет решение
Модуль IDETA «Перенос пользователей и заказов» обеспечивает миграцию данных со старого сайта на платформу 1С-Битрикс. Переносятся пользователи, группы, пользовательские поля, аватары, пароли и история заказов. Для работы достаточно загрузить один файл на старый сайт; решение совместимо с PHP 7 и кодировкой windows-1251. Процесс миграции пошаговый, его можно приостанавливать и возобновлять, а повторный запуск исключает создание дубликатов записей. Клиентская база переносится вместе с паролями, что позволяет пользователям входить в личный кабинет на новом сайте под теми же учетными данными и видеть полную историю своих заказов.
Переносимые данные включают:
Пользователи: все поля профиля, даты регистрации и последнего входа, а также статус активности.
Пароли: хэши передаются в неизменном виде, поэтому пользователям не требуется восстановление паролей.
Выборочная миграция: вместо переноса целых групп можно указать конкретный список ID, логинов или e-mail. Модуль перенесет только указанных пользователей и их заказы, а тех, кого не удалось найти, запишет в журнал событий.
Модуль позволяет переносить пользователей из нескольких групп за один запуск. Для каждой группы источника можно выбрать одно из трёх действий: добавить пользователей в существующую группу на новом сайте, создать аналогичную группу или не назначать группу вовсе.
Поддерживаются пользовательские поля типов UF_*: строка, число, дата, дата и время, да или нет, список, ссылка и файл. Поля создаются автоматически, а значения списков сопоставляются по идентификаторам XML_ID и названиям.
Переносятся файлы: фотографии и логотипы в профилях, а также файлы в пользовательских полях. Поддерживается перенос файлов из облачных хранилищ.
Переносятся заказы: корзина со свойствами позиций, свойства заказа, оплаты и отгрузки, статус, отмена, комментарии, исходные даты и номер заказа.
Подключение старого сайта осуществляется двумя способами. Первый способ использует файл выгрузки: модуль на новом сайте генерирует один PHP-файл, который загружается на старый сайт через FTP. Установка дополнительного ПО на старом сайте не требуется; файл работает со старыми редакциями ядра и интернет-магазина в кодировке windows-1251. Второй способ требует установки модуля на обоих сайтах; он подходит, если старый сайт работает на PHP 8.2 и выше, а также на ядре 23 и выше. Ни в одном из способов не требуется пароль администратора старого сайта, а также доступ к базе данных.
Защищённый обмен данными. Каждый запрос подписывается секретным ключом с использованием алгоритма HMAC-SHA256 и валиден в течение пяти минут. Доступ можно ограничить по IP-адресу. Файлы выгрузки имеют ограниченный срок действия (по умолчанию семь дней). При смене ключа все ранее скачанные файлы становятся недействительными.
Процесс переноса выполнен пошагово с возможностью возобновления. Данные передаются порциями с отображением индикатора прогресса. Операцию можно приостановить, закрыть вкладку браузера и продолжить позже. При разрыве соединения текущий шаг повторяется автоматически.
Модуль исключает создание дубликатов: он запоминает уже перенесённых пользователей, заказы и файлы. Повторный запуск переносит только новые данные.
При работе с существующими пользователями совпадения определяются по логину или адресу электронной почты. Совпавший аккаунт можно оставить без изменений, привязав к нему только заказы, либо обновить. Учётные записи администраторов нового сайта никогда не изменяются.
Заказы переносятся как исторические данные. Каталог и остатки нового сайта не затрагиваются: резервы не создаются, списания не производятся, скидки не пересчитываются, письма покупателям не отправляются. Товары связываются с каталогом нового сайта по идентификатору XML_ID, если он найден. Типы плательщиков, статусы, платёжные системы и службы доставки сопоставляются автоматически. В мастере настройки это сопоставление можно скорректировать вручную. Если на новом сайте отсутствуют нужные статусы или платёжные системы, модуль создаёт их самостоятельно (платёжные системы создаются неактивными). Финансовые данные не теряются: несопоставленные платежи переносятся на платёжную систему по умолчанию с сохранением суммы, флага оплаты и исходного названия системы.
Повторный перенос заказов. Если автоматическое сопоставление прошло неудачно, в задании доступна кнопка для повторного запуска. Модуль удалит ранее созданные заказы и перенесёт их заново с обновлёнными настройками. Заказы, созданные на сайте другими средствами, не затрагиваются.
Детальный журнал событий. Если перенос пользователя или заказа не удался, в журнале указывается конкретная запись и причина сбоя. Ошибка при обработке одной записи не останавливает перенос остальных данных.
Модуль подходит для следующих задач:
Перенос интернет-магазина на новый сайт или новую редакцию.
Объединение нескольких сайтов в единую систему.
Перенос клиентской базы между тестовым и рабочим сайтами в обоих направлениях.
Ограничения переноса
Пользовательские поля, ссылающиеся на справочники старого сайта (привязка к элементу или разделу инфоблока, к сотруднику и прочее), не переносятся. Каждое такое поле фиксируется в журнале.
Все позиции заказа объединяются в одну отгрузку, даже если на старом сайте было несколько отгрузок.
Заказы с несопоставленным типом плательщика не переносятся.
В старых версиях «Интернет-магазина» (до 16.0) в заказе присутствовали только одна оплата и одна доставка — они переносятся. Значения свойств типа «Местоположение» переносятся без изменений: если на старом сайте использовался ID вместо кода местоположения, эти значения необходимо проверить.
Обработчики событий заказа на новом сайте (например, обмен с 1С, CRM и другие интеграции) срабатывают на каждый перенесённый заказ. При необходимости отключите их на время миграции.
Требования к новой системе
Версия PHP: 8.2 и выше.
Главный модуль: версия 23.0 и выше.
Кодировка: UTF-8.
База данных: MySQL.
Вариант 1. Использование файла выгрузки (подходит для любого старого сайта)
1. Установите модуль на новый сайт.
2. Откройте раздел «Настройки модуля» и перейдите в подраздел «Приёмник».
3. Укажите адрес старого сайта и выберите опцию «на источник загружен файл выгрузки».
Для переноса данных доступны два варианта настройки. Первый способ подходит для любого старого сайта: скачайте файл выгрузки, загрузите его в директорию /bitrix/tools/ на старом сайте через FTP или файловый менеджер хостинга, затем нажмите кнопку «Сохранить и проверить соединение». Далее откройте раздел «Настройки → IDETA: Перенос пользователей и заказов → Новый перенос», выберите нужные группы и параметры, а при переносе заказов сопоставьте соответствующие справочники. После завершения процесса удалите файл ideta_tu_export.php со старого сайта.
Второй способ доступен, если модуль установлен на обоих сайтах, при этом старый сайт должен работать на PHP версии 8.2 или выше и ядре версии 23 или новее. Установите модуль на оба ресурса. На старом сайте в разделе «Настройки модуля → Источник» активируйте опцию «Разрешить выгрузку» и скопируйте полученный секретный ключ. На новом сайте в разделе «Настройки модуля → Приёмник» выберите вариант «на источнике установлен этот модуль», укажите адрес старого сайта и вставьте ключ, после чего нажмите «Сохранить и проверить соединение». Запуск переноса выполняется по сценарию первого варианта. По завершении работы отключите выгрузку на старом сайте.
Модуль полностью переписан на базе D7. Обмен данными осуществляется через подписанное API, что исключает необходимость входа в административную часть по паролю.
Модуль IDETA: Перенос пользователей и заказов
Добавлена возможность сопоставления статусов заказов и платёжных систем с их автоматическим созданием. Для платежей без привязки к конкретному методу теперь используется платёжная система по умолчанию. Реализована кнопка повторного переноса заказов.
Реализован перенос отдельных пользователей по списку идентификаторов, логинов или адресов электронной почты. Добавлен поиск существующих пользователей по цепочке ключей: логин, e-mail, телефон, XML_ID и пользовательские поля.
Внедрён формат файла выгрузки для старых сайтов. Установка модуля на источник данных больше не обязательна; поддерживаются среды на базе PHP 7.0 и выше с кодировкой windows-1251.
Обновлён процесс переноса заказов, файлов и аватаров. Добавлена функция сопоставления групп пользователей, позволяющая обрабатывать несколько групп за один запуск.
Поддерживаются задания с возможностью паузы и продолжения, ведётся журнал ошибок, исключается создание дубликатов данных.
Пароль администратора старого сайта больше не сохраняется в настройках модуля.
Если нужен «IDETA: Перенос пользователей и заказов», General iT может помочь с установкой, настройкой и технической проверкой модуля после подключения.