Міграція Joomla на 1С-Бітрікс: інструкція та терміни

Перенесення сайту з Joomla на 1С-Бітрікс: покрокова інструкція та терміни Joomla — універсальна CMS з гнучкою структурою розширень. Більшість сайтів на ній — корпоративні портали, новинні видання, каталоги без повноцінної комерції. Коли бізнес виростає і потрібен повноцінний інтернет-магазин з ін
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Міграція Joomla на 1С-Бітрікс: інструкція та терміни
Середній
~1-2 тижні

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

Часті запитання

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

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

Перенесення сайту з Joomla на 1С-Бітрікс: покрокова інструкція та терміни

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

Чому міграція з Joomla на Бітрікс — складне завдання?

Головна проблема — нестандартизована схема даних Joomla. У базі майже завжди є кастомні розширення — VirtueMart, HikaShop, JEvents, Phoca Gallery. Кожне зберігає дані у власних таблицях. Наприклад, VirtueMart використовує jos_virtuemart_products, а HikaShop — jos_hikashop_product. Ми на етапі аудиту складаємо карту розширень і визначаємо, які дані критичні для перенесення.

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

Перш ніж писати скрипт міграції, проводимо інвентаризацію. У 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(...)?> небажані — краще прибрати і винести логіку окремо).

Наприклад, на нещодавньому проекті ми переносили інтернет-магазин із 5000 товарів на VirtueMart. Завдяки автоматизованим скриптам скоротили час перенесення даних із двох тижнів до трьох днів, зберігши всі SEO-позиції. Це в 4,7 рази швидше порівняно з ручним копіюванням. Наш скрипт пришвидшує перенесення втричі порівняно з ручним копіюванням.

Користувачі

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

Що входить у роботу при міграції

Ми надаємо повний комплект:

  • Детальний аудит поточної CMS та розширень.
  • Схему перенесення даних: які таблиці маппяться, які вимагають кастомної обробки.
  • Скрипти міграції (PHP-консольні команди) з тестуванням на копії сайту.
  • Перенесення зображень, медіафайлів та їх прив'язка до елементів.
  • Налаштування SEO-редиректів (301) для всіх сторінок.
  • Перенесення користувачів з групами доступу.
  • Фінальне тестування та навчання вашої команди роботі з Бітрікс.

Терміни

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

Вартість типової міграції — від 500 до 1500 €, залежно від складності. Економія до 30% при замовленні комплексної міграції.

Термін збільшується, якщо на Joomla стояв VirtueMart з великим каталогом (понад 5000 товарів) або використовувалося багато нестандартних розширень з власними таблицями.

Ми маємо 12+ років досвіду в міграції сайтів і реалізували понад 50 проектів із переходу на Бітрікс. Ми гарантуємо збереження даних і прозорий процес. Оцінимо ваш проект безкоштовно — напишіть нам, і наш інженер проведе аудит за 1 день.

За даними офіційної документації Бітрікс, інфоблоки v2.0 підтримують до 16 млн елементів — цього достатньо для великих каталогів. Наш досвід підтверджує стабільність при навантаженні до 100 000 товарів з увімкненим торговим каталогом. Порівняно з Joomla, швидкість завантаження сторінок на Бітрікс зростає в середньому в 2–3 рази завдяки вбудованій системі кешування.