Skip to main content
Shopify

Glossary of the «Shopify Create Credit Notes» action in Shopify Connector for Odoo

Shopify Create Credit Notes runs every three hours and is switched off when you install the module. On each pass it takes draft refunds from instances with finance and automatic credit notes enabled, and creates and posts the credit note only if the refund is full and the order has a posted invoice.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 5 November 2026

Key facts

Module
Shopify
Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 17.0 and 20.0 · against the sources linked at the end
Reading time
4 min

The scheduled action Shopify Create Credit Notes exists in the 17.0, 18.0, 19.0 and 20.0 branches of the module.

Diagram built from code: the scheduled action Shopify Create Credit Notes, which runs every three hours and is switched off on installation, and the menu Shopify › Operations › Refunds & Returns
Diagram generated from the module's published code, not an Odoo screen.

When it runs

Shopify Create Credit Notes
Scheduled action on Shopify refunds. In the Odoo 20.0 code, each run calls the module method that creates the automatic credit notes.
Frequency and activation
It runs every three hours and is switched off on installation, so until it is activated it makes no pass at all. In Odoo 17.0 it is set up to repeat without end.
Pass
Each run of the action. It handles at most 100 refunds, one by one, and saves the changes after each refund: according to the code, so that one failure does not lose the whole batch.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

Which refunds it picks

Instance with finance and automatic creation
The action only looks at Shopify instances that have both finance and automatic credit note creation enabled. If none meets both conditions, the pass ends without touching anything.
Draft refund with a sales order
From those instances it takes refunds in draft state that have a sales order linked. The rest are left alone.
Posted invoice
From the sales order, the action takes the first customer invoice that is posted. If the order has none, it skips that refund and moves on to the next.
Full and partial refund
A refund is full when the refunded amount matches the invoice total (with a difference of less than 0.01). The action only creates a credit note for full refunds: a partial refund is skipped entirely, because according to the code partial refunds need a credit note adjusted by hand.

What it does with each refund

Credit note
It is created by reversing the order's posted invoice. It carries the reference Shopify Refund … followed by the refund's name, and a note with Shopify refund … and the refund's Shopify identifier. Its invoice date is the refund date if there is one; otherwise, today's date.
Posting
On the action's path, the credit note of a full refund is posted in the same pass in which it is created.
Refund with credit note created
When it finishes correctly, the refund moves to the credit-note-created state, is linked to the note and has its error message cleared.
Failed refund
If Odoo cannot reverse the invoice, the refund moves to the failed state and stores the error text, truncated. The pass carries on with the rest. Since the action only searches for draft refunds, a failed one does not come back in later passes.
Unexpected error
If another error interrupts the handling of a refund, the action rolls back that refund's pending changes, leaves a warning in the server log with its name and moves on to the next. That refund keeps its previous state.

Where to see them

Refunds menu
The refund records open from Shopify › Operations › Refunds & Returns. If you cannot see the Operations step or the Shopify step, you are missing a permission: each one asks for Viewer.
Shopify Refunds and Name
The refund screens are called Shopify Refunds. The Name field appears in the list, read-only, and on the form, inside the Shopify group; the code writes it, not the user. It is the name that goes into the credit note's reference.
Diagram with the text Shopify Refunds as it reads depending on the language of the user's Odoo: Spanish, German, French, Italian and Portuguese
Diagram generated from the module's published translations, not an Odoo screen: the text Shopify Refunds as it reads with Odoo in Spanish, in German («Shopify-Erstattungen»), in French («Remboursements Shopify»), in Italian («Rimborsi Shopify») and in Portuguese («Reembolsos Shopify»).

What to check if the action does nothing

Go through the conditions in the code, from the outside in:

  • The action is still switched off, which is how it arrives on installation.
  • No Shopify instance has both finance and automatic credit note creation enabled.
  • The refund is not in draft or has no sales order linked. To find it, open Refunds & Returns and look for its Name in the list. For creating the sales order from Shopify data, see the article on the message about missing Shopify data when creating the sales order.
  • The sales order has no posted customer invoice.
  • The refund is partial: the action does not touch it.
  • There are more pending refunds than fit in one pass: the action handles up to 100 and the rest, if still in draft, wait for later passes.
  • The refund already moved to failed in an earlier pass.

Since the action runs every three hours, after fixing a condition the result arrives in a later pass.

How it fits with FlexigoTech

The module is published on Odoo Apps for 17.0, 18.0, 19.0 and 20.0, is a one-off payment per version and needs the FlexigoTech Cloud subscription (Connector plan). The connection goes through FlexigoTech Cloud, which stores the credentials encrypted, monitors the synchronisation and emails you if it fails. You can see the Odoo Apps listing or the module page. FlexigoTech implements Odoo 17, 18, 19 and 20 and builds custom connectors and integrations, in case you need to adapt the credit note flow to your own case.

Keep reading

What the Pull Stock button does in the Shopify connector for OdooWhat the Pull Stock button does in the Shopify connector for Odoo: when it shows, what it checks, what changes in your stock and which error it can raise.The 'is now the primary location' notice in the Shopify connector for OdooWhat the 'is now the primary location' notice in the Shopify connector for Odoo means, when it appears and how to change the primary location.Shopify Connector error: no payload to create the sales orderWhat the Shopify Connector for Odoo message means when you press Create Sale Order on an order with no stored data, when it appears and how to fix it.
Checked in the connector's source code (version 17.0 and 20.0) and the linked sources

Sources