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.
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
- Carpet and rugs: Broadloom carpet (sold per m²), stair carpet (per linear metre), area rugs (fixed sizes). Key specs: pile height, fibre type (wool, nylon, polypropylene), twist, underlay grade.
- Engineered wood: Click-lock and tongue-and-groove boards. Key specs: top layer thickness, total board thickness, finish, species, width, length, AC rating.
- Solid wood: Strip and plank flooring. Higher movement tolerance considerations for UK damp climates.
- Laminate: AC1–AC5 wear rating, board dimensions, embossed texture type, underlay included or separate.
- Luxury vinyl tile (LVT): Click or glue-down. Wear layer thickness (0.3mm–0.7mm+), waterproof rating, stone or wood effect.
- Porcelain and ceramic tile: Sold per m², box coverage noted on pack. Slip resistance rating (R9–R13), PEI abrasion rating.
- Accessories: Underlay, threshold bars, adhesive, grout, spacers, edging trim, stair nosing.
Coverage area as a product dimension
In WooCommerce, flooring stores typically handle coverage in one of three ways:
- Quantity = coverage: Customer enters quantity in m². Price per unit = price per m². Simple but requires customers to do mental arithmetic about wastage.
- Pack sizes as variants: Board and tile products come in fixed pack sizes (e.g., "1.86 m² per pack / 2 packs = 3.72 m²"). Each pack count is a variant option.
- Custom quantity plugin: WooCommerce stores often use measurement price calculator plugins that allow fractional input. Shopify does not natively support this — it requires an app.
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
| Metafield | Example | Product type |
|---|---|---|
| flooring.product_type | Carpet / Engineered wood / LVT / Laminate / Tile | All |
| flooring.finish | Matt / Gloss / Satin / Brushed / Hand-scraped | Wood, LVT |
| flooring.species | Oak / Walnut / Ash / Bamboo | Wood |
| flooring.ac_rating | AC3 / AC4 / AC5 | Laminate |
| flooring.wear_layer_mm | 0.3 / 0.55 / 0.7 | LVT |
| flooring.waterproof | true / false | LVT, tile |
| flooring.underfloor_heating_compatible | true / false | All |
| flooring.installation_method | Click-lock / Glue-down / Nail-down / Loose lay | All |
| flooring.slip_resistance | R9 / R10 / R11 | Tile |
| flooring.pile_type | Loop / Cut / Twist / Saxony | Carpet |
| flooring.fibre_content | 100% wool / 80% wool 20% nylon / Polypropylene | Carpet |
| flooring.country_of_origin | Belgium / Germany / UK / Turkey | All |
| flooring.warranty_years | 10 / 15 / 20 / Lifetime | All |
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:
- A separate "sample" product type at a nominal price (£1–£5, often refundable)
- A variant on the main product ("Sample / 1 m² / Full roll")
- A free sample request form (not a transaction)
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:
- pa_colour or pa_color: Colour name and tone → Shopify Option 1: Colour
- pa_size / pa_pack-size: Pack size or rug size → Shopify Option 2
- pa_width: Roll width or board width → Shopify metafield
- _coverage / _pack_coverage: m² per pack → metafield
- Product categories: Carpet, LVT, Laminate, Accessories → Shopify collections
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:
- High-resolution product images (minimum 1000×1000px, ideally 2000×2000px) migrate cleanly — k-sync preserves all image URLs from WooCommerce for re-upload.
- Consistent swatch images per colour variant. These are typically stored as WooCommerce variation images and map to Shopify variant images.
- SKUs are consistent, as most visualiser apps link room renders to SKU.
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:
- Separate underlay products with "frequently bought together" linking
- A cart validation script (Shopify Functions or checkout UI extension) that warns if a customer has a laminate or engineered wood product in their cart without underlay
- Bundle discount app: buy flooring + underlay together for 10% off accessories
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
- Pack coverage (m² per pack) is in a metafield on every flooring product
- Roll width stored for all carpet products
- Colour names migrated exactly (no normalisation)
- Sample products linked to parent products via metafield
- Installation method metafield populated for accurate accessory recommendation
- Underfloor heating compatibility flagged on all products
- AC rating and wear layer metafields on laminate and LVT products
- Room visualiser app connected and testing with top SKUs
- Coverage calculator app or theme section in place before launch
- Wastage % recommendation displayed on each product page
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 freeRelated reading
Migrating a luggage and travel accessories store from WooCommerce to Shopify (2026)
How to migrate a luggage, travel bags, or travel accessories WooCommerce store to Shopify — luggage specifications, airline compliance, TSA lock, warranty and durability claims, and luggage retail Shopify setup.
Migrating a motorcycle accessories store from WooCommerce to Shopify (2026)
How to migrate a motorcycle accessories, biker gear, or motorbike parts WooCommerce store to Shopify — helmet safety standards, CE-rated protective clothing, type approval for parts, fitment compatibility, and motorcycle retail Shopify setup.