Hi everyone,
I have a question regarding to how to efficiently handle the following:
- Let’s say I have a customer that wants to apply a warranty policy because the product broke. I then go on to send a replacement product to the customer. (the customer will not pay for the product or the shipping)
- The way I go about this is that I create a new order, add a custom discount where I apply 100%.
- Regarding the shipping, I don’t add any (because I don’t want the customer to pay for it, so I go ahead to buy the label myself) - but I would like to do this more efficiently. I want shopify to still recognize this as my expense, but unfortunately, I don’t know how to set it to 0EUR for the customer. Because if I add the usual shipping, then shopify will think the customer has paid for it.
- Do you guys have any advice on how to do this more efficiently?
Thanks a lot for your help!
Hey @lucylucy9608,
Yeah… Shopify doesn’t give you a perfect way to create a 0 EUR warranty order and log the shipping cost as an expense on that same order. If you add a shipping rate, Shopify thinks the customer paid it. If you don’t, there’s no expense tracking at all.
The way most stores handle this is:
Create a draft order → add the replacement item → apply a 100% discount → mark as paid → and then buy the label from the original order instead of the replacement one.
That way the shipping cost gets recorded properly where the warranty actually came from, and the customer still sees a total of 0.
Once you’re doing replacements like this, two tools can actually make the whole process a lot smoother:
ParcelPanel Order Tracking
You can give the customer a clean tracking page for the replacement, so they’re not emailing you asking “did it ship yet?” or mixing it up with the old order.
ParcelPanel Returns & Exchanges
If you get a lot of warranty cases, this lets customers submit return/exchange requests themselves, choose “warranty replacement,” and the system handles notifications and tracking without you recreating everything manually.
Hope this helps a bit! If it does, feel free to mark it as a solution so others can find it too 