OpenCart — добротний двигун для невеликих магазинів. Але коли каталог виростає до десятків тисяч позицій, з'являються 1С, потрібна складна логіка акцій або маркетплейс-інтеграція — OpenCart впирається в стелю. Ми регулярно стикаємося з такими запитами і допомагаємо переїхати на 1С-Бітрікс під ключ. Наша компанія має 5-річний досвід у міграціях даних та понад 30 реалізованих проєктів. За 5 років на ринку ми виконали 30+ міграцій, заощадивши клієнтам у середньому 40% часу на підтримку завдяки правильній архітектурі. Середня вартість міграції — від 15 000 грн. Швидкість обробки каталогу в Бітрікс у 5 разів вища за OpenCart. Міграція на 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. Дерево категорій з необмеженою вкладеністю. Перенесення категорій OpenCart — критичний етап для правильної структури. - Замовлення —
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 (якщо підключений склад), торгові пропозиції як окремий інфоблок. Це фундаментальна відмінність визначає всю логіку міграції. Використовуємо PDO-з'єднання для читання даних з MySQL-дампу OpenCart та батчеву вставку для прискорення.
Як перенести замовлення без втрати даних?
Замовлення переносимо в 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% часу на підтримку завдяки правильній архітектурі. Зв'яжіться з нами для безкоштовної оцінки проєкту. Отримайте консультацію — пишіть, ми розповімо, як оптимізувати бюджет. Замовте безкоштовний аудит вашого проєкту перед міграцією — це допоможе уникнути несподіванок.







