k-sync
Back to blog

Migrating a watches and horology store from WooCommerce to Shopify (2026)

How to migrate a watch, clock, or horology WooCommerce store to Shopify — movement type and complication metafields, serial number tracking, warranty card setup, pre-owned authentication, and watch retail Shopify configuration.

·By k-sync
4 min read · 883 words

Watch retail combines the complexity of luxury goods (authentication, provenance, high transaction values) with the technical depth of precision engineering (movement specifications, complications, water resistance ratings). A Shopify product page for a premium watch needs to surface both the emotional appeal and the technical specification that serious buyers demand.

Watch and horology product categories

Movement specification metafields

For horologically literate buyers, movement specification is a primary purchasing criterion. These details should be structured as metafields rather than buried in prose descriptions:

MetafieldExampleUse
watch.movement_typeAutomatic / Manual wind / Quartz / Solar / KineticPrimary filter
watch.movement_calibreETA 2824 / Miyota 9015 / In-houseTechnical spec
watch.power_reserve_hours38 / 48 / 72 / 80Spec table
watch.jewels17 / 21 / 25Movement quality
watch.frequency_bph21600 / 28800 / 36000Beat frequency
watch.complicationsDate / GMT / Chronograph / MoonphaseFunction filter
watch.case_diameter_mm36 / 38 / 40 / 42 / 44Size filter
watch.case_thickness_mm8.5 / 10.2 / 12.4Wrist comfort
watch.case_material316L stainless / 904L stainless / Titanium / Gold PVDMaterial filter
watch.crystal_materialSapphire / Sapphire with AR / Mineral / HardlexDurability
watch.water_resistance_m30 / 50 / 100 / 200 / 300 / 1000Safety spec
watch.lug_width_mm18 / 20 / 22 / 24Strap compatibility
watch.strap_materialLeather / Rubber / Milanese / BraceletStyle filter
watch.dial_colourBlack / White / Blue / Salmon / GreenColour filter
watch.country_of_manufactureSwitzerland / Japan / Germany / ChinaProvenance

Colour and strap variants

For fashion and mid-range watches, a single model often comes in multiple dial colours and strap combinations. In Shopify:

4 colours × 4 straps = 16 variants — straightforward. Higher-end luxury watches are typically single products (one dial, one bracelet) as each configuration is a distinct model.

In WooCommerce, colour and strap attributes (pa_colour, pa_strap) map cleanly to Shopify variant options via k-sync's attribute migration.

Watch strap sizing as a product

Watch straps (replacement) are sold by lug width and are cross-compatible with any watch of that lug width. Structure in Shopify:

The product page should include a watch.fits_lug_width_mm = "20" metafield for filterable collection use. Customers can then search for "20mm straps" in the store's collection filters.

Pre-owned and vintage watches

Pre-owned watch retail is a significant segment with unique product data requirements. Each watch is an individual item with unique history:

product.metafields.watch.condition = "Excellent / Very Good / Good / Fair"
product.metafields.watch.serial_number = "123456789"
product.metafields.watch.year_of_manufacture = "2018"
product.metafields.watch.box_and_papers = "true"  // Box and warranty card included
product.metafields.watch.serviced = "true"
product.metafields.watch.service_date = "2024-03"
product.metafields.watch.authentication_ref = "CHRONO24-CERT-12345"

In Shopify, pre-owned watches are typically individual products (not variants) because each unit is unique. Inventory is set to 1 for each. During WooCommerce migration, k-sync preserves all custom field data including serial numbers, condition grades, and service history.

Certificate of authenticity and warranty

For new and pre-owned luxury watches, certificates of authenticity and warranty cards are physical goods that accompany the purchase. In Shopify:

Water resistance — important SEO and safety note

Water resistance labelling is a common area of customer misunderstanding and potential returns. "Water resistant to 30m" does not mean suitable for swimming — it refers to splash resistance under static test conditions. Structure this clearly:

product.metafields.watch.water_resistance_m = "50"
product.metafields.watch.water_resistance_guide = "Suitable for rain / light splashes only"
// Note: 100m+ = suitable for swimming, 200m+ = scuba diving

Display the water resistance guide note on the product page to reduce returns from customers who wore their "50m water resistant" watch in the sea.

Post-migration checklist for watch 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