Printful orders don't match Shopify for two different reasons, and you need to figure out which one you have. Either orders are failing to import (a sync problem you can fix), or the counts and dollar amounts look off even though every order arrived (a definitions problem you have to understand, not fix). A sync gap usually traces back to payment capture, fulfillment status, or a broken SKU link. A "numbers" gap traces back to Shopify counting sales one way and Printful counting fulfillments another.

If you sell print-on-demand, you live inside two dashboards that were never designed to agree. Shopify records the sale. Printful records what it ships. When the two don't line up, most guides send you straight to the sync checklist — but half the time the sync is fine and the real problem is that you're comparing two numbers that were never meant to be equal.

This guide splits the problem in two: orders that never arrived (fixable plumbing) and orders that arrived but don't add up (a reconciliation question that decides your actual profit).

First, figure out which mismatch you have

Open Shopify Admin and count paid orders for a fixed window — say, the last seven days. Then open your Printful dashboard and count the imported orders for the same window. Now ask one question:

  • Fewer orders in Printful than Shopify? You have a sync/import gap. Some orders never crossed over. Jump to the import fixes below.
  • Same order count, but the money or SKUs look wrong? You have a reconciliation gap. Every order arrived; the two systems just describe them differently. Skip to the reconciliation section.

Getting this diagnosis right saves hours. Chasing SKU settings when your real issue is that Printful shows product cost while Shopify shows retail price is a classic dead end.

Fix #1: Orders that never imported to Printful

When Printful is missing orders Shopify clearly captured, the cause is almost always one of four settings. Printful's own help center lists these as the standard import blockers.

Payment isn't captured

Printful only pulls orders that are fully paid. If your Shopify checkout uses manual payment capture, the order sits in "Payment pending" and Printful ignores it until you capture the charge, according to Printful's help center on missing Shopify orders. Switch to automatic capture, or remember to capture manually, and the order syncs.

The order is already marked fulfilled

Printful imports orders that are unfulfilled. If an order is marked shipped or fulfilled in Shopify — by you, an app, or a second fulfillment service — Printful won't touch it, per Printful's guidance on required order status. Check that no other app is auto-fulfilling orders before Printful sees them.

SKUs are the ID tags that keep the two systems talking. Rename or delete a SKU in Shopify and Printful can no longer recognize the item, so the order either fails to import or comes in with a missing line, as Printful explains for products that don't sync. Keep SKUs stable, and confirm each product is mapped to a Printful variant.

Automatic fulfillment is turned off

If your Shopify checkout setting is "Don't fulfill any of the order's line items automatically," nothing routes to Printful on its own — you have to request fulfillment by hand. Flip on automatic fulfillment for Printful-mapped products, then in your Printful dashboard go to Stores → View store → Refresh data to pull any orders stuck in the gap.

Work those four in order and the count usually closes. If it doesn't, you likely don't have a sync problem at all — you have a definitions problem.

Fix #2: The orders arrived, but the numbers still don't match

This is the part almost every top-ranking article skips, and it's the part that decides whether you're actually profitable. Even with a perfect sync, Shopify and Printful report different numbers because they're measuring different things.

  • Shopify's number is retail revenue. It records what the customer paid you — product price plus shipping and tax.
  • Printful's number is your cost. It records what you owe Printful to make and ship the item — base cost plus fulfillment shipping.

So a single order shows up as two figures that should be different. The mismatch isn't an error; it's the entire margin you live on. If you ever see them as one blended "orders" number, you've lost sight of your profit.

This is the same class of problem that shows up everywhere in a POD stack — your ad platform, your analytics, and your store all count the same sale differently. We break down the full pattern in our guide to reconciling your ecommerce data, and it's exactly why Facebook Ads and Shopify numbers come out different. Printful versus Shopify is that same story on the fulfillment side.

Refunds break the match too

When you refund an order, Shopify lowers your net and total sales. Printful, meanwhile, already charged you to produce and ship the item — that cost usually stands. So after a refund, Shopify's sales drop while your Printful cost doesn't, widening the gap. That's not a bug; it's a loss you need to see, not paper over.

Third-party payments never reconcile against your payout

If some customers pay by PayPal or another outside gateway, those orders still hit Printful but never flow through your Shopify Payments payout. So your bank deposit won't match your Shopify sales or your Printful charges. A payout is a batch of balance transactions — charges, refunds, chargebacks — not a clean day of orders.

A worked example: one order, four numbers

Say you sell a mug for $25 plus $5 shipping, so the customer pays $30. Printful's base cost is $8 and Printful's shipping is $4, so Printful charges you $12. Here's how one clean order looks across your tools:

  • Shopify sales: $30 (what the customer paid)
  • Printful charge: $12 (what fulfillment cost you)
  • Shopify Payments fee: roughly 2.9% + 30¢ on the Basic plan, per Webgility's breakdown of Shopify payouts — that is $30 × 0.029 = $0.87, plus $0.30, so $1.17
  • Your actual profit: $30 − $12 − $1.17 = $16.83

None of those four numbers equals another, and all four are correct. Now scale it. Say you run 100 of those orders in a week: Shopify shows $3,000 in sales, Printful bills you $1,200, processing fees run $117, and your real take is $1,683 — before a cent of ad spend.

Add ads. If you spent $900 on Meta to drive those 100 orders, your true profit is $1,683 − $900 = $783, and your per-order profit is $783 ÷ 100 = $7.83. Notice that the Shopify "sales" number ($3,000) is nearly four times your real profit. Reading the top-line number as if it were earnings is how POD stores "grow" straight into a loss.

And here's the trap most sellers miss: your ad platform will also report a different order count than Shopify. A gap of roughly 20–35% between Meta-reported purchases and Shopify orders is normal on Meta's default attribution window, according to Vaizle's analysis of Meta and Shopify mismatches. If you're already juggling Printful versus Shopify, layering in ad numbers gets genuinely hard — which is why it helps to understand when Facebook overreports compared to Shopify and which source is actually right, Facebook or Shopify.

Where a profit layer comes in

Reconciling this by hand — exporting Shopify sales, downloading Printful charges, subtracting Stripe fees, matching refunds, then dividing by orders — works for a slow week. It falls apart the moment you scale or run ads across channels.

That is the gap PodVector fills. It connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe, then computes your true per-order profit — retail in, product cost out, fees out, ad spend out — so the four numbers above collapse into the one that matters. PodVector is not a dashboard you have to read; Victor, its AI operator, analyzes your connected data and proposes moves, then executes the Shopify-side ones with your approval. Victor reads your ad data to reason about profit but does not touch your ad account.

If tracking accuracy is the bottleneck upstream of all this, the same reconciliation logic applies to your pixel setup — see our take on the best app for Google Ads pixel tracking on Shopify.

FAQs

Why does Printful show fewer orders than Shopify?

Because some orders never imported. The usual causes are uncaptured manual payments, orders already marked fulfilled, broken or renamed SKUs, and automatic fulfillment being switched off. Count both systems over the same date range, then work the four import fixes above. A quick "Refresh data" in your Printful store settings often pulls the stragglers.

Why is my Shopify sales number higher than my Printful charges?

Because they measure opposite sides of the transaction. Shopify records retail revenue — what the customer paid you. Printful records your fulfillment cost — what you owe to make and ship the item. The difference between them, minus processing fees and ad spend, is your actual profit. They are supposed to differ.

Do refunds cause Printful and Shopify to mismatch?

Yes. Shopify reduces your net and total sales when you issue a refund, but Printful typically already charged you to produce and ship the order, so that cost stays. After refunds, Shopify's numbers fall while Printful's don't, which widens the gap and represents a real loss you should track.

Why doesn't my Shopify payout match either number?

A payout is a batch of balance transactions — captured charges minus processing fees, refunds, and chargebacks — settled together, not a clean day of orders. Orders paid through third-party gateways like PayPal never enter Shopify Payments payouts at all, so your bank deposit won't match your Shopify sales or your Printful charges.

How do I see my real per-order profit across Shopify and Printful?

Take Shopify retail revenue, subtract Printful product and shipping cost, subtract payment processing fees, subtract refunds, and subtract ad spend — then divide by order count. Doing it by hand works at low volume; connecting Shopify, Printful, and Stripe to a tool that computes true per-order profit automatically is the practical answer once you are running ads.