When to use this
The moment an order is placed and paid. The reader wants three confirmations: you got my order, you charged me the right amount, and it's going to the right place. Everything else, shipping timelines, upsells, loyalty points, is secondary or actively harmful here. The confirmation is a receipt with reassurance, not a marketing surface.
Design rules for order mail
Lead with the order number and date, that's what people search their inbox for later. Itemize clearly with the total unmistakable. Confirm the shipping address, because a wrong address caught in the first minute is a support win. One button to the order page. And make the support path reply-friendly: "reply to this email" turns a confused customer into a conversation instead of a chargeback. Cross-sells in confirmations are tempting and measurable, and they're also how transactional mail starts collecting complaints; if you must, keep them minimal and below everything that matters.
The template
Copy-ready, table-based, inline styles only. The item row is a single-row example, repeat it per line item in your template engine.
<!DOCTYPE html>
<html lang="en">
<body style="margin:0;padding:0;background:#f4f5f7;font-family:Arial,Helvetica,sans-serif;">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#f4f5f7;padding:24px 0;">
<tr><td align="center">
<table role="presentation" width="460" cellpadding="0" cellspacing="0"
style="background:#ffffff;border-radius:8px;padding:32px;">
<tr><td style="font-size:18px;font-weight:bold;color:#111;padding-bottom:8px;">
{{company_name}}
</td></tr>
<tr><td style="font-size:15px;font-weight:bold;color:#111;padding-bottom:6px;">
Order confirmed
</td></tr>
<tr><td style="font-size:13px;color:#666;padding-bottom:18px;">
Order {{order_number}} · {{order_date}}
</td></tr>
<tr><td style="padding-bottom:18px;">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-top:1px solid #eee;">
<tr>
<td style="padding:12px 0;font-size:14px;color:#333;border-bottom:1px solid #eee;">
{{item_name}} × {{item_qty}}
</td>
<td align="right" style="padding:12px 0;font-size:14px;color:#333;border-bottom:1px solid #eee;">
{{item_price}}
</td>
</tr>
<tr>
<td style="padding:12px 0;font-size:14px;font-weight:bold;color:#111;">Total</td>
<td align="right" style="padding:12px 0;font-size:14px;font-weight:bold;color:#111;">{{order_total}}</td>
</tr>
</table>
</td></tr>
<tr><td style="font-size:14px;color:#444;line-height:1.6;padding-bottom:20px;">
Delivering to {{shipping_address}}. We'll email you when it ships.
</td></tr>
<tr><td align="center" style="padding-bottom:20px;">
<a href="{{order_url}}"
style="display:inline-block;background:#111;color:#ffffff;text-decoration:none;
font-size:14px;font-weight:bold;padding:12px 28px;border-radius:6px;">
View order
</a>
</td></tr>
<tr><td style="font-size:12px;color:#888;line-height:1.5;">
Questions? Reply to this email or contact {{support_email}}.
</td></tr>
</table>
<table role="presentation" width="460" cellpadding="0" cellspacing="0">
<tr><td style="font-size:11px;color:#999;padding:16px 8px;text-align:center;">
Sent by {{company_name}} · {{company_address}}
</td></tr>
</table>
</td></tr>
</table>
</body>
</html>Deliverability: protect the mail customers await
An order confirmation in spam is a customer refreshing their inbox, doubting your checkout, and opening a support ticket, or a dispute. Keep order mail on a transactional stream separated from marketing so a campaign's complaints can never touch it, keep authentication aligned, and let per-domain reputation pacing keep it flowing at busy hours, order spikes are exactly when both your volume and the stakes peak, and infrastructure built for bursts is what keeps sale-day mail moving.
Not sure where your order mail stands? The free deliverability check reads your auth records in seconds.
Related
- OTP verification template: the checkout companion
- Welcome email template: for the account that follows the order
- Transactional Email: the category, defined
- Transactional Email Service: the protected stream