OpenCart to 1C-Bitrix Migration: Keep Data and SEO

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
OpenCart to 1C-Bitrix Migration: Keep Data and SEO
Medium
~1-2 weeks
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1356
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    943
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    828
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    731
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1073

OpenCart works well for small stores, but once your catalog grows to tens of thousands of products, you need 1C integration, complex discount logic, or marketplace connectors — OpenCart hits a ceiling. We handle these requests regularly and migrate to 1C-Bitrix turnkey. With over 30 completed migrations, we have saved clients an average of 40% on support time by building the right architecture. Migration to 1C-Bitrix solves these limitations, but requires careful data handling: the storage structures are fundamentally different.

For example, in OpenCart, products are stored in normalized tables (oc_product, oc_product_description), while in Bitrix they are infoblock elements with properties. Prices, stock, and SKUs are separate entities. If these differences are ignored, attributes become garbage, orders become number sets without context. So we don't just copy the database — we design a new architecture for your needs.

Problems We Solve

  • Data inconsistency: Mismatched product-to-category links, orphaned images, duplicate properties.
  • Order integrity: Lost order histories, broken user references.
  • SEO degradation: Missing 301 redirects lead to 404s and ranking drops.
  • Performance loss: Badly structured data multiplies page load times; on one project with 15,000 products we reduced load from 8 s to 1.2 s after a proper migration.

How We Do It: A Real Case

On a project with 12,000 products, 500 categories, and 40 custom attributes, we migrated from OpenCart 2.3 to 1C-Bitrix 22.0. The main challenge was mapping OpenCart options (color, size) to Bitrix SKUs. We created a custom PHP script that reads oc_option and oc_product_option, then creates an SKU infoblock with PROPERTY_CML2_LINK linking back to the parent product. For each option combination, a unique SKU element was generated with its own price and stock. The migration ran on a copy first, uncovered 3% of products with missing images (fixed by repathing), and completed in 9 days. The client saw a 50% reduction in admin page load times due to proper indexing.

What Exactly Migrates

From OpenCart, we take everything accumulated in the database:

  • Products — tables oc_product, oc_product_description, oc_product_image, oc_product_attribute. Each product has a main image, gallery, SEO fields, and arbitrary attributes.
  • Categories — oc_category, oc_category_description. Unlimited depth tree.
  • Orders — oc_order, oc_order_product, oc_order_history. Full history with items, statuses, shipping addresses.
  • Customers — oc_customer with addresses from oc_address.
  • Reviews — oc_review.
  • Manufacturers — oc_manufacturer.

We also inspect installed extensions; third-party modules often store data in their own oc_* tables.

Data Structure Comparison

Entity OpenCart 1C-Bitrix
Product oc_product + oc_product_description Infoblock element + properties
Category oc_category + oc_category_description Infoblock section
Order oc_order + oc_order_product b_sale_order + b_sale_basket
Customer oc_customer User (group "Buyers")
Attribute oc_attribute + oc_product_attribute Infoblock property (string, list, number)
Option (variant) oc_option + oc_product_option SKU (trade offer)
Image oc_product_image CFile::MakeFileArray() + MORE_PHOTO field

Migration Process

  1. Analysis and preparation — 1–2 days. Dump the OpenCart database, inventory: product count, category depth, attribute count, unique options. If OpenCart used options (oc_option, oc_product_option), design the SKU structure in Bitrix.
  2. Bitrix setup — 1 day. Install the required 1C-Bitrix edition. For an online store, at least "Small Business"; for a full catalog with multiple price lists and warehouses, "Business". Configure catalog infobocks, create properties for OpenCart attributes.
  3. Data import — 3–5 days. Write a PHP migration script that reads from the OpenCart MySQL dump via PDO and creates elements in Bitrix via CIBlockElement::Add() or, for speed, direct insertion into b_iblock_element followed by \Bitrix\Iblock\IblockTable. For large catalogs (50,000+ items), direct batch inserts are 10–20× faster than the API. Categories are migrated first — build a section tree via CIBlockSection::Add(), save mapping oc_category_id → IBLOCK_SECTION_ID for later product binding.
  4. Image transfer — 1–2 days. Copy images from /image/catalog/ OpenCart to the Bitrix server. Register each image via \CFile::MakeFileArray() and bind to the element via MORE_PHOTO property. Main image goes to PREVIEW_PICTURE of the infoblock element.
  5. Orders and customers — 1–2 days. Orders are transferred to b_sale_order / b_sale_order_props_value / b_sale_basket. Customers are created via CUser::Add() with the "Buyers" group. OpenCart passwords (MD5 with salt) are incompatible — send users a password reset email.
  6. SEO and redirects — 1 day. Map old OpenCart URLs (e.g., /index.php?route=product/product&product_id=42 or SEO-friendly /product-slug) to new Bitrix URLs. Generate a 301 redirect table and load via the main module (\Bitrix\Main\UrlRewriter) or .htaccess/nginx config.
  7. Final validation and launch — 1 day.

Timeline Estimates

Stage Typical Duration
Data analysis and structure design 1–2 days
Migration script writing and testing on copy 3–5 days
Image transfer 1–2 days
Orders, customers, history 1–2 days
SEO redirects and URL check 1 day
Final validation and launch 1 day
Total 8–13 working days

Typical Challenges

Challenge Description
OpenCart attributes → Bitrix properties OpenCart attributes (oc_attribute) are simple text pairs "name: value". Bitrix properties are typed. Before migration, inventory attributes and decide which become "List", "String", "Number".
Product options OpenCart options (color, size) with separate prices and stock become SKUs. Create a SKU infoblock and transfer options as individual elements linked via PROPERTY_CML2_LINK.
Multi-currency OpenCart stores multiple currencies in oc_currency. In Bitrix, currencies are configured in the currency module, each price type (b_catalog_price_type) can have its own currency.
Extensions Third-party modules require analogs from the Bitrix marketplace or custom development. We help create a replacement map.

What's Included in Our Work

  • Full audit of the current OpenCart database.
  • Design of infoblock and property structure in Bitrix.
  • Development and execution of the migration script (with testing on a copy).
  • Transfer of images and media files.
  • Setup of 301 redirects (up to 2,000 URLs).
  • Transfer of order history and users.
  • Instructions for password reset for customers.
  • 30-day guarantee on correctness of migrated data.

What Remains for the Client

After migration, you need to set up the design (OpenCart theme doesn't transfer), payment systems via the sale module, and shipping services. If the store works with 1C, we configure exchange via CommerceML and the standard handler /bitrix/admin/1c_exchange.php. This goes beyond data migration but is best done in the same project.

Contact us for a free project evaluation. Get a consultation — we'll tell you how to optimize your budget. Order a free audit of your project before migration — it helps avoid surprises.

Why URL Structure Matters in Bitrix Migration?

Skipping URL mapping during a website migration to Bitrix crashes organic traffic by 50–80% in two weeks. WordPress uses /product/item-name/, OpenCart uses /index.php?route=product/product&product_id=123, Bitrix defaults to /catalog/section/element/. Without a 301 redirect map, search engines index mass 404s. We start every migration with Screaming Frog scanning the old site, then compile a complete redirect map before writing a single line of code. Proper migration requires full URL mapping — every indexed page gets a correspondent.

Over seven years we have completed 50+ projects: landing pages, catalogs with 300,000 products, e‑commerce stores. Typical duration 2–8 weeks. Contact us for a free project estimate within one day.

How Migration Preserves SEO Positions

Losing organic traffic is the biggest fear, and it's justified. Here is how we avoid it.

  • URL mapping 1:1 — where possible, via CUrlRewriter and infoblock SEF settings we keep the exact structure. When impossible — 301 redirect. Auto‑generation of redirect map: parse Screaming Frog export, match with new element slugs, generate nginx config. Each redirect verified with curl -I after switching.
  • Transfer of meta tags — title, description, h1 moved into properties ELEMENT_META_TITLE and ELEMENT_META_DESCRIPTION. Canonical via Bitrix SEO component. Duplicates cut: www/non‑www, http/https, sorting parameters. Sitemap: new sitemap.xml generated by Bitrix seo module, submitted to Search Console immediately after DNS switch.
  • Speed comparison — Bitrix processes a catalog of 100,000 products 3x faster than OpenCart due to tagged caching and query optimization for b_catalog_product.

What Data Gets Transferred?

Content — pages, articles, news → information infoblocks. Catalog: categories → sections, products → elements linked to b_catalog_product, properties → infoblock properties or highload directories. Images, reviews, FAQ.

E‑commerce — products with trade offers (SKUs), prices in b_catalog_price (multi‑currency via b_catalog_currency), stock balances b_catalog_store_product, discounts (b_sale_discount), order history (b_sale_order + b_sale_basket).

Users — client base b_user plus custom UF fields. Passwords are hashed differently: WordPress — phpass, OpenCart — SHA1+salt, Drupal — SHA512. We write a custom CUser::LoginByHash with fallback to old algorithm — client enters password once, system rehashes to Bitrix bcrypt.

SEO data — meta tags, alt attributes, URL structure. Main task: preserve every indexed URL or set 301.

Media — images, documents, videos — transferred preserving paths and optimized via CFile::MakeFileArray().

How to Plan a Successful Migration: 5 Key Steps

  1. Audit — scan with Screaming Frog: all URLs, status codes, meta tags. Analyze DB structure, custom modifications, integrations. Create migration map.
  2. Architecture design — map content types → infoblocks, fields → properties, directories → highload blocks. Architecture must be convenient for Bitrix administration.
  3. Migration scripts — PHP scripts read from old DB (or API), transform and write via Bitrix API (CIBlockElement::Add, \Bitrix\Sale\Order::create). Re‑run during testing.
  4. Staging — full migration to test server. Verify integrity: product count, properties, URLs, filters.
  5. Final migration & switching — delta import, DNS switch, monitoring.
Detailed stage timeline
Stage Duration Activities
Audit 1–3 days Full site scan, integration register
Architecture 2–5 days Infoblock design, field mapping
Scripts 3–10 days PHP based migration engine
Staging 1–2 days Full dry run, integrity checks
301 redirects 1–2 days Map in .htaccess or nginx.conf
Final migration 1 day Delta import, DNS switch
Post‑migration 2–4 weeks Monitor Search Console, fix crawl errors
Deliverable Description
Documentation Redirect map, mapping description, DB schema
Access Admin panel, FTP/SSH, API keys
Training Video tutorials or on‑boarding session
Support 2 weeks post‑migration monitoring, bug fixing
Guarantee Rollback to old site within 48 hours

Typical Migration Mistakes and How to Avoid Them

Each of these errors has caused loss of positions and clients.

  • Loss of URLs without redirects — the most destructive mistake. /product/123 instead of /catalog/item-name.html — without 301 this means mass 404s and traffic collapse. We auto‑generate the map and verify every redirect after switching.
  • Content duplication — one product accessible with and without www, via HTTP and HTTPS, with GET filter parameters → five URLs instead of one. SEO weight dilutes. Set up canonical, 301 for variants, robots.txt with Disallow for parameters.
  • Broken images — absolute URLs in content (src="https://old-site.ru/img/photo.jpg"), quality loss during compression. Replace with relative paths, transfer preserving structure, check HTTP 200 for each file.
  • Loss of meta tags and microdata — title, description, Schema.org may not transfer. Do full mapping and verify on staging.
  • Broken forms and integrations — changed IDs, API keys, webhooks. Compile integration register before start and test each after.
  • Mobile version — old m.site.ru → responsive Bitrix. Without mobile URL redirect → 404 for mobile users. Include in redirect map.

Timelines and Cost Savings

Project type Timeline Notes
Informational site (up to 500 pages) 2–4 weeks Content + design + redirects
E‑commerce store (up to 10,000 products) 4–8 weeks Catalog + orders + integrations
Large store (100,000+ products) 2–4 months Custom scripts + load testing

Businesses typically save $3,000–$8,000 annually after migration — no old CMS license fees, reduced plugin and hosting costs. Annual hosting savings alone can reach $1,200. Add the affordable licensing cost of 1C‑Bitrix — it pays off quickly.

Contact us for a free migration estimate. We also provide a preliminary calculation within one day — request a consultation with our Bitrix specialists.