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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Показано 1 з 1 послугУсі 1626 послуг
Міграція сайту з Joomla на 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Міграція сайту з 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-контент. У редакторах часто вставляють нестандартні шорткоди розширень — {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 з великим каталогом або використовувалося багато нестандартних розширень з власними таблицями.