Playbook · Native order confirmation
Shopify order confirmation email not sending — after checkout already looks paid.
Written for a Shopify DTC owner who already uses native Shopify notifications, took a paid order (or thought they did), waited, and the buyer still has no “thanks for your order” email. This is a native-notifications playbook for Order confirmation, not Shipping confirmation, and not a Klaviyo copy rewrite. Native tools first. Honest limits. No ticket-cut number, no recovered-revenue claim, no invented case studies.
Nico at Latch AI Ops · Sep 1, 2026 · ~9 minute read
Buy the 72-hour install — $997Shipping confirmation not sendingKlaviyo flow not sendingMerchant FAQ
01
Native Shopify, not Klaviyo, not shipping confirmation.
Three products can send a “we got your order” email. They do not share a toggle or a send log. Native order confirmation lives in Shopify admin: Settings → Notifications → Customer notifications → Order confirmation. It fires when a paid order exists in Shopify with a customer email — not when a box ships. Native shipping confirmation is a different template on the same list; that playbook is shipping confirmation email not sending. Klaviyo order mail lives in a Klaviyo flow on Placed Order (or a similar metric). If the missing mail is a Klaviyo flow that looks live, that is Klaviyo flow not sending, not this page. This page is only native Shopify order confirmation: the template Shopify sends when checkout completes and the store is supposed to notify the customer.
Six ordinary reasons that template never lands: it is still off, the order is unpaid / pending / a draft, the customer email field is empty, you tested Send test email or an admin order, a custom or third-party checkout never wrote a native paid order, or sender / spam hid a send that did fire. Walk them in that order. You already pay for Shopify. You do not need a transactional-email app to read the notification list.
02
Order confirmation template is off.
Open Settings → Notifications → Customer notifications. Find Order confirmation. Read the on/off state, not the subject line, not a preview, not Shipping confirmation next to it. Disabled does not send. A staffer who turned native mail off “so Klaviyo can own it” and then never published the Klaviyo flow leaves a hole that looks like Shopify is broken.
Shipping confirmation is a different template. It fires when a fulfillment exists, not when the order is placed. A buyer who never got “thanks for your order” right after pay is missing order confirmation, even if a shipping email arrives later. Order edited, Order cancelled, Order refund, and Payment receipt are also different templates — they fire on later events, not on the first paid checkout.
Turn Order confirmation on only if native Shopify is supposed to send it. If Klaviyo is supposed to send it instead, leave this template off on purpose and go fix the Klaviyo flow. Do not leave both off. Do not leave both on unless you want two emails for one checkout.
03
The order is unpaid, pending, or a draft.
Native order confirmation is a paid-order email, not a “someone typed an address in checkout” email. Open the order. If Payment status is Pending, Authorized, Payment pending, or Unpaid, Shopify often has not sent Order confirmation yet. Cash on delivery, manual payments, bank deposits, and some 3DS / extra-authentication holds sit here until the payment actually captures.
Draft orders, admin-created orders, and mark-as-paid from the order screen often skip the same path a real checkout uses. A converted draft can look “paid” in the list and still never have fired the customer notification. POS and in-store can also skip or use a different receipt path — that is not this template.
Abandoned checkout is earlier. The customer left before pay. That mail is native abandoned-checkout recovery or a Klaviyo flow, documented at abandoned checkout email not sending. Do not debug order confirmation on a checkout that never became an order.
04
No customer email on the order.
Native order confirmation sends to the customer email on the order. Open the order. If Contact information has no email, Shopify has nowhere to send. Phone-only checkout, Shop Pay with a missing email, a staffer who typed the store’s own address, or a test that used a placeholder will all look like “Shopify is not sending.”
A staff email on the order is not the customer. BCC to the owner is not proof the customer got it. The order timeline can show the order created without “Order confirmation email sent to…”. Read that timeline event, not the packing slip.
If Shopify did send and the address is wrong, resend from the order: More actions → Resend confirmation email, after you correct the email. Resend does not fix a template that is off, and it does not convert an unpaid draft into a paid checkout.
05
You tested Send test email, not a paid checkout.
Preview in the notification editor and Send test email prove the template renders. They do not prove checkout fires it. Fulfilling a test order proves shipping confirmation, not order confirmation. A staff session, a Bogus Gateway that never captured, or an inbox that already unsubscribed is the wrong test.
Honest test: checkout from a phone that is not logged into admin, pay, to an inbox you own that is not the store’s staff address. Wait a minute. Then search that inbox and spam for the store name. Open the order timeline and look for “Order confirmation email sent to…”. If the timeline is silent, the bug is template / payment status / missing email / checkout path — not “Shopify email is down.”
Shopify Flow “send internal email” is staff mail. It is not this template. If what you built is a Flow workflow that never runs, that is Shopify Flow not running, not an order-confirmation bug.
06
Custom / third-party checkout skipped the native path.
Native order confirmation fires on a Shopify order created through Shopify checkout (including Shop Pay and Shopify’s own checkout extensibility). A headless Hydrogen store, a custom storefront API checkout, or a third-party checkout app that creates an order without going through that path can leave you with an order in admin and no native notification. The order exists. The email event does not.
Wholesale, B2B, draft-invoice, and some marketplace channels (Amazon, Facebook Shop) also write orders that never took a storefront checkout. Those often skip or replace native order confirmation. Do not install a second confirmation app until you can name which checkout created the silent order.
Digital products, gift cards, and auto-fulfill SKUs still get order confirmation when the order is paid — that event is not a shipping confirmation. If the buyer got nothing at pay and nothing at fulfill, you have two templates to check, not one. Fulfill silence is /shipping-confirmation-email-not-sending.
07
Sender, BCC, and spam hid the send.
Shopify can send and the customer still reports nothing. Open Settings → Notifications and read the sender email. A custom from-address without authenticated DNS (SPF / DKIM for the domain Shopify tells you to add) lands in spam, or is dropped. A shared @shopifyemail.com from-address also gets filtered on some inboxes. BCC to the owner is not proof the customer got it — BCC can arrive while the To: line bounced.
On the order timeline, look for a notification sent event, not just order created. If Shopify says it sent, have the customer search spam, promotions, and the exact from-address. If Shopify does not say it sent, go back to template / payment status / customer email / checkout path — do not buy a deliverability app for a mail that never left.
Do not install a second order-email app to “make sure it fires.” You will double-email the next customer who was never the bug. Shopify Email (marketing campaigns) is also not this template — mixing them is how you pay for two products and still send none.
08
When to stay DIY vs pay $997.
Stay DIY if you can spend one afternoon on the list above: template on, paid order, customer email, real checkout, sender/spam. Place one live order from a phone. Read the inbox. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related troubleshooting: shipping confirmation not sending (the fulfill template), Klaviyo flow not sending, Klaviyo + Shopify notifications, abandoned checkout email not sending if they never paid.
Pay for help when the work is not the notification toggle — it is connecting the stack you already have so order mail is one live path instead of a native template plus a Klaviyo draft plus a checkout app you forgot, lead capture is not dying in DMs, and exceptions show up in a channel you already check. That is the Latch AI Ops install.
What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a notification rebuild, not a Klaviyo rebuild, not a Gorgias implementation, not a support VA, not a brand or theme job.
Other shops’ public ranges, not testimonials: a Shopify Flow or recovery-app install typically runs $500–$2,500. A Klaviyo-only flow rebuild typically runs $2,000–$5,000.$997 is the cheap end of that work, sold as a 72-hour install of three systems — not as a ticket-cut number or recovered checkout revenue.
What it does not buy: fewer WISMO tickets, recovered checkout revenue, a lift in conversion, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.
Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.