Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Connector
  3. Shopify Marketplace Connector v 18.0
  4. Sales Conditions FAQ

Shopify Marketplace Connector

by Terrabit https://www.terrabit.ro , Dorin Hongu https://www.terrabit.ro
Odoo

$ 962.07

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • License
Odoo Partner  •  Terrabit

Shopify Marketplace Connector

Shopify interface

Odoo 18.0 Online • Odoo.sh • On-premise Optional support

The Deltatech Shopify Marketplace Connector is a comprehensive Odoo extension developed by Terrabit that creates a seamless integration between Odoo’s ERP system and Shopify. This connector enables businesses to synchronize and manage their Shopify online stores directly from Odoo, providing a unified solution for managing products, customers, and orders.

Key Features

  • Product Synchronization
    • Export product templates and variants from Odoo to Shopify (create and update)
    • Import product templates, variants, and images from Shopify
    • Synchronize product prices and basic information (barcode, weight, SKU) in both directions
    • Export and import product variant price, SKU, barcode and weight individually
    • Support for multiple product images per product template
    • Associate product images with specific product variants
    • Real-time product updates via Shopify webhooks (products/update)
  • Product Attributes
    • Import product attributes (characteristics) and their values from Shopify
    • Map Shopify options/variants to Odoo product attributes
  • Customer Integration
    • Import Shopify customers into Odoo’s contact database
    • Maintain consistent customer records across platforms
    • Automated detection of companies based on Shopify note attributes or company field
    • Real-time customer updates via Shopify webhooks
  • Order Management
    • Import sales orders from Shopify into Odoo
    • Automated creation of Odoo sales orders for Shopify purchases
    • Order status updates synchronized from Odoo to Shopify via tags (Sale Phases)
    • Import and map Shopify sale stages (order tags) to Odoo phases
    • Synchronize order cancellation from Odoo to Shopify
    • Support for Shopify webhooks (orders/updated) to automatically update orders in Odoo
  • Payment and Delivery
    • Import and map Shopify payment methods (payment acquirers) to Odoo
    • Integration with Shopify payment transactions and creation of payments in Odoo
    • Automatic mapping of delivery carriers and creation of delivery lines on orders
    • Support for pickup points (lockers) information from Shopify notes
  • Stock Export
    • Export stock quantities from Odoo to Shopify via InventoryLevel API
    • A Shopify Location maps 1-to-1 to an Odoo Warehouse (marketplace.warehouse binding, odoo_id = stock.warehouse) — there is no finer-grained mapping to a specific stock.location inside a warehouse
    • Triggered automatically by the existing marketplace stock export cron
    • Requires inventory_item_id stored on each variant binding (populated at import)
  • Order Warehouse Routing
    • sale.order.warehouse_id is set from the Shopify order’s location_id, using an already-mapped marketplace.warehouse binding
    • Unmapped locations are left on the default warehouse — order import never creates a new warehouse binding on its own (mapping is only done through the warehouse sync)
  • Price Export
    • Export product prices per variant from Odoo pricelist to Shopify
    • Sets compare_at_price automatically when a pricelist discount exists (Shopify shows crossed-out original price)
    • Triggered automatically by the existing marketplace price export cron (only for variants with price differences)
  • AWB / Fulfillment Export
    • Sends tracking numbers (AWB) to Shopify when send_to_shipper() is called in Odoo
    • Uses the modern Shopify FulfillmentV2 API with line_items_by_fulfillment_order
    • Automatically finds open FulfillmentOrders and marks the order as fulfilled in Shopify
    • Includes carrier name and tracking URL when available
    • Runs asynchronously via queue_job with automatic retry on failure
  • Automated Operations
    • Scheduled synchronization jobs via queue_job
    • Real-time updates for orders, products and customers via webhooks
    • Automatic OAuth token refresh for Shopify Dev Dashboard Apps (tokens expire every 24h)

Authentication

The module supports two authentication modes:

Legacy Private Apps (permanent token)

Set Access Token manually in the backend configuration. Leave Token Expires At empty. The token is used as-is and never auto-refreshed.

Dev Dashboard Apps (OAuth ``client_credentials``, tokens expire in 24h)

Starting early 2025, Shopify Dev Dashboard Apps issue short-lived tokens via the OAuth client_credentials grant. Configure Client Id and Client Secret in the backend.

On first login (or when the token is missing), the module automatically requests a new token by posting to /admin/oauth/access_token with grant_type=client_credentials. The expiry time (Token Expires At) is saved on the backend record.

Subsequent API calls check the expiry: if the token expires within 30 minutes, it is silently refreshed before the call proceeds.

A scheduled action (“Shopify: Refresh Access Tokens”) runs every 23 hours to proactively renew tokens for all active backends that already have a Token Expires At date set (i.e. Dev Dashboard App backends). Backends with a permanent token (no expiry date) are never touched by the cron.

Technical Implementation

The module leverages the ShopifyAPI Python library to communicate with Shopify’s REST API and implements a sophisticated binding system based on the Deltatech marketplace framework:

  • Backend Adapter: Manages API communication and authentication with Shopify
  • Binding Models: Connect Odoo entities with their Shopify counterparts:
    • Product template and variant bindings
    • Customer and address bindings
    • Sales order and order line bindings
    • Delivery carrier and payment acquirer bindings
    • Sale phase (tags) bindings
    • Warehouse/location bindings (marketplace.warehouse ↔ Shopify locations)

Integration Requirements

The module requires:

  • External Python dependency: ShopifyAPI library
  • Core Deltatech marketplace modules:
    • deltatech_marketplace (base functionality)
    • deltatech_marketplace_sale (sales integration)
    • deltatech_marketplace_payment (payment integration)
    • deltatech_marketplace_delivery (delivery integration)

Benefits

  • Operational Efficiency
    Manage online stores without switching between platforms
  • Data Consistency
    Single source of truth for product and customer information
  • Time Savings
    Eliminate manual data entry and reduce administrative overhead
  • Error Reduction
    Automated synchronization prevents discrepancies
  • Improved Customer Experience
    Faster order processing and automated tracking updates

Features:

  • ✓import products (templates and variants) from Shopify
  • ✓export product templates and variants to Shopify (create and update)
  • ✓import product images (multiple images, with variant association) from Shopify
  • ✓import product prices (list_price) from Shopify; export price per variant
  • ✓import product metadata (barcode, weight, SKU) from Shopify; export per variant
  • ✓import product attributes (characteristics) and values from Shopify
  • ✓import sale orders from Shopify
  • ✓import customers from Shopify
  • ✓import sale stages (order tags / phases) from Shopify
  • ✓import payment acquirers (payment methods) from Shopify
  • ✓synchronize order status (tags) to Shopify via Sale Phases
  • ✓cancel Shopify orders when cancelled in Odoo
  • ✓export stock quantities to Shopify via InventoryLevel API (multi-location support)
  • ✓export product prices to Shopify from pricelist, with compare_at_price for discounted items
  • ✓export new products (templates + variants) from Odoo to Shopify with images and initial stock
  • ✓update existing Shopify products from Odoo (full or partial update on change)
  • ✓send AWB tracking numbers to Shopify via FulfillmentV2 API when shipment is dispatched
  • ✓import Shopify warehouse locations as marketplace.warehouse bindings
  • ✓support for Shopify webhooks (orders/updated, products/update, customers/update)
  • ✓automatic OAuth token refresh for Dev Dashboard Apps (client_credentials grant)

Configuration

Getting Shopify credentials

The connector supports two authentication modes; which one to use depends on how the Shopify app is created.

Since January 1, 2026, merchants can no longer create new “legacy custom apps” in the Shopify admin (existing legacy apps keep working, but no new ones can be created that way — confirmed in the Shopify admin under Settings > Apps > Develop apps > Legacy custom apps). For any new store connection, use the Dev Dashboard App (OAuth) mode below.

Mode A — Legacy custom app (existing apps only, permanent token)

Only usable for apps already created before January 1, 2026 (or created by a Partner account before the store was transferred to the merchant).

  1. In the Shopify admin: Settings > Apps > click Develop apps (top right) > App development.
  2. Under Legacy custom apps, open the existing app.
  3. The app page has four tabs: Overview / Configuration / API credentials / App settings.
  4. Configuration > Admin API integration lists the granted scopes. Minimum scopes needed by this module, depending on what is synced:
    • read_products, write_products
    • read_orders, write_orders
    • read_customers, write_customers
    • read_inventory, write_inventory
    • read_fulfillments, write_fulfillments
  5. API credentials shows the Admin API access token — Shopify displays it only once (“You can’t view this again because it provides authenticated Admin API access.”) — copy it immediately.
  6. Use this token as Access Token on the Odoo backend. It does not expire, but stays valid only while the app remains installed on the store.

Mode B — Dev Dashboard App (OAuth ``client_credentials``, token expires in 24h)

Recommended / required for new integrations.

  1. From the App development page (see step A.1), click Build apps in Dev Dashboard to open the Shopify Dev Dashboard (https://shopify.dev/) — may require a separate Shopify Partners login.
  2. Create a new app linked to the store ({store-name}.myshopify.com).
  3. Configure the same API scopes as in Mode A.
  4. From the app page, note the Client ID (API key) and Client Secret.
  5. Enter these two values on the Odoo backend; Odoo requests and refreshes the access token automatically (see below) — no token is entered manually.

Configuring the backend in Odoo

  1. Go to Marketplace > Backends (requires the Marketplace Manager group).
  2. Click New and set:
    • Provider: Shopify
    • Location: https://{store-name}.myshopify.com
    • Company: the Odoo company for this integration
  3. For Mode A: set Access Token to the value from step A.5/A.6; leave Token Expires At empty.
  4. For Mode B: set Access Type to Client_id and client_secret, then fill Client Id and Client Secret; leave Access Token / Token Expires At empty — they are populated automatically on the first call.
  5. Save, then click Test connection (calls Shop.current()). For Mode B, this first call also triggers the initial OAuth token request.
  6. Click Import basic data — for Shopify this also registers the expected webhooks (orders/create, orders/updated, orders/paid, orders/cancelled) on the Odoo endpoint, if not already active.
  7. Click Check webhooks to open a wizard comparing active Shopify webhooks against what Odoo expects (missing = needs to be created, orphan = no longer used by Odoo).

Warehouse / location mapping

A Shopify Location corresponds to an Odoo Warehouse (stock.warehouse), not to an arbitrary stock location — the binding model marketplace.warehouse links one Shopify Location to one whole Odoo warehouse via its odoo_id field. There is currently no way to map a Shopify Location to a specific sub-location inside a warehouse.

  1. Create the corresponding warehouses in Odoo first (Inventory > Configuration > Warehouses) if they do not exist yet.
  2. Import the Shopify locations as marketplace.warehouse records (backend item Warehouses, “Import”). The match against an existing Odoo warehouse is done by name or code (see save_from_marketplace): the Shopify Location’s name must equal the Odoo warehouse’s code or name exactly. Import warehouses only after step 1 — if no Odoo warehouse matches, save_from_marketplace does not fail or skip the record; it silently creates a brand new (empty) stock.warehouse named after the Shopify Location, which then needs to be found and cleaned up manually.
  3. Both stock export (InventoryLevel) and order warehouse routing (sale.order.warehouse_id) rely on this same binding — a location left unmapped is simply skipped by stock export and left on the default warehouse on order import (neither path creates a warehouse or a binding automatically).

Automatic token refresh (Mode B only)

  • A scheduled action, “Shopify: Refresh Access Tokens”, runs every 23 hours and only targets backends that have both Client Id and Client Secret set. Backends with a static Mode A token are never touched by this cron.
  • In addition, every API call checks the current token and refreshes it if it expires within 30 minutes, so refresh does not strictly depend on the cron.

If the store uninstalls/reinstalls the Mode A app, the old token is invalidated and must be regenerated in Shopify and updated manually in Odoo.

Bug Tracker

Bugs are tracked on Terrabit Issues. In case of trouble, please check there if your issue has already been reported.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Terrabit
  • Dorin Hongu

Maintainers

Current maintainer:

dhongu

This module is part of the terrabit-ro/bitshop project on GitHub.

You are welcome to contribute.

Need help getting started?

We are an Odoo partner building apps for the Romanian market (SAGA & WinMentor export; Romanian accounting localization in progress). Direct support from the team that built the module.

Contact Terrabit →
TERRABIT
© Terrabit Solutions SRL  •  terrabit.ro  •  Odoo apps for Romania, Ireland & Moldova
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Invoicing (account)
• Contacts (contacts)
• Discuss (mail)
• Purchase (purchase)
• eCommerce (website_sale)
• Website (website)
Community Apps Dependencies Show
• Marketplace Base Connector
• Marketplace Delivery addon
• Marketplace Payment Acquirer addon
• Marketplace Sales Order Stage addon
• Marketplace Sales Order addon
• Marketplace website addon
• Job Queue
• Delivery in locker - Base
• Deltatech Delivery Base
• Deltatech Delivery Status
• Deltatech Sale Order Stage
• Many2one Badge Widget
• eCommerce Sale Short Description
Lines of code 16166
Technical Name deltatech_marketplace_shopify
LicenseOPL-1
Websitehttps://www.terrabit.ro
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with