Migrating a rugs, textiles & wallpaper store from WooCommerce to Shopify (2026)
How to migrate a rugs, soft furnishings, or wallpaper WooCommerce store to Shopify — rug size variants, material and pile height metafields, wallpaper roll calculator, fabric cut-to-order handling, and home textiles Shopify setup.
Home textiles — rugs, curtain fabrics, cushions, wallpaper, blinds — sit at the intersection of interior design and practical purchasing: customers need to know exact dimensions, material properties (pile height for rugs, light-filtering for curtains, pattern repeat for wallpaper), and often need to calculate quantities before purchasing. The product data challenge is significant, but well-structured metafields and room-calculation tools transform a transactional product catalogue into a genuinely useful interior design resource that customers return to.
Product categories
- Rugs: Various sizes (runner, small, medium, large, extra large). Material (wool, cotton, jute, synthetic, sheepskin). Style (plain, patterned, geometric, vintage, shaggy).
- Curtain and upholstery fabric: Sold by the metre. Width-specific pricing. Multiple colourways per design.
- Ready-made curtains: Fixed size (width × drop). Lined/unlined/blackout variants.
- Cushions and cushion covers: Standard sizes (45cm, 50cm, 60cm). Filled vs cover only.
- Bed linen: Size (single/double/king/super king). Thread count, material.
- Throws and blankets: One size or small range. Material variants.
- Wallpaper: Sold by roll. Pattern repeat, roll dimensions, coverage per roll.
- Blinds: Made-to-measure or standard sizes. Fabric, mechanism (roller, roman, venetian).
- Flooring samples: Small swatch orders to assess colour/texture before purchasing full size.
Rug metafields and variants
- Variant: Size (Runner 60×230cm, Small 80×150cm, Medium 120×170cm, Large 160×230cm, Extra Large 200×290cm, Round 150cm diameter)
- Variant: Colour/Colourway — if available in multiple colours within the same design
- Shopify 100-variant limit: Size × Colour. 6 sizes × 10 colours = 60 variants — within limit for most ranges. Large colour ranges should split by colourway group.
- Metafield:
product.metafields.rug.pile_height_mm(single_line_text) — "5 mm (flat weave)", "15 mm (medium pile)", "50 mm (high pile/shaggy)" - Metafield:
product.metafields.rug.material(single_line_text) — "100% Wool", "80% Wool / 20% Cotton", "100% Jute", "100% Polypropylene" - Metafield:
product.metafields.rug.construction(single_line_text) — "Hand-knotted", "Hand-tufted", "Machine woven", "Flatweave", "Braided" - Metafield:
product.metafields.rug.underfloor_heating_suitable(boolean) — flat weave and low-pile natural fibre rugs are typically suitable; high-pile and thick backing rugs may not be - Metafield:
product.metafields.rug.non_slip_backing(boolean) - Metafield:
product.metafields.rug.washable(boolean) — machine washable vs dry clean only - Metafield:
product.metafields.rug.care_instructions(multi_line_text) — detailed care instructions - Metafield:
product.metafields.rug.room_style(multi_line_text) — "Scandi / Minimalist", "Bohemian", "Traditional / Classic", "Contemporary", "Industrial" - Metafield:
product.metafields.rug.suitable_rooms(multi_line_text) — "Living room", "Bedroom", "Hallway", "Kitchen", "Outdoor" - Note on outdoor rugs: display whether the rug is suitable for outdoor use — UV resistance and water resistance are key properties.
Fabric by-the-metre
- Fabric sold by the metre requires a quantity calculation at checkout: customer specifies how many metres they need. Each unit purchased = 1 metre (or 0.5 metre if sold in half-metre increments).
- Shopify approach: set the unit as 1 metre. Customer enters quantity = metres required. This is the simplest approach.
- Width: fabric width is a fixed property of the product, not a variant. Display prominently: "Width: 140 cm". Wide fabric (fabric wide enough for curtains without seaming) is a key purchase factor.
- Metafield:
product.metafields.fabric.width_cm(single_line_text) — "140 cm", "150 cm" - Metafield:
product.metafields.fabric.pattern_repeat_cm(single_line_text) — "25 cm vertical repeat" — customers need this to calculate how many extra metres to order to pattern-match seams - Metafield:
product.metafields.fabric.weight_gsm(single_line_text) — "200 gsm (medium weight)", "350 gsm (heavy upholstery weight)" - Metafield:
product.metafields.fabric.composition(single_line_text) — "55% Linen, 45% Cotton" - Metafield:
product.metafields.fabric.suitability(multi_line_text) — "Curtains", "Upholstery", "Cushion covers", "Roller blinds", "Tablecloths" - Metafield:
product.metafields.fabric.martindale_rub_count(single_line_text) — "30,000 rubs" — upholstery durability standard. Over 20,000 is suitable for domestic upholstery. - Cut fabric non-returnable: fabric cut to length from a roll is a bespoke cut and is non-returnable unless faulty (Consumer Contracts Regulations). Display this policy on all fabric product pages.
Wallpaper metafields and roll calculator
- Metafield:
product.metafields.wallpaper.roll_width_cm(single_line_text) — "52 cm" (standard) or "106 cm" (wide format) - Metafield:
product.metafields.wallpaper.roll_length_m(single_line_text) — "10 m" (standard UK roll) - Metafield:
product.metafields.wallpaper.pattern_repeat_cm(single_line_text) — "0 cm (plain)", "25 cm (straight match)", "25 cm (half drop)" - Metafield:
product.metafields.wallpaper.match_type(single_line_text) — "Free match (plain)", "Straight match", "Half drop match" — affects how many rolls are needed (half drop requires more waste) - Metafield:
product.metafields.wallpaper.paste_type(single_line_text) — "Paste the wall", "Paste the paper" - Metafield:
product.metafields.wallpaper.product_type(single_line_text) — "Vinyl", "Non-woven (paste the wall)", "Traditional paper", "Embossed" - Roll calculator: embed a JavaScript wallpaper roll calculator on wallpaper product pages. Inputs: room width (metres), room height (metres), number of windows and doors (approximate deductions). Output: number of rolls recommended (with a note to always order 10% extra for matching and waste).
- Order in one batch: recommend customers order all rolls from the same batch number (consistent colour matching between rolls). Display batch number as an order note and fulfil from the same batch wherever possible.
Curtain and blind metafields
- Metafield:
product.metafields.curtain.light_filtering(single_line_text) — "Sheer (very light filtering)", "Voile", "Standard (filters 60% of light)", "Blackout (complete darkness)" - Metafield:
product.metafields.curtain.lining_type(single_line_text) — "Unlined", "Lined", "Interlined", "Blackout lined" - Metafield:
product.metafields.curtain.heading_type(single_line_text) — "Eyelet", "Pencil pleat", "Tab top", "Rod pocket" - Metafield:
product.metafields.curtain.care(single_line_text) — "Machine washable", "Dry clean only" - Ready-made curtain variants: Variant: Width × Drop (90" drop, 108" drop, 137" drop — standard UK sizes). Paired curtains vs single panel.
Home textiles migration checklist
- Create rug metafield namespace: pile_height_mm, material, construction, underfloor_heating_suitable, non_slip_backing, washable, suitable_rooms, room_style
- Create fabric metafield namespace: width_cm, pattern_repeat_cm, weight_gsm, composition, suitability, martindale_rub_count
- Create wallpaper metafield namespace: roll_width_cm, roll_length_m, pattern_repeat_cm, match_type, paste_type
- Set up rug variants: size × colour (check 100-variant limit)
- Set up fabric as by-the-metre unit products
- Set up curtain variants: width × drop
- Enable material, pile height, underfloor heating, room style filters for rugs
- Enable fabric suitability, weight, and composition filters
- Add wallpaper roll calculator to wallpaper product page template
- Add cut fabric non-returnable notice to all fabric product pages
- Test: rug size × colour variant → correct SKU and price to cart
- Test: wallpaper roll calculator → correct roll count output for given room dimensions
The wallpaper roll calculator is the most important conversion tool for a wallpaper retailer. Customers who are uncertain how many rolls they need are customers who will not buy online — they will visit a store to ask. A well-designed roll calculator that takes room dimensions, accounts for pattern repeat, and recommends ordering 10% extra removes the last barrier for customers who are confident about the design but uncertain about quantity. Combined with a prominent note about batch number matching, it positions the retailer as an expert guide rather than just a product vendor, and it prevents the most common wallpaper complaint: "I ordered too few rolls and the second batch doesn't match." That complaint is almost always avoidable with correct quantity guidance at the point of purchase.
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.