All projects

Shopify theme rebuild

A theme rebuild for a wine shop with its own data model

The shop for Vall'doAido already existed. It was built by a development studio in Portugal. To fit the fast changing needs of the business, I rebuilt the theme from the ground up. What it did not have was a way to describe a wine. Every technical fact — grape, alcohol, acidity, soil, producer — was typed by hand into an HTML block on each product, and the printed fact sheet was bolted on as a PDF download. Adding one wine cost hours. I rebuilt the theme around typed metafields and metaobjects, so a wine is now data the template renders, not markup someone writes.
Role
Theme development & data modelling
Period
2025 – today
Stack
Liquid, metafields, metaobjects, JS, CSS
Scope
Product page, Collections, Admin API, etc.

"The biggest problem" — Structure

The previous setup treated every product as a one-off. The fact sheet the producer supplies — the ficha técnica — was attached as a PDF download, and anything that needed to be visible on the page was pasted into a rich-text block by hand, per wine, in every language. Nothing was queryable: you could not filter by region, because "Beira Interior" was a run of characters inside a paragraph, not a value. This alone made managing the shop a project in itself. Costing the owner valuable time he could have spent on the business.

Referencesshared records
Weintyp
Region
Rebsorten
Produzent
Winzer
Awards
Numbersfilterable, comparable
Abfülljahr#
Erntejahr#
Produktionsmenge#
Alkohol#
Gesamtsäure#
pH-Wert#
Restzucker#
award_points#
Textper product
BodenbeschaffenheitT
VinifikationT
Serviertemperatur und LagerungT
SpeiseempfehlungT
award_descriptionT

Nineteen fields, sorted as you scroll. Six of them are references to shared records — a producer or a region exists once and every wine that needs it points at the same entry.

Before
  • One hand-written HTML block per product
  • Hours to add a new wine, prone to typos and inconsistencies
  • No filtering — the data was prose
  • Repeating recurring information, like a producer or region
After
  • 19 typed metafield definitions rendered by one template
  • using Claude + MCP, a new wine is added in minutes
  • Filter by producer, region, grape and wine type
  • Shared metaobjects for producers, winemakers, regions, etc.
The product page

The Steckbrief

The block that replaced the hand-written HTML. Every row is a metafield, rendered by one template for every wine in the store. The icons are the same SVGs I drew for the printed catalogue in 2024 — the print schema and the Shopify schema turned out to be the same schema.

Rebuilt here in dark; the shop renders it on linen. Values are the live ones from the product page.

Souvall Parcela Seara Grande Reserva Branco 2023
DOC Beira Interior, Portugal
Typ
Weisswein
Bezeichnung/Region
DOC Beira Interior, Portugal
Abfülljahr / Jahrgang
2024 / 2023
Rebsorten
Síria, Gouveio, Arinto, Rabigato, Fernão Pires
Produktionsmenge
4000 Flaschen
Alkohol
13,8% Vol.
Gesamtsäure
6,53 g/L
pH-Wert
3,12
Lagerung und Service
12–14 °C
Interaction

Down to the Detail

Roughly one in six wines has won something, and the ones that have often have won several times. A row of five medals on a product card would drown the bottle, and showing only the best one throws away the rest. So the stack rests as a single medal and fans out on hover — the card stays calm in a grid, and a visitor who is interested gets the full list without leaving the page.

Rebuilt from the live CSS, with the real medals from Flutt Baga Rosé Bruto. Hover the card — or use the buttons to change how many awards the wine has.

This wine has

The lead medal shrinks and the other 4 expand beneath it.

Flutt Baga Rosé BrutoCHF 13.00

The shop today

Most of the traffic is on a phone, so the product page was rebuilt for the small screen first and the desktop layout follows from it. Everything on the storefront — the spec block, the producer story, the awards, the filtering — reads from the same schema.

valldoaido.ch
The Vall'doAido shop homepage
HomepageProduct pageBlog

The same eight facts started life as a hand-set page in an InDesign catalogue. Two years later they are a schema — and the printed book now generates itself.