Миграция сайта с Joomla на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Миграция сайта с Joomla на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Миграция сайта с Joomla на 1С-Битрикс

Joomla — универсальная CMS с гибкой структурой расширений. Большинство сайтов на ней — корпоративные порталы, новостные издания, каталоги без полноценной коммерции. Когда бизнес вырастает и нужен полноценный интернет-магазин с интеграцией 1С, CRM и ERP — начинают смотреть в сторону Битрикс. Задача миграции при этом нетривиальная: в Joomla нет единой модели данных, всё зависит от установленных расширений.

Аудит исходного сайта

Прежде чем писать скрипт миграции, проводим инвентаризацию. В Joomla данные хранятся в таблицах с префиксом (обычно jos_ или произвольный):

  • Статьиjos_content, поля: title, alias, introtext, fulltext, catid, created, modified, metadesc, metakey, images (JSON).
  • Категорииjos_categories (общая таблица для всех типов контента, фильтр по extension = 'com_content').
  • Пользователиjos_users, jos_user_profiles, jos_usergroups.
  • Менюjos_menu, jos_menu_types.
  • Тегиjos_tags, jos_contentitem_tag_map.

Если стоит VirtueMart — отдельные таблицы jos_virtuemart_products, jos_virtuemart_product_prices, jos_virtuemart_categories. Если HikaShop — свои jos_hikashop_product. Выясняем это на этапе аудита и строим план переноса под конкретную конфигурацию.

Структура данных в Битрикс

Новостные материалы и статьи Joomla переносятся в инфоблоки (b_iblock_element). Для корпоративного сайта обычно создают инфоблоки «Новости», «Статьи», «Блог» с нужными свойствами. Категории Joomla → разделы инфоблока (b_iblock_section).

Если на Joomla стоял VirtueMart и нужен перенос в интернет-магазин Битрикс — подход такой же, как при миграции с OpenCart: товары в инфоблок каталога, цены в b_catalog_price.

Страницы меню Joomla конвертируются в пункты меню Битрикс через компонент bitrix:menu — структура хранится в файлах .menu.php по директориям сайта.

Перенос контента

Основная масса данных — статьи. Схема переноса:

  1. Читаем jos_content JOIN jos_categories — получаем статью с путём категории.
  2. Создаём раздел инфоблока через CIBlockSection::Add() если он ещё не создан (сохраняем маппинг catid → SECTION_ID).
  3. Создаём элемент инфоблока через CIBlockElement::Add(): NAME = title, PREVIEW_TEXT = introtext, DETAIL_TEXT = fulltext, CODE = alias, ACTIVE_FROM = created.
  4. Мета-теги прописываем в свойства элемента или через модуль main в таблицу b_iblock_element_property.

Изображения в Joomla хранятся в поле images как JSON: {"image_intro":"images/catalog/photo.jpg","image_fulltext":""}. Парсим JSON, скачиваем файлы, регистрируем через CFile::SaveFile().

HTML-контент. В Joomla редакторы часто вставляют нестандартные шорткоды расширений — {loadmodule mod_name}, {phocagallery ...} и т.п. Перед переносом прогоняем контент через регулярки, убираем нераспознаваемые теги или заменяем их на аналоги Битрикс (компоненты в тексте через <?$APPLICATION->IncludeComponent(...)?> нежелательны — лучше убрать и вынести логику отдельно).

Пользователи

jos_users хранит пароли в bcrypt — алгоритм совместим с PHP password_hash(). Битрикс умеет работать с bcrypt, если настроить BX_SECURITY_SESSION_CACHE_MODE. Но стандартный путь — создать пользователей через CUser::Add() со временным паролем и разослать письма на сброс. Группы Joomla (jos_usergroups) маппим на группы Битрикс.

SEO и редиректы

Joomla строит URL по шаблонам компонентов. При включённом SEF-адаптере URL выглядит как /news/category-alias/article-alias.html или /news/article-alias. Без SEF — /index.php?option=com_content&view=article&id=42&catid=5.

Формируем таблицу соответствий старых и новых URL. Для каждой статьи старый URL определяется по alias и пути категорий. Новый URL в Битрикс зависит от настроек ЧПУ компонента. Редиректы прописываем через UrlRewriter::add() или в конфиге веб-сервера.

Особое внимание — sitemap.xml и robots.txt. Если у сайта был накоплен SEO-вес, не меняем структуру URL без 301-редиректов.

Расширения без прямых аналогов

Joomla-расширение Аналог в Битрикс
JComments / K2 Comments Модуль forum или кастомный компонент
AcySailing (рассылки) Модуль subscribe
Akeeba Subscriptions Кастомная разработка или модуль sale
JEvents Инфоблок с типом свойств «Дата»
Phoca Gallery Компонент bitrix:photogallery

Сроки

Этап Типовые сроки
Аудит расширений и структуры данных 1–2 дня
Проектирование инфоблоков и свойств 1 день
Написание и отладка скрипта миграции 2–4 дня
Перенос изображений и медиафайлов 1–2 дня
Перенос пользователей 0,5 дня
Настройка SEO-редиректов 1 день
Финальное тестирование 1 день
Итого 7–11 рабочих дней

Срок увеличивается, если на Joomla стоял VirtueMart с большим каталогом или использовалось много нестандартных расширений с собственными таблицами.