k-sync
Back to blog

Migrating a flooring and carpet store from WooCommerce to Shopify (2026)

How to migrate a flooring, carpet, or hard floor WooCommerce store to Shopify — coverage area variants, sample ordering, room visualiser metafields, installation product bundles, and flooring retail Shopify setup.

·By k-sync
6 min read · 1,140 words

Flooring is sold by the square metre, not by the unit. That single fact drives most of the complexity in migrating a flooring or carpet WooCommerce store to Shopify. Customers need to calculate coverage, order samples, and often book installation — none of which maps cleanly onto Shopify's default product model without careful configuration.

Flooring product categories

Coverage area as a product dimension

In WooCommerce, flooring stores typically handle coverage in one of three ways:

During migration, k-sync captures all pack size data from WooCommerce variant attributes. The most practical Shopify approach for most flooring retailers is pack sizes as variants, with a coverage calculator embedded via a Shopify app (e.g., Quantity Breaks, Measurement Price Calculator).

Roll width and board dimension metafields

For carpet sold by the metre, roll width determines how much wastage a customer has. Store dimensions clearly:

product.metafields.flooring.roll_width_m = "4"           // 4-metre wide roll
product.metafields.flooring.coverage_per_pack_m2 = "1.86"
product.metafields.flooring.board_length_mm = "1215"
product.metafields.flooring.board_width_mm = "197"
product.metafields.flooring.board_thickness_mm = "12"
product.metafields.flooring.wastage_factor_pct = "10"     // recommended 10% wastage

A coverage calculator can then take the customer's room dimensions (entered in a cart note or via app), add the wastage factor, and suggest the required number of packs.

Product metafields for flooring

MetafieldExampleProduct type
flooring.product_typeCarpet / Engineered wood / LVT / Laminate / TileAll
flooring.finishMatt / Gloss / Satin / Brushed / Hand-scrapedWood, LVT
flooring.speciesOak / Walnut / Ash / BambooWood
flooring.ac_ratingAC3 / AC4 / AC5Laminate
flooring.wear_layer_mm0.3 / 0.55 / 0.7LVT
flooring.waterprooftrue / falseLVT, tile
flooring.underfloor_heating_compatibletrue / falseAll
flooring.installation_methodClick-lock / Glue-down / Nail-down / Loose layAll
flooring.slip_resistanceR9 / R10 / R11Tile
flooring.pile_typeLoop / Cut / Twist / SaxonyCarpet
flooring.fibre_content100% wool / 80% wool 20% nylon / PolypropyleneCarpet
flooring.country_of_originBelgium / Germany / UK / TurkeyAll
flooring.warranty_years10 / 15 / 20 / LifetimeAll

Sample ordering flow

Sample products are one of the most important conversion tools for flooring retailers. Customers want to see colour and texture in their actual room lighting before committing to a full order.

In WooCommerce, samples are typically handled as:

For Shopify, the cleanest approach is a separate sample product linked to the main product via a metafield:

product.metafields.flooring.sample_product_handle = "oak-herringbone-lvt-sample"

On the product page, a "Order a sample" button links to the sample product. After migration, k-sync preserves all related product references in the normalized data for manual cross-linking in Shopify.

WooCommerce to Shopify field mapping for flooring

Flooring stores typically use WooCommerce attributes and custom fields as follows:

Colour naming in flooring tends to be poetic rather than descriptive ("Misty Meadow", "Coastal Drift"). These names should migrate exactly as-is to Shopify option values — do not normalise flooring colour names to plain descriptors unless the client specifically requests it.

Installation product bundles

Flooring retailers frequently sell installation accessories alongside the main product. In Shopify, there are two approaches:

Option A — Frequently Bought Together app: After migration, tag flooring products with their installation type (e.g., "click-lock", "glue-down") and configure the app to show appropriate accessories.

Option B — Metafield-linked bundle: Store a list of accessory product handles directly on the flooring product:

product.metafields.flooring.recommended_accessories = "standard-underlay,moisture-barrier-underlay,floor-edging-trim"

A Shopify theme section then reads this metafield and renders the accessory list with add-to-cart buttons. This is more reliable than app-based recommendations for technical product compatibility.

Colour and room visualiser integration

High-end flooring retailers often integrate a room visualiser tool. In WooCommerce this is typically a plugin (e.g., Floor Visualizer). Shopify has apps (e.g., VisualizeIt, Roomvo) that integrate similarly.

For migration purposes, ensure:

Underlay as a separate product or mandatory add-on

Underlay is required for most floating floor installations but is often sold separately. Strategies in Shopify:

During migration, underlay products are migrated as standard products. Coverage metafields should be populated so customers can match underlay coverage to flooring coverage.

Post-migration checklist for flooring stores

Migrate your store with k-sync

Connect your WooCommerce store, validate your products, and push to Shopify in minutes. Free for up to 50 products.

Get started free

Related reading

Browse all migration guides