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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Показано 1 з 1 послугУсі 1626 послуг
Міграція сайту з OpenCart на 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

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

OpenCart — добротний движок для невеликих магазинів. Але коли каталог виростає до десятків тисяч позицій, появляються 1С, потрібна складна логіка акцій або маркетплейс-інтеграція — OpenCart упирається в потолок. Міграція на 1С-Бітрікс вирішує ці обмеження, але вимагає уважної роботи з даними: структури зберігання принципово різні.

Що саме переїжджає

З OpenCart береться всім те, що накопилося в базі:

  • Товари — таблиці oc_product, oc_product_description, oc_product_image, oc_product_attribute. Кожен товар має основне зображення і галерею, SEO-поля (oc_product_description.meta_title, meta_description), атрибути довільної структури.
  • Категоріїoc_category, oc_category_description. Дерево категорій з необмеженою вкладеністю.
  • Замовленняoc_order, oc_order_product, oc_order_history. Історія замовлень з товарами, статусами, адресами доставки.
  • Покупціoc_customer з адресами з oc_address.
  • Відгукиoc_review.
  • Виробникиoc_manufacturer.

Додатково дивимось встановлені розширення: часто в магазині є сторонні модулі, які зберігають дані в власних таблицях oc_*.

Як влаштовано зберігання в Бітрікс

У Бітрікс немає прямого аналога «товарної таблиці». Товари зберігаються як елементи інфоблоку (b_iblock_element, b_iblock_element_property), властивості — гнучко через типи. Каталог реалізований модулем catalog поверх інфоблоків: ціни в b_catalog_price, залишки в b_catalog_store_product (якщо підключено склад), торгові пропозиції як окремий інфоблок.

Це фундаментальне відмінність визначає всю логіку міграції.

Етапи переносу

1. Аналіз та підготовка

Знімаємо дамп бази OpenCart. Інвентаризуємо: скільки товарів, глибина дерева категорій, кількість атрибутів, унікальних опцій (варіанти товара). Якщо в OpenCart використовувалися товари з опціями (oc_option, oc_product_option) — проектуємо структуру торгових пропозицій у Бітрікс.

2. Розгортання Бітрікс

Встановлюємо 1С-Бітрікс потрібної редакції. Під інтернет-магазин мінімум — «Малий бізнес», для повноцінного каталогу з кількома прайс-листами та складами — «Бізнес». Налаштовуємо інфоблоки каталогу, створюємо властивості під атрибути з OpenCart.

3. Імпорт даних

Пишемо скрипт міграції на PHP. Структура: читаємо з MySQL-дампа OpenCart через PDO, створюємо елементи в Бітрікс через CIBlockElement::Add() або для швидкості, прямим вставленням в b_iblock_element з подальшим викликом \Bitrix\Iblock\IblockTable. Для великих каталогів (50 000+ позицій) прямовставлення через batch-запити в 10–20 разів швидше за API.

Категорії переносимо першими — формуємо дерево розділів через CIBlockSection::Add(), зберігаємо маппінг oc_category_id → IBLOCK_SECTION_ID для подальшої прив'язки товарів.

4. Перенос зображень

Зображення з /image/catalog/ OpenCart копіюємо на сервер Бітрікс. Кожне зображення реєструємо через \CFile::MakeFileArray() і прив'язуємо до елемента через властивість MORE_PHOTO. Основне зображення — поле PREVIEW_PICTURE елемента інфоблоку.

5. Замовлення та покупці

Замовлення переносимо в b_sale_order / b_sale_order_props_value / b_sale_basket. Покупців — створюємо користувачів через CUser::Add() з групою «Покупці». Паролі з OpenCart зберігаються в MD5 з сіллю (oc_customer.salt) — ці хеші несумісні з Бітрікс. Відправляємо користувачам листи зі посиланням на скидання пароля.

6. SEO та редиректи

Зіставляємо старі URL OpenCart з новими. OpenCart будує URL за шаблоном /index.php?route=product/product&product_id=42 або через SEO-фільтр /product-slug. У Бітрікс URL визначається ЧПУ компонента. Формуємо таблицю 301-редиректів, завантажуємо через модуль main (\Bitrix\Main\UrlRewriter) або через .htaccess / nginx-конфіг.

Підводні камені

Атрибути OpenCart → властивості Бітрікс. У OpenCart атрибути (oc_attribute) — просто текстові пари «назва: значення». У Бітрікс властивості типізовані. Перед міграцією потрібно провести інвентаризацію атрибутів і вирішити: що стане властивістю типу «Список», що — «Рядок», що — «Число».

Опції товара. Якщо у OpenCart були опції (колір, розмір) з окремими цінами та залишками — у Бітрікс це торгові пропозиції (ТП). Потрібно створити інфоблок ТП і перенести опції як окремі елементи з прив'язкою до батьківського товара через PROPERTY_CML2_LINK.

Мультивалютність. OpenCart зберігає кілька валют у oc_currency. У Бітрікс валюти налаштовуються в модулі currency, кожен тип ціни (b_catalog_price_type) може мати свою валюту.

Розширення. Сторонні модулі OpenCart — форма підписки, програма лояльності, доставки — не мігрують автоматично. Під кожен потрібен аналог у Бітрікс або кастомна розробка.

Терміни

Етап Типові терміни
Аналіз даних та проектування структури 1–2 дні
Написання скрипта міграції та тест на копії 3–5 днів
Перенос зображень 1–2 дні
Замовлення, покупці, історія 1–2 дні
SEO-редиректи та перевірка URL 1 день
Фінальна перевірка та запуск 1 день
Усього 8–13 робочих днів

Терміни залежать від обсягу каталогу та кількості нестандартних розширень у вихідному магазині.

Що залишається на стороні клієнта

Після міграції потребуватиме налаштування дизайну (тема OpenCart не переносится), платіжних систем через модуль sale, служб доставки. Якщо магазин працює з 1С — налаштовується обмін через CommerceML та стандартний обробник /bitrix/admin/1c_exchange.php. Це вже виходить за межі міграції даних, але логічно робити в тому ж проекті.