Source: Google Gemini

Shopify returns are where ecommerce operations and accounting stop being friendly and start asking hard questions.

A customer sends the item back. Fine.
Warehouse receives the parcel. Fine.
Then someone asks:

  • Can this be restocked?
  • Is it damaged?
  • Do we refund in full or partially?
  • What happens to cost of goods sold?
  • Do we write this off?
  • Which GL account should this go into?

That is where many SMEs realize returns are not one event. They are a chain of events:
customer return > physical stock decision > financial treatment.

And if those three are not connected properly, you get:

  • wrong stock balances
  • overstated inventory
  • distorted gross margin
  • messy refund accounting
  • audit questions nobody enjoys

This guide explains the proper accounting treatment for Shopify returns, especially when the returned item ends up in one of three buckets:

  • restocking
  • disposal
  • damage

It is written for finance teams, accountants, founders, and operations managers who want a practical process that works for growing Malaysian SMEs.

We will cover:

  • why Shopify returns are often mishandled
  • the difference between refund accounting and stock accounting
  • how to treat restockable returns
  • how to treat damaged and unsellable returns
  • how to handle disposal and write-offs
  • recommended GL structure
  • practical examples and month-end controls

Let’s make returns less painful and much more accurate.


Why Shopify Returns Create Accounting Problems

Most teams handle the customer side first:

  • customer requests return
  • support approves
  • refund is processed

That part is visible.

What often gets missed is the inventory side.

Because once the item comes back, it may be:

  • fully sellable
  • opened but still sellable at discount
  • damaged
  • defective
  • expired
  • incomplete
  • non-returnable but manually accepted
  • suitable only for disposal

If finance only records the refund and ignores the stock condition, the books become incomplete.

That leads to common problems like:

  • inventory still showing value for goods that are damaged
  • COGS not reversed for restockable returns
  • write-offs hidden inside “miscellaneous expense”
  • no audit trail showing why one return was restocked and another was scrapped

This is why returns need both:

  1. customer refund treatment
  2. inventory condition treatment

They are related, but they are not the same entry.


First Principle: Refund Accounting and Inventory Accounting Are Separate

A Shopify return usually creates two accounting questions.

Question 1: What happens to revenue?

If you refund the customer, revenue usually needs to be reversed fully or partially.

Question 2: What happens to the stock?

If the goods come back, do they return to inventory value, or are they written off?

Many teams only do Question 1. That is half the job.

Example

You sell an item for RM120.
Its cost is RM70.
Customer returns it.

Finance records:

  • Dr Sales Returns & Refunds RM120
  • Cr Shopify Clearing / Bank RM120

Good. Revenue side handled.

But now what about the inventory?

  • If the item is still sellable, stock should come back
  • If the item is damaged, it should not
  • If it must be scrapped, write-off is needed

That is the part that often gets forgotten.


The 3 Return Outcomes Finance Must Separate

For practical accounting, returned items usually fall into three categories.

1. Restocking

The item is returned in a sellable condition and can go back into inventory.

2. Damage / Non-Sellable

The item is returned but cannot be sold at normal value.

3. Disposal / Write-Off

The item must be destroyed, scrapped, or removed permanently from usable stock.

These should not all be treated the same.


1) Restocking: Proper Accounting Treatment

What “restocking” means

A restocked item is one that returns in a condition that allows it to be sold again.

Typical examples:

  • unopened item
  • sealed packaging intact
  • no visible defect
  • complete accessories and labels
  • within resellable condition policy

Operational rule

Warehouse or returns team should confirm the item is:

  • received
  • inspected
  • approved for resale

Only then should it go back into available stock.

If your team restocks automatically before inspection, you are asking for inventory errors.

Accounting treatment

If the item is sellable again, you usually:

  1. reverse the revenue through the refund entry
  2. return the inventory to stock at cost
  3. reverse the original COGS effect

Example

Original sale:

  • Selling price = RM120
  • Cost = RM70

At sale, your books may have recorded:

  • Dr Shopify Clearing / Receivable RM120
  • Cr Sales Revenue RM120

And:

  • Dr Cost of Goods Sold RM70
  • Cr Inventory RM70

Now customer returns the item and it is restockable.

Refund entry

  • Dr Sales Returns & Refunds RM120
  • Cr Shopify Clearing / Bank RM120

Inventory restoration entry

  • Dr Inventory RM70
  • Cr Cost of Goods Sold RM70

This brings the item back into inventory and reduces COGS accordingly.

Why this matters

If you refund the customer but do not restore inventory, then:

  • inventory is understated
  • COGS is overstated
  • gross margin looks worse than reality

That may sound conservative, but it is still inaccurate.


2) Damage: Proper Accounting Treatment

What “damaged” means

A damaged returned item is one that cannot be sold as normal inventory.

Examples:

  • packaging torn or missing
  • used item
  • scratched or stained
  • components missing
  • cosmetic damage
  • product quality issue
  • broken during shipping or return transit

Some businesses may still resell damaged stock as:

  • clearance
  • B-grade
  • defective discount stock

If so, the item may still have some value — just not full value.

Operational rule

Returns team should classify damaged items clearly:

  • resale at full value
  • resale at reduced value
  • non-sellable

Do not mix these together in one “returned stock” bin. That creates accounting nonsense later.

Accounting treatment: fully non-sellable damage

If the returned item cannot be sold, then:

  • reverse revenue for the refund
  • do not bring it back into normal inventory as full-value stock
  • record the inventory loss appropriately

Example

Same original sale:

  • Selling price = RM120
  • Cost = RM70

Refund entry:

  • Dr Sales Returns & Refunds RM120
  • Cr Shopify Clearing / Bank RM120

Now if the item is damaged beyond resale, you do not restore it to inventory as if it were good stock.

Instead, the business has effectively lost the stock value.

There are two common practical approaches depending on how your system handles returns:

Approach A: No inventory restoration, keep original COGS

If the original COGS entry already moved RM70 out of inventory, and the damaged return has no recovery value, then no reversal of COGS is needed.

This works if the stock never returns to usable inventory.

Approach B: Return to a damaged stock account, then write down

If your warehouse process first books the returned item into a separate damaged stock category, then you might do:

  • Dr Damaged Inventory RM70
  • Cr Cost of Goods Sold RM70

Then write it off:

  • Dr Inventory Write-Off / Damage Expense RM70
  • Cr Damaged Inventory RM70

This gives better tracking for control purposes.

Why this matters

If damaged items are returned to normal inventory by mistake:

  • inventory is overstated
  • future stock counts become unreliable
  • write-off expense is hidden
  • auditors will not be amused

3) Disposal: Proper Accounting Treatment

What “disposal” means

Disposal is the formal removal of stock from usable inventory.

This could happen because the item is:

  • damaged beyond recovery
  • expired
  • contaminated
  • returned without legal ability to resell
  • defective and scrapped
  • destroyed due to health or safety policy

Disposal is not just “throwing away”.
From a finance point of view, it is an inventory write-off event.

Operational rule

Every disposal should have:

  • inspection result
  • reason code
  • quantity
  • SKU
  • approval
  • date of disposal

If the team throws items away without documentation, finance has no defensible audit trail.

Accounting treatment

The accounting depends on whether any residual value remains.

If zero value remains

Write off the inventory value completely.

Example:

  • Cost value of returned item = RM70

Entry:

  • Dr Inventory Write-Off / Disposal Expense RM70
  • Cr Inventory RM70

If the item was first placed into a disposal holding account, then clear it from there instead.

If a disposal vendor gives scrap value

Suppose the item is scrapped and the company recovers RM10.

Then:

  • write off full inventory cost
  • record the scrap recovery separately

Example:

  • Dr Inventory Write-Off / Disposal Expense RM70
  • Cr Inventory RM70

Then upon scrap recovery:

  • Dr Bank / Receivable RM10
  • Cr Other Income / Scrap Recovery RM10

This keeps the write-off visible instead of netting it quietly.


What About Partial Returns?

Partial returns make everything more interesting.

If a customer returns only one item in a multi-item order, finance should:

  • reverse revenue only for the returned portion
  • reverse tax if applicable
  • restore inventory only for that SKU if sellable
  • write off only that SKU if damaged/disposed

Example

Order includes:

  • Item A sold RM80, cost RM45
  • Item B sold RM40, cost RM25

Customer returns Item B only.

Refund entry

  • Dr Sales Returns & Refunds RM40
  • Cr Shopify Clearing / Bank RM40

If Item B is restocked:

  • Dr Inventory RM25
  • Cr Cost of Goods Sold RM25

If Item B is damaged and scrapped:

  • do not restore normal inventory
  • write off if needed based on your process

Partial returns must be tracked at SKU level, not just order total level.


Suggested GL Accounts for Clean Return Accounting

A simple and practical chart of accounts structure may include:

Revenue Section

  • Shopify Sales Revenue
  • Sales Returns & Refunds
  • Sales Discounts

Cost Section

  • Cost of Goods Sold

Inventory Section

  • Inventory
  • Damaged Inventory
  • Return Inspection Holding
  • Inventory Write-Off / Disposal Expense

Other Useful Accounts

  • Shopify Clearing
  • Scrap Recovery / Recovery Income
  • Return Handling Expense, if material

You do not need a huge chart of accounts. But you do need enough visibility to answer:

  • how much was refunded
  • how much was restocked
  • how much was damaged
  • how much was disposed

Operational Controls Finance Should Insist On

This is where accounting and warehouse must work together.

1. Return condition codes

Every returned SKU should be tagged as:

  • restockable
  • damaged resale
  • non-sellable
  • disposal

2. Inspection before restocking

Never restock based on customer claim alone.

3. Separate physical bins

Use separate holding locations for:

  • pending inspection
  • approved restock
  • damaged
  • disposal

4. Approval for write-offs

Large or repeated stock write-offs should require approval.

5. Return register

Keep a register with:

  • order ID
  • SKU
  • refund amount
  • stock condition
  • stock action
  • finance entry reference

6. Monthly reconciliation

At month-end, reconcile:

  • refund totals
  • returned units
  • restocked units
  • damaged units
  • disposed units
  • write-off values

Without this, the warehouse and GL will slowly drift apart.


Common Mistakes to Avoid

Let’s make these very clear.

Mistake 1: Refund recorded, no inventory entry

Then stock and margin are wrong.

Mistake 2: All returns automatically restocked

Then damaged stock is overstated as good stock.

Mistake 3: Disposal treated as “miscellaneous expense”

Then inventory losses disappear into vague accounting.

Mistake 4: No link between return and SKU

Then partial returns become hard to reconcile.

Mistake 5: No approval trail for write-offs

Then audits become awkward, and control risk increases.

Mistake 6: Finance depends on customer service notes only

Customer service may know the story, but finance needs structured evidence.


A Practical Month-End Workflow

Here is a clean workflow for Shopify returns.

Weekly

  • review refunds processed
  • match returned SKUs to physical receipt
  • classify return condition
  • post inventory correction entries if needed

Monthly

  • summarise refund values
  • summarise return quantities by condition:
    • restocked
    • damaged
    • disposed
  • reconcile return register to GL
  • review inventory write-off account
  • investigate unusual spikes in damaged returns

Quarterly

  • sample test a few returns end-to-end:
    • order sold
    • refund issued
    • physical item received
    • restocked or scrapped
    • accounting entries posted correctly

This testing is very useful because returns are one of the easiest places for stock and finance to quietly go out of sync.


A Malaysian SME Example

A cosmetics seller on Shopify Malaysia sells serums and skincare sets.

One month:

  • RM18,000 of returns are refunded
  • finance records all refunds correctly
  • warehouse restocks every returned item automatically
  • no inspection is performed

Later, a stock count shows many opened or damaged units sitting inside available stock.

Result:

  • inventory overstated
  • future orders may ship unsellable goods
  • write-offs hit a later month instead of the correct month
  • gross margin by month is distorted

This is not just a warehouse issue. It is an accounting issue too.

If the business had separated:

  • restockable returns
  • damaged returns
  • disposal items

then both stock and margin reporting would be much cleaner.


Final Thoughts

Shopify returns are not just refunds.

They are a combination of:

  • customer refund treatment
  • stock condition decision
  • inventory accounting outcome

That means finance cannot stop at:

  • “Did we refund the customer?”

Finance also has to ask:

  • “What happened to the stock?”

The proper accounting treatment depends on the result:

If restockable:

  • reverse revenue
  • restore inventory
  • reverse COGS

If damaged:

  • reverse revenue
  • assess whether inventory should be written down or excluded from normal stock

If disposed:

  • write off inventory clearly and document the reason

When this process is done well, you get:

  • more accurate inventory
  • cleaner gross margin
  • better audit trail
  • fewer month-end surprises

And that is the real goal:
not just handling returns, but handling them in a way that keeps both operations and finance honest.