Hi Shopify Community,
My question is about helping Merchants who use Returns Apps to facilitate Exchanges, but can’t use the Exchange API due to incompatibilities with downstream 3PLs.
Some context: I work at Frate Returns, we help merchants process returns & exchanges. We always recommend that merchants use the Exchange API (i.e., using the returnCreate API to pass exchangeLineItems), but it is quite common that throughout the testing process, we realize that their downstream 3PLs are not capable of ingesting new FulfillmentOrders on Orders which they’ve already seen, so this makes it not practical to use the Exchange API, and we end up creating exchanges via zero-cost-DraftOrders. This is not ideal, but it’s a necessary workaround given that not all 3PLs can work with the Exchange API.
So, back to my question: for Merchants who can’t use the Exchange API, here is the return lifecycle:
- We call
returnCreatewithreturnLineItems - We call
draftOrderCreatewith the exchange line items - Later on, we call
returnProcesswith thereturnLineItems, and NOfinancialTransferbecause we gave the customer an exchange via the DraftOrder
The problem with this is that Shopify thinks that a refund is owed on the return because it is not aware of the fact that we handled the exchange, and this causes much confusion for our customers. For example, this UX will show, when really no refund is owed because we handled the exchange via the DraftOrder:
So, if you made it this far, my goal is to support exchange via the external DraftOrder method, AND be able to process the original return WITHOUT any financial transfer AND have Shopify avoid telling the merchant that they owe a refund. The practical problem (which we have already seen) is that CX agents are mindlessly refunding customers here while they also are shipping them an exchange, losing these merchants unnecessary money!
Let me know if you have any questions or want me to clarify anything I’m talking about here, I know it’s quite complex, but I think it’s worth solving because I’m sure other returns apps face the same issue.
Cheers,
Jake


