Skip to navigation

Shopify returns and refunds

Learn how returns and refunds made in Shopify are imported into Business Central, which import method your company uses, and what is covered.

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

  1. 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.
  2. A job queue entry in Business Central regularly checks Shopify for closed returns and for refunds without a return.
  3. Each return or refund is placed in a queue in Business Central.
  4. Business Central creates a Sales Return Order from it, with the returned items, shipping refund, fees, and so on.
  5. 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.
  6. 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.

Import methodWhen it’s usedHow returns and refunds are imported
Legacy order importThe Shopify Ecommerce Order Experience feature is disabled. This is the standard setup used by most companies.Through the Shopify Legacy Return Queue. Supports returns, refunds without a return, shipping refunds, fees, gift cards, and store credit.
E-commerce order experienceThe Shopify Ecommerce Order Experience feature is enabled in NaviPartner Feature Management.Returns are imported as e-commerce documents and processed from the Shopify Event Log Entries. Only closed Shopify returns 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:

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.

Situation in ShopifyWhat Business Central does
The customer returns items, and the items go back to stock.Creates item lines for the returned quantity and the refunded amount. The items are received at the Business Central location mapped to the Shopify location where they were restocked.
The customer gets money back but keeps the goods (refund without restock).Creates an item charge line (Refund Item Charge No.) linked to the original shipment. The sale is reduced and nothing goes back to stock.
An amount is refunded without any items (goodwill).Creates a G/L line Refunded beyond the lines on the Refund Discrepancy G/L Account No.
A discount is given after the sale.Creates a G/L line Discount after the sale on the Refund Discrepancy G/L Account No., with the VAT of the original sales line.
Shipping is refunded.Creates a G/L line Shipping refund on the Return Shipping Refund G/L Account No.
A restocking fee or return shipping fee is kept.Creates a negative G/L line Return fee withheld on the Return Fee G/L Account No.
There are several partial refunds on one order.Each refund is a separate row in the queue and a separate return order.
The order isn’t fully shipped and invoiced in Business Central yet.The row waits until the order is invoiced in Business Central. Units that were never invoiced aren’t credited.
The order was canceled before anything was invoiced in Business Central.The row gets the Nothing to Credit status. No document is created.
The original invoice is still unpaid in Business Central.The credit memo is applied to the open invoice instead of being paid out.
A gift card sold on the order is returned.Creates a G/L line on the account used in the original sale. The unused gift card is archived when the credit memo is posted.
The product was sold as a generic item.The line is booked on the return generic item.

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:

SituationWhat happens in Business Central
Exchanges (a return with an exchange item)Error: “Shopify return … contains an exchange line. Exchanges are not imported; handle this return manually.”
Returns that aren’t closed in Shopify yetNot imported until they’re closed.
Returns and refunds made before the start dates set on the Shopify Store cardNot imported.
Refunding the customer from Business CentralNot possible. Refunds are always made in Shopify.
Very large returns (more than 100 lines, or more than 50 refunds or transactions on one order)An error message states that the return must be handled manually. Orders with 50 or more refunds also get a warning that later refunds may be missing.
Lines added manually in Shopify without an order line behind them, or lines with zero quantityError.
A return that refunds fewer units than were returned, or refunds a line that wasn’t returnedError.
Orders invoiced outside the sales order (for example, from posted shipments), or with more than one unpaid invoiceError.
Refunds to several gift cards that can’t be told apart, or to an unknown gift cardError, or only the G/L amount is posted and no voucher is updated.
A used, reserved, or deactivated gift cardError.
Return orders invoiced in partsNot allowed. A Shopify return or refund must be invoiced in one go.
Return reasonsNot transferred. There is no return reason mapping.
Tickets, memberships, and other virtual itemsNot reversed automatically.

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.