OdooWiki OCA HUB

Shopify Connector POS

shopify_connector_pos folder_open OCA/connector-shopify open_in_new
Sales/Sales License: AGPL-3

Shopify Connector POS imports Shopify point-of-sale orders through the core order engine while retaining the retail location, immediate handover, cash-rounding, refund, and exchange context.

The module routes each Shopify retail location to an Odoo warehouse without depending on Odoo's point_of_sale application.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Import Shopify point-of-sale (POS) orders into Odoo as sale orders, routed to the right warehouse, with optional automatic confirmation, delivery validation, and cash-rounding lines.

This module extends the Shopify connector so that retail/POS sales coming from Shopify can be imported into Odoo without using the Odoo Point of Sale app. On each Shopify instance you get a new "POS" tab where you can switch on "Import Shopify POS Orders", choose whether POS orders are confirmed automatically and whether their deliveries are validated automatically, and set a cash-rounding service product and its income account.

Each Shopify location can be linked to a specific Odoo warehouse through a "POS Warehouse Override"; if left empty, the normal inventory warehouse mapping is used. When a POS order is imported, Odoo finds the matching Shopify location, routes the sale order to that warehouse, and marks the order as a Shopify POS order.

If the POS order contains a cash-rounding amount, the module adds (or updates) a dedicated sale order line for the rounding, using the configured service product and account, and checks that the product's income account matches the configured rounding account. Exchange orders are also tracked: the original exchange order and the list of exchange orders are stored and shown on the Shopify order form.

Business rules include: the rounding product must be a service product belonging to the instance company, the rounding account must be available to that company, the POS warehouse must belong to the instance company, and POS locations and exchange orders must use the same Shopify instance. POS orders can be filtered in the Shopify order list with "POS Orders" and "Pending POS" filters.

Depends on

Models and fields (5)
  • sale.order · extends an existing modelshopify_pos_order (Shopify POS Order)
  • shopify.order · extends an existing modelpos_location_id (Shopify POS Location), exchange_order_ids (Exchange Orders), exchange_origin_id (Original Exchange Order), cash_rounding_amount, exchange_origin_shopify_id (Original Exchange Order GID)
  • sale.order.line · extends an existing modelshopify_pos_rounding (Shopify POS Cash Rounding)
  • shopify.instance · extends an existing modelpos_enabled (Import Shopify POS Orders), pos_auto_confirm (Confirm POS Orders), pos_auto_fulfill (Validate POS Deliveries), pos_rounding_account_id (Cash Rounding Account), pos_rounding_product_id (Cash Rounding Product)
  • shopify.location · extends an existing modelpos_warehouse_id (POS Warehouse Override)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

Sources · Odoo 19.0

Confirmed on 2026-11-03 in branch 19.0 of OCA/connector-shopify.

terminal Installation and usage

OCA documentation · Odoo 19.0

Install the module after the core connector. Enable POS on each relevant Shopify instance and choose whether eligible orders are confirmed and fulfilled automatically.

Map every Shopify retail location to its POS warehouse. Configure a service product and account for cash-rounding differences where the shop uses cash rounding.

POS orders appear in the normal Shopify order bindings and can be filtered with POS Orders or Pending POS. The binding records the retail location, cash-rounding amount, and exchange relationship.

Correct unmapped locations or rounding configuration before retrying an error binding. Refunds and exchanges continue through the core order money and idempotency rules.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.