Order Confirmation Email Template

Send an order confirmation email the moment a purchase goes through. Include the order number, each item with quantity and price, the total, the delivery address and method, when to expect it, and how to get help. Keep promotions out so it stays a transactional message. Build yours below and copy the HTML.

Order confirmation checklist
IncludeWhy
Order numberThe first thing customers quote when they contact you
Items, quantity, priceLets the buyer spot a wrong size or count straight away
Subtotal, shipping, tax, totalMatches what their card statement will show
Delivery address and methodCatches address mistakes before the parcel leaves
Help contactA reply address or phone number saves a support ticket

Updated

Customers open this email to check one thing: did it work, and what did I buy? Clarity beats design here. Fill in your store details and items, watch the preview update, then copy the HTML into your store or email platform's order notification template.

Order email builder

Preview

HTML to copy

<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#f4f4f4">
  <tr><td align="center" style="padding:16px">
    <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="max-width:560px;background:#ffffff;font-family:Arial,sans-serif;color:#222;font-size:14px">
      <tr><td style="padding:24px 24px 0"><b style="font-size:18px">Rosa's Bakery</b></td></tr>
      <tr><td style="padding:16px 24px">
        <h1 style="margin:0 0 8px;font-size:20px">Thanks for your order, Sam!</h1>
        <p style="margin:0">Order #1042 is confirmed. We'll email you again when it ships.</p>
      </td></tr>
      <tr><td style="padding:0 24px">
        <table role="presentation" width="100%" cellpadding="0" cellspacing="0">
      <tr><td style="padding:8px 0;color:#777">Item</td><td align="center" style="padding:8px 0;color:#777">Qty</td><td align="right" style="padding:8px 0;color:#777">Price</td></tr>
      <tr><td style="padding:8px 0;border-bottom:1px solid #eee">Sourdough loaf</td><td style="padding:8px 0;border-bottom:1px solid #eee" align="center">2</td><td style="padding:8px 0;border-bottom:1px solid #eee" align="right">$13.00</td></tr>
      <tr><td style="padding:8px 0;border-bottom:1px solid #eee">Cinnamon buns (box of 4)</td><td style="padding:8px 0;border-bottom:1px solid #eee" align="center">1</td><td style="padding:8px 0;border-bottom:1px solid #eee" align="right">$9.00</td></tr>
      <tr><td colspan="2" style="padding:8px 0">Subtotal</td><td align="right">$22.00</td></tr>
      <tr><td colspan="2" style="padding:4px 0">Shipping</td><td align="right">$4.95</td></tr>
      <tr><td colspan="2" style="padding:8px 0"><b>Total</b></td><td align="right"><b>$26.95</b></td></tr>
        </table>
      </td></tr>
      <tr><td style="padding:16px 24px 24px;color:#555">Questions? Just reply to this email.</td></tr>
    </table>
  </td></tr>
</table>

Shipping confirmation version

Reuse the same frame and change the middle block when the parcel leaves.

Shipping block

Swap in the carrier, tracking address and date your store provides.

<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-family:Arial,sans-serif;color:#222;font-size:14px">
  <tr><td style="padding:16px">
    <h1 style="margin:0 0 8px;font-size:20px">Your order #1042 is on its way</h1>
    <p style="margin:0 0 12px">Shipped with Example Post. Expected delivery: Friday.</p>
    <a href="https://example.com/track/1042" style="background:#4F98FB;color:#fff;padding:10px 18px;border-radius:6px;text-decoration:none">Track your parcel</a>
  </td></tr>
</table>

Gmail order markup (optional)

Google documents an Order type for email. These are the required properties from its reference; place the script in the email's HTML.

Order markup in JSON-LD

Validate it with Google's Email Markup Tester before relying on it.

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Order",
  "merchant": { "@type": "Organization", "name": "Rosa's Bakery" },
  "orderNumber": "1042",
  "priceCurrency": "USD",
  "price": "26.95",
  "acceptedOffer": [{
    "@type": "Offer",
    "itemOffered": { "@type": "Product", "name": "Sourdough loaf" },
    "price": "6.50",
    "priceCurrency": "USD",
    "eligibleQuantity": { "@type": "QuantitativeValue", "value": "2" }
  }]
}
</script>

Subject lines that work

Plain and specific wins: Order #1042 confirmed, or Thanks for your order from Rosa's Bakery. Customers search their inbox for these weeks later, so include the number.

Keep the shipping confirmation subject distinct, for example Your order #1042 is on its way, so the two never look like duplicates.

Where to paste the HTML

Store platforms let you edit the order notification template in their settings. They use their own placeholder tags for the order number, items and totals, so keep the layout from this page and swap our sample values for those tags.

Send a test order to yourself and check the email on a phone and in at least two mail apps before going live.

How it works

  1. Enter your store name, the order number and the customer's first name.
  2. List the items, one per line, as name, quantity and unit price separated by a vertical bar.
  3. Set the shipping cost and currency symbol; the totals are worked out for you.
  4. Copy the generated HTML. Replace sample values with your platform's placeholders, such as its order number tag.

Tips

Frequently asked questions

Is an order confirmation a transactional email?

Yes, when its main job is to confirm a purchase. The FTC lists messages that facilitate, complete or confirm a transaction the recipient already agreed to as transactional, and those are exempt from most CAN-SPAM rules apart from honest routing information.

Does it need an unsubscribe link?

Gmail says one-click unsubscribe is required only for marketing and promotional messages, not transactional ones. If you add promotions, the email may count as marketing and need an opt-out.

Why does the template use tables?

Many email apps support less CSS than web browsers do, and simple table layouts tend to hold together across them. Adding role="presentation" tells screen readers the tables are for layout, not data.

What goes in a shipping confirmation email?

The order number, which items shipped (and which have not, for split orders), the carrier, the tracking link and the expected delivery date.

Can Gmail show order details as a card?

Gmail documents an Order markup using schema.org, with required fields including merchant, orderNumber, price, priceCurrency and acceptedOffer. Google also provides a tester to validate it. Whether a card appears is up to Gmail.

Related: HTML email templates, HTML email template builder, Receipt generator, Abandoned cart email examples, Welcome email templates.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Guides

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap