Appearance
Product metafields
Wonpa reads a small set of product metafields under the wonpa namespace. They power fabric labels, volume-pricing fallbacks, size-run curves, and customer reviews. Shopify quantity price breaks and quantity rules always win when present — metafields fill gaps on stores without those B2B features.
Create each definition once in Settings → Custom data → Products, then fill values on individual products.
Quick reference
| Key | Type | Used by |
|---|---|---|
wonpa.fabric | Single line text | Product title area — fabric / material chip |
wonpa.tiers | JSON | Volume table + size matrix when no native quantity price breaks exist |
wonpa.curve | JSON | Size matrix "Apply curve" row shortcut |
wonpa.reviews | JSON | Reviews block (summary stars + review cards) |
Namespace and key are case-sensitive. Use exactly wonpa / the keys above.
wonpa.fabric
- Type: Single line text
- Example:
6.5 oz ring-spun cotton
Renders as a small chip under the product title. Leave blank to hide.
wonpa.tiers
- Type: JSON
- Example:
json
[
{ "min": 24, "price": 1200 },
{ "min": 72, "price": 1050 },
{ "min": 144, "price": 950 }
]min is the lowest quantity in that band. price is the per-unit price in cents (1200 → $12.00).
Used when there are no Shopify quantity price breaks — but the two places that read it check at different levels, so a partly-configured product can show both:
- The size matrix checks the whole product. If any variant has native breaks, the matrix ignores the metafield entirely and prices each line from Shopify.
- The product page volume table checks the variant currently selected. A variant with no breaks of its own falls back to the metafield ladder, even when its siblings have native breaks.
So if you configure native breaks on some variants but not all, switching variants on the product page can swap the table between Shopify's prices and your metafield tiers. Configure breaks on every variant, or none, to keep it consistent.
This mode prices a size run by its combined quantity. Enforce the same whole-run pricing at checkout (for example with a cart transform) or buyers will see a display-only ladder.
wonpa.curve
- Type: JSON
- Example:
[0, 12, 24, 24, 12, 0]
One integer per size column, left to right, matching the product's second option order (usually size). The matrix Apply curve shortcut prefills that row with these quantities. Omit or use null to hide the shortcut.
wonpa.reviews
- Type: JSON
- Example:
json
[
{
"author": "Maya Chen",
"location": "Portland, OR",
"rating": 5,
"date": "2026-03-12",
"title": "Consistent blanks",
"body": "Neck and sleeve lengths match across the run.",
"verified": true
}
]| Field | Required | Notes |
|---|---|---|
author | yes | Display name |
rating | yes | Number 1–5 (decimals allowed for averages in UI math) |
body | yes | Review text |
title | no | Short headline |
date | no | ISO date (YYYY-MM-DD) or any display string |
location | no | City / region line |
verified | no | true shows the verified buyer mark |
The theme only reads this metafield. It does not collect submissions — populate it yourself, via CSV/API, or from an app that writes the same shape.
Add the Customer reviews block on the product template to show the list. The title-area summary stars appear when the metafield has at least one review.