# Furniture data

Chapter 7 of the Atelier user guide.

Atelier's signature features read custom data you keep in Shopify: metafields on products and variants, and two metaobjects, **Designer** and **Material**. All of it is optional. Each feature hides whatever it has no data for, so you can start with a few products and fill the rest over time (see "What shows without the data" at the end of this chapter).

## Step 1: create the product metafield definitions

In admin, go to **Settings › Custom data › Products › Add definition**. For each row, enter the **Namespace and key** exactly as shown (the name can be anything you like) and pick the type.

| Namespace and key | Type | Example | Read by |
| --- | --- | --- | --- |
| `custom.width` | Dimension | 240 cm | Card dimension line, Dimensions section, hero annotation, Shop the room, Will it fit |
| `custom.depth` | Dimension | 98 cm | Same |
| `custom.height` | Dimension | 72 cm | Same |
| `custom.diameter` | Dimension | 45 cm | Round pieces: replaces width and depth ("Ø 45 · H 50 cm") |
| `custom.seat_height` | Dimension | 38 cm | Dimensions table and drawing |
| `custom.arm_height` | Dimension | 58 cm | Dimensions table and drawing |
| `custom.seat_depth` | Dimension | 52 cm | Dimensions table |
| `custom.clearance` | Dimension | 14 cm | Dimensions table ("Leg clearance"); draws legs on the outline |
| `custom.diagonal_depth` | Dimension | 84 cm | Will it fit: deep sofas that go through a door tilted |
| `custom.drawing_front` | File (images) | arc-front.png | The front view in the drawing |
| `custom.drawing_side` | File (images) | arc-side.png | The side view in the drawing |
| `custom.downloads` | File, list of files (any file type) | Spec sheet PDF, DWG, OBJ | Downloads under the drawing |
| `custom.lead_time_min_weeks` | Integer | 8 | Delivery block, cards, cart lines (chapter 11) |
| `custom.lead_time_max_weeks` | Integer | 12 | Same |
| `custom.designer` | Metaobject, one entry, type **Designer** | Maren Holt | Designer byline, card designer line, designer story |
| `custom.collection_name` | Single line text | Arc collection | Designer byline ("Maren Holt · Arc collection") |
| `custom.material_summary` | Single line text | Bouclé, wool or leather on an oak plinth | Card designer line, hero wall label |
| `custom.short_description` | Multi-line text | A low, deep lounge chair… | Description block in Excerpt mode |
| `custom.restock_note` | Single line text | Back in January. | Status line when sold out |
| `custom.preorder_date` | Date | 2027-03-01 | "Ships from March 2027" on pre-orders (chapter 6) |

**Units.** A Dimension metafield keeps its own unit: enter centimetres, millimetres, metres, inches, feet or yards and the theme converts. If you create a measurement as a plain Integer or Decimal instead, the theme reads it as centimetres. Shoppers can switch the Dimensions section to inches (chapter 9).

**Variant overrides.** A two-seat and a three-seat sofa differ, so the measurements (`width` to `diagonal_depth`), the drawings, the downloads and the lead times can also be set per variant. Create the same keys under **Settings › Custom data › Variants**; a variant's own value wins over the product's, and a variant without one uses the product's. The other keys are read from the product only.

**Line drawings** are stretched to the piece's measured box (front: width × height; side: depth × height), so crop each drawing tightly to the piece's outline, with no margin, and use a transparent or white background. Without drawings, the theme draws a clean outline of the piece's box instead.

**Downloads** show up to 12 files in the order you add them. Each link's label is the file's alt text when you set one in **Content › Files**, else its file name with dashes and underscores read as spaces ("arc-lounge_spec-sheet.pdf" reads "Arc lounge spec sheet"), and its type is the extension ("PDF", "DWG", "OBJ").

## Step 2: create the Designer metaobject

Go to **Settings › Custom data › Metaobjects › Add definition**. Name it **Designer**; its type (handle) must be `designer`. Add these fields:

| Field key | Type | Example | Shown as |
| --- | --- | --- | --- |
| `name` | Single line text | Maren Holt | The byline, card line and story heading |
| `role` | Single line text | Furniture designer, Melbourne | The line under the heading |
| `portrait` | File (images) | | The story's image |
| `quote` | Multi-line text | "A chair should look as good from behind as it does from the front." | The pull quote |
| `bio` | Rich text | | The story's body |
| `collection` | Collection (one) | Maren Holt | Facts ("Pieces": the number of products in it), the "Explore Maren's work" button and the featured collection on the designer page |
| `studio` | Single line text | Fitzroy, Melbourne | Facts ("Studio") |
| `since` | Single line text | 2019 | Facts ("With us since") |

Under **Access**, turn on **Storefronts** so the theme can read the entries. Optionally turn on **Web pages** (the **Publish entries as web pages** option): each designer then gets a page at `/pages/designer/<handle>` using the theme's `metaobject/designer` template, with their story and their pieces, and the buy box byline links there instead of to their collection.

Then add an entry per designer under **Content › Metaobjects › Designer**, and on each product set **Designer** (`custom.designer`) to that entry.

## Step 3: create the Material metaobject

Add a second definition named **Material**, type `material`, with these fields:

| Field key | Type | Example | Shown as |
| --- | --- | --- | --- |
| `name` | Single line text | Bouclé ivory | Must match the product's option value exactly (case doesn't matter) |
| `family` | Single line text (optionally limited to a list of choices) | Bouclé and wool | The family tabs: Timber, Stone, Bouclé and wool, Leather, Linen and cotton, Metal, Glass, Other |
| `swatch` | File (images) | A square close-up, at least 800px | The chip, the close-up and the library tile |
| `summary` | Single line text | 82% wool, 18% polyamide. 40,000 Martindale rubs. | The close-up and the library tile |
| `origin` | Single line text | Woven in Biella, Italy | The close-up |
| `care` | Multi-line text | Vacuum weekly with a soft brush… | Collapsible rows set to **Material care** |
| `sample` | Product variant (one) | Material sample › Bouclé ivory | The free sample this material adds to the cart (chapter 8) |

Turn on **Storefronts** access, then add an entry per material under **Content › Metaobjects › Material**.

**How a material is matched to an option value.** For an option named in **Material option names**, the theme looks for the Material entry whose handle is the value's handle (the value "Bouclé ivory" looks for `boucle-ivory`), then compares names across your first 50 entries. Keep the entry's name identical to the option value, and the handle Shopify suggests will match. With more than 50 materials, make sure the handles match.

## Step 4: create the sample product

Samples are ordinary products and variants, so they go through your normal checkout, stock and shipping:

1. Create a product named, for example, **Material sample**, and set its **Product type** to `Sample` (exactly; the cart uses it to group samples).
2. Add one variant per material, with an option such as "Material" whose values match your material names: Bouclé ivory, Natural oak, Travertine honed.
3. Set the price to 0 for free samples (the theme shows "Free"), or a small fee (it shows "Order a sample · $5.00").
4. Leave inventory untracked (or turn on **Continue selling when out of stock**): the sample buttons don't check stock, and a sample that has sold out can't be added, so the shopper sees "That sample couldn't be added." Set a weight so shipping rates apply.
5. Either set each Material entry's `sample` field to its variant, or choose the product in **Theme settings › Materials and samples › Sample product**: the theme then finds the variant whose title matches the material's name.

You don't have to publish the sample product to your Online Store collections; it must be available on the Online Store sales channel so it can be added to the cart. Shoppers can hold at most **Most samples per order** samples (5 by default; chapter 8).

## Step 5: product tags

| Tag | Effect |
| --- | --- |
| `made-to-order` | The piece is made to order whatever its stock: made-to-order status, lead time, timeline and badge (chapter 11) |
| `new` | Shows the "New" badge whatever the product's age |

## What shows without the data

| Missing | What happens |
| --- | --- |
| Width (or diameter) and height | The card dimension line and the Dimensions section are hidden (the editor shows a note: add width, depth and height metafields) |
| Width, depth or height (any one) | Will it fit is hidden; the drawing still shows if it has a width or diameter and a height |
| Drawings | The drawing shows clean outlines of the piece's box |
| Downloads | No Downloads row |
| Lead-time metafields | Theme settings › Delivery and lead times are used |
| Designer | The card line and byline use the vendor (or nothing, if you turn that off); the designer story shows its own settings |
| Material summary | The card line shows the designer alone |
| Material entries and swatches | Material options show as pills; no close-up, no sample action |
| A sample variant for a material | The close-up shows without the sample action |
| Short description | The excerpt is the first 220 characters of the description |
