07 Configure
The product page
The gallery, the ledger card, and all 25 blocks you can arrange in it.
Curio’s product page is a two-column ledger sheet: a specimen gallery on the left, and on the right a sticky card you compose out of blocks. Everything in that card is a block you can reorder, remove, or leave out entirely — up to 40 of them.
To edit it: theme editor, then the template dropdown at the top, then Products → Default product. The section is called Product information.
Section settings#
| Setting | Default | Notes |
|---|---|---|
| Image fit | Show full image | Show full image sits each photo whole on a mat — right for inherited or inconsistent photography. Fill the frame crops. |
| Similar items collection | none | Linked from the sold notice when the sold archive is on. Set it to your main catalog collection. |
| Show a sticky buy bar | on | Pins a compact buy bar once the real button scrolls out of view |
| Color scheme | 1 |
The gallery#
Images stack in hairline frames with monospace Fig. 01 captions. Clicking one opens a
full-screen lightbox — a native dialog, closed with Escape or a click outside, with focus
returned to where you were. On a phone the gallery becomes a scroll-snap strip with a
Fig. 01/06 pager.
Video, 3D models, and AR all work; Shopify’s media viewers are loaded only when a shopper actually opens one, so a page with a 3D model costs nothing to visit.
Two things you control from the product, not the theme:
- Alt text. Set it in the admin on each image. It is what a screen reader announces and what the lightbox caption shows.
- Variant images. Assign an image to a variant and the gallery jumps to it when that variant is chosen.
The blocks#
Add, remove, and drag these in the theme editor. The order below is the one the theme ships with, which reads top to bottom the way a lot record does.
| Block | What it shows | Needs |
|---|---|---|
| Vendor and era | The eyebrow above the title | The product vendor, or curio.era |
| Title | The product title | |
| Price | The punched price tag, with compare-at struck through and unit price where relevant | |
| Condition stamp | The stamped grade | curio.condition_grade |
| One-of-one note | “This is the only one.” in place of a quantity selector | Real single-unit inventory — see below |
| Variant picker | Ruled radio rows, with native swatches. Unavailable combinations are struck through, not hidden. | More than one variant |
| Purchase options | The subscription or prepaid plan picker | Selling plans on the product |
| Quantity | The stepper, respecting any quantity rules | Hidden automatically on one-of-one items |
| Stock counter | How many are left | Tracked inventory. Prints no number when inventory is untracked. |
| Volume pricing | The quantity break table | B2B quantity price breaks |
| Buy buttons | Add to cart and the accelerated checkout buttons | |
| Quick order list | Every variant in one bulk table with quantities | A multi-variant product |
| Back-in-stock request | A “tell me when it’s back” form while unavailable | |
| Pickup availability | Which locations have it for collection | Local pickup enabled |
| Provenance | The provenance note and attribution | curio.provenance |
| Measurements | The dot-leader table with a cm/in toggle | curio.measurements |
| Condition report | Your flaw list, collapsed | curio.condition_notes |
| Size chart | A detail panel | Its own text, a page, or curio.size_chart |
| Shipping and delivery | A detail panel | Its own text, a page, or curio.shipping_info |
| How to use | A detail panel | Its own text, a page, or curio.usage |
| Ingredients | A detail panel | Its own text, a page, or curio.ingredients |
| Detail panel | A panel with a heading you choose. Repeatable. | Its own text or a page |
| Description | The product description | |
| Colophon | The SKU and barcode line, set small | A SKU on the variant |
| Custom Liquid | Anything you paste in | |
| App blocks | Whatever the app renders | An installed app that offers a product block |
The one-of-one state#
The line “This is the only one.” replaces the quantity selector — but only when all three of these are true on the selected variant:
- Inventory is tracked.
- Continue selling when out of stock is off.
- There is exactly 1 in stock.
There is no setting to force it, on purpose. A theme that lets you type “only one left” is a theme that will eventually say it about a product with forty in the warehouse.
Detail panels#
Five blocks share one accordion: size chart, shipping and delivery, how to use, ingredients, and the repeatable Detail panel. Each looks for content in this order and uses the first one it finds:
- Content typed into the block in the theme editor — the same on every product.
- Page — pick a page and the panel shows its content. Also the same on every product, but edited in Content → Pages rather than the theme editor.
- The matching metafield — different per product.
So a shipping panel is usually a page (one policy, edited in one place), while a size chart is usually a metafield (different for a jacket and a pair of boots). Each panel can start open.
If all three are empty the block renders nothing, so leaving it in place costs you nothing.
Volume pricing and the quick order list#
Both are for wholesale and trade buyers.
Volume pricing shows the quantity break table from your B2B catalog — “3+ £42 each” — and the quantity stepper enforces any minimum, maximum, and increment you have set. Set the breaks in Products → [product] → Pricing on a B2B catalog; the theme reads them.
Quick order list turns a multi-variant product into a single table of every variant with a quantity field and per-line stock, so a buyer can order fourteen sizes in one pass. The script for it loads when the table is first touched.
Back-in-stock requests#
While a variant is unavailable, this block shows a short form that sends you the shopper’s email through Shopify’s contact form. Add your own note to set expectations — “We rarely get the same piece twice, but we will tell you if we do.”
For one-of-one stock this is more useful as a tell me what else you find signal than a real restock alert. Word it accordingly.
When something sells#
By default a sold-out product page shows a disabled Sold out button, which is what most stores want.
Turn on Theme settings → Sold lots → Enable sold archive and it becomes something better: a grayscale gallery with a SOLD overstamp, the price struck through, and a bordered notice — “Sold — this was a single lot” — with a link to the collection you set as Similar items collection. The page stays live, keeps its search ranking, and does a job.
Combined listings#
If you use Shopify’s combined listings to join related products — the same jacket in three colorways, each with its own product page and photography — Curio renders the siblings as plain links. Switching between them is a normal page load, which means it works with JavaScript disabled and each colorway keeps its own URL for search engines.
The sticky buy bar#
Once the real add-to-cart button scrolls above the viewport, a compact bar pins with the product name, price, variant, and a buy button. It tracks the variant you have selected, so it never shows a stale price. Turn it off in the section settings if you would rather not have it.