Synco
Order Processing

Auto Order Sync

Auto Order Sync automatically synchronizes orders from your Shopify store to Odoo ERP system using webhooks. Orders are synced in real-time based on your configured rules.

How It Works

When a customer places an order in Shopify:

  1. The webhook triggers automatically
  2. Synco checks the order against your configured rules (payment status, fulfillment status, order source, date range)
  3. If the order matches all conditions, it is enqueued as a background job
  4. The order is created in Odoo as a Sale Order, Invoice, or both (based on your settings)
  5. The Odoo order ID is stored in the Shopify order's custom.odoo_id metafield
  6. Order updates are also synced via webhooks
Order Settings Toggle

Enabling Auto Order Sync

To enable automatic order synchronization:

  1. Navigate to the Order Settings tab in the Synco app
  2. Toggle the Auto Order Sync switch to enable
  3. Configure your order rules and preferences (see below)
  4. Save your settings

When enabled, Synco registers the order webhooks. Disabling auto sync deregisters these webhooks.

Order Rules Configuration

Order Rules

Your order sync behavior is controlled by the rules you configure. These determine:

  • Which orders get synced based on payment status
  • Which orders get synced based on fulfillment status
  • Which orders get synced based on order source (including custom sources)
  • How orders are created in Odoo (draft/confirmed sale orders, draft/confirmed invoices, or combinations)
  • Additional Shopify fields to include (note attributes, order tags)
  • Date range for order synchronization
  • Order prefix customization
  • Shopify order number synchronization
  • Refund order synchronization with stock restoration

For detailed information about configuring each rule, see Order Rules.

Key Features

Payment and Fulfillment Status Filtering

  • Select specific payment statuses: All, Paid, Pending, Partially Paid, Authorized, Abandoned, Refunded, Partially Refunded, Voided
  • Select specific fulfillment statuses: All, Unfulfilled, Fulfilled, Partial, In Progress, On Hold, Open, Partially Fulfilled, Pending Fulfillment, Request Declined, Restocked, Scheduled
  • Orders must match ALL selected conditions to sync

Order Source Filtering

  • Filter by order source: Web, POS, iPhone, Android, Mobile App, Draft Order, Subscription Contract, Shopify Collective Automatic Payments
  • Add custom order sources as needed
  • Use "All" to sync from all sources

Order Creation Options

Sale Order Options:

  • Create as Draft Sale Order (only)
  • Create as Confirmed Sale Order (only)

Invoice Options (can be selected independently):

  • Create as Draft Sale Invoice only (no sale order)
  • Create as Confirmed Sale Invoice only (no sale order)

Combined Options:

  • Sale Order + Draft Sale Invoice
  • Sale Order + Confirmed Sale Invoice

You can create invoice only, draft invoice only, or combine a sale order with an invoice. Choose based on your Odoo workflow.

Invoice & Payment Settings

  • Invoice for: All Orders or Paid Orders only
  • Sales Journal: Select the Odoo sales journal for invoices
  • Income Account Mode: Fixed income account or use Odoo product category accounts
  • Income Account: Select the chart account for invoice payments
  • Payment Registration: Register payments in a single journal or map each Shopify payment gateway to a specific Odoo bank/cash journal
  • Payment Gateway Mapping: Map detected Shopify payment gateways (e.g., "shopify_payments", "manual") to specific Odoo journals

Order Currency

  • Shop Default: Use the store's default currency
  • Customer Presentment Currency: Use the currency the customer paid in

Customer Handling

  • Normal Mode: Searches Odoo for an existing customer by email. Creates a new customer if not found.
  • Single Customer Mode: Map all orders (or just guest orders) to a single pre-configured Odoo customer. Useful for anonymous/POS sales.

Additional Options

  • Start Syncing Orders From / To: Set a date range — only orders within this range will sync. Orders outside this range are skipped. Changing dates won't affect already synced orders.
  • Order Prefix: Add a custom prefix to Odoo order numbers (e.g., "WEB-" → "WEB-0001"). Leave blank for default Odoo numbering. Applies to new records only.
  • Shopify Order Number Sync: Use Shopify order numbers as Odoo order numbers for easy cross-referencing
  • Refund Order Sync: Automatically create credit notes in Odoo and restore stock for refunded items
  • Cancel Sale Order: Cancel the linked Odoo Sales Order when a Shopify order is cancelled (when cancelReason or cancelledAt is set)
  • Sync Payment Method to Odoo: Sync the Shopify payment gateway as an Odoo Payment Journal. If no matching journal exists, one is created automatically with the format "Card (Gateway)"
  • Include Shopify Fields: Sync Note Attributes and/or Order Tags to Odoo sales orders

Discount Handling

Discounts from Shopify's discountAllocations (both line-level and order-level) are calculated and written to Odoo's "Disc.%" field on each order line. The formula used is: (sum of allocations / originalTotal) * 100.

Tax Handling

Tax handling is Odoo-version-aware, using tax_id for older versions and tax_ids for newer versions. Tax line items from Shopify are mapped to the order.

Order Sync Table

The Order Sync tab shows all Shopify orders with their sync status:

ColumnDescription
Order IDClickable — opens the order in Shopify admin
Odoo IDLinked Odoo record ID (clickable — opens in Odoo). Shows Sale Order ID or Invoice ID
DateOrder creation date
Customer EmailCustomer's email address
Total AmountOrder total
Sync StatusBadge showing current state with sync/retry actions

Sync Status States

  • Synced: Successfully synced (shows Odoo ID)
  • Not Synced: Not yet synced (shows Sync button)
  • In Progress: Currently processing
  • Delayed: Scheduled for retry (shows "Retrying in X min")
  • Failed: Encountered an error (tooltip shows failure reason)

Filters and Views

  • Tabs: All, Synced, Not Synced, Eligible, Sale Order, Invoice
  • Filters: Sync status, ID Type (Odoo ID / Invoice ID), search by email
  • Search: Search across order name, customer email, and Odoo order ID
  • Sorting: By Order, Customer, Date, or Total (ascending/descending)
  • Custom Views: Create, rename, duplicate, and delete custom filter views

Eligibility Indicators

Orders are validated against your configured sync rules. Ineligible orders show a warning icon with a tooltip explaining why (e.g., "'PENDING' payment status doesn't match sync rules" or "Order outside sync date range").

Bulk Actions

  • Select multiple orders using checkboxes
  • Use "Sync Selected (N)" to sync all selected orders at once
  • "Sync Orders" button at the top syncs all eligible orders (with confirmation dialog)

Auto-polling

When jobs are active (waiting/active/delayed), the page automatically polls every 5 seconds to refresh order statuses in real-time.

Pagination

  • 50 orders per page
  • Cursor-based navigation with Previous/Next buttons

Support

If you need help with auto order sync: