Shopify Pre-Order Without an App: A Practical Setup Guide (and Its Limits)

Yes, you can run Shopify pre-orders without an app. Here's the native setup, the real limitations (including the 7-day payment cap), and when to upgrade.

Notify Me!
Notify Me!
12
Read
May 17, 2026
Shopify Pre-Order Without an App: A Practical Setup Guide (and Its Limits)

If you’ve ever stared at the Shopify App Store and thought, do I really need another monthly subscription just to take preorders? — you’re not alone. Pre-orders are one of the highest-leverage moves in ecommerce: they validate demand before you commit capital, smooth cash flow during restocks, and turn product launches into actual revenue events instead of crossed fingers. They pair naturally with continue selling when out of stock and low stock alerts when inventory gets tight.

The good news: you can absolutely run preorders on Shopify without installing an app. The honest news: the native setup has real ceilings, and one of them — partial payments — is a deal-breaker for most serious launches.

Here’s the practical guide, the limitations, and where the line actually sits.

The TL;DR

Shopify doesn’t ship a built-in “Pre-Order” button, but you can simulate the workflow using three native settings:

  • “Continue selling when out of stock” on the product inventory
  • Manual payment capture in your payment settings
  • Theme customization or clear product copy to communicate pre-order terms

That’s enough for a basic, low-volume preorder. It is not enough for partial payments, deposits, automatic button labeling, or anything resembling a clean launch playbook for big Shopify stores. For a dedicated pre-order button workflow, see our guide on adding a pre-order button on Shopify.

How to Set Up Pre-Orders on Shopify Without an App

Step 1: Enable “Continue selling when out of stock”

This is the foundation. By default, Shopify hides the buy button when a product hits zero inventory. To accept orders past that point:

  1. Go to Products → [Your product] → Inventory
  2. Check “Continue selling when out of stock”

Shopify admin product inventory screen with the Continue selling when out of stock checkbox highlighted

Customers can now place orders even when stock is at 0 or negative. Technically, that’s a pre-order.

Important note: nothing visually tells the customer it’s a pre-order — the button still says “Add to cart,” and there’s no badge.

Step 2: Switch Payment Capture to Manual

You probably don’t want to charge customers in full for an item shipping in three months — and then handle refunds when timelines slip. Manual capture lets you authorize the card at checkout but capture the funds later.

  1. Go to Settings → Payments → Payment capture method → Manage
  2. Select Manually, then Save

Shopify Payments settings showing payment capture method set to Manually

There’s a gotcha here: Shopify’s default authorization window is 7 days. After that, the authorization expires and you have to ask the customer to re-pay. For a pre-order shipping in 30, 60, or 90 days, that’s a real problem. Some third-party payment gateways extend the window, but Shopify Payments itself doesn’t.

Step 3: Make It Visually Obvious It’s a Pre-Order

This is where the no-app path gets coded. Two routes, depending on how much polish you want.

Option A: Edit the product copy only (no code)

Update the product title and description: “PRE-ORDER: Ships by [Month Day, Year].” Cheap, works. The button still says “Add to cart,” and customers rely entirely on reading the copy.

This approach uses Shopify’s product tags to flag pre-orders, then conditionally changes the button text, adds a badge, and shows a ship-date message. You stay in full control: tag a product preorder, and it shows up as a pre-order everywhere. Untag it, and it’s a normal product again.

Setup:

  1. Tag each pre-order product with preorderProducts → [Your product] → Tags

Shopify product edit screen with a preorder tag added to the product

  1. Open your theme code — Online Store → Themes → ⋯ → Edit code

Shopify Online Store themes page with the Edit code option for theme customization

The file names below assume a modern Dawn-based theme. Older themes (Debut, Brooklyn, etc.) may use sections/product-template.liquid instead — search for add_to_cart to find the right line.

1. Change the button text

Open snippets/buy-buttons.liquid and find this line:

<span>{{ 'products.product.add_to_cart' | t }}</span>

Replace it with:

<span>
  {%- if product.tags contains 'preorder' -%}
    Pre-Order Now
  {%- else -%}
    {{ 'products.product.add_to_cart' | t }}
  {%- endif -%}
</span>

Why tags instead of inventory: you could trigger this off inventory_quantity <= 0, but then every out-of-stock product would auto-flip to “Pre-Order Now” — including ones you never intended to sell as pre-orders. Tags keep it intentional.

2. Add a pre-order badge above the product title

Open sections/main-product.liquid, find the product title block (search for product__title), and add this just above it:

{%- if product.tags contains 'preorder' -%}
  <span class="preorder-badge">Pre-Order</span>
{%- endif -%}

3. Add a ship-date message below the buy button

In the same sections/main-product.liquid file, find the buy buttons block and add this directly underneath:

{%- if product.tags contains 'preorder' -%}
  <p class="preorder-message">
    📦 This item is on pre-order. Estimated ship date: <strong>April 15, 2026</strong>.
  </p>
{%- endif -%}

Heads-up: this date is hard-coded. To vary it per product, add a metafield (Settings → Custom data → Products → Add definition) and reference it via {{ product.metafields.custom.preorder_ship_date }}. Still no app required, but you’re adding setup overhead per product.

4. Style the badge and message

Open assets/base.css (or your theme’s main stylesheet) and paste this at the bottom:

.preorder-badge {
  display: inline-block;
  background: #111;
  color: #fff;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.preorder-message {
  margin-top: 14px;
  padding: 12px 14px;
  background: #f6f6f6;
  border-left: 3px solid #111;
  font-size: 14px;
  line-height: 1.5;
  border-radius: 2px;
}

Change the #111 to your brand color if black isn’t your style.

5. Flag pre-orders on collection pages

So customers see the pre-order status before clicking into the product, open snippets/card-product.liquid and add this inside the card markup (a good spot is right after the product title):

{%- if card_product.tags contains 'preorder' -%}
  <span class="preorder-badge">Pre-Order</span>
{%- endif -%}

The CSS from step 4 already covers the styling — no extra work.

A developer can do all five edits in 20–30 minutes. If you’re comfortable in Liquid, you can DIY it in an afternoon. If not, this is a small enough scope to hand to a Shopify Expert for under $100. Just remember: every theme update may overwrite your edits, so document what you changed.

Step 4: Manage Fulfillment and Communication Manually

The setup is done. Now you do the work an app would normally do:

  • Tag pre-order customers in your CRM
  • Send manual order confirmations clarifying ship dates
  • Send update emails as production progresses
  • Capture payments before the 7-day window closes (or extend with a third-party gateway)
  • Reconcile inventory when products arrive

It’s doable. It’s also a recurring overhead that compounds with every launch.

What This Setup Can’t Do

Here’s where the native approach starts to crack:

CapabilityNative ShopifyPre-Order App
Accept orders past zero inventory
Visible “Pre-Order” button label❌ (requires code)
Pre-order badges on collection pages
Partial payments / deposits
Extended payment authorization❌ (7-day cap)
Automatic customer notifications
Pre-order quantity limits
Pre-order revenue reporting
Discount stacking on pre-orders
B2B pre-orders

There’s also a less obvious risk: if Shopify Payments sees a high volume of unfulfilled orders without clear pre-order context, your account can get flagged for review and payouts paused. Pre-order apps mark these orders as intentional, which protects the account. The native workaround doesn’t. If stock runs out before launch day, running out of stock on Shopify covers what happens next on the storefront.

The Real Bottleneck: Partial Payments and Deposits

Here’s the limitation that actually matters at scale — and the one you can’t engineer around with theme code: you can’t natively collect a partial payment or deposit on Shopify.

Why this matters:

  • High-ticket items ($200+) typically see 15–25% cancellation rates on full-price pre-orders. Deposit pre-orders (20–50% upfront) drop that to 5–10%. Full-price pre-orders generate more upfront cash, but the cancellation tax often eats the difference.
  • Manufacturing-funded launches need partial cash to start production but can’t justify full charges 60–90 days before shipping.
  • B2B and wholesale pre-orders almost always require deposit structures to be taken seriously by buyers.

This is exactly the gap Notify Me! closes. The app lets you:

  • Set a fixed deposit amount (e.g. $10) or a percentage (e.g. 20%) due at checkout
  • Schedule the remaining balance for a specific date or a relative trigger (e.g. 14 days after the order)
  • Display the upfront amount and remaining balance transparently at checkout
  • Handle the deferred capture automatically — with no 7-day authorization scramble

You’re not just adding a button. You’re unlocking a payment structure Shopify doesn’t natively support, with the cancellation math working in your favor.

When Native Is Fine — and When to Upgrade

Skip the app if:

  • You’re running one-off, low-volume pre-orders (under ~20 units)
  • Your products are under ~$50 and full payment at checkout is fine
  • Your ship window is under 7 days — the auth limit isn’t a blocker
  • You have in-house dev resources to handle theme customization

Get an app if any of these are true:

  • You run recurring restocks or launch cycles and the manual overhead compounds
  • Your AOV is over ~$100 and deposits would reduce cancellations
  • You want a visible “Pre-Order” button without dedicating dev time
  • You need automated customer comms for confirmations, updates, and balance reminders
  • You’re scaling into B2B pre-orders or running launches across multiple SKUs

The native method is a perfectly fine MVP. It stops being fine the moment pre-orders become a repeatable channel.

The Bottom Line

You don’t need an app to take a pre-order on Shopify. You need one the moment pre-orders stop being an experiment and start being a strategy — when partial payments, automated workflows, and proper merchandising start determining whether a launch hits its number or limps across the line.

If you’re at that point, Notify Me! handles the pieces Shopify won’t — starting with the deposit feature the native setup simply can’t replicate.

Install or Regret!

Stores using Notify Me! have generated Millions in Revenue. Join the club:
Start Free

Ready to put NotifyMe's email expertise to the test?

Use back in stock, low stock and preorder to generate revenue when your stock is low or out!
Install Now