If you've ever put the Printful dashboard next to your Shopify Analytics and found two different revenue figures, you are not doing anything wrong. The two systems are built to answer different questions, so they count sales differently. This is one of the most common reconciliation headaches in print-on-demand, right alongside when your Printful order counts don't line up with Shopify.
Let's break down every reason the numbers diverge, walk a real example, and land on the one figure that actually matters: your profit per order.
Where the two "revenue" numbers actually come from
The core confusion is that "revenue" means two different things here.
Shopify's revenue is what your customer paid. When someone checks out, Shopify captures the full transaction — product subtotal, shipping charged to the buyer, and any tax collected. That money lands in your Shopify Payments or Stripe balance. Shopify is the system of record for how much money came in.
Printful's revenue is a mirror of the retail prices you set on the products synced to Printful. Printful never processes your customer's payment — it only fulfills the order and then charges you for the wholesale cost. Its revenue column is an estimate of your sale, reconstructed from the synced retail price, not a record of the actual charge.
So the two systems are measuring from opposite ends of the same order. One watched the money arrive; the other reconstructed it from a product catalog. They were never going to match exactly.
The seven reasons the numbers diverge
1. Shipping and tax are in one number but not the other
Shopify's "Total sales" includes shipping and tax charged to the customer. Printful's synced retail figure usually reflects only the product price. If a customer pays a $40 product plus $5 shipping plus $4 tax, Shopify sees $49 and Printful sees $40 on the same order. That single order is already off by $9.
Shopify itself splits revenue into three tiers — Gross sales, Net sales, and Total sales — and each includes different components, per Shopify's Finances report documentation. If you compare Printful against the wrong Shopify tier, the gap widens further.
2. Currency conversion
If you sell in one currency and your Printful account or bank settles in another, the exchange rate shifts the numbers. Shopify Payments adds a currency-conversion charge on international-currency orders — roughly one to one-and-a-half percent on top of the base processing fee, according to ReportPundit's payout breakdown. Printful may display its estimate at a different rate again, so the same order shows two slightly different retail values.
3. Refunds and cancellations land differently
When you refund an order, Shopify reduces its net and total sales. Printful's fulfillment charge and its revenue estimate may not adjust in lockstep — especially if the item already shipped before the customer cancelled. Over a busy month, refunds alone can open a visible gap between the two dashboards.
4. Discounts and sales
A discount code lowers what the customer actually pays, which Shopify records at checkout. But if the discount was applied at the Shopify level and not reflected in the Printful-synced retail price, Printful's revenue estimate still shows the full sticker price. Every promo you run pushes the two numbers apart.
5. Sync timing and time zones
Shopify and Printful stamp orders in their own time zones and settle on their own schedules, so an order near midnight can fall into different days on each side. Comparing a single day rarely works — always reconcile over a trailing week or month. This same timing trap is why your Facebook Ads numbers never match Shopify day-to-day.
6. Payment gateway splits
If some customers pay through PayPal or another gateway instead of Shopify Payments, those orders follow a different money trail entirely. They still count as Shopify revenue, but they never touch the Shopify Payments payout, and Printful reconstructs them the same way regardless. Mixed gateways guarantee your dashboards, your bank, and Printful all tell slightly different stories.
7. Printful is a cost, not a payment
This is the one that trips up most new sellers. Printful never receives your revenue. Your customer pays you; then Printful charges your saved card the wholesale fulfillment cost. So "Printful revenue" is a projection, while "Printful charges" is your actual cost of goods. Confusing the two is the fastest way to misread your margin.
A worked example: one week at "Nomad Mugs"
Say you run a mug store and sell 100 mugs in a week. Each customer pays a $40 subtotal, plus $5 shipping and $4 tax, for a $49 total. Eight buyers later request refunds. Here is what each system shows.
The fee rate below (about 2.9% plus 30¢ per transaction on Shopify's Basic plan, US cards) comes from Webgility's Shopify payouts guide; the arithmetic is illustrative.
| Source | What it reports | Figure |
|---|---|---|
| Shopify Total sales | 100 orders × $49, minus 8 refunds × $49 | $4,508 |
| Printful revenue | 100 orders × $40 synced retail (no shipping/tax) | $4,000 |
| Shopify payout (bank) | Charges − fees − refunds − one chargeback | see below |
| Printful charges (your cost) | 100 × ~$12 wholesale mug cost | $1,200 |
The payout math walks like this. Captured charges are 100 × $49 = $4,900. Processing fees at 2.9% + 30¢ per order come to about $172 (roughly $142 in percentage fees plus $30 in flat fees). Subtract 8 refunds at $49 = $392, and one $15 chargeback fee. That leaves a bank deposit near $4,321.
So for one week of 100 real orders you now have four different "sales" numbers: Shopify says $4,508, Printful says $4,000, your bank shows about $4,321, and none of them is wrong. They just answer different questions.
Now the part every dashboard skips — profit. Your revenue is Shopify's $4,508. Your Printful cost is $1,200. Your Shopify fees are about $172. If you also spent, say, $900 on Meta ads that week, your true profit is roughly $4,508 − $1,200 − $172 − $392 (refunds) − $900 = $1,844. That is the only number that tells you whether the week was good — and it appears in none of the four dashboards above.
How to reconcile it properly
The manual method works: export your Shopify orders CSV and your Printful invoices, match them on order ID, and subtract per-order costs from per-order revenue. The gap is almost always bigger than you expect on the first run.
Three rules make it reliable:
- Compare like with like. Match Printful against Shopify's Gross sales (product price only), not Total sales, if you want the retail figures to align. Handle shipping and tax as separate lines.
- Reconcile over a window, never a day. Use a trailing 7- or 30-day period so time-zone and sync-timing drift washes out.
- Treat Printful as cost, Shopify as revenue. Don't try to make Printful's revenue estimate match — use its charges as your cost of goods and Shopify's order record as your revenue.
If you're also consolidating catalogs across platforms while you clean this up, the mechanics overlap with importing Etsy listings into Shopify — same discipline of mapping one source of truth to another. For the full framework across every tool in your stack, the ecommerce data reconciliation guide walks through reconciling Shopify against ads, processors, and fulfillment together. And if it's your ad numbers that won't line up rather than Printful, that's a separate over-reporting problem with its own causes.
Let the profit math run itself
Reconciling CSVs by hand works, but it doesn't scale past a few dozen orders a week. This is exactly the gap PodVector is built to close. It connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe, pulls the real numbers from each, and computes your true per-order profit — revenue minus fulfillment cost, minus processing fees, minus ad spend — so you stop guessing which dashboard to believe.
On top of that live data sits Victor, an AI operator that analyzes your connected data and can act on it Shopify-side with your approval. Victor doesn't touch your ad account and isn't another dashboard to check — he reads the reconciled picture and proposes the moves. You get one profit number you can trust instead of four revenue numbers you can't.
FAQs
Why is my Printful revenue lower than my Shopify revenue?
Almost always because Shopify's total includes shipping and tax the customer paid, while Printful's revenue estimate reflects only the synced product price. A $40 product with $5 shipping and $4 tax shows as $49 in Shopify and $40 in Printful — a built-in gap on every order. Refunds and discounts recorded on the Shopify side but not mirrored in Printful widen it further.
Does Printful actually receive my sales revenue?
No. Your customer's payment goes to your Shopify Payments or Stripe balance — Printful never sees it. Printful separately charges your saved payment method for the wholesale cost of fulfilling each order. That's why "Printful revenue" is best treated as an estimate, and "Printful charges" as your true cost of goods.
Which number should I trust for my real revenue?
Shopify's order record. It captures what the customer actually paid at checkout and reflects refunds and discounts, so it's the authoritative source for how much money came in. Use Printful for your fulfillment cost, not your revenue, and reconcile the two on order ID.
Should Printful and Shopify ever match exactly?
Not on a raw comparison. Even with perfect setup, shipping, tax, currency conversion, refunds, and sync timing keep them apart. What you want is a stable, explainable gap — where every dollar of difference maps to a known cause — not an identical number.
How do I turn these numbers into actual profit?
Take Shopify revenue, subtract Printful fulfillment charges, subtract Shopify processing fees, subtract any ad spend, and subtract refunds. Doing this per order across a trailing window gives you real margin. Manual CSV matching works for low volume; automated tools that connect all your sources compute it continuously as orders come in.