Watch data and merchant configuration
A complete architectural guide to structuring watch specifications, product story blocks, native storefront filters, and merchant settings in Valmont.
Explore the active development preview: valmont-hw0kgpkx.myshopify.com ↗
Storefront password: valmont
Unified specification architecture
The Product Detail Page (PDP), product cards, quick view, comparison drawer, and Wrist Atelier all share a unified specification resolver:
they inspect the direct watch.<field> product metafield first. If that field is blank or unconfigured, they gracefully fall back to the corresponding field in the linked watch.profile metaobject. Using profiles is optional.
Uploading the theme ZIP does not create custom data definitions on a new Shopify store. If you manage specifications directly on products via Settings → Custom data → Products, configure the following definitions:
| Namespace & key | Shopify field type | Accepted format / usage |
|---|---|---|
watch.movement_type | Single line text | E.g. Automatic, Manual-wind, Quartz |
watch.calibre | Single line text | Manufacturer calibre designation (e.g. Calibre 12.1) |
watch.case_diameter | Decimal number | Millimetres (number only, do not append "mm") |
watch.lug_to_lug | Decimal number | Millimetres (number only, do not append "mm") |
watch.case_thickness | Decimal number | Millimetres (number only, do not append "mm") |
watch.lug_width | Decimal number | Millimetres (number only, do not append "mm") |
watch.case_material | Single line text | E.g. 316L Stainless steel, Grade 5 Titanium, Rose gold |
watch.crystal | Single line text | E.g. Sapphire with anti-reflective coating, Box sapphire |
watch.water_resistance | Single line text | Include verified rating with units (e.g. 100 m / 10 bar) |
watch.power_reserve | Single line text | Include verified unit (e.g. 70 hours); omit on quartz |
watch.frequency | Single line text | Include verified unit (e.g. 28,800 vph / 4 Hz) |
watch.jewels | Integer | Integer count of functional jewels (e.g. 27) |
watch.dial_colour | Single line text | Dial colour or finish description |
watch.strap | Single line text | Strap or bracelet material and clasp description |
watch.complications | List of single line text | Verified complications (e.g. Chronograph, Moonphase) |
watch.style | Single line text | Internal categorization for filtering (e.g. Diver, Dress, Pilot) |
watch.reference, watch.clasp, watch.weight, watch.warranty | Single line text | Optional secondary technical specifications |
Dimensions automatically format with the localized watch.mm translation string. Keep text fields accurate and translate non-default languages via Shopify's content translation workflow. Unpopulated attributes remain hidden rather than showing empty cells or zeros.
Product page and editorial story blocks
- Policy summary block: Add via product template blocks to render verified shipping, warranty, and return policies. Supports dynamic sources; empty blocks remain hidden.
watch.short_description: Standalone multi-line summary. When absent, the first 35 words of the standard product description are used as an excerpt, while preserving the full text under About this watch.- Product stories section: Reorder fit, detail, and movement blocks independently in the theme editor. Sections without content render no empty containers.
watch.wrist_image: Dedicated wrist photography file reference. Whencase_diameterorlug_to_lugexists, the contextual size guide is displayed.watch.detail_image&watch.detail_story: High-resolution macro imagery paired with rich-text craftsmanship copy. Both must be populated to render.watch.movement_story&watch.movement_image: Calibre technical narrative with optional movement photography.watch.detail_hotspots: Optional JSON array of interactive focal points on the detail visual. Accepts up to four objects containingtitle,body,x, andy(coordinates expressed as percentages from 0 to 100).
Native storefront filtering
Valmont strictly consumes Shopify's native collection.filters schema (list, boolean, and price range filters). No third-party filter app scripts are injected into your storefront.
To enable watch filtering, open the Filters section in the Shopify Search & Discovery app (or Shopify's native filter settings) and activate the product metafields: movement_type, case_diameter, dial_colour, case_material, strap, water_resistance, complications, and style.
Sorting and filtering state are managed within the same native GET request. Active tags generate native url_to_remove links, and clearing individual filters preserves active sort criteria.
Pickup availability, pricing and payments
Adding the Pickup availability block into the product template queries native Shopify store pickup locations and live inventory for the selected variant. Configure pickup under Shopify Settings → Shipping and delivery first. The theme displays real-time availability and provides a retry mechanism upon connection errors.
Regular, compare-at, and unit prices dynamically follow variant selections. The sticky bottom purchase bar reflects the active variant's payable price, and unavailable combinations gracefully disable accelerated checkout.
Homepage and interactive sections
- Wrist Atelier: Side-by-side and overlaid watch comparison against a known reference diameter. Configure reference diameters, calibrated cutout imagery, and optional measured wrist photos in the Wrist Atelier guide.
- Campaign invitation: Fully configurable announcement modal with custom campaign identifier, delay trigger, and page scroll progress threshold. Supports a manual mode for editor inspection.
- Hero showcase: High-performance layered presentation. Ensure your primary timepiece photography uses clean transparent alpha channels and color-calibrated studio lighting.
Developer CSS and build maintenance
The layout loads two generated style bundles per page while source CSS files remain organized and modular. After making changes to source CSS files in development:
# Regenerate optimized production style bundles
npm run build:styles
# Validate theme integrity and bundle freshness
npm run check
Theme ZIP installations in Shopify require no build tools. Merchant font and color settings declared in the Shopify Theme Editor take precedence.
Illustrative concept data
If you are testing store layout with sample or fictional timepieces, set the profile reference to start with DEMO-. Valmont will automatically append an explicit localized concept notice to product cards, specification matrices, quick view, and Wrist Atelier. Replace these with manufacturer-verified facts before opening commercial sales.
Native commerce suite: Eliminating monthly app costs
Standard Shopify stores frequently install 8 or more monthly subscription apps for volume discounts, sizing guides, countdown timers, and upsells. These apps introduce significant monthly overhead (averaging $181 / month or ~$2,172+ / year) while injecting bloated JavaScript tracking scripts that degrade storefront speed.
Valmont App-Replacement Financial ROI
Valmont builds all 8 vital horlogerie conversion tools directly into native Liquid, CSS, and vanilla JS with zero third-party app subscriptions.
~$2,172 / year recurring drain
Included in single theme license
80% 1st-year net merchant ROI
| Native Tool / Feature | Third-Party App Equivalent | Valmont Built-in | Performance & Business Benefit |
|---|---|---|---|
| Tiered Volume & Quantity Breaks | $24 – $39 / mo | ✓ Native Block ($0) | 0 external database roundtrips; seamless instant checkout path. |
| The Wrist Atelier™ & Size Guide | $15 – $25 / mo | ✓ Native Engine ($0) | Eliminates sizing app; cuts buyer hesitation & return rates. |
| Luxury Urgency & Batch Countdown | $10 – $15 / mo | ✓ Native Block ($0) | Minimalist limited production counter without scammy fake timer scripts. |
| Calibre Specs & Comparison Matrix | $15 – $25 / mo | ✓ Native Section ($0) | Direct metafield/metaobject resolution; zero database queries. |
| In-Cart Strap & Accessory Cross-Sells | $19 – $39 / mo | ✓ Native Section ($0) | Direct Ajax cart API integration without iframe render lag. |
| Free Insured Shipping Progress Bar | $8 – $19 / mo | ✓ Native Section ($0) | Motivates higher AOV in cart drawer and page dynamically. |
| Sticky Ergonomic Purchase Bar | $9 – $15 / mo | ✓ Native Section ($0) | 0ms layout shift; retains active variant and live price on scroll. |
| Provenance & Warranty Badges | $5 – $12 / mo | ✓ Native Block ($0) | Crisp inline vector trust marks with zero external asset requests. |
| Annual Tech Stack Cost | ~$2,172+ / year | $0 / year (Included) | Saves $1,750+ net in year 1; $2,170+ every year after. |