Inventory Settings

Estimated reading: 4 minutes

Comprehensive control over stock synchronization, including direction, frequency, quantity type, location mapping, and filtering.

Inventory Sync Direction

  • Odoo → Shopify (default) — Odoo is the source of truth.
  • Shopify → Odoo — Shopify is the source of truth.

Only one direction is active at a time; changing it shows a confirmation.

Enable Stock Sync

Master toggle that turns on inventory synchronization and reveals the options below. (If you don’t see an update, run a manual sync to refresh the cache.)

Sync Frequency

Choose how often automatic sync runs:

  • Every 5 Minutes (available for select stores)
  • Every 15 Minutes (new)
  • Every 30 Minutes
  • Hourly (default, recommended for most stores)
  • Every 6 Hours
  • Every 12 Hours
  • Once a Day
  • Once a Week

Real-time Sync (Webhook) (new)

Enable Real-time sync using webhooks for instant updates instead of a fixed schedule (the frequency selector is hidden when real-time is on):

  • Odoo → Shopify real-time requires the base_automation module (Automation Rules) in Odoo and a short setup with support.
  • Shopify → Odoo real-time uses Shopify webhooks and always syncs Quantity Available (webhooks only send available quantity).

Quantity Type to Sync

  • Quantity Available (recommended) — sellable quantity after reservations. Mapped to Shopify’s Available field.
  • Quantity On Hand — total physical stock. Mapped to Shopify’s On hand field.
  • Quantity Forecasted (new, Odoo → Shopify) — Odoo’s forecasted quantity (on hand plus incoming purchase orders, minus outgoing). Mapped to Shopify’s Available field. Useful when you sell against inbound stock.

Real-time Shopify → Odoo always uses Quantity Available.

Shopify Target Type (new)

(Odoo → Shopify.) Choose which Shopify inventory field the synced Odoo quantity is written to:

  • Default — keep the standard mapping above (including the Combine option below when enabled).
  • On Hand — write the selected Odoo quantity to Shopify’s On hand field.
  • Available — write the selected Odoo quantity to Shopify’s Available field.

This lets you, for example, sync Odoo’s available quantity into Shopify’s On-hand field (or vice versa) when your workflows require it.

Sync Odoo Incoming Qty To Shopify Incoming Qty (new)

(Odoo → Shopify.) When checked, Odoo’s Incoming quantity (inbound transfers/purchase orders) is mapped to Shopify’s Incoming quantity at each mapped location. This does not change how Available, On Hand, or Forecasted quantities are calculated — it only adds visibility of inbound stock in Shopify.

Zero Stock Handling

  • Do not sync zero stock (checkbox) — skip products with 0 stock to reduce API calls and hide out-of-stock items.
  • Default (unchecked) — sync all products, including zero stock, for full visibility.

Combine Odoo available + Shopify committed (new)

(Odoo → Shopify, Quantity Available only.) When enabled, Shopify On-Hand = Odoo available + Shopify committed. This keeps products in stock during fast sales by accounting for units temporarily reserved during checkout, preventing premature out-of-stock status.

Skip Location Mapping (new)

(Odoo → Shopify only.) When enabled, inventory uses your default Shopify location only and the total stock count is used — location mapping is skipped. Note: skipping mapping may affect Shopify → Odoo fulfillment.

Inventory Filtering by Category / Collection

  • Odoo → Shopify: Sync Inventory by Category — choose Odoo categories (none = all).
  • Shopify → Odoo: Sync Inventory by Collection — choose Shopify collections (none = all).

The two filters are mutually exclusive per direction. Use Refresh to update lists. When a filter is enabled you must select at least one category/collection.

Location / Warehouse Mapping

Map Shopify locations to Odoo warehouse locations so stock reaches the right place. Mapping is automatically enabled when stock sync is active, and the mapping layout follows the sync direction:

Odoo → Shopify:

  1. Click (+) Add to create a mapping row.
  2. Select a Shopify location.
  3. Select one or more Odoo locations/warehouses (multi-select).
  4. Repeat for each location, then Save.

Rules:

  • One Shopify location can map to multiple Odoo warehouses.
  • If a parent Odoo location is selected and it has sub-locations, their quantities are summed.
  • Map all locations for complete coverage. Use Refresh after adding new locations in either system.

Shopify → Odoo (new):

  • Select one or more Shopify locations per row and map them to a single Odoo warehouse.
  • Quantities from all the Shopify locations in a row are combined when syncing to Odoo.

Manual Action

  • Process Inventory Sync — trigger an immediate inventory sync. The confirmation offers the All / Date range scope choice (new) so you can limit the run to products updated in a chosen window, and a live progress bar with Stop tracks the run.