Migration guide

Miva to Shopify

How we move Miva stores to Shopify: attribute templates and inventory variants, price groups and B2B, full order history and every legacy URL redirected. Fixed price from $2,500, typically six to eight weeks for smaller stores.

Every migration includes the storefront, the apps and your back-office systems, not just the data. Pixel-perfect, a facelift or a complete redesign?

Miva to Shopify: moving a large, configured catalog without losing its logic

Miva stores are rarely small. They tend to be mid-market businesses with deep catalogs, attribute templates shared across hundreds of products, inventory variants with their own prices and images, price groups for trade customers and years of order history. That configuration is the value of the store, and it is also what makes a Miva to Shopify migration harder than a CSV export and import. This guide explains how we move Miva Merchant 9, Miva 10 and current Miva stores to Shopify with the catalog structure, customer pricing and search rankings intact.

Why stores leave Miva

  • A small ecosystem. Miva has its own app store and a loyal developer community, but it is a fraction of the size of Shopify’s. Finding an app, an integration partner or a developer for a specific need is usually easier on Shopify.
  • Template work needs specialists. Storefronts are built in Miva’s own template language and page templates. Changes that a Shopify merchant makes in the theme editor often need a Miva developer.
  • Pricing is quoted, not published. Miva does not list plan prices on its site; pricing comes through a sales conversation. Shopify’s plan costs are public, which makes budgeting simpler.
  • Checkout and payments. Shop Pay, accelerated wallets and Shopify’s checkout extensibility are strong reasons on their own for stores that sell to consumers as well as trade buyers.
  • B2B is no longer the blocker. Miva’s price groups and availability groups were a reason to stay. Since April 2026 Shopify B2B, with companies, catalogs and payment terms, is available on every Shopify plan, not only Plus.

To be fair to Miva, it handles large, complex catalogs well, and a store that relies heavily on custom modules should cost out the Shopify equivalents before deciding. That is what our audit is for.

What migrates from Miva to Shopify

Miva gives you three ways to get data out: flat-file exports from Data Management, XML provisioning, and the JSON API (Miva 9.12 or later), which exposes products, attributes, categories, customers, orders and URIs with paginated list queries. We use the API for most entities and the flat files as a cross-check.

DataSource on MivaMoves to Shopify?
Products with codes, SKUs, names, descriptions, prices, costs, weights, stock, imagesExport Products to Flat File, or ProductList_Load_Query in the JSON APIYes. Product codes are kept as SKUs and used as the join key for redirects, reviews and integrations.
Attributes, options and attribute templatesAttributeAndOptionList_Load_Product and the attribute template screensYes, as options and variants where they change what is picked, and as line item properties or metafields where they do not. See the section below.
Inventory variantsVariant records with their own part products, prices and imagesYes. Each variant becomes a Shopify variant with its own SKU, price, stock and image.
Categories and subcategoriesCategory export or APIYes, as collections, with the tree rebuilt in the menus.
Customers with addresses, custom fields and marketing consentExport Customers to a Flat File, or CustomerList_Load_QueryYes. Consent is carried exactly and custom customer fields become customer metafields.
Price groups, customer-specific pricing and availability groupsPrice Groups and Availability GroupsRebuilt as Shopify discounts, B2B catalogs and price lists, or customer segments. Not a one-click move.
Orders with line items, attributes chosen, tax, shipping, discounts, status, shipmentsExport Orders to Flat File, or OrderList_Load_QueryYes. Real Shopify orders with the original number and date, the chosen options on each line, a payment record and per-shipment tracking. Refunds and cancellations are recorded as such.
PasswordsNot usable outside MivaNo. Customers set a new password or use Shopify’s passwordless sign-in.
Product reviewsMiva Product Reviews module, which supports exportYes, into Judge.me or the review app you choose, matched on product code.
Coupons and gift certificatesPrice groups with coupons; gift certificate moduleCoupons recreated as discount codes. Outstanding balances recreated as Shopify gift cards.
Page templates, MMT-managed templates, custom modulesMiva template files and installed modulesNo. Design is rebuilt as a Shopify theme; each module is mapped to a Shopify feature or app, or retired.

Miva URLs and the 301 redirect map

Miva stores often carry three generations of URLs at once, and all of them may still be indexed or linked. The oldest form is the raw dynamic URL, for example /mm5/merchant.mvc?Screen=PROD&Store_Code=SC&Product_Code=ABC123 for a product and /mm5/merchant.mvc?Screen=CTGY&Store_Code=SC&Category_Code=widgets for a category. Stores that turned on Miva’s short links (in Domain Settings on older versions, now under URI Management, Legacy SEO Settings) have code-based forms such as /p/ABC123, /c/widgets and /pc/widgets/ABC123, sometimes with the product name appended as .html. Since Miva 9.4, URI Management holds a table of URIs per product, category and page, with one canonical URI and any number of older or redirecting ones.

Shopify uses /products/handle and /collections/handle, so every one of those forms needs a 301. Shopify matches redirect paths and query strings, so the dynamic merchant.mvc links can be redirected, but each distinct query string is its own entry. We build the map from three sources: Miva’s URI export (Data Management offers an export of URIs to XML), a crawl of the live site, and the Search Console page list. The product and category codes in those URLs are the join key to the new handles. Every redirect is requested against the live domain before cutover, and the non-canonical Miva URIs are included, because old backlinks tend to point at them.

Tools

Cart2Cart and LitExtension both list Miva Merchant as a source for Shopify, and Cart2Cart is a partner of ours. Both are fine for a first pass on products, categories and customers. Their limits show up on the parts that matter most for Miva stores. Neither carries tracking numbers on shipped orders. Refunded orders tend to arrive as plain paid orders, which leaves a false balance on each one. Redirects are built from guessed slugs rather than from Miva’s URI table. And neither tool understands attribute templates, price groups or availability groups, so that configuration has to be designed on Shopify by hand. We use the tools where they save time and finish the rest ourselves through the Miva JSON API and the Shopify Admin API.

How we run it

  1. Audit. JSON API access, export review, attribute and variant analysis, price and availability groups, installed modules, integrations, URL inventory. The output is a written, fixed-price scope.
  2. Build in a free Shopify development store. As a Shopify Plus Partner we build in a development store, so you pay Shopify nothing until the store launches. Theme, checkout, payments, shipping and tax are set up here.
  3. Catalog restructure. Attributes are sorted into options, line item properties and metafields, and products that exceed Shopify’s option rules are redesigned with your sign-off.
  4. Customers and groups. Customers imported with consent and custom fields; price groups and availability groups rebuilt as discounts, B2B companies and catalogs, or tagged segments.
  5. Orders. Full order history with original numbers, chosen options, refunds and per-shipment tracking.
  6. Redirects for every URL generation, tested individually.
  7. Sample, then full import, with reconciliation. A sample of each entity, including awkward cases, is signed off before the full run, and the full run is reconciled count by count and total by total against Miva.
  8. Cutover with a delta sync. Orders and customers created in Miva during the build are brought across at launch, then DNS moves.
  9. Post-launch SEO evaluation. We watch 404s and redirects from launch day, and run the SEO evaluation once Google has re-crawled the store and the first real analytics exist, rather than on a fixed calendar.

Cost and timeline

Our migrations start from $2,500 for stores under 500 products and 5,000 orders ($3,500 for larger stores), which typically take six to eight weeks. Most Miva stores are larger than that, and many have B2B pricing, an ERP or other integrations. Those are quoted as a fixed price after the audit, so you know the full cost before work begins. Terms are 50% to begin and 50% once the store is live and you are fully satisfied with the figures.

Attributes and attribute templates

This is where most of the design work sits. A Miva attribute can be a drop-down, radio button, checkbox, text field or text area, and it may or may not change the price, the weight or the item that is picked. Attribute templates let one set of attributes be copied or linked to many products, and inventory variants turn combinations into their own product records with separate prices, descriptions and images.

Shopify allows three options per product and up to 2,048 variants. Only attributes that identify a stocked item belong in those three options. Everything else has a different home:

  • Attributes that identify a stocked item (size, color, finish) become options, and inventory variants become variants with their own SKU, price, stock and image.
  • Free-text attributes such as engraving or a customer reference become line item properties in the theme, so the text still arrives on the order.
  • Checkbox add-ons with a price (gift wrap, installation kits) become add-on products or bundles, so the price is charged correctly and reported on its own.
  • Specifications that describe the product become metafields with definitions, which the theme displays and Search and Discovery can use as filters.

Products with more than three variant-driving attributes are split or restructured, and we show you the proposed structure for each affected product family before anything is imported. Linked templates are useful here: one template usually maps to one Shopify pattern, which keeps a large catalog consistent.

Price groups, availability groups and B2B

Miva price groups do a lot of jobs. Depending on eligibility (coupon only, specific customers, all logged-in customers or all shoppers) a group can be a sitewide sale, a coupon, a trade discount or customer-specific pricing. Availability groups hide categories and products from customers who are not members. We inventory every group and map each by purpose:

  • Sales and coupons become Shopify automatic discounts or discount codes.
  • Trade and wholesale pricing becomes Shopify B2B: companies, locations, catalogs with price lists, quantity rules and net payment terms. B2B now runs on every Shopify plan, but Basic, Grow and Advanced are limited to three active B2B catalogs, and catalogs assigned directly to one company are a Plus feature. A store with many customer-specific price lists therefore usually belongs on Shopify Plus, and we settle that in the audit.
  • Availability groups become B2B catalogs that only include the products a company may buy, or, on simpler stores, customer tags with theme logic.

Membership comes straight from Miva’s customer and group data, so no trade customer loses their pricing at launch.

Integrations, shipping and custom fields

Mid-market Miva stores are usually connected to something: an ERP or accounting system, a warehouse or 3PL, a shipping tool, a marketplace feed. We list every integration in the audit with its Shopify replacement, which is often a native Shopify connector for the same system or an integration platform. Integrations that write to Miva through the JSON API need rebuilding against Shopify’s Admin API, and we scope that work explicitly.

Live UPS, FedEx or USPS rates at checkout need Shopify’s third-party carrier-calculated shipping, which comes with Advanced and Plus, or Grow on annual billing. Customer custom fields such as account numbers, tax-exempt status or sales rep become customer metafields or B2B company fields, and product custom fields become product metafields with definitions.

What you get at handover

Every Miva migration ends with a reconciliation ledger from Miva counts to Shopify counts for products, variants, customers and orders, with order totals checked and every exclusion named; the attribute mapping, showing where each Miva attribute and template went; the price group and B2B mapping; the redirect list with the status each URL returned; an integration list with what replaced each one; and a recorded walkthrough of the Shopify admin for your team.

Questions we settle in the survey

  • Which Miva version are you on, and is JSON API access available?
  • How many attribute templates and inventory variant products are there?
  • Which price groups and availability groups are still in use, and for whom?
  • Which integrations must be running on launch day?
  • Do you need live carrier rates at checkout?
  • How much order history should come across?

Frequently asked questions

What happens to our Miva attributes and attribute templates?

Attributes that identify a stocked item become Shopify options and variants, with inventory variants keeping their own SKU, price and image. Free-text attributes become line item properties, priced add-ons become add-on products, and specifications become metafields. We agree the structure for each product family before import.

Can Shopify handle our Miva price groups and trade customers?

Yes. Sales and coupons become Shopify discounts, and trade pricing becomes Shopify B2B with companies, catalogs, price lists and payment terms. B2B runs on every Shopify plan, but stores with many customer-specific price lists usually need Shopify Plus.

Will our old Miva URLs still work after the move?

Yes. We redirect the legacy merchant.mvc links, the short link forms and every URI in Miva URI Management to the matching Shopify page, using product and category codes as the key. Each redirect is tested before launch.

Can we keep our Miva order history?

Yes. Orders import as real Shopify orders with the original numbers, dates, chosen options, totals and tracking numbers, and refunds are recorded as refunds. Every order is reconciled against Miva.

What does a Miva to Shopify migration cost?

From 2,500 dollars for stores under 500 products and 5,000 orders (3,500 dollars for larger stores), typically six to eight weeks. Most Miva stores are larger or have B2B pricing and integrations, which we quote as 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 another mid-market platform with a similar data model, see the BigCommerce to Shopify guide, and for larger B2B stores the Shopify Plus migration page.

More than the data

A Miva migration is four jobs. We do all four.

Getting the records out of Miva 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.

01 · Data

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.

  • Sample first
  • Reconciled
  • Audited
02 · Storefront

The front end, designed and built

Rebuilt exactly as it is, given a facelift, or redesigned completely. Quoted inside the migration, not as a second project.

  • Pixel-perfect
  • Facelift
  • Redesign
03 · Apps

Every app accounted for

Reviews, search, subscriptions, loyalty, bundles, email. Matched to a Shopify equivalent, dropped where the platform now does it, or rebuilt as a custom app.

  • Klaviyo
  • Reviews
  • Subscriptions
  • Custom apps
04 · Systems

The back office keeps working

ERP, CRM, PIM, 3PL, POS, accounting and EDI, reconnected and tested before cutover. Nobody rekeys orders on launch day.

  • ERP
  • CRM
  • 3PL
  • POS
  • EDI

The first question we ask

Pixel-perfect, a facelift, or a complete redesign?

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.

Route 01

Pixel-perfect

Indistinguishable from the old store, down to the spacing, but rebuilt on a current Shopify theme so it is faster and maintainable underneath.

  • Same look
  • New foundations
Route 02

A facelift

The same structure, better executed: typography, spacing, color, photography, product pages and navigation. The shape your customers know stays put.

  • Keeps the map
  • Modern build
Route 03

A complete redesign

A new storefront, designed as a prototype you click through before a line of Liquid is written, then built on Horizon.

  • Prototype first
  • Horizon
  • Upgradeable

Included with every migration

After go-live, we audit the store again.

A Miva 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.

Ready when you are.

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.