Why won't Shopify automatically charge customers for return shipping or restock the items?
Shopify lets you set a flat return shipping fee and a restocking fee, but it won't deduct either from a refund automatically or restock inventory for you. Here's what's native, what stays manual, and when an app is actually worth it.
What's going on
A merchant sets up returns in Shopify expecting it to work like a lot of other automated store processes: the customer requests a return, a shipping fee gets charged or deducted, the item comes back, and inventory updates itself. Instead they find that while Shopify does let you configure a flat return shipping fee and a restocking fee percentage, those amounts are only calculated and displayed, never actually deducted from the refund. Someone has to do that subtraction by hand every single time a return is processed.
Restocking has the same gap. There's an option to restock each returned line item at a specific location when you process a return, but nothing restocks automatically just because a package shows as delivered or a return is marked received. Every returned item has to be manually flagged for restock, or inventory counts quietly drift from reality. For a store handling a handful of returns a week this is a minor annoyance. For one handling dozens a day, it turns into real staff time and real inventory accuracy problems, which is exactly the kind of thing that shows up as a frustrated why doesn't Shopify just do this post.
Why it happens
Shopify's native returns tools were built to let merchants set policy, what fee applies and whether restocking is charged, but they stop short of executing the financial and inventory actions automatically. That's a deliberate boundary: automatically deducting money from a refund or automatically changing inventory counts without a human check is a bigger liability surface than most admin actions, since a wrong amount, wrong location, or damaged goods case is much harder to unwind after the fact. So Shopify leaves the final step to the merchant.
The result is a gap between Shopify calculating something and Shopify doing it for you, and it's easy to miss until you're deep into your first few dozen returns and realize the fee shown on screen never actually left the customer's refund, or that your inventory counts don't match what's on the shelf because nobody clicked restock.
5 ways to fix it
Turn on the flat return shipping fee and restocking fee first, it's free and built in
Before installing anything, look in your store's return and refund settings for two native controls: a flat fee you can charge per return for return shipping, and a restocking fee expressed as a percentage of the item price. Both show up to the customer when they request a self serve return and to you when you process it in admin. Neither is glamorous, but it's free, already there, and covers what most merchants actually need, which is recovering some cost rather than automating logistics.
The fee is calculated, not deducted, build that into your process
Shopify will show you the return shipping fee or restocking percentage owed, but it will not subtract it from the refund for you. Someone on your team has to manually reduce the refund by that amount every time a return is processed. Put this in your returns SOP or help desk macro now, because it's the step teams forget most often, and forgetting it means quietly eating the fee on every return.
Restock manually, per line item, at the location you choose
When you process a return in your Orders admin, each returned line item lets you choose to restock it and pick which location to add it back to, as long as the product has inventory tracking turned on. That's a couple of clicks per return, not automatic, but it's reliable and doesn't depend on a third party integration firing correctly. If your return volume is low to moderate, this manual step is often faster than setting up and maintaining an automation.
If volume justifies it, a returns app can automate restocking and shipping fee rules
Once you're processing enough returns that manual restocking and fee deduction cost real time, dedicated returns apps such as AfterShip Returns, Loop Returns, or Rich Returns add automation Shopify doesn't offer natively, including auto restock when a return is marked received, tiered or condition based return shipping charges, exchange first flows, and reporting. Compare a few on pricing and, importantly, on whether they write back to Shopify inventory directly or through a webhook, since that gap is where merchants most often get burned.
Spell out the fee in your policy before the customer ships anything back
Whichever combination of the above you use, make sure your public returns policy and the self serve return flow both state the return shipping fee, or that customers cover their own postage, and any restocking percentage before the customer commits. This heads off disputes and support tickets far more effectively than any backend automation, and it costs nothing to fix if your policy is currently vague or missing this.
Bottom line
Shopify gives you real, no cost levers here: a flat return shipping fee, a percentage based restocking fee, and per item restock at a chosen location when you process a return. What it doesn't give you is automation. Fees aren't deducted from the refund for you, and restocking isn't automatic, so someone has to do both by hand for every return unless you bring in a dedicated returns app. Start with the native settings and a tight SOP, and only add an app once manual handling is genuinely costing you more time than the subscription would. This is a workflow and policy gap more than a missing feature, so it's a poor fit for a generic one time fee utility app. If you outgrow the manual process, look at a purpose built returns automation app rather than a general storefront tool.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.