Brands leave Salesforce Commerce Cloud for a handful of recurring reasons: the cost of keeping a systems integrator on retainer for routine changes, release cycles measured in weeks, and a licence model tied to revenue. Shopify Plus changes all three, but only if the migration is planned around concepts rather than tables.
Start with an inventory, not a data export
Before anyone exports a product, list what the current build actually does. In an SFCC estate that usually means:
- Sites and locales in Business Manager, and how they share or split catalogues.
- Price books, including sale and B2B price books, and who maintains them.
- Promotions and campaigns, with any custom qualifiers.
- Inventory lists and how stock reaches the storefront.
- Cartridges, both third-party and custom, and what each one is for.
- Content assets and Page Designer pages.
- Integrations: OMS, ERP, PIM, search, tax, payments, loyalty and reviews.
Half of this inventory usually turns out to be unused or replaceable. The other half defines the project.
How the main concepts map
| SFCC | Shopify Plus | Watch out for |
|---|---|---|
| Sites and locales | Shopify Markets in one store, or expansion stores | Split stores only where assortment, stock or law really differ |
| Price books | Market prices and price lists; B2B catalogues | Customer-specific B2B pricing beyond three catalogues needs Plus |
| Promotions | Discounts, plus Functions for custom logic | Complex qualifiers need to be rebuilt, not configured |
| Cartridges | App Store apps or custom apps | Each one needs an owner and a decision |
| Page Designer | Theme sections, blocks and metaobjects | Content model before content migration |
| Inventory lists | Locations and inventory sync | Decide the stock master system up front |
| Customer accounts | Shopify customer accounts | Passwords cannot be transferred |
Checkout and custom logic
On Plus, checkout is extended through checkout UI extensions and Shopify Functions rather than edited directly. Discount, shipping and payment rules that lived in custom SFCC code become Functions; extra fields and messages in checkout become UI extensions. Anything that changes the checkout flow itself, such as inserting a step, is not possible and has to be solved before checkout. We cover what is and is not possible in checkout extensibility.
URLs and SEO
SFCC stores often use locale paths such as /en-gb/ or /de-de/ and product URLs ending in an ID and .html. Shopify uses fixed paths such as /products/ and /collections/, and Shopify Markets can serve each market in a subfolder. Every old URL with traffic or links needs a 301 to its new equivalent, prepared and tested before cutover; hreflang must be rebuilt for every market. The redirect method is the same as in protecting SEO through a migration.
Integrations are the critical path
The storefront is rarely what delays an enterprise migration. OMS, ERP and PIM connections are. Decide early which system is the master for products, prices, stock and orders, and whether existing middleware stays. If an integration has no maintained Shopify connector, budget for a custom app with monitoring and retry handling, as described in ERP and inventory integration.
A realistic sequence
- Inventory and decisions: what moves, what is replaced, what is dropped.
- Content and data model in Shopify: products, metafields, metaobjects, markets.
- Integrations built and tested against a staging store.
- Theme built on the agreed content model.
- Data migration rehearsed at least once, then repeated for cutover.
- Redirects, hreflang and tracking verified; cutover in a low-traffic window.
We scope migrations of this size as a fixed-price Shopify Plus project after the inventory stage, because that stage is what turns an estimate into a number you can hold us to.