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

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

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

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

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

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

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

Drupal — потужна CMS з розвинутою архітектурою entity/field. Часто вибирають під складні портали, державні сайти, багатомовні платформи. Перехід на Бітрікс зазвичай продиктований корпоративними вимогами: інтеграція з 1С, єдина екосистема з Bitrix24, або необхідність мати сертифіковану в Росії CMS. Міграція з Drupal технічно складніша, ніж з більшості інших CMS, через гнучку, але нестандартну модель зберігання даних.

Модель даних Drupal

У Drupal 7 контент зберігається через систему Field API. Кожне поле вузла (node) зберігається в окремій таблиці з іменем виду field_data_{field_name} і field_revision_{field_name}. Основні таблиці:

  • node — базова запис: nid, type, title, uid, status, created, changed.
  • node_revision — історія ревізій.
  • field_data_body — тіло матеріалу: body_value, body_summary, body_format.
  • field_data_{custom_field} — довільні поля, одна таблиця на кожне.
  • taxonomy_term_data, taxonomy_vocabulary — таксономія (категорії, теги).
  • file_managed — медіафайли.
  • users, users_roles, role — користувачі.

У Drupal 8/9 архітектура подібна, але зберігання через Doctrine DBAL та конфіги в YAML. Таблиці: node__body, node__field_{name} (одна таблиця на поле, всі ревізії в node_revision__*).

Проектування структури у Бітрікс

Кожен тип контента (content type) Drupal стає інфоблоком у Бітрікс. Таксономія — розділи інфоблоку або властивості типу «Список». Поля node маппируємо на властивості інфоблоку.

Перед написанням скрипта складаємо таблицю маппінгу:

Drupal Тип Бітрікс Тип властивості
field_data_body.body_value text_long DETAIL_TEXT
field_data_image.field_image_fid image PREVIEW_PICTURE
field_data_field_tags term_reference PROPERTY_TAGS Список
field_data_field_price decimal PROPERTY_PRICE Число

Скрипт міграції

Drupal 7: скрипт читає дані через PDO з MySQL-бази Drupal. Для кожного node:

SELECT n.nid, n.title, n.created, b.body_value, b.body_summary
FROM node n
LEFT JOIN field_data_body b ON b.entity_id = n.nid AND b.bundle = 'article'
WHERE n.type = 'article' AND n.status = 1

Потім для кожного поля — окремий JOIN або підзапит. Результат — масив даних для CIBlockElement::Add().

Медіафайли. У Drupal файли реєструються в file_managed з полем uri формату public://photos/image.jpg. Фізично файл лежить в sites/default/files/photos/image.jpg. Копіюємо файли, реєструємо через CFile::SaveFile(), прив'язуємо до елемента.

Таксономія. Терміни таксономії (taxonomy_term_data) переносимо як розділи інфоблоку або як значення властивостей типу «Список». Якщо у Drupal у одного матеріалу кілька терміцев з одного словника — створюємо властивість «Множественное» у Бітрікс.

Мультимовність

Drupal має вбудовану мультимовність через модулі i18n (Drupal 7) або вбудований Content Translation (Drupal 8+). Переводи зберігаються в field_data_* з різними значеннями language. Бітрікс підтримує мультимовність через інфоблоки з LANGUAGE_ID або через різні сайти в одній установці. Якщо сайт мультимовний — цей етап вимагає окремого проектування.

Views та блоки

Drupal Views — динамічні списки матеріалів з фільтрацією та сортуванням. У Бітрікс їх аналог — компонент bitrix:news.list з параметрами фільтрації. Прямого переносу Views не існує: кожен View аналізується вручну та реалізується як компонент або кастомний код.

Блоки Drupal (region/block) — у Бітрікс це області ($APPLICATION->ShowPanel()) та компоненти в шаблоні. Структура сторінок переносится при розробці дизайну, не при міграції даних.

Модулі Drupal без аналогів

Webform → форми через bitrix:form. Commerce (Drupal Commerce) → модулі catalog + sale. Rules → бізнес-процеси Бітрікс або обробники подій. Feeds (імпорт) → агент або cron-завдання Бітрікс.

Терміни

Етап Типові терміни
Аудит типів контента та полів 1–2 дні
Проектування інфоблоків та маппінгу полів 1–2 дні
Розробка скрипта міграції 3–6 днів
Перенос медіафайлів 1–2 дні
Мультимовність (при наявності) 2–3 дні
SEO-редиректи 1 день
Тестування та правки 1–2 дні
Усього 10–18 робочих днів

Drupal — одна з найскладніших для міграції CMS саме через нестандартну структуру зберігання та обилість можливих модулів. Реальний термін завжди уточнюється після аудиту вихідної бази даних.