Shopify returns and refunds
Returns and refunds from Shopify are imported into Business Central, where they are booked as credit memos. This article explains how the process works, the two import methods, and which situations are handled automatically.
Note: For Shopify, the refund to the customer is always made in Shopify. Business Central doesn’t send money back to the customer. It reads the refunds that were already made in Shopify and books them: it creates the credit memo, puts items back in stock, and posts the refund in finance.
Magento and other webshops connected through the NaviPartner Ecommerce API, and returns made at the POS, aren’t covered in this article.
How it works
- The customer returns goods or asks for money back. Staff handle this in the Shopify admin: they create and close a return, or create a refund on the order. Shopify refunds the customer’s card, gift card, or store credit.
- A job queue entry in Business Central regularly checks Shopify for closed returns and for refunds without a return.
- Each return or refund is placed in a queue in Business Central.
- Business Central creates a Sales Return Order from it, with the returned items, shipping refund, fees, and so on.
- If automatic posting is enabled, the return order is posted straight away. This creates a Posted Return Receipt and a Posted Sales Credit Memo, and the refund is posted against the customer.
- Anything that can’t be handled automatically stays in the queue with a message, so a user can fix it or handle it manually.
Import methods
There are two methods of importing Shopify orders. The method your company uses decides how returns and refunds are imported.
The e-commerce order experience is the newer import method, and it will replace the legacy order import over time. Until it covers all the situations described in this article, the legacy order import is recommended for companies that need refunds without a return, shipping refunds, gift card refunds, or fully automatic processing.
For setup instructions, refer to:
- Set up Shopify returns and refunds (legacy order import)
- Set up Shopify returns with the e-commerce order experience
What Business Central creates in each situation
The following applies to the legacy order import. Every return or refund becomes one Sales Return Order for the customer of the original order. The posting date is the date when the return was closed or the refund was made in Shopify.
Discrepancies
A discrepancy is an amount that Shopify refunded on top of the value of the returned or refunded lines. Business Central can’t link this amount to an item, a shipping line, or a fee, so it books it on the Refund Discrepancy G/L Account No.:
- Goodwill refund - the line is called Refunded beyond the lines, and it uses the VAT setup of the discrepancy account.
- Discount given after the sale - the line is called Discount after the sale: <item>, and it uses the VAT of the original sales line.
How refunds are handled
Card and other payment refunds
- The refund to the customer is made in Shopify. Business Central never sends a refund request to Shopify or to the payment service provider. If a user tries to refund a Shopify payment from Business Central, the following message is displayed: “Refunding Shopify payments from Business Central is not supported yet. Please use the Shopify admin interface to process refunds.”
- Only refunds completed in Shopify are imported. Pending refunds make the row wait until they’re completed.
- Each Shopify refund is added to the return order as a payment line that is already marked as refunded, so it’s never refunded twice.
- When the credit memo is posted, Business Central checks that it matches the amount Shopify refunded. It then posts a refund journal entry from the customer to the Return Refund G/L Account No., which closes the credit memo in the customer ledger.
Gift cards (retail vouchers)
If Shopify refunds money to a gift card that is linked to a retail voucher, the amount is put back on that voucher when the credit memo is posted. This reverses the earlier use of the card. It isn’t a new voucher and it isn’t a top-up.
- A card that was used up and archived is reopened first.
- The amount put back on a card can’t be higher than the amount paid with it on that order.
- The gift card part of the refund is posted to the Return Gift Card Refund G/L Account No.
Shopify store credit
Refunds made as Shopify store credit are booked as a liability on the Return Gift Card Refund G/L Account No. No retail voucher is created for them.
What is covered
Legacy order import
The following situations are handled automatically:
- Closed Shopify returns, with or without restock
- Refunds without a return: amount only, goodwill, and discounts after the sale
- Partial refunds and several refunds on one order
- Shipping refunds
- Restocking and return shipping fees kept from the customer
- Restock to the correct Business Central location, using the location mapping
- Refunds to a card, a Shopify gift card (retail voucher), and Shopify store credit
- Returned gift cards that were sold on the order
- Refunds on orders that aren’t fully invoiced (the row waits until they are)
- Canceled orders that were never invoiced in Business Central
- Applying the credit memo to an unpaid invoice
- Automatic or manual posting, and automatic retries
The following situations need to be handled manually:
E-commerce order experience
When the Shopify Ecommerce Order Experience feature is enabled, the following additional limitations apply:
- Only closed Shopify returns are imported. Refunds without a return aren’t imported.
- Shipping refunds, return fees, and goodwill amounts aren’t credited.
- Gift cards, store credit, and exchanges aren’t handled.
- Return lines are always plain item lines. Tickets, memberships, and vouchers are credited as items, but they aren’t revoked.
- Return entries aren’t processed automatically. A user needs to process them from the Shopify Event Log Entries.
- The Shopify Legacy Return Queue and its actions aren’t available.
