Ecommerce bookkeeping is the practice of recording every sale, fee, refund, and cost so your books show true profit — not just the cash Shopify drops in your bank. The single rule that separates clean books from a mess: record gross sales at the top of your profit and loss statement, then subtract fees, refunds, and costs on their own lines. Your Shopify payout is a net figure that already hides those deductions, so booking it as "revenue" quietly buries the numbers you most need to see.

Most guides on ecommerce bookkeeping stop at "track your income and expenses." That advice is true and nearly useless. The hard part of bookkeeping for ecommerce is that a Shopify deposit is not revenue, profit is not cash, and the tax you collect is not yours to keep. Get those three distinctions right and the rest is data entry.

This guide walks the money mechanics of a small Shopify or print-on-demand store with real arithmetic, so you can build books that survive a tax return and actually tell you whether you are making money.

This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.

Why ecommerce bookkeeping is harder than it looks

Traditional bookkeeping records money in and money out. Ecommerce bookkeeping has to unbundle every deposit first. As Shopify's own bookkeeping primer notes, online sellers juggle high transaction volume, merchant fees, and multi-channel data that a corner shop never deals with.

Each payout that hits your bank bundles sales, processing fees, refunds, chargebacks, and sometimes sales tax into one net number. If you book that number as revenue, you understate sales, erase your fees, and produce books nobody can reconcile. The whole job of ecommerce bookkeeping is taking that blob apart.

Build the P&L from the top down

A profit and loss statement (P&L) answers one question: did the store make money this month, and where did it go? Build it monthly, top to bottom.

The line-by-line skeleton

  1. Gross sales — total order value for the month, booked when the sale happens, not when cash lands.
  2. Less discounts — coupon codes and automatic discounts.
  3. Less returns and refunds — a contra-revenue line that reduces sales; it is not an expense.
  4. Net sales — gross sales minus discounts and refunds. Your honest top line.
  5. Cost of goods sold (COGS) — the direct cost of the units you actually sold. For print-on-demand that is the supplier's production charge plus their shipping to your customer.
  6. Gross profit — net sales minus COGS. Divide by net sales for gross margin, the measure of your product economics.
  7. Operating expenses (OpEx) — everything else it takes to run the business: ad spend, Shopify plan and apps, software, contractors, and owner pay.
  8. Operating profit — gross profit minus OpEx. This tells you if the business, not just the product, works.

The placement rule: direct per-unit costs go in COGS; costs that keep the lights on regardless of any single sale go in OpEx. Whatever you decide for judgment calls like payment processing, stay consistent month to month or your trends become noise.

Where ad spend goes (and why it matters)

Put ad spend in OpEx, never in COGS. It scales with revenue, which tempts sellers to bury it in cost of goods, but doing so inflates your gross margin and hides that customer acquisition cost is your real risk. The specialists at A2X make the same point in their ecommerce income statement guide: paid acquisition belongs below the gross-profit line where you can see it.

Worked example: one month of a POD t-shirt store

Say you run a print-on-demand shirt store and this month looks like the table below. All figures are illustrative, and the arithmetic is shown so you can follow each step.

Line Amount
Gross sales (300 orders × ~$32 avg) $9,600
Less discounts (a 10%-off code) −$480
Less refunds (9 orders) −$290
Net sales $8,830
COGS — production (300 × ~$12) −$3,600
COGS — payment processing (~2.9% + 30¢ × 300) −$346
Gross profit $4,884
Ad spend (Meta + Google) −$3,000
Shopify plan + apps −$180
Email + design tools −$90
Owner draw / contractor −$500
Operating profit $1,114

Read it top down. Net sales of $8,830 minus $3,946 of COGS leaves $4,884 of gross profit, a healthy 55% gross margin (4,884 ÷ 8,830). The product economics are fine.

But ad spend of $3,000 eats most of that gross profit, leaving operating profit of $1,114 — a 12.6% operating margin. If ad costs rose 20%, that is another $600 out, and operating profit nearly halves to about $514. This is exactly why acquisition cost must sit visibly in OpEx: your P&L should scream "the risk here is CAC," and it can't if that cost hides inside COGS. For a deeper walkthrough of building this statement, see the ecommerce P&L guide.

Shopify money mechanics: payout is not revenue

The number-one source of bad Shopify books is treating the payout like a sales figure. It isn't.

The payout is a net settlement

A Shopify Payments deposit bundles sales minus processing fees, minus refunds, plus or minus adjustments, chargebacks, and gift-card activity — all on a rolling delay. It almost never equals your sales for the same window. Book gross sales at the top of your P&L; the net payout is a cash consequence that belongs at the bottom, not a revenue line.

The fees you have to separate out

  • Processing fee — a percentage plus a fixed amount per transaction, commonly quoted around 2.9% plus 30¢ for online cards on lower-tier plans. Confirm your plan's exact rate on Shopify's pricing details before quoting one.
  • Chargeback fee — when a customer disputes a charge, you record the reversed sale plus the dispute fee. If you win, both come back.
  • Refund gotcha — the original processing fee is generally not returned when you refund a customer. So a refunded $32 order still costs you roughly $1.23 in fees even though you kept none of the sale.

Reconciliation means proving that net payout equals gross sales minus refunds, discounts, and fees, plus or minus adjustments. Tools like A2X, QuickBooks, or Xero automate the split; a very small store can do it by hand from Shopify's payout reports. Either way, it has to happen, because reconciled books are what make your P&L and tax return defensible.

Cash flow: profit is an opinion, cash is a fact

A store can be profitable on paper and still run out of money. Profit is booked on the sale date; cash moves on the payout schedule. The gap between them is the float problem, and it's the top reason growing, ad-driven stores hit a wall.

Why the timing never lines up

Ad spend leaves daily — Meta and Google charge your card as you spend. Payouts arrive on a delay, often around two business days in the US, and never settle on weekends. For print-on-demand, supplier charges hit when the order is produced, frequently before the matching payout lands. Money goes out faster than it comes back.

A quick float example

Say you spend $100 a day on ads with payouts every two business days. Over a Friday-through-Sunday run you spend $300 on ads with zero cash coming in until Tuesday's settlement clears. Meanwhile the profitable orders those ads generated are real — the cohort returns more than it cost — yet your bank balance can go negative because you are continuously pre-funding growth.

The fix is discipline, not optimism. Hold a cash buffer sized to at least your worst-case gap: daily ad and supplier spend multiplied by your payout delay plus a weekend cushion. Don't scale ad spend faster than payouts can refill the tank. The ecommerce P&L guide covers the cash-versus-profit split in more depth.

The tax layer sellers underestimate

Three tax facts trip up first-year sellers, and all of them live in your bookkeeping.

Sales tax: Shopify collects, you remit

Shopify calculates and collects sales tax at checkout once you configure your nexus — but it does not register you, file your returns, or remit the money to the state. That remains 100% your job, and the tax you collect is held on the state's behalf, never counted as revenue. Whether Shopify passes sales-tax data to states is a common point of confusion; see does Shopify report sales tax to states and does Shopify handle sales tax for the full picture.

The 1099-K is not your income

Payment processors issue a 1099-K reporting your gross payment volume. For the 2025 and 2026 tax years the federal threshold reverted to gross payments over $20,000 and more than 200 transactions, per the IRS guidance on the One Big Beautiful Bill. Two traps: you owe income tax on your profit whether or not you get the form, and the form reports gross dollars before fees, refunds, and COGS, so your taxable income is much lower. Clean books are what reconcile that gross number to your real profit.

Resale certificates stop double tax

If you are print-on-demand, submit a resale certificate to your supplier before ordering. Without it, Printful charges you sales tax on every production order — and since you already collect tax from your customer, you pay it twice. Suppliers don't refund tax on orders placed before the certificate is approved, so set it up on day one.

This is general information, not tax advice. Rules change and vary by situation — consult a licensed CPA or tax professional before acting.

From reconciled books to real per-order profit

Clean bookkeeping tells you whether the store made money last month. It doesn't tell you which order, product, or ad made the money — because your fees, ad spend, and supplier costs live in separate systems.

This is where PodVector fits. It connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe, and computes true per-order profit by stitching those sources together — the same unbundling your bookkeeping does, done automatically per order. Victor, its AI operator, analyzes that live data and proposes moves, executing approved actions on the Shopify side; he reads your ad data but does not touch your ad account. PodVector is not a dashboard you have to interpret — it's an operator that works your numbers with you.

See your true per-order profit with PodVector

FAQs

What is ecommerce bookkeeping?

It's the practice of recording every financial transaction in your online store — sales, fees, refunds, COGS, and operating costs — so your books reflect true profit rather than the net cash your platform deposits. The defining challenge is unbundling each payout, since a single Shopify deposit mixes sales, fees, and refunds into one number.

Is my Shopify payout the same as my revenue?

No. The payout is a net settlement — sales minus processing fees, refunds, and adjustments — arriving on a delayed, rolling schedule. Book gross sales at the top of your P&L and treat the payout as a cash consequence at the bottom. Booking the net deposit as revenue understates sales and erases your fees.

Does ad spend go in COGS or operating expenses?

Operating expenses. Ad spend scales with revenue, but it is paid acquisition, not a direct product cost. Putting it in COGS inflates your gross margin and hides that customer acquisition cost is your biggest risk. Keep it visible below the gross-profit line.

Can I be profitable and still run out of cash?

Yes. Profit is booked on the sale date; cash moves on the payout schedule. If you grow ad spend against a multi-day payout delay, you pre-fund growth from your own pocket and can go cash-negative even while every cohort of sales is profitable. Hold a buffer sized to your worst-case timing gap.

Do I owe tax if I never receive a 1099-K?

Yes. You owe income tax on your profit regardless of whether any form is issued. The 1099-K threshold governs reporting, not taxability, and the form reports gross dollars before fees and costs. This is general information, not tax advice — check with a licensed CPA about your situation.

Do I need a bookkeeper or can I do this myself?

A very small store can reconcile payouts by hand from Shopify's reports each month. As volume and channels grow, the manual split gets error-prone and most sellers move to automation software or a bookkeeper. If you're weighing help, see our guide on finding ecommerce bookkeeping near you.