Account codes answer "what kind of money is this." Tracking categories answer "where did it happen." Build your Xero chart of accounts on that split and it stays readable at 4 channels and 200 SKUs. Ignore it, create an account for every combination of channel and cost type, and by month nine you have 180 accounts, a profit and loss report nobody reads, and no way to compare Amazon gross margin against Walmart gross margin without exporting to a spreadsheet.
That is the whole idea. The rest is execution.
Intuit publishes hard usage limits for QuickBooks Online: a maximum of 250 accounts in the chart of accounts on Simple Start, Essentials, and Plus, with unlimited accounts only on Advanced, and combined classes and locations capped at 40 on Plus. Those caps are annoying, and they also act as a governor. When you are 30 accounts from the ceiling, you stop adding accounts.
Xero does not advertise an equivalent hard cap on the chart of accounts. That freedom is pleasant right up until it is not. Nothing in the software will stop you from creating "Amazon Referral Fees," "Walmart Referral Fees," "eBay Final Value Fees," "TikTok Referral Fees," and then doing the same thing for fulfillment, storage, returns, and advertising. Twenty accounts where four would do.
Xero lets you assign a code to each account and sorts reports by code. Reserve blocks so there is room to grow:
Leave gaps of ten between codes. You will need them.
Four accounts carry a multichannel seller:
Do not add a fifth revenue account per marketplace. Channel goes in a tracking category.
These scale with units sold, and they belong above the gross profit line so your margin means something:
A note on 340. Freight, duty, and inspection costs that attach to specific inventory should be capitalized into the cost of the units, not expensed on arrival. Landed cost allocation is what makes that possible, and it happens in the inventory layer, not in the chart of accounts. Account 340 is for the residual you genuinely cannot attach to units.
Advertising deserves its own block because it is the cost you tune most often:
Marketplace storage fees can go either way. Put them in 430 if you want a clean gross margin, or in the 300 block if storage genuinely tracks with volume in your business. Pick one and stop moving it.
Clearing accounts are the load bearing wall of marketplace accounting. Each one should return to zero after every settlement or payout cycle. A clearing balance that will not clear is a signal you have unmapped activity, and it is far more useful than a suspense account nobody reviews.
Xero allows two active tracking categories per organization, with up to 100 options in each, according to Xero's tracking documentation. Two is a real constraint, so spend them deliberately.
For most sellers the right answer is:
Once channel lives in a tracking category, Xero's profit and loss report will produce a column per channel from the same four revenue accounts and the same six direct cost accounts. That is the report you actually want, and it is unavailable to anyone who put channel into account names.
Here is a September profit and loss for a seller running three channels, built on the structure above.
| | Amazon | Shopify | Walmart | Total |
|---|---|---|---|---|
| Product Sales | 214,600 | 88,400 | 61,200 | 364,200 |
| Shipping Income | 0 | 6,150 | 900 | 7,050 |
| Discounts and Promotions | (4,290) | (9,720) | (1,835) | (15,845) |
| Refunds and Returns | (10,730) | (3,536) | (2,754) | (17,020) |
| Net Revenue | 199,580 | 81,294 | 57,511 | 338,385 |
| Cost of Goods Sold | (78,330) | (30,140) | (22,850) | (131,320) |
| Commissions and Referral Fees | (32,190) | 0 | (9,180) | (41,370) |
| Fulfillment Fees | (36,482) | (4,910) | (11,655) | (53,047) |
| Merchant Processing Fees | 0 | (2,750) | 0 | (2,750) |
| Gross Profit | 52,578 | 43,494 | 13,826 | 109,898 |
| Gross Margin | 26.3% | 53.5% | 24.0% | 32.5% |
Read the Walmart column. Twenty four percent gross margin on 61,200 of product sales, after 20,835 of commission and fulfillment. That is a pricing conversation, and possibly a decision to stop listing certain SKUs on that channel. You cannot have that conversation from a blended 32.5 percent, and you cannot get the columns without tracking categories.
Coding the payout instead of the sale. If revenue enters your books at the moment cash arrives, the numbers above are unreachable. Marketplace activity has to post at settlement or order level, then reconcile against the deposit. The Amazon and Xero setup works this way for a reason.
Netting fees against revenue. Booking a 199,580 net figure as sales removes 68,672 of cost from view. Both sides have to be gross.
Treating cost of goods sold as a plug. Many Xero files calculate cost of goods sold once a quarter by movement in the inventory account. That produces a number, and the number is an average of a quarter's worth of purchasing, not the cost of what you actually sold. FIFO costing at the SKU level is what turns account 300 into a fact.
Step five is the one people skip and the one that catches the mapping error. More on how channel level reporting works sits on the profit reporting page, the Xero integration overview, and the general ecommerce accounting guide.
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