featured article

How to Set Up a Chart of Accounts for a Shopify Store

Colleen Quattlebaum

July 7, 2026

A bad chart of accounts makes every later number wrong. Get the structure right at the start and reconciliation, margin reporting, and tax prep all get easier.

The chart of accounts is the skeleton of your books. It is the list of every account your transactions can land in: revenue, costs, expenses, assets, liabilities, equity. For a Shopify store, the default chart that QuickBooks or Xero ships with is not enough, because it does not anticipate the structure of ecommerce. Sales arrive net of fees, refunds need their own home, sales tax is a liability you hold in trust, and gift cards are unearned revenue. A generic chart forces all of that into the wrong boxes, and you spend the rest of the year fighting your own setup.

Build it once, build it for ecommerce, and the work downstream gets dramatically lighter.

Start with the five account types

Every chart of accounts organizes into five buckets. For a Shopify store, here is what each needs to contain.

Income (revenue)

Keep gross sales clean and separate from contra-revenue. At minimum:

  • Sales (product revenue) for gross product sales
  • Shipping income for shipping charged to customers, kept separate from product revenue
  • Refunds as a contra-revenue account, not a negative buried in sales
  • Discounts as a contra-revenue account, so you can see what promotions cost

Separating shipping income, refunds, and discounts from gross sales is what lets you read true product revenue rather than a netted blob.

Cost of goods sold (COGS)

COGS is the direct cost of the products you sold. For a Shopify store:

  • Product COGS (the unit cost of inventory shipped)
  • Inbound freight (cost to get inventory to you), often capitalized into inventory and released as COGS on sale
  • Fulfillment / shipping costs if you treat outbound shipping as a cost of sale

COGS belongs above the gross-profit line. Keeping it distinct from operating expenses is what makes your gross margin meaningful.

Expenses (operating)

Everything that is not a direct product cost:

  • Payment processing fees (Shopify Payments, PayPal, etc.)
  • Shopify subscription and app fees
  • Advertising and marketing
  • Software and tools
  • General and administrative (the usual office, legal, accounting lines)

Processing fees deserve their own account, not a catch-all "bank charges" line, because at ecommerce volume they are a major, trackable cost.

Assets

  • Bank accounts
  • Inventory (an asset until sold, then released to COGS)
  • Accounts receivable if you sell B2B on terms
  • Clearing / undeposited funds for in-transit payout cash

Liabilities

This is where ecommerce charts most often fall short:

  • Sales tax payable (tax collected, held in trust for the states)
  • Gift card liability (deferred revenue from unredeemed cards)
  • Store credit liability
  • Accounts payable
  • Credit cards and loans

A starter chart for a Shopify store

ACCOUNTTYPEPURPOSE
SalesIncomeGross product revenue
Shipping incomeIncomeShipping charged to customers
RefundsContra-revenueReturns and refunds
DiscountsContra-revenuePromotions and codes
Product COGSCOGSUnit cost of goods shipped
Inbound freightCOGSCost to receive inventory
Payment processing feesExpenseShopify Payments, PayPal, etc.
Shopify and app feesExpensePlatform subscription and apps
AdvertisingExpensePaid marketing
InventoryAssetUnsold stock
Clearing / undeposited fundsAssetIn-transit payout cash
Accounts receivableAssetB2B sales on terms
Sales tax payableLiabilityTax collected, held for states
Gift card liabilityLiabilityUnredeemed gift cards
Store credit liabilityLiabilityOutstanding store credit

This is a foundation, not a ceiling. Add accounts as your operation demands them, but resist the opposite failure: a sprawling chart with fifty revenue lines that nobody maintains. Granularity should come from dimensions like channel or product class, not from multiplying top-level accounts.

Use channels as a dimension, not as separate accounts

A multi-channel seller does not want a separate "Amazon Sales" and "Shopify Sales" and "Walmart Sales" account stacked in income. That bloats the chart and makes consolidation harder. Instead, keep one Sales account and tag transactions by channel using classes (QuickBooks) or tracking categories (Xero). Then you can produce a per-channel P&L by filtering on the dimension while keeping the chart itself lean. ConnectBooks posts each channel's data with the channel tag intact, so per-channel reporting works without duplicating accounts.

Map Shopify's data to the right accounts

The chart only helps if your Shopify data actually lands in the right accounts. A payout has to split: gross sales to Sales, refunds to Refunds, fees to Payment processing fees, collected tax to Sales tax payable. Doing that mapping by hand on every payout is the slow path. ConnectBooks syncs Shopify settlement data into QuickBooks Online, QuickBooks Desktop, or Xero and posts each component to the matching account automatically, so the structure you built actually gets used.

What accounts does a Shopify store need that a generic chart lacks?

A sales-tax-payable liability, a gift-card (deferred-revenue) liability, a store-credit liability, separate contra-revenue accounts for refunds and discounts, a dedicated payment-processing-fee expense, and a clearing account for in-transit payout cash. Generic charts force these into the wrong places.

Should I keep shipping income separate from product sales?

Yes. Shipping charged to customers is its own income line, separate from gross product revenue. Keeping them apart lets you see true product revenue and compare shipping income against your actual fulfillment costs.

Do I need a separate account for each sales channel?

No. Keep one Sales account and tag transactions by channel using classes in QuickBooks or tracking categories in Xero. This keeps the chart lean while still letting you produce a per-channel P&L by filtering on the dimension.

Where does sales tax I collect go in the chart?

To a sales-tax-payable liability account, never to revenue. The tax you collect is held in trust for the states until you remit it. Booking it as income overstates revenue and risks paying income tax on money that is not yours.

How detailed should my chart of accounts be?

Detailed enough to read margin and reconcile cleanly, not so detailed that accounts go unmaintained. Get granularity from channel and product-class dimensions rather than from multiplying top-level accounts. A lean, well-structured chart beats a sprawling one.

ConnectBooks maps your Shopify data to a clean ecommerce chart of accounts automatically, splitting sales, fees, and tax to the right places. See plans at /pricing.

Take Control of Your E-Commerce Business with ConnectBooks

Running an e-commerce business comes with plenty of challenges, but ConnectBooks is here to make your life easier. With real-time insights, seamless integrations, and detailed tracking of your profitability and inventory, you can stay ahead of the game. Whether you’re selling on Amazon, Shopify, Walmart, TikTok or eBay, ConnectBooks helps you manage your finances with 100% accuracy and confidence, so you can focus on growing your business.

Ready to level up? Start making smarter, data-driven decisions every step of the way. Try ConnectBooks Free Today or Schedule a Demo