Skip to content

Pre-order setup ​

The Uisce theme ships a pre-order mode that swaps the add-to-cart button label from "Add to cart" to "Pre-order" on products you flag as pre-orderable, and renders an explanatory message below the button (e.g. "Ships by May 15").

The trigger is a product metafield. The theme reads product.metafields.uisce.preorder on the product page, the featured-product section, the quick-view modal, and the sticky add-to-cart bar — four add-to-cart surfaces in total. Sticky add-to-cart only swaps the label; the message only renders on the three larger surfaces (the sticky bar is intentionally compact).

Why you create the metafield definitions yourself ​

Shopify's Theme Store review forbids themes from shipping custom metafield or metaobject definitions. Themes may read metafields, but they must not register the definitions — that's a merchant responsibility. So Uisce ships the Liquid that reads product.metafields.uisce.preorder (and product.metafields.uisce.preorder_message), but you create the two definitions once in your Shopify admin. This guide walks you through it.

Good news: once the definitions exist, setting a product to pre-order is a one-click flag (boolean) or a "ships by" date picker (date type). Past dates auto-disable pre-order — you do not have to remember to turn it off.

Step 1: Create the pre-order trigger definition ​

  1. In your Shopify admin, go to Settings → Custom data → Products.
  2. Click Add definition.
  3. Fill in:
    • Name: Pre-order (any name — this is just the admin label)
    • Namespace and key: uisce.preorder
    • Type: choose either True or false (boolean — simpler) or Date (richer — auto-disables when the date is past).
  4. Leave Access at the default Storefronts (Uisce reads this metafield from Liquid on the storefront).
  5. Save.

Which type should you pick?

  • Boolean (True/False) — best when you don't know the ship date yet or you want merchant ops to flip a single switch. You'll have to remember to turn it off once the product actually ships.
  • Date — best when you know the ship-by date. When the date is in the past, the theme automatically reverts the label to "Add to cart" without any further merchant action. This is the recommended type for launch-dated pre-orders.

Step 2: Create the pre-order message definition ​

This second definition stores a per-product pre-order message that overrides the theme-level default.

  1. Go back to Settings → Custom data → Products and click Add definition again.
  2. Fill in:
    • Name: Pre-order message (any name)
    • Namespace and key: uisce.preorder_message
    • Type: Single line text.
  3. Save.

You can skip this step if every pre-order product should use the same global message — the theme setting in the next step is enough.

Step 3: Set a theme-level default message ​

Open the Theme Editor for your Uisce theme and navigate to Theme settings → Pre-order. Fill in the Default pre-order message field — for example:

This product is available for pre-order and will ship within 2–4 weeks.

This message is rendered under the add-to-cart button on every pre-order product that doesn't set a per-product override.

Leaving the field blank does not turn the message off. When neither the per-product metafield nor this setting has a value, the theme falls back to its own translated wording — "This product is available for pre-order." in English, and the equivalent in each of the 50 shipped locales. Every pre-order product shows a message; this setting decides what it says.

Step 4: Flag a product as pre-order ​

Open a product in your Shopify admin. Scroll to the Metafields section at the bottom of the page and set:

  • Pre-order — switch on (boolean) or pick a future ship-by date (date).
  • Pre-order message — optional per-product override (overrides the theme default from Step 3).

Save the product. Load the product page on your storefront — the add-to-cart button now reads "Pre-order" and the message appears below it.

Step 5: Allow purchase past zero inventory ​

Pre-order is a theme label swap — it does not bypass Shopify's inventory controls. If the variant has inventory tracking on and stock is zero, Shopify will still block the purchase at checkout.

To let customers pre-order past zero inventory, open each pre-orderable variant and set Inventory policy → Continue selling when out of stock. You can do this in bulk from the variants admin page.

How the four add-to-cart surfaces behave ​

SurfaceLabel swaps?Message renders?
Product page primary ATCYesYes
Featured product sectionYesYes
Quick-view modalYesYes
Sticky add-to-cart barYesNo (compactness)

The sticky bar only ever swaps the button label. The three other surfaces render the label swap and the per-product (or default) message.

How past dates auto-disable pre-order ​

If you set uisce.preorder as a date type and the date has passed, the Liquid helper treats the metafield as "not pre-order" — the button label reverts to "Add to cart" and the message is not rendered, even if a uisce.preorder_message is set. You do not have to remember to switch anything off; the date falling into the past is enough.

If you use the boolean type, the theme will keep showing "Pre-order" until you toggle the metafield off.

Uninstalling pre-order ​

  • Per product: clear the product's uisce.preorder metafield (set to false / blank).
  • Site-wide: delete both metafield definitions from Settings → Custom data → Products. With nothing flagging products as pre-order, the theme silently falls back to "Add to cart" everywhere and no message renders. (Clearing the Default pre-order message setting on its own won't do it — the theme's translated wording takes over.)

Built for the Shopify Theme Store.