Playbook · Native shipping confirmation

Shopify shipping confirmation email not sending — after the order already looks fulfilled.

Written for a Shopify DTC owner who already uses native Shopify notifications, marked an order shipped (or thought they did), waited, and the buyer still has no shipping confirmation. This is a native-notifications playbook, 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 — $997WISMO email not sendingKlaviyo flow not sendingMerchant FAQ

01

Native Shopify, not Klaviyo.

Two products can send a “your order shipped” email. They do not share a toggle or a send log. Native shipping confirmation lives in Shopify admin: Settings → Notifications → Customer notifications → Shipping confirmation. Klaviyo shipping mail lives in a Klaviyo flow on Fulfilled 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. If you are debugging Shopify notifications and Klaviyo at the same time, that mixed stack is WISMO email not sending. This page is only native Shopify shipping confirmation: the template Shopify sends when a fulfillment exists and the store is supposed to notify the customer.

Six ordinary reasons that template never lands: it is still off, Notify customer of shipment was unchecked on the fulfillment, the fulfillment never landed in Shopify (a 3PL printed a label outside admin), you tested an unpaid or admin order, the SKU auto-fulfilled as digital, or sender / spam hid a send that did fire. Walk them in that order. You already pay for Shopify. You do not need a tracking app to read the notification list.

02

Shipping confirmation template is off.

Open Settings → Notifications → Customer notifications. Find Shipping confirmation. Read the on/off state, not the subject line, not a preview, not Order 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.

Order confirmation is a different template. It fires when the order is placed, not when it ships. A buyer who got “thanks for your order” and nothing after fulfill is missing shipping confirmation, not order confirmation. Shipping update and Delivered are also different templates — they fire on later tracking events, not on the first fulfill.

Turn Shipping 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 box.

03

Notify customer of shipment was unchecked.

The template can be on and still not send. Open the order → Fulfill items (or the fulfillment you already created). Shopify’s fulfill dialog has a checkbox: Notify customer of shipment / Send shipment notification to customer. Unchecked means no email, even with a live template and a real tracking number.

This is the warehouse trap. Someone fulfills fifty orders at 4pm with the box off “so we can batch the mail later,” then never sends later. A saved browser that remembers the last fulfill state will keep it off. Partial fulfills also ask per fulfillment — line 1 notified, line 2 silent, looks random from the inbox.

For the next test: pick one unpaid-to-paid live order (not a draft), fulfill one physical line, leave the notify box on, use a real customer email you control, wait a minute, then read that inbox — not the order timeline alone. The timeline can show “fulfilled” without “notification sent.”

04

Fulfillment never landed in Shopify.

Native shipping confirmation fires on a Shopify fulfillment, not on a label that exists in another tab. A ShipStation, Shippo, Pirate Ship, Amazon MCF, or 3PL portal that printed a label and never wrote the fulfillment back to Shopify leaves the order Unfulfilled. Unfulfilled does not send shipping confirmation. The carrier email from the 3PL is not Shopify’s template.

Open the order. If Fulfillment status is still Unfulfilled, native mail has nothing to send. Confirm the fulfillment app is installed, still authorized, and set to create fulfillments (and, separately, to notify). Many 3PL apps have their own “notify customer” toggle that defaults off so they do not double-email. If that toggle is off and Shopify’s template is on, you still get silence unless someone checks the box in admin.

A tracking number pasted into a note, a packing slip, or Slack is not a fulfillment. Mark the fulfillment in Shopify, or fix the app that is supposed to. Then re-read section 03 — the notify box on that new fulfillment.

05

You tested order paid, not a fulfillment.

Placing a test order proves Order confirmation, not Shipping confirmation. Draft orders, admin-created orders, and mark-as-paid from the order screen often skip the same path a real checkout uses. A staff email on the order is not the customer. Preview in the notification editor is not a send.

Honest test: checkout from a phone that is not logged into admin, pay, then fulfill that order with notify on, to an inbox you own that is not the store’s staff address. Wait. Then search that inbox and spam for the store name. If Order confirmation arrived and shipping confirmation did not, the bug is fulfill / notify / template — 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 a shipping-confirmation bug.

06

Digital / auto-fulfill / no tracking.

Digital products, gift cards, and some “this is not a physical shipment” SKUs auto-fulfill at payment. That event is not a carrier shipment. Shopify may send nothing that looks like shipping confirmation, or it may send a fulfill mail with no tracking number that customers ignore. A mixed cart (shirt + download) fulfills the download immediately and leaves the shirt unfulfilled — one email, one silence, looks random.

Local pickup and in-store POS can also skip shipping confirmation because nothing shipped. Shipping update and Delivered need a carrier scan after the first fulfill; they will not rescue a missing first confirmation.

If the SKU is physical and sold as “requires shipping,” confirm that on the product. A product marked as not requiring shipping will never take the shipping confirmation path, no matter how many labels you print in another tab.

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 fulfillment 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 / notify box / fulfillment — do not buy a deliverability app for a mail that never left.

Do not install a second shipping-email app to “make sure it fires.” You will double-email the next customer who was never the bug.

08

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: template on, notify box on, fulfillment in Shopify, real paid order, physical SKU, sender/spam. Fulfill 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: WISMO email not sending (native and Klaviyo together), Klaviyo flow not sending, Klaviyo + Shopify notifications, WISMO playbook once the mail exists.

Pay for help when the work is not the notification toggle — it is connecting the stack you already have so shipping mail is one live path instead of a native template plus a Klaviyo draft plus a 3PL box 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.