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

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

Миграция сайта с 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. Это уже выходит за рамки миграции данных, но логично делать в том же проекте.