Real project · a store for BMW parts
BMWParts.bg CloudCart → Shopify
BMWParts.bg lets customers search for a part by BMW model or OEM number and browse the catalogue by series and generation. When moving the store from CloudCart to Shopify, I rebuilt the navigation and product pages and preserved the old links to products, categories and the blog.
- 180migrated products
179 public + 1 kept as a draft
- 408URL redirects
working after the move to Shopify
- 114BMW generations
in separate Shopify collections
- 6/6blog posts
moved into the new structure
What had to be kept
What the migration covered
OEM numbers, images and categories had to stay with the right products. I also preserved the old URLs. I linked a product to a BMW model only when that relationship was present in the CloudCart data.
Catalogue
180 CloudCart products were migrated: 179 are publicly active, and 1 is kept as a draft and is not visible in the store.
BMW structure
New parts, used parts and tuning, plus 114 generations in 10 model families.
Findability
Search by name, BMW model and part number. Model links follow the data from the old store.
SEO risk
Old product, category and blog URLs with exact Shopify matches.
Before and after migration
CloudCart before. Shopify after.
Compare the navigation, home page, catalogue and the same product before and after migration. CloudCart is on the left and Shopify on the right. Drag the divider to see the differences.
BMW navigation
Navigation by series and generation
The CloudCart menu lists the series together. On Shopify, you choose a series and then see its generations. This helps you browse the catalogue; compatibility with a specific part still needs a separate check.
Before · CloudCart After · Shopify Home page
Search and the main categories from the start
The old home page opens with featured products. The new one puts search, the three main departments and the choice by BMW model before the catalogue.
Before · CloudCart After · Shopify Category and collection
A catalogue with categories, filters and BMW generations
CloudCart shows the category and a standard sort order. Shopify adds the total count, the main product departments and navigation by BMW generation around the product grid.
Before · CloudCart After · Shopify Product page
The OEM number sits next to the key information
The comparison is of the same shock absorber, part number 37106875083. On Shopify, the OEM number, the condition, the price and the order button are clearly separated.
Before · CloudCart After · Shopify Working with the data
Export, data mapping and import
I matched OEM numbers, images, categories and old URLs against the CloudCart export. Where compatibility information was missing, I left it blank rather than guessing from the product title.
- 01
CloudCart export
Product data, public URLs and a list of the missing fields.
- 02
Data mapping
A match for product, OEM number, image, price, category, SEO and old URL.
- 03
Shopify import
Products, collections, BMW generations and product tags from confirmed data only.
- 04
301 redirects
Each old URL points to its corresponding new page, rather than redirecting every URL to the home page.
- 05
Checks after launch
The imported data and the main actions in the store, on a computer, a tablet and a phone.
A catalogue of BMW parts
Navigation by series and generation
114 separate collections arrange the parts by BMW generation. 17 products were not assigned to a generation automatically, because the title alone is not enough evidence of compatibility.

Catalogue organisation
How the catalogue is organised
- Part numbervisible on the card and on the product page
- BMW modelsonly links confirmed in the source are shown
- Conditionclearly separated from availability and quantity
- CategoriesNew parts, used parts and tuning
Product page
The OEM number sits next to the key information
I placed the OEM number beside the title and price so the customer can compare it with the number of the part they need. Links to generations are labelled ‘BMW models’.
a real part number in the product shown

SEO migration
301 redirects for the old URLs
408 old URLs now lead to the matching products, categories, posts and the blog on Shopify. That way, visitors and search engines reach the right page after the migration.
/product/<product-name>/products/<product-name>Redirects to the new pages
Old links continue to lead to the corresponding content on Shopify.
Exact match
The old URL segment is kept for products and categories.
GA4 + Google Search Console
GA4 and Google Search Console are connected. The sitemap still has to be resubmitted and the main pages requested for indexing.
On a phone
Product and search on a phone
On a phone, the product image stays on the first screen, long titles do not overflow the page, and the results of a search by BMW model stay easy to scan.
- Navigation stays within reach while scrolling
- The blog is visible as soon as the menu opens
- Search by BMW model and OEM number


Completed project
What the completed project includes
The migration covered the catalogue, navigation, customer profiles and blog. I checked search and the steps through to ordering, including the delivery collection point, on a computer, tablet and phone.
What is done
- 180 migrated products: 179 public and 1 kept as a draft
- 114 BMW generations and the store navigation
- 408 old URLs redirected to the right new pages
- A customised Horizon theme and 6/6 public blog posts
- 646 migrated customer profiles
- A verified lead time of 3–8 working days on 52 active products
- Search by name and OEM number, categories, product, basket and delivery to an office
Before you move your store
Have an existing store and considering Shopify?
Send me your store URL and tell me what you want to keep or change. I will review the data and integrations and give you an assessment of the scope, risks and budget.
BMWParts.bg is a specialist store for BMW parts. This page does not claim any partnership with or endorsement by BMW AG.



