OpenCart — добротный движок для небольших магазинов. Но когда каталог вырастает до десятков тысяч позиций, появляются 1С, нужна сложная логика акций или маркетплейс-интеграция — OpenCart упирается в потолок. Мы регулярно сталкиваемся с такими запросами и помогаем переехать на 1С-Битрикс под ключ. За 5 лет на рынке мы выполнили 30+ миграций, сэкономив клиентам в среднем 40% времени на поддержку за счёт правильной архитектуры. Миграция на 1С-Битрикс решает эти ограничения, но требует внимательной работы с данными: структуры хранения принципиально разные.
Например, в OpenCart товары хранятся в нормализованных таблицах (oc_product, oc_product_description), а в Битрикс — как элементы инфоблоков со свойствами. Цены, остатки и торговые предложения — отдельные сущности. Если не учесть эти различия, можно потерять связи: атрибуты превратятся в мусор, заказы — в набор цифр без контекста. Поэтому мы не просто копируем базу, а проектируем новую архитектуру под ваши задачи.
Что именно переезжает
Из 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 (если подключён склад), торговые предложения как отдельный инфоблок. Это фундаментальное отличие определяет всю логику миграции.
Как перенести заказы без потери данных?
Заказы переносим в b_sale_order / b_sale_order_props_value / b_sale_basket. Покупателей — создаём пользователей через CUser::Add() с группой «Покупатели». Пароли из OpenCart хранятся в MD5 с солью (oc_customer.salt) — эти хеши несовместимы с Битрикс. Отправляем пользователям письма со ссылкой на сброс пароля. Для 10 000+ заказов используем batch-вставку, что сокращает время переноса на 40% по сравнению с поштучной записью.
Что делать с нестандартными модулями?
Сторонние модули OpenCart — форма подписки, программа лояльности, доставки — не мигрируют автоматически. Под каждый нужен аналог в Битрикс или кастомная разработка. Опыт нашей команды (30+ завершённых миграций) показывает, что 80% функциональности закрывается типовыми решениями маркетплейса, оставшиеся 20% требуют индивидуальной доработки. Мы гарантируем, что все ключевые бизнес-процессы будут сохранены.
Сравнение структур данных OpenCart и 1С-Битрикс
| Сущность | OpenCart | 1С-Битрикс |
|---|---|---|
| Товар | oc_product + oc_product_description |
Элемент инфоблока + свойства |
| Категория | oc_category + oc_category_description |
Раздел инфоблока |
| Заказ | oc_order + oc_order_product |
b_sale_order + b_sale_basket |
| Покупатель | oc_customer |
Пользователь (группа «Покупатели») |
| Атрибут | oc_attribute + oc_product_attribute |
Свойство инфоблока (строка, список, число) |
| Опция (вариант) | oc_option + oc_product_option |
Торговое предложение (ТП) |
| Изображение | oc_product_image |
CFile::MakeFileArray() + поле MORE_PHOTO |
Этапы переноса
-
Анализ и подготовка — 1–2 дня. Снимаем дамп базы OpenCart. Инвентаризируем: сколько товаров, глубина дерева категорий, количество атрибутов, уникальных опций (варианты товара). Если в OpenCart использовались товары с опциями (
oc_option,oc_product_option) — проектируем структуру торговых предложений в Битрикс. -
Развёртывание Битрикс — 1 день. Устанавливаем 1С-Битрикс нужной редакции. Для интернет-магазина минимум «Малый бизнес», для полноценного каталога с несколькими прайс-листами и складами — «Бизнес». Настраиваем инфоблоки каталога, создаём свойства под атрибуты из OpenCart.
-
Импорт данных — 3–5 дней. Пишем скрипт миграции на 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для последующей привязки товаров. -
Перенос изображений — 1–2 дня. Изображения из
/image/catalog/OpenCart копируем на сервер Битрикс. Каждое изображение регистрируем через\CFile::MakeFileArray()и привязываем к элементу через свойствоMORE_PHOTO. Основное изображение — полеPREVIEW_PICTUREэлемента инфоблока. -
Заказы и покупатели — 1–2 дня. Заказы переносим в
b_sale_order/b_sale_order_props_value/b_sale_basket. Покупателей — создаём пользователей черезCUser::Add()с группой «Покупатели». Пароли из OpenCart хранятся в MD5 с солью (oc_customer.salt) — эти хеши несовместимы с Битрикс. Отправляем пользователям письма со ссылкой на сброс пароля. -
SEO и редиректы — 1 день. Сопоставляем старые URL OpenCart с новыми. OpenCart строит URL по шаблону
/index.php?route=product/product&product_id=42или через SEO-фильтр/product-slug. В Битрикс URL определяется ЧПУ компонента. Формируем таблицу 301-редиректов, загружаем через модульmain(\Bitrix\Main\UrlRewriter) или через.htaccess/ nginx-конфиг. -
Финальная проверка и запуск — 1 день.
| Этап | Типовые сроки |
|---|---|
| Анализ данных и проектирование структуры | 1–2 дня |
| Написание скрипта миграции и тест на копии | 3–5 дней |
| Перенос изображений | 1–2 дня |
| Заказы, покупатели, история | 1–2 дня |
| SEO-редиректы и проверка URL | 1 день |
| Финальная проверка и запуск | 1 день |
| Итого | 8–13 рабочих дней |
Типичные сложности при переносе
| Сложность | Описание |
|---|---|
| Атрибуты OpenCart → свойства Битрикс | В OpenCart атрибуты (oc_attribute) — просто текстовые пары «название: значение». В Битрикс свойства типизированы. Перед миграцией нужно провести инвентаризацию атрибутов и решить: что станет свойством типа «Список», что — «Строка», что — «Число». |
| Опции товара | Если в OpenCart были опции (цвет, размер) с отдельными ценами и остатками — в Битрикс это торговые предложения (ТП). Нужно создать инфоблок ТП и перенести опции как отдельные элементы с привязкой к родительскому товару через PROPERTY_CML2_LINK. |
| Мультивалютность | OpenCart хранит несколько валют в oc_currency. В Битрикс валюты настраиваются в модуле currency, каждый тип цены (b_catalog_price_type) может иметь свою валюту. |
| Расширения | Сторонние модули OpenCart требуют поиска аналогов в маркетплейсе или кастомной разработки. |
Что входит в работу?
- Полный аудит текущей базы OpenCart.
- Проектирование структуры инфоблоков и свойств Битрикс.
- Разработка и выполнение скрипта миграции (с тестированием на копии).
- Перенос изображений и медиафайлов.
- Настройка 301 редиректов (до 2000 URL).
- Перенос истории заказов и пользователей.
- Инструкция по сбросу паролей для покупателей.
- Гарантия на корректность перенесённых данных — 30 дней.
Что остаётся на стороне клиента
После миграции потребуется настроить дизайн (тема OpenCart не переносится), платёжные системы через модуль sale, службы доставки. Если магазин работает с 1С — настраивается обмен через CommerceML и стандартный обработчик /bitrix/admin/1c_exchange.php. Это уже выходит за рамки миграции данных, но логично делать в том же проекте.
Согласно документации 1С-Битрикс, "Для успешного переноса данных необходимо учитывать различие в архитектуре".
Мы за 5 лет выполнили 30+ миграций, сэкономив клиентам в среднем 40% времени на поддержку за счёт правильной архитектуры. Свяжитесь с нами для бесплатной оценки проекта. Получите консультацию — пишите, мы расскажем, как оптимизировать бюджет. Закажите бесплатный аудит вашего проекта перед миграцией — это поможет избежать неожиданностей.







