Inventory Accounting Explained: How to Record Stock Purchases, Adjustments, and COGS
Inventory accounting is the process of tracking the financial value of goods you buy, hold, and sell. It works through specific journal entries: one when you receive stock (the asset grows), one when you sell units and recognize cost of goods sold (COGS), and more when shrinkage or damage forces an adjustment. The mechanics are consistent whether you're selling on Shopify, Amazon, or ten channels at once, and understanding them is the foundation of an accurate balance sheet.
Getting these entries right matters because your profit margin depends on an accurate inventory account. A $12,000 pallet of TSHIRT-BLU-M sitting in your warehouse is an asset. The moment you sell those units, their cost becomes an expense. Every step between purchase and sale needs a corresponding journal entry to keep your books honest.
Why Inventory Accounting Is More Than a Year-End Exercise
Many growing brands treat inventory accounting as something the accountant sorts out in December. That works until it doesn't. When your inventory account drifts from your actual stock count, you end up with phantom profits, unexpected tax bills, or cost reports you can't trust.
That gap widens fast on multiple channels. An order on Amazon and an order on your Shopify store might pull from the same warehouse, but if those channels don't feed a single inventory management platform, your counts and your cost calculations will drift before long. The earlier you build accurate accounting habits, the easier it is to scale without a financial reckoning.
Periodic vs. Perpetual Inventory Accounting
Before picking up a journal, decide which system you're using.
Periodic records inventory changes in bulk, typically at month-end or year-end. You do a physical count, then calculate COGS as: beginning inventory + purchases - ending inventory. Simple, but you have no real-time visibility into what's on hand.
Perpetual records every purchase, sale, and adjustment as it happens. Your general ledger updates in real time. This is the method fast-growing multi-channel brands need. When you're processing hundreds of orders a day, periodic accounting tells you what happened, not what's happening.

Inventory Valuation Methods
Once you've chosen perpetual or periodic, you need a cost-flow assumption. This determines how much cost you assign to each unit sold.
FIFO (First In, First Out): The oldest units cost your COGS first. Works well for apparel and perishables, where old stock shouldn't linger. FIFO typically produces higher ending inventory values in periods of rising costs.
LIFO (Last In, First Out): The most recently purchased units hit COGS first. Only permitted under US GAAP, not IFRS. It can reduce taxable income in rising-cost environments but often leaves outdated cost layers on your balance sheet.
Weighted Average Cost: You calculate a new average cost per unit every time you receive stock, smoothing out price fluctuations. Many ecommerce brands default to this because it's straightforward to automate.
Specific Identification: Each unit carries its actual purchase cost. Only practical for high-value, low-volume items like serialized electronics or fine jewelry.
How to Record Inventory Purchases
When you receive stock, you debit your inventory account (the asset grows) and credit either accounts payable or cash.
Say you buy 200 units of TSHIRT-BLU-M at $15 each on net-30 terms. The entry:
Account | Debit | Credit |
|---|---|---|
Inventory (asset) | $3,000 | |
Accounts Payable | $3,000 |
When you pay the invoice 30 days later:
Account | Debit | Credit |
|---|---|---|
Accounts Payable | $3,000 | |
Cash | $3,000 |
Under perpetual accounting, your stock levels in your inventory ledger update the moment stock is received, not when the invoice is paid. That's the key distinction from a periodic system: the asset count changes when physical stock moves, full stop.
How to Record Cost of Goods Sold
COGS is the cost you recognize when a unit leaves your warehouse via a confirmed sale. Under perpetual accounting, this entry fires at the point of fulfillment.
You sell 50 units of TSHIRT-BLU-M at $28 each. The revenue entry:
Account | Debit | Credit |
|---|---|---|
Accounts Receivable | $1,400 | |
Revenue | $1,400 |
And the corresponding COGS entry (50 units at $15 purchase cost each):
Account | Debit | Credit |
|---|---|---|
Cost of Goods Sold | $750 | |
Inventory | $750 |
The inventory asset drops by $750. Your income statement picks up $750 in expense. Gross profit on that batch: $1,400 in revenue minus $750 COGS equals $650.
For multi-channel brands processing orders from Shopify, Amazon, and Walmart in parallel, every fulfilled order generates this pair of entries. At volume, manual bookkeeping becomes a bottleneck. The entries need to be accurate and fast.
How to Record Inventory Adjustments
Adjustments account for shrinkage, damage, theft, returns, or counting errors. The goal is to bring your book count in line with your physical count.
Writing down for shrinkage: You count and find 5 units of TSHIRT-BLU-M missing. At $15 cost each:
Account | Debit | Credit |
|---|---|---|
Inventory Shrinkage (expense) | $75 | |
Inventory (asset) | $75 |
Upward adjustment for a receiving discrepancy: You find an over-shipment from your supplier that wasn't originally recorded:
Account | Debit | Credit |
|---|---|---|
Inventory (asset) | $150 | |
Inventory Over/Short | $150 |
For small discrepancies, many brands credit COGS directly rather than maintaining a separate shrinkage account. Either approach works as long as it's consistent and applied the same way every period.
Adjustments processed at the time of discovery are easy to audit. Adjustments that pile up and get resolved quarterly create reconciliation problems that take days to untangle.
How to Record a Write-Off
A write-off removes units from your books entirely. You had 20 units of JACKET-WHT-L that sat in the warehouse too long and are now unsellable. At $40 cost per unit:
Account | Debit | Credit |
|---|---|---|
Loss on Inventory Write-off | $800 | |
Inventory | $800 |
The asset is gone from the books. The $800 loss appears as an expense. Depending on your accounting software configuration, this might flow through COGS or a dedicated loss line. Your accountant can advise which treatment fits your reporting structure.
How an OMS Connects Inventory Data to Your Accounting Software
The journal entries above need to originate somewhere reliable. In a manual workflow, that means exporting order data, building purchase reconciliations, and hand-keying entries into QuickBooks or Xero. For a brand processing 500 orders a month, that's already a significant overhead. At 5,000 orders, it's not viable.
A connected order management system solves this by pushing transaction data to your accounting platform as it happens. When an order ships, the COGS entry posts. When a purchase order is received, inventory goes up. When a return is processed, the reversal fires.
OmniOrders connects orders and inventory across your sales channels and sends structured data to QuickBooks, Xero, and Acumatica. Instead of building journal entries from spreadsheets, your accounting software receives clean data in real time. The no-code automation rules engine lets you configure exactly how different transaction types map to your chart of accounts. No developer required.
That matters most when you're adding new channels or warehouses. A new marketplace connector shouldn't require re-engineering your accounting workflow. With the right setup, the channel becomes another source feeding the same clean entries.
If you're still getting your inventory data organized before connecting to accounting software, choosing the right inventory optimization tools is a useful starting point.
Automate the Entries You Shouldn't Be Making by Hand
Every journal entry in this article can run automatically once your order management system connects to your accounting software. Purchase orders, COGS recognition, adjustments, returns, each generates structured data the moment the transaction occurs.
OmniOrders centralizes orders, inventory, and fulfillment across your channels in one platform, then pushes clean data to QuickBooks, Xero, or Acumatica. The result is an inventory account that matches your physical stock without the manual reconciliation overhead. When you need a consistent inventory record across all your stores and marketplaces, that's the foundation to build on.
Start your free OmniOrders trial and see how your inventory data becomes the direct source of your accounting entries, rather than something you rebuild after the fact.
Frequently asked questions
What is inventory accounting?
Inventory accounting is the practice of tracking and recording the financial value of goods held for sale. It covers recording stock purchases as assets, recognizing cost of goods sold when items sell, and recording adjustments for shrinkage, damage, or counting errors. The goal is to keep your general ledger in sync with your actual stock position at all times.
What is the journal entry for a stock purchase?
When you receive inventory on credit, debit your Inventory account and credit Accounts Payable. For example, buying 200 units at $15 each: debit Inventory $3,000, credit Accounts Payable $3,000. When you pay the invoice, debit Accounts Payable and credit Cash for the same amount. Under perpetual accounting, the inventory asset increases the moment stock is received.
How do you record COGS in ecommerce?
Under perpetual inventory accounting, COGS is recorded at the point of fulfillment. For each order, you debit Cost of Goods Sold and credit Inventory for the cost of the specific units shipped. The cost per unit depends on your valuation method: FIFO applies the oldest purchase cost first, LIFO applies the most recent, and weighted average uses a rolling average cost per unit.
How do you record inventory adjustments?
For shrinkage or damage, debit an expense account (such as Inventory Shrinkage or COGS) and credit Inventory to reduce the asset. For write-offs, debit a loss account and credit Inventory to remove units from your books entirely. For upward adjustments where you received more stock than recorded, debit Inventory and credit an Inventory Over/Short account.
What is the difference between FIFO and LIFO in inventory accounting?
FIFO (First In, First Out) assumes you sell your oldest units first, matching earlier purchase costs to COGS. LIFO (Last In, First Out) assumes your most recently purchased units sell first, assigning newer costs to COGS. LIFO is only available under US GAAP, not IFRS. Most ecommerce brands use FIFO or weighted average cost because they better reflect how goods physically move through a warehouse.
Start your 14-day free trial
See how OmniOrders connects your sales channels, 3PLs, and carriers into one operational layer — free for 14 days, no credit card.