Everything the old store knows
Products, variants, option pricing, customers, the full order history with refunds and tracking, reviews, content and redirects. Reconciled to the cent.
Migration guide
How we move Gambio, xt:Commerce, modified and OXID shops to Shopify: variants and attributes, gross prices and VAT, German legal setup, the redirect map, and a fixed price from $2,500 over six to eight weeks.
Every migration includes the storefront, the apps and your back-office systems, not just the data. Pixel-perfect, a facelift or a complete redesign?

Gambio, xt:Commerce, modified eCommerce and OXID eShop have run a large share of German, Austrian and Swiss online shops for two decades. Three of them share a common ancestor in xt:Commerce 3, itself a fork of osCommerce; OXID is a separate codebase from Freiburg. This guide covers how we handle a Gambio to Shopify migration and the equivalent move from each of its relatives, including the parts that matter most in the DACH market: gross prices, VAT, legal texts and German carriers and payment methods.
To be fair, all four systems are built for the German market and handle its legal details well out of the box. Shopify handles them too, but with configuration, apps and your own legal texts, which is why the legal section below matters.
All four are PHP and MySQL systems. Gambio has REST APIs (v2, and v3 since GX 4.1.1.0) and a CSV import and export; OXID and xt:Commerce 4 to 6 have their own export options; modified and older xt:Commerce 3 shops are usually read straight from the database. With database access, no entity is limited to what the export screens offer.
| Data | Source on Gambio, xt:Commerce, modified or OXID | Moves to Shopify? |
|---|---|---|
| Products with article numbers, names, descriptions, prices, stock, weights, images, meta data | Products tables on all four; OXID oxarticles | Yes. Article numbers become SKUs. Net prices are converted to gross where needed (see below). |
| Variants | Gambio properties and combinations; xt:Commerce 4 to 6 master and slave products; OXID parent and child articles | Yes, as Shopify variants with their own SKU, price and stock. |
| Attributes and selection lists with surcharges | osCommerce-style attributes on Gambio, modified and xt:Commerce 3; OXID selection lists | Partly. Real choices become variants; paid extras become add-on products through an options app. |
| Categories | Category tables with product links | Yes, as collections, with the tree carried into menus. |
| Customers, addresses, customer groups | Customer and address book tables; OXID oxuser | Yes. Groups become tags or B2B companies with catalogs. Newsletter consent comes across where it was recorded. |
| Group and tiered prices | Group price tables (xt:Commerce 3 family), OXID price and scale fields | Yes, as B2B catalogs and quantity rules, or as discounts. |
| Passwords | Stored as hashes | No. Customers set a new password or use Shopify’s passwordless sign-in. |
| Orders with line items, totals, VAT, shipping, status history | Order, order product and order total tables; OXID oxorder and oxorderarticles | Yes. Real orders with original numbers, dates, VAT lines and refunds. |
| Tracking numbers | Tracking modules or carrier plugin tables | Yes, as fulfillments with carrier and tracking number, wherever the shop stored them. |
| Reviews, content pages, coupons, vouchers | Review and content tables, coupon and gift voucher tables | Reviews into Judge.me, pages into Shopify pages, coupons as discounts, voucher balances as gift cards. |
| Templates, modules, legal texts | Template files, module settings | No. The theme is rebuilt, modules are mapped to apps, and legal texts are replaced by your current versions. |
Each system has its own patterns, and most shops have changed settings over the years:
/product_info.php?info=p123_product-name.html and /index.php?cat=c12_category-name.html. Built-in search engine friendly URLs and modules such as Direct URL or Clean SEO URL produce paths like /category/product-name.html./product_info.php?info=p3_product-name.html and /?cat=c1_category-name. With SEO Boost it serves /product-name.html, or /category/subcategory/product-name.html when short product URLs are off, category paths like /category/subcategory, and language folders like /en/./index.php?page=product&info=4564 and language-prefixed SEO paths such as /de/category/product-name.html./index.php?cl=details&anid=… to speaking URLs such as /category/product-name.html, with manufacturer paths and a language prefix for every language except the default.Shopify uses /products/handle and /collections/handle. We build the map from the database, keyed on product and category IDs, so the p123 and c12 forms resolve even when the name part is wrong. On OXID we add the old URLs from the oxseohistory table, and on every system we add what Search Console still reports. Umlauts are checked in both encoded and transliterated forms. Every redirect is tested before launch.
Cart2Cart, a partner of ours, lists Gambio, OXID eShop, xt:Commerce and modified eCommerce as sources, and LitExtension lists Gambio and OXID eShop. Both are fine for a first pass on products and customers. Their limits are the same as everywhere: tracking numbers do not come across, refunded orders tend to land as plain paid orders, and redirects are built from guessed slugs. We finish those parts ourselves, reading the database directly for variants, group prices, VAT lines and the old URLs, and reconciling every count against the source tables.
A migration from any of these systems starts from $2,500 for stores under 500 products and 5,000 orders ($3,500 for larger stores), and typically takes six to eight weeks for smaller stores. B2B price structures, OXID Enterprise multi-shop installs, several markets and integrations such as an ERP or JTL-Wawi are quoted as a fixed price after the audit. Terms are 50% to begin and 50% once the store is live and you are fully satisfied with the figures.
Gambio grew out of xt:Commerce 3, which came from osCommerce, and the lineage still shows in its tables. GX4 and the current GX5 run either in the hosted Gambio Cloud, where Gambio manages the server, or self-hosted on your own server. In both cases we need a database export or API access, which Cloud shops arrange through Gambio. Gambio has two variant models: attributes, the older osCommerce-style options with price surcharges, and properties with combinations, where each combination (size M in red, for example) has its own article number, stock, price and weight. Combinations map cleanly to Shopify variants; attributes need the sorting described in the table. Many shops use both on the same product, and we map them together.
There are really two xt:Commerce products. xt:Commerce 3 is the GPL osCommerce fork from the 2000s, no longer offered by the vendor but still running in many shops and the parent of Gambio and modified. xt:Commerce 4, 5 and 6 (4 was released as Veyton) are a separate, rewritten system with a plugin architecture, multi-shop support and master and slave products, where each slave is a full article with its own number and price. The vendor, xt:Commerce GmbH, still maintains version 6 and shipped 6.7.1 with the withdrawal function; Cart2Cart also lists a hosted xt:Commerce NEXT. Master and slave groups become one Shopify product with variants. HHG multistore, an xt:Commerce offshoot built for running several shops from one admin, is a legacy platform we migrate the same way as the xt:Commerce 3 family, one store or market at a time.
modified eCommerce (formerly xtcModified) is the community fork of xt:Commerce 3 and is still actively developed: the 3.x line began with 3.0.0 in November 2023, and 3.3.0 followed in January 2026, while many shops still run 2.x. Because it kept the xt:Commerce 3 schema, extraction is the most predictable of the four. The work is usually in the modules: SEO URL add-ons, legal text services and payment modules, each of which needs a Shopify equivalent.
OXID eShop comes in Community, Professional and Enterprise editions, with a B2B variant of Enterprise. Version 6 shops are still common; the 7.x line runs through 7.5.0, released in May 2026. OXID variants are child articles of a parent article, each with its own number, price, stock and images, and map directly to Shopify variants. Selection lists are dropdowns that can carry an absolute or percentage surcharge without being stock items, so we treat them like attributes. The Enterprise mall function runs several subshops from one installation; each subshop becomes a Shopify market or a separate store, decided in the audit.
Gambio, modified, xt:Commerce 3 and HHG multistore share osCommerce-style tables: products, products_description per language, products_attributes with products_options and products_options_values, categories with products_to_categories, customers with address_book, and orders with orders_products, orders_total and orders_status_history. That makes extraction predictable: the same queries work across the family, with adjustments for each fork’s additions such as Gambio’s properties tables. The order totals table deserves care, because it holds the VAT, shipping, discount and payment fee lines that must add up to the original invoice.
The xt:Commerce 3 family stores product prices net with a tax class and shows gross prices to consumers, and OXID has a setting for whether prices are entered net or gross. Shopify stores the price you display, so for a store that includes tax in prices we convert each net price to gross and check the result against the price the old shop showed, cent for cent, because rounding differs. On Shopify we set up EU taxes, including a One Stop Shop (OSS) registration if you have one, and use Shopify Markets for Germany, Austria and Switzerland with their own languages, currencies and domains. Switzerland is outside the EU, so its VAT and customs setup is a question for your tax advisor, and we implement the answer.
We do not give legal advice. Your lawyer or a legal-text service provides the texts; we put them in the right places. That means an Impressum, Widerrufsbelehrung, AGB and Datenschutzerklärung as store policies and pages, linked from the footer and the checkout; a GDPR cookie consent app configured to block tracking until consent; a final checkout button whose wording makes the payment obligation clear, such as “zahlungspflichtig bestellen”, set through the checkout language settings; unit prices (Grundpreis), which Shopify supports natively for EU stores; delivery time notices on product pages; the lowest price of the last 30 days on reductions; and the electronic withdrawal function required since June 19, 2026, through Shopify’s return and cancellation settings or an app.
DHL shipping runs through the official Post and DHL Shipping app, and DPD, Hermes, GLS and others through multi-carrier apps such as shipcloud or Sendcloud, with tracking numbers flowing back to Shopify. Shopify Payments in Germany covers cards, wallets and Klarna, including pay later by invoice. PayPal connects directly, and SEPA direct debit, where you need it, comes through a third-party payment provider that we confirm in the audit.
A reconciliation ledger from the source tables to the live Shopify counts for products, variants, customers, orders and fulfillments, with every exclusion named; a price check showing net, converted gross and Shopify prices; the redirect verification list with each status code; the variant and attribute mapping; a checklist of legal pages and settings for your lawyer to review; and a recorded walkthrough of the Shopify admin.
Yes. Orders import as real Shopify orders with original numbers, dates, line items, VAT lines, shipping and refunds, and tracking numbers come across as fulfillments where the shop stored them. The same applies to xt:Commerce, modified and OXID.
Property combinations become Shopify variants with their own article number, price and stock. Attributes with surcharges become variants when they are real choices, or add-on products through an options app when they are paid extras. OXID selection lists are handled the same way.
Shopify supports what German shops need, including unit prices, policy pages linked in checkout and adjustable checkout wording, but the legal texts come from your lawyer or a legal-text service. We set up the Impressum, Widerrufsbelehrung, AGB, privacy policy, cookie consent and withdrawal function, and give you a checklist to review.
We redirect every parameter URL, SEO path and language folder to the matching Shopify page, keyed on product and category IDs, add old OXID URLs from the SEO history, and test each redirect before launch.
From 2,500 dollars for stores under 500 products and 5,000 orders (3,500 dollars for larger stores), typically over six to eight weeks for smaller stores. B2B pricing, multi-shop installs and integrations are a fixed price after the audit. Terms are half to begin and half once the store is live and you are fully satisfied with the figures.
Start with the migration survey. For other German-market platforms, see the Shopware guide and the ePages guide.
More than the data
Getting the records out of Gambio, OXID and xt:Commerce is the part software can do on its own, so it is the part most providers sell. The storefront your customers see, the apps that run the store and the systems behind it are the rest of the work, and where a data-only migration hands the problem back to you. All four are in scope here.
Products, variants, option pricing, customers, the full order history with refunds and tracking, reviews, content and redirects. Reconciled to the cent.
Rebuilt exactly as it is, given a facelift, or redesigned completely. Quoted inside the migration, not as a second project.
Reviews, search, subscriptions, loyalty, bundles, email. Matched to a Shopify equivalent, dropped where the platform now does it, or rebuilt as a custom app.
ERP, CRM, PIM, 3PL, POS, accounting and EDI, reconnected and tested before cutover. Nobody rekeys orders on launch day.
The first question we ask
Your storefront does not have to come across unchanged, and it does not have to be thrown away either. We quote whichever route you pick inside the migration.
Indistinguishable from the old store, down to the spacing, but rebuilt on a current Shopify theme so it is faster and maintainable underneath.
The same structure, better executed: typography, spacing, color, photography, product pages and navigation. The shape your customers know stays put.
A new storefront, designed as a prototype you click through before a line of Liquid is written, then built on Horizon.
Included with every migration
A Gambio, OXID and xt:Commerce to Shopify migration is not finished when the data lands. Every migration we deliver includes an SEO and growth evaluation once Google has re-crawled the new store and the first real analytics exist: how it is indexed, where it ranks and who outranks it, a technical tag audit, speed, product copy, and quick wins in the order to do them. Here is one we delivered, based on a real engagement.
Other platforms
Tell us about your store in ten minutes. We come back within one business day with an honest assessment, a recommended track and a fixed price.