Accounting & Xero Insights for US Businesses | Logiframe US

Xero for E-Commerce: Inventory, COGS, and Multi-Channel Reconciliation

Written by Wienanto Tanuwidjaja | Aug 11, 2026, 1:50:09 AM

The core problem

What Is Inside a Payout

A single deposit from a sales channel is a net settlement of several unrelated things. Coding it to one revenue account destroys all of them.

  • Gross sales for the period, at the price the customer paid
  • Refunds and returns, deducted
  • Platform and payment fees, deducted. These are an expense, not a reduction in revenue.
  • Shipping charged to the customer, which is income, and shipping you paid, which is cost
  • Sales tax collected, which is a liability rather than yours
  • Chargebacks, adjustments and reserves, which move in both directions
  • Timing differences, because the payout period rarely matches the calendar month

Net one number into revenue and your top line is understated by the fees, your expenses are understated by the same amount, your sales tax liability is invisible, and your revenue for the month is whatever the payout schedule happened to do.

The symptom that gives it away

Gross margin that moves several points month to month without anything changing in the business. If pricing and supplier costs are steady and margin is not, the numbers going into it are wrong rather than the business being volatile.

The pattern

The Clearing Account Pattern

The fix is standard and it works the same way on every channel. Give each channel its own clearing account and never post a payout straight to revenue.

  • Sales are recorded gross as they happen, debiting the channel clearing account and crediting revenue and sales tax payable.
  • Fees, refunds and shipping costs are recorded against the clearing account as their own expense and contra-revenue lines.
  • The payout debits the bank and credits the clearing account.
  • The balance left is money earned but not yet paid out, which is a genuine receivable and should be explainable at any moment.

Done this way, the clearing account becomes a control. If it clears to a balance you can point at, the channel is reconciled. If it drifts upward month after month, something is not being recorded and the number tells you before the margin does.

Most sellers do not build these journals by hand. A connected app that summarises each settlement into the correct lines does it automatically, which is the reason those apps exist and the reason they earn their subscription on any real volume.

The expensive one

Why COGS Goes Missing

Xero posts cost of goods sold automatically, and the trigger is specific. Understanding it explains almost every e-commerce file with no COGS in it.

A tracked inventory item in Xero carries three accounts: an inventory asset account, a cost of goods sold account, and a sales account. When you approve a bill containing that item, Xero increases the quantity on hand and increases the inventory asset. When you approve an invoice containing that item, Xero posts a debit to cost of goods sold and a credit to inventory asset, at the item’s current average cost.

The trigger is the invoice line. And on most e-commerce setups, no invoice line ever exists. Orders arrive as settlement or payout summaries, aggregated by day or by period, with no tracked item on them. Xero has nothing to post COGS against, so it posts nothing.

The result is a profit and loss showing revenue with no matching cost, inventory sitting on the balance sheet at a value that only ever goes up, and a gross margin that looks extraordinary until someone counts the warehouse.

Two ways to close the gap. Either the integration creates invoices carrying the tracked items, so Xero posts COGS on its own, or an inventory system computes cost separately and posts a periodic COGS journal into Xero. Both work. What does not work is assuming it is happening because revenue is arriving.

The mechanics

How Xero Values Inventory

Xero uses weighted average cost, and the formula is published: opening value plus purchases value minus cost of goods sold value, divided by quantity on hand.

Every purchase at a new price blends into the running average. That smoothing is deliberate, and for most sellers it is an advantage: a single expensive or unusually cheap purchase does not distort a month’s gross margin the way it would under a cost-flow method that matches specific layers.

Two behaviours follow, and both protect the number.

  • Inventory accounts are system accounts. You cannot journal to or from them directly, which is what keeps the inventory asset balance always equal to the sum of the tracked items. The balance sheet and the item list cannot silently disagree.
  • Xero will not let quantity or value go negative. Selling stock you have not recorded buying is blocked rather than absorbed. That preserves the integrity of the average cost, and it surfaces a receiving problem at the moment it happens instead of at year end.

Both are the reason a Xero inventory balance, once set up correctly, stays reconcilable. They are also why a badly sequenced import fails loudly rather than producing a plausible wrong answer.

The design decision

Which System Owns Inventory

The question is not whether Xero can track inventory. It is which system should be the operational source of truth, with Xero carrying the financial result.

Xero as the inventory system

Works well for a seller with a manageable item count, one location, and purchases recorded as bills before the stock sells. Quantity on hand is perpetual, COGS posts automatically on invoice, and gross margin appears in management accounts without a month-end stock adjustment. Xero suggests keeping tracked items to around 4,000, which is also the ceiling for importing opening balances, and native tracking is designed around a single location.

A connected inventory system, with Xero as the ledger

The right shape once you have multiple warehouses, kits or bundles, manufacturing, purchase order receipting, or item counts beyond what a single list handles comfortably. The inventory platform owns quantities, costing and replenishment. Xero owns the general ledger, receives the financial result, and remains the reconcilable source of truth for finance and tax.

This second shape is the normal end state for a growing e-commerce business, and it is a better outcome than stretching either system to do the other’s job. The failure mode is not choosing: an inventory app installed while Xero also tracks the same items, both maintaining quantities, neither agreeing.

Decide this before the migration, not after

Switching which system owns inventory once both hold history is a project rather than a setting. It means recosting, restating the inventory asset, and explaining a change in accounting to whoever reads the accounts.

More than one channel

Selling on More Than One Channel

The same SKU sold on Shopify, Amazon, eBay and wholesale is one item with one cost and four different revenue stories. Keeping those apart is the whole job.

  • One clearing account per channel. Never a shared one. A shared clearing account cannot be reconciled, because you cannot tell whose money is sitting in it.
  • Revenue split by channel, cost kept single. Use tracking categories or separate revenue accounts for the channel view. The item’s cost does not change because of where it sold.
  • Fees differ sharply by channel and they are the difference between a profitable channel and a busy one. A marketplace taking a referral fee plus fulfilment is a materially different margin from a direct sale on your own store, at the same price.
  • Wholesale behaves differently. It is invoiced, it has terms, and it produces receivables. Mixing it into channel reporting built for settlement data hides your actual credit exposure.
  • One SKU, one item. Duplicating items per channel splits the average cost and makes every margin figure wrong.

The test of whether this is set up properly is simple: can you produce gross margin by channel, and does the sum of the channels equal the total? If either answer is no, the channels are not separated in a way you can act on.

Sales tax

Sales Tax on Marketplaces

Tax collected from a customer is never revenue. Where it goes next depends on who collected it.

Under marketplace facilitator rules, most states place the collection and remittance obligation on the marketplace rather than the seller for sales made through it. So tax on an Amazon or eBay order is typically collected and remitted by the platform, while tax on a sale through your own store is yours to collect, hold and remit.

That produces two different accounting treatments for the same product sold on the same day, and it is a common source of both overstated revenue and a sales tax liability that never clears.

  • Marketplace-collected tax should not appear in your revenue and should not create a liability you then try to pay.
  • Tax you collect sits in a liability account until remitted, and that account should clear on the filing cycle.
  • A liability that only grows means either remittances are being coded elsewhere, or marketplace tax is being recorded as yours.

Rules vary by state and by marketplace, and your economic nexus position is a separate question from who collects. Confirm your specific obligations with your CPA rather than inferring them from how the data arrives.

The routine

What to Check Every Month

Six checks. Any one of them failing means the numbers above it cannot be relied on.

  • Each channel clearing account explains its balance. The amount left should equal money earned and not yet paid out, and you should be able to say which settlements make it up.
  • COGS exists and moves with revenue. A month with sales and no cost of goods sold is not a good month, it is an unfinished one.
  • Gross margin is stable. Not high, stable. Movement without a business reason is a data problem.
  • Inventory on the balance sheet agrees with the item list. If an outside system owns inventory, it agrees with that system instead.
  • The sales tax liability clears on its filing cycle.
  • Fees are recorded as expenses, not netted against revenue, so you can see what each channel actually costs to sell through.

Questions

Commonly Asked

Why is there no COGS in my Xero e-commerce file?
Xero posts cost of goods sold when an invoice containing a tracked inventory item is approved. If your orders arrive as payout or settlement summaries rather than as invoices with tracked items on them, there is no line for Xero to post against and no COGS is recorded. The fix is either an integration that creates invoices carrying the tracked items, or an inventory system that computes cost and posts a periodic COGS journal into Xero.
Should I record a Shopify or Amazon payout as revenue?
No. A payout is a net settlement of gross sales, refunds, platform fees, shipping and sales tax. Coding it to revenue understates both your top line and your expenses by the value of the fees, hides the sales tax liability, and makes revenue follow the payout schedule rather than the month. Record sales gross through a per-channel clearing account, record fees and refunds against that account, and let the payout clear it.
What inventory valuation method does Xero use?
Weighted average cost. The published formula is opening value plus purchases value minus cost of goods sold value, divided by quantity on hand, so every purchase at a new price blends into the running average. The smoothing means one unusually priced purchase does not distort a month's gross margin.
Can Xero handle multi-channel e-commerce inventory?
Xero tracks inventory well for a seller with a manageable item count, a single location, and purchases recorded as bills before the stock sells. Once you have multiple warehouses, kits or bundles, manufacturing or purchase order receipting, the normal shape is a connected inventory platform owning quantities and costing, with Xero as the general ledger receiving the financial result. Xero suggests keeping tracked items to around 4,000, which is also the ceiling for importing opening balances.
Why does my gross margin jump around every month?
Usually because revenue and cost are not landing in the same period, or because fees are being netted against revenue instead of recorded as expenses. If pricing and supplier costs have not changed and margin is moving several points, treat it as a data problem rather than a business one. The first checks are whether COGS is posting at all and whether each channel's clearing account explains its balance.
Who handles sales tax on marketplace sales?
Under marketplace facilitator rules, most states put the collection and remittance obligation on the marketplace for sales made through it, so tax on an Amazon or eBay order is typically handled by the platform. Tax on sales through your own store is yours to collect, hold and remit. Rules vary by state, and your nexus position is a separate question, so confirm your specific obligations with your CPA.