Skip to main content
Shopify

How to assign the Odoo carrier to Shopify orders

The Shopify connector reads the name of the shipping method the customer chose and turns it into an Odoo carrier through a mapping table kept per store. Set that table up once and every order arrives with its carrier and its shipping line; if you do not, Odoo looks for a carrier with the same name and, as a last resort, uses the store's fallback.

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

Key facts

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

Why it matters

In Shopify, the customer picks a shipping method by the name you gave it in your store: «Express shipping», «Store pickup», a courier's name. Odoo has no idea what lies behind that text. If the order comes in without a carrier, someone has to choose one by hand before the shipment can be prepared.

The mapping is stored per store: each Shopify name points to an «Odoo Delivery Carrier». It is not case-sensitive, and the same name cannot appear twice in one store.

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

Step by step

  1. Open your Shopify store (instance) form in Odoo and go to the «Carrier Mappings» tab.
  2. Press «Discover Carriers from Orders & Profiles». Odoo gathers the names on the shipping lines of orders already imported and the methods in Shopify's delivery profiles, and creates a mapping for each name that is missing.
  3. Go through the list it opens. Those whose name matches an Odoo carrier come already linked; the rest show up as Unmapped.
  4. On each Unmapped one, pick the carrier in «Odoo Delivery Carrier». If it does not exist yet, press «Create Odoo Carrier»: it creates the carrier with the «Shipping» service product and confirms with «Carrier Created».
  5. If you would rather have Odoo create it when the first order shows up, tick «Auto-Create Carrier» instead of picking one. The status changes to Auto-Create.
  6. On the store form, fill in «Fallback Carrier». It is the one used when no name matches.

The same list is also under Shopify › Configuration › Mappings › Carriers, with filters for the Mapped, Unmapped and Auto-Create ones and for those that have never been used.

Diagram of the order in which the Shopify connector looks for an order's carrier
The search order, top to bottom: the mapping with a carrier, the one that creates a carrier, an Odoo carrier with the same name and, last of all, the store's fallback. Diagram built from the module's code.

The order it searches in

When it imports an order, the connector takes the name on its first shipping line and tries, in this order:

PriorityWhat it looks forWhat happens if it finds it
1A mapping with an «Odoo Delivery Carrier»Uses that carrier, if it belongs to the store's company or is shared
2A mapping with «Auto-Create Carrier»Finds or creates a carrier with that name
3An Odoo carrier with that exact nameUses it, if it belongs to the store's company or is shared
4The store's «Fallback Carrier»Uses it as a last resort

A carrier from another company is never used, even if the mapping points to it. If you run several companies in the same database, check that each store points to carriers of its own company or to shared ones.

What ends up on the order

The carrier it finds goes on the sales order only if the order does not have one yet: if you had already chosen one, it stays. The shipping amount comes in as one more line, with that carrier's delivery product; if the carrier has no product, Odoo looks for a service product called Delivery.

Each mapping counts how many times it has been used and when it was last used. It is the quick way to see which shipping methods your customers really use and which ones you can delete.

Shopify order form in Odoo with its shipping details
The form of a Shopify order in Odoo: the customer's shipping details, the shipping amount and the linked sales order, where the carrier ends up. Odoo screenshot with demo data.

Common problems

  • You press discover and nothing shows up. You get the message No shipping carrier names found in orders or Shopify delivery profiles.: there are no imported orders with a shipping line yet, and no methods in the store's delivery profiles.
  • A name changes in Shopify. If you rename a method in the store, Odoo sees a new name. Run discover again and link the new one.
  • Orders landing on the fallback carrier. Filter the mappings by Unmapped: that is where you find the names that do not point to any carrier yet.

Does it work in every Odoo version?

Yes. The mappings, the discover button and the fallback carrier are in the connector published for Odoo 17, 18, 19 and 20.

Keep reading

Shopify alone or Shopify with Odoo: what changes in your day-to-dayComparison for Shopify stores without an ERP: orders, stock, shipping, returns, invoices and payouts, before and after running the store inside Odoo.Stock between Shopify and Odoo: who is in charge? A decision guideGuide to deciding how stock syncs between Shopify and Odoo: pushing from Odoo, reading from Shopify, locations, webhooks and the kind of app you use.Selling on several stores without selling the same product twiceWhy a shared stock spreadsheet ends up selling what you no longer have, what Cdiscount, Mirakl and Shopify expect from your stock, and how one inventory fixes it.
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources

Sources

  • Module source code: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: views/menu_views.xml
  • Module source code: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: models/shopify_carrier_mapping.py
  • Module source code: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: models/shopify_instance.py
  • Module source code: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: models/shopify_order.py
  • apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector