Skip to content

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

KeyTypeUsed by
wonpa.fabricSingle line textProduct title area — fabric / material chip
wonpa.tiersJSONVolume table + size matrix when no native quantity price breaks exist
wonpa.curveJSONSize matrix "Apply curve" row shortcut
wonpa.reviewsJSONReviews 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
  }
]
FieldRequiredNotes
authoryesDisplay name
ratingyesNumber 1–5 (decimals allowed for averages in UI math)
bodyyesReview text
titlenoShort headline
datenoISO date (YYYY-MM-DD) or any display string
locationnoCity / region line
verifiednotrue 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.