Contabilità WooCommerce: una guida per proprietari di negozi per libri contabili puliti

Guida alla contabilità WooCommerce

Your books aren't messy because you're undisciplined. They're messy because they were set up for a business you don't run.


Your accountant's email is three lines long: "Quick question — what's the $12,318 deposit on March 14?"

Forty minutes later, you have the answer. It's two Stripe payouts covering four days of orders, minus $402 in processing fees, minus a $618 refund from the week before, plus a $75 chargeback reversal. You know this because you opened the Stripe dashboard, exported a CSV, cross-checked it against the WooCommerce order list, and did arithmetic in a notes app.

You've been here before. Your WooCommerce bookkeeping is a folder of gateway CSVs and a QuickBooks file your accountant is diplomatically quiet about. Every month-end, you promise yourself a real system. Every month-end, you patch the current one instead.

Here's what's worth knowing before the next month-end arrives: this isn't a discipline problem, and it isn't an accounting-skills problem. It's structural. Your books were set up for a generic small business — and an online store isn't one.


Why Generic Bookkeeping Fails a WooCommerce Store

The lie underneath most messy e-commerce books goes like this: "Bookkeeping is bookkeeping. My standard small-business setup is fine for an online store."

It's a reasonable belief. It's also wrong, for five specific, mechanical reasons. A consulting firm or a coffee shop never hits these. A WooCommerce store hits all five every single day.

1. Money earned is not money deposited. A consultant invoices $1,000 and receives $1,000. Your store sells $1,000 on Tuesday, and Stripe deposits $953.90 on Thursday — bundled with Wednesday's orders. No bank deposit ever equals any sales number. If your books treat deposits as revenue, they're wrong on day one.

2. Fees are subtracted before you ever see the money. Each gateway takes its cut at the source, and each takes a different cut — Stripe, PayPal, and Square all price differently. Record deposits as income and those fees vanish: revenue is understated, and a real operating expense never appears anywhere in your books.

3. The sales tax you collect isn't yours. You're holding it on behalf of a state. Booked as income, it inflates your revenue — and then the remittance arrives as a "surprise" expense that was never an expense at all. It was a liability the whole time.

4. I rimborsi non sono spese. Un rimborso è un'inversione di ricavi, non un costo sostenuto. Includere i rimborsi silenziosamente nei depositi — o peggio, registrarli come una spesa — distorce sia le vendite lorde che i margini, in direzioni diverse.

5. I costi dell'inventario non appartengono al mese in cui li hai acquistati. Spesa di un acquisto di scorte di $20.000 a marzo e il tuo conto economico mostra un marzo disastroso e un aprile fittizio. Il costo del venduto appartiene al mese in cui le merci vengono effettivamente vendute, altrimenti i tuoi numeri di margine non significano nulla.

Ognuna di queste è invisibile in un piano dei conti generico. Ecco perché la correzione non funziona mai: non stai commettendo errori di inserimento, ti mancano le strutture dei conti. La soluzione non è un'immissione dati più attenta. Sono cinque strutture.


The Five Structures of Clean WooCommerce Bookkeeping

Imposta queste cinque cose in QuickBooks Online una volta, e il lavoro quotidiano diventa routine. Saltale, e ogni chiusura di mese è archeologia.

1. A chart of accounts built for e-commerce

Questa è la base su cui si basano le altre quattro strutture. Come minimo, la tua sezione entrate separa le vendite di prodotti, le entrate di spedizione e un conto contropartita per i rimborsi. Le tue spese includono una riga di commissione per gateway di pagamento. Le tue passività includono le imposte sulle vendite dovute. Le tue attività includono un conto di transito per gateway e un conto di inventario.

Non è necessario progettarlo da zero: abbiamo pubblicato un modello completo di piano dei conti per l'e-commerce che puoi copiare in QuickBooks in un pomeriggio. Fai prima questo. Tutto ciò che segue presuppone che esista.

2. One clearing account per gateway

Questa è la struttura che risponde in modo permanente alla domanda "cos'è questo deposito?".

Un conto di transito è un recinto di attesa tra "la vendita è avvenuta" e "il denaro è arrivato". Quando registri $1.000 di ordini Stripe di martedì, il denaro va in Transito Stripe — non sul tuo conto bancario, perché non è ancora sul tuo conto bancario. Quando il pagamento di Stripe arriva giovedì, sposti $953,90 dal transito alla banca e $46,10 alle commissioni Stripe. Il conto di transito torna a zero (o all'importo esatto ancora in transito).

Ora la riconciliazione bancaria significa confrontare una manciata di pagamenti, non centinaia di ordini. E se un pagamento non dovesse mai essere elaborato, il saldo di transito lo segnala: il denaro che avrebbe dovuto arrivare, non è arrivato.

Un conto di transito *per gateway*, non un conto condiviso. I negozi WooCommerce in genere utilizzano due o tre gateway, ognuno con il proprio programma di pagamento. Mescolali e avrai ricostruito il puzzle che stavi cercando di risolvere.

Se uno strumento di sincronizzazione pubblica i tuoi ordini, questa struttura è una pagina di impostazioni piuttosto che una disciplina. LedgerPort rileva automaticamente ogni gateway di pagamento attivo sul tuo negozio e gli assegna una riga di configurazione separata — un interruttore di abilitazione, il conto di transito di QuickBooks in cui atterra il denaro di quel gateway, il metodo di pagamento QBO e un interruttore di sincronizzazione dei rimborsi per gateway — con un conto di transito predefinito come fallback per qualsiasi cosa non configurata. È esattamente la struttura che questa sezione ti ha appena detto di costruire manualmente; la versione software ti chiede solo di associare ogni gateway rilevato al proprio conto.

Scheda Pagamenti Configurazione Sincronizzazione LedgerPort che elenca i gateway di pagamento WooCommerce rilevati automaticamente, ognuno con il proprio conto di compensazione, metodo di pagamento QuickBooks e impostazioni di sincronizzazione dei rimborsi
One clearing account per gateway, as configuration: each auto-detected gateway points at its own QuickBooks account, with a default as fallback. Full walkthrough: Managing the Sync Configuration in LedgerPort →

3. A fee expense line per gateway

Stripe Fees, PayPal Fees, Square Fees — separate accounts, not one "merchant fees" bucket.

Two reasons. First, accuracy: fees per gateway give you a monthly sanity check. If Stripe's effective rate is normally about 3% and this month it's 4.1%, something happened — a pricing change, a surge in international cards, a dispute fee — and you'll actually see it. Second, decisions: you can't compare what your gateways truly cost you if the costs are blended.

4. Sales tax to a liability account

Every dollar of tax collected posts to Sales Tax Payable, a liability — never to income. When you remit to the state, the payment draws down the liability. Your P&L never touches it, in either direction.

The payoff is calm: the remittance deadline stops being a cash-flow surprise, because the money was never counted as yours. The balance in Sales Tax Payable should always roughly match what your tax reports say you've collected. When it doesn't, you've caught an error early instead of at filing time.

In LedgerPort, this rule is a dropdown: the Taxes tab's Line Item Tax setting posts WooCommerce tax as a dedicated line to a QBO liability account you choose — structure #4, enforced on every synced order. The same tab holds a detail almost nobody explains: tax rounding. WooCommerce and QuickBooks compute tax independently and disagree by a cent here and there; a rounding-adjustment line item absorbs those differences, so the liability account ties exactly to what you collected instead of accumulating an unexplainable few-dollars-a-month drift.

Scheda Tasse Configurazione Sincronizzazione LedgerPort che mostra la scheda Arrotondamento Tasse e la scheda Tasse per Riga con un selettore per il conto di passività QuickBooks in cui vengono registrate le tasse
Sales tax routed to the liability account you pick, with a rounding line so the balance ties to the cent. Full walkthrough: Managing the Sync Configuration in LedgerPort →

5. Refunds as contra-revenue

Create a Refunds & Allowances account in your income section that carries a negative balance. Every refund posts there — reducing net revenue while leaving gross sales intact.

This preserves two numbers you need: true gross sales (for understanding demand) and true net revenue (for understanding the business). It also surfaces your refund rate as a trackable line instead of an invisible leak. A store that refunds 2% and a store that refunds 9% are different businesses, and only one of those stores usually knows it.

These five structures are the e-commerce-specific core; for the broader habits around them, our guide to e-commerce accounting best practices covers the rest.


The Monthly Close Checklist for a WooCommerce Store

With the structures in place, month-end stops being reconstruction and becomes verification. Here's the checklist, in order:

0. Scansiona i record Non riusciti e In attesa prima di chiudere. Se uno strumento di sincronizzazione pubblica i tuoi libri contabili, questo è il passaggio che precede tutto il resto. In LedgerPort, ogni record ha uno di cinque stati: Sincronizzato, In sospeso, Non riuscito, Saltato (escluso intenzionalmente dai tuoi filtri di sincronizzazione) o In attesa, quindi un filtro di due minuti per Non riusciti e In attesa per tutto il mese rileva un webhook mancante quando si tratta di un ordine, non di un trimestre. La correzione si trova nella stessa schermata: seleziona i record e ripubblica, e la garanzia di assenza di duplicati significa che i record già sincronizzati vengono saltati automaticamente mentre i fallimenti ripubblicati aggiornano la transazione QuickBooks esistente anziché pubblicarne una seconda. "Spero che tutto sia stato sincronizzato" diventa una casella di controllo.

Scheda Sincronizzazione Manuale Ordini LedgerPort che mostra le righe degli ordini con icone di stato della sincronizzazione per riga per individuare ordini falliti o non inviati
Ogni ordine mostra il suo stato di sincronizzazione: filtra per Non riusciti e In attesa, seleziona, ripubblica, chiudi il mese. Guida completa: Come pubblicare dati storici su QuickBooks in LedgerPort →
  1. Conferma che ogni ordine sia in QuickBooks. Tutte le vendite del mese pubblicate, con ricavi da prodotti, spedizioni, tasse e routing del gateway intatti. Se stai inserendo manualmente, questo è il passaggio più lungo; fallo settimanalmente, non mensilmente. Se uno strumento di sincronizzazione sta effettuando la pubblicazione, verifica invece di reinserire: il registro di controllo di LedgerPort mostra la cronologia completa della sincronizzazione, filtrabile per tipo, entità, stato e data, quindi un ordine mancante o non riuscito emerge in pochi secondi.
  2. Abbina ogni pagamento del gateway a un deposito bancario. Ogni pagamento di Stripe, PayPal e altri dovrebbe corrispondere a un deposito e svincolare il conto di transito appropriato.
  3. Controlla i saldi dei conti di transito. Ognuno dovrebbe corrispondere solo al denaro attualmente in transito: vendite degli ultimi uno o due giorni che non sono ancora state pagate. Qualsiasi importo superiore è una transazione non abbinata che ti dice dove cercare.
  4. Rivedi le commissioni per gateway. Confronta il totale delle commissioni di ciascun gateway con la sua aliquota effettiva prevista. Una deviazione di oltre mezzo punto percentuale merita due minuti di indagine.
  5. Verifica l'imposta sulle vendite dovuta. Il saldo della passività dovrebbe corrispondere a quanto i tuoi report fiscali indicano che hai riscosso, meno quanto hai versato. Prendi nota delle scadenze di rimessa imminenti.
  6. Registra il COGS e aggiusta l'inventario. Registra il costo delle unità effettivamente vendute questo mese; spostalo dall'inventario al costo del venduto.
  7. Pubblica rimborsi e chargeback. Conferma che siano stati registrati nei ricavi negativi e dai un'occhiata al tasso di rimborso mentre ci sei.
  8. Esegui il Conto Economico e lo Stato Patrimoniale. Non per archiviare nulla, ma per leggerli. Margini nell'intervallo previsto, nessun conto che si gonfia, niente che ti faccia strizzare gli occhi. Se niente ti fa strizzare gli occhi, hai chiuso.

Fatto manualmente con strutture pulite, questo richiede da una a tre ore al mese a seconda del volume degli ordini. Senza le strutture, la stessa chiusura richiede un fine settimana, perché i passaggi 2, 3 e 5 diventano progetti forensi.


Where Automation Fits (Honestly)

Ecco la versione onesta, perché la versione disonesta è facile da trovare.

Below roughly 100–200 orders a month, manual bookkeeping with the five structures is genuinely fine. The close is short, the entry volume is manageable, and a tool would be solving a problem you don't have yet.

Above that, the math shifts. Order entry scales linearly with volume, and error rates scale with fatigue. At 500–1,000 orders a month across two or three gateways, step 1 of that checklist alone can eat the hours you meant to spend running the store — and one mistyped tax amount hides in ten thousand line items.

One thing automation will not do: fix a broken chart of accounts. A sync tool pointed at generic books produces fast, automated mess. Structures first, always.

What a sync tool does do is execute the five structures continuously. LedgerPort, for example, connects WooCommerce to QuickBooks Online and posts each day's sales, fees, taxes, and refunds to the accounts they belong in — clearing accounts included — so steps 1 through 7 of the checklist are largely done before you sit down. Setup takes about 15 minutes, and there's a free plan that covers up to 30 orders a month, with paid plans from $25/month as volume grows. If you want the full walkthrough of connecting the two systems, we've written a step-by-step guide to syncing WooCommerce with QuickBooks Online.

It also lives where you already work. LedgerPort installs as a WordPress plugin, so the dashboard, mappings, sync history, and manual sync controls all sit in your wp-admin sidebar — no separate app to log into.

Menu LedgerPort nella barra laterale di amministrazione di WordPress, con le pagine Dashboard, Connessione, Mappature, Sincronizzazione Manuale, Log di Audit, Configurazione Sincronizzazione e Log di Debug
Everything runs from a LedgerPort menu inside your WordPress admin. Full walkthrough: Getting Started with LedgerPort for WooCommerce →

And the "structures first" rule gets a head start: on the Mappings page, Auto-Map compares your WooCommerce products, customers, and accounts against QuickBooks and proposes matches, marking each suggestion so you can confirm or override it before anything posts.

Elenco delle mappature dei prodotti LedgerPort che mostra i prodotti WooCommerce abbinati agli articoli QuickBooks, ogni riga con il suo stato di mappatura
The mappings list after Auto-Map runs — every WooCommerce product matched to a QuickBooks item, with you keeping the final say. Full walkthrough: Setting Up Account Mappings in LedgerPort →

The trade-off worth naming: you'll still review the close. Automation moves you from doing the bookkeeping to verifying it — which is exactly where a store owner should sit.


Month-End, After

Picture the next version of that accountant email. "Quick question — what's the $14,205 deposit on the 14th?"

You don't open a CSV. You open QuickBooks, click the deposit, and see the payout journal: two days of orders, fees itemized, one refund, tax routed to the liability account. Your reply takes one line and ninety seconds, and your accountant — for the first time — responds with "great, that's everything I needed."

La chiusura del mese in sé è la checklist in otto passaggi sopra, una tazza di caffè e circa trenta minuti. Niente da ricostruire, perché niente era mai stato allentato. La cartella dei CSV del gateway esiste ancora da qualche parte, nel modo in cui le persone conservano un vecchio telefono in un cassetto. Non la apri mai.


Quel deposito di $12.318 ti ha richiesto 40 minuti per essere spiegato perché mancavano cinque strutture contabili, non perché i tuoi libri richiedessero più impegno. Imposta le strutture questa settimana, esegui la checklist alla fine del mese e, se il tuo volume di ordini ha già superato l'inserimento manuale, avvia LedgerPort gratuitamente e lascia che registri per te vendite, commissioni e tasse →

Ogni piano a pagamento include una garanzia di rimborso di 14 giorni: rimborso al 100%, senza fare domande.


Correlati: Piano dei Conti per E-commerce · Come sincronizzare WooCommerce con QuickBooks Online · Migliori pratiche di contabilità per E-commerce

Smetti per Sempre di Inserire Dati Manualmente

Collega il tuo negozio a QuickBooks in 15 minuti e lascia che LedgerPort si occupi del resto.

Inizia Gratis Vedi prezzi →

Connettiamoci:

Automatizza la tua contabilità e-commerce oggi stesso

Collega il tuo negozio Shopify o WooCommerce a QuickBooks in meno di 15 minuti, senza bisogno di codice.

Garanzia di rimborso di 14 giorni · Piano gratuito disponibile