Setting up Shopify Connector Pro
Installing Shopify Connector Pro and connecting it, step by step.
Allow about 30 minutes for a first shop. The shop form's Setup tab shows each step as done or not done, computed from what is really in the database.
1. Install
- Put tv_shopify_connector and tv_shopify_stock in your addons path. Both are in the package you bought; the inventory bridge is free and installs itself when Inventory is installed.
- Generate an encryption key and add it to the Odoo configuration file, then restart Odoo:
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" [options]
tv_shopify_secret_key = <the key>Shopify credentials are encrypted with this key and it never enters the database. Keep a copy with your server backups: without it, stored credentials cannot be read and the shop has to be reconnected. To rotate it, move the current key to tv_shopify_secret_key_old, set the new one, restart, and reconnect or re-save each shop's secret.
- Apps > install Shopify Connector Pro.
- Give people a role under Settings > Users: Viewer, Operator, Accounting operator or Administrator (each includes the one before). Credentials need Administrator; refunds and payouts need Accounting.
2. Create the app in Shopify
In your Shopify Partner or Dev Dashboard, create an app for your store:
- App URL / redirect URL: https://<your Odoo>/tv_shopify/oauth/callback
- API version: 2026-07.
- Copy the app's client ID and client secret.
The connector asks Shopify for these scopes, and only for the ones the features you turned on use:
| Scope | Why | When |
|---|---|---|
| read_orders, write_orders | import orders; cancel and refund from Odoo | always |
| read_products, read_customers | link variants and customers | always |
| read_locations, read_inventory, write_inventory | stock export | inventory bridge installed |
| read/write_merchant_managed_fulfillment_orders | send deliveries as fulfillments | inventory bridge installed |
| read_shopify_payments_payouts | payouts | Payouts turned on |
| write_customers, write_draft_orders | customer and order export | Export turned on |
| write_products | product export | Product export turned on |
| read_markets | markets | Use Shopify Markets turned on |
| read_locales, read_translations, write_translations | translations | Translations turned on |
Turning a feature on later means reconnecting the shop once, so Shopify can grant the new scope. Until then, only that feature's jobs wait, with the scope named; orders and stock keep flowing.
3. Connect
Shopify > Shops > New: the shop's .myshopify.com address, the client ID, the secret (write-only, encrypted as it is saved), then Connect. You approve the scopes in Shopify and come back connected.
A store in your own Shopify organization can use client credentials instead of OAuth.
4. Map what orders need
- Orders tab: the shipping product and the discount product (both services). Optionally a product for custom items and a customer for guest orders.
- Configuration > Tax mapping: each Shopify tax title and rate to an Odoo tax. An order with an unmapped tax waits and names the tax, rather than being imported with the wrong one.
- Inventory tab (bridge): List locations, then map each Shopify location to an Odoo stock location and set its authority to Odoo sends its stock. With several shops on one Odoo location, give each shop its share.
5. Products, then webhooks
- Moving from another connector or from manual entry? Link existing orders first (Setup tab): Shopify orders already in Odoo are linked, not imported again.
- Import products: variants are linked by SKU; two Odoo products with one SKU become a conflict for you to decide.
- Webhooks tab: set the public https address of your Odoo if web.base.url is not it, then Register webhooks in Shopify. Pressing it again is safe.
- Place a test order in Shopify and watch it arrive under Shopify > Operations > Jobs.
Optional features
Each is off until you turn it on, on the shop form: payouts, export of customers / orders / products, metafield mappings, translations, markets, segments, gateway workflows. See the user guide.