Skip to main content
Shopify

What Shopify Connector adds to the Odoo sales order

Shopify Connector extends the sales order of the Sales app with a Shopify group (reference, instance, tags and note), a Refunds counter and an Estado de Envío column worked out from delivered quantities and delivery orders; here is when each one shows and how each status is decided.

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 20.0 · against the sources linked at the end
Reading time
4 min

What the module adds to the sales order, field by field

Shopify Connector extends the standard sales order of the Sales app. It does not create a separate screen: it adds fields to the order you already use. In Odoo 20.0, the module adds these fields:

Code-drawn diagram: the standard Sales app at the top and, below it, the fields the module adds
Diagram generated from the module's published code, not an Odoo screenshot. The labels are in English, as in the code.
FieldWhere it showsVisibilityDetail
Shopify Order RefOrder form, Shopify groupHidden when it is emptyRead-only
Shopify InstanceOrder form, Shopify groupHidden when Shopify Order Ref is emptyRead-only
Shopify TagsOrder form, Shopify groupHidden when Shopify Order Ref is emptyIts help reads: «Tags from Shopify order.»
Shopify NoteOrder form, Shopify groupHidden when Shopify Order Ref is emptyIts help reads: «Customer note from Shopify order.»
RefundsOrder formHidden when it is zeroWhole number
Estado de EnvíoSales order listShown in the listSelection with the values shown below

Refunds is the English text. With Odoo in other languages the same text reads Refunds in Spanish, Erstattungen in German, Remboursements in French, Rimborsi in Italian and Refunds in Portuguese, as the diagram below shows.

Code-drawn diagram: the text Refunds as the user sees it in Spanish, German, French, Italian and Portuguese
Diagram generated from the module's published translation files, not an Odoo screenshot.

The module also links the order internally to its Shopify order record: it looks for the record whose identifier matches Shopify Order Ref and whose instance is the one in Shopify Instance, and keeps the first match. If either value is missing, nothing is linked.

Your Odoo doesn't talk to Amazon, Temu or Shopify?
Video: Your Odoo doesn't talk to Amazon, Temu or Shopify?

Ordinary order versus order with a Shopify reference

With default values Shopify Order Ref is empty, which is why the Shopify group does not show on an ordinary order. It appears as soon as that field has a value. If the group is not there, the order has no Shopify reference.

ElementOrder without a Shopify referenceOrder with a Shopify reference
Shopify groupNot shownShown, with reference, instance, tags and note
RefundsHidden while it is zeroHidden while it is zero: its condition does not look at the reference
Estado de EnvíoIn the listIn the list: the calculation does not check for a reference

The third row deserves a careful read: the delivery status calculation goes through orders without asking for the Shopify reference, so it is not a column reserved for orders that come from the shop.

How the module decides the Estado de Envío

First the module looks at the order state. Then it gathers the lines that count towards shipping: those that are not sections or notes, have a product, whose product is one of the types the code treats as shippable, and whose ordered quantity is above zero. It adds up the ordered and delivered quantities of those lines and compares them.

Order situationEstado de Envío
The order is cancelledCancelled
There are shippable lines and the delivered quantity is zero or lessNo Validado
There are shippable lines and delivered reaches or exceeds orderedEnviado
There are shippable lines and delivered is above zero but below orderedParcialmente Enviado

If there is no shippable line at all, the module switches method and goes through the order's delivery orders:

Delivery orders of the orderEstado de Envío
None, once cancelled ones are discardedNo Validado
All of those that count are doneEnviado
Only some are doneParcialmente Enviado
None is doneListo para Enviar

One detail of the delivery order pass: if the delivery order model distinguishes the operation type and the order has outgoing delivery orders, only those count.

What to take from that logic

  • Listo para Enviar only comes out of the delivery order pass, that is, when the order has no shippable lines.
  • A cancelled order stays at Cancelled even if it has delivered quantities: that is the first thing checked.
  • In the first method, No Validado means a delivered quantity of zero or less; the code does not look at delivery orders there.

The Shopify reference is not rewritten

The module also watches writes to Shopify Order Ref. If the order already has a reference and someone tries to save a different one (an empty one included), the action stops and nothing it was going to change is saved. The rule does not apply when the write is made in Odoo's superuser mode, and writing the same value that is already there does not trigger it. The code comment explains it by the way the connector works: it finds the order by that reference.

On the form, moreover, Shopify Order Ref is read-only.

Cost and how FlexigoTech helps

The module costs €9 per Odoo version, one-off and excluding VAT, for 17, 18, 19 and 20 (you can check it on the Odoo Apps listing). Its manifest says it needs the FlexigoTech Cloud subscription: the Connector plan costs €49/month or €490/year excluding VAT.

FlexigoTech implements Odoo 17, 18, 19 and 20 and builds custom connectors and integrations. If your sales order needs fields of its own or a different flow with your shop, that can be scoped as separate development.

Keep reading

What the Shopify Connector Pull Stock button does, step by stepWhat the Pull Stock button in Shopify Connector does in Odoo: when it shows, what it checks, what inventory adjustments it makes and which errors it gives.
Checked in the connector's source code (version 20.0) and the linked sources

Sources