Odoo + Shopify 同步:产品、订单和库存
Shopify 占美国电子商务总收入的 10% 以上。对于使用 Odoo 19 Enterprise 作为运营支柱并使用 Shopify 作为面向客户的店面的企业来说,保持两个系统同步是不容协商的 — 断开的系统意味着库存错误、订单处理延迟和会计问题。
本指南涵盖了完整的 Odoo-Shopify 集成:架构决策、产品目录同步、实时订单导入、双向库存管理、Shopify Payments 对账和多商店管理。
要点
- Shopify 的 REST 和 GraphQL API 均受支持; Shopify Plus 首选 GraphQL
- 产品同步是双向的:在 Odoo 中创建 → 发布到 Shopify,或从 Shopify 导入
- 库存同步是事件驱动的:Odoo 中的每次库存变动都会触发
- 从 Shopify 到 Odoo 的订单 Webhook 提供近乎即时的订单导入(< 30 秒)
- Shopify Payments 对帐自动处理付款、费用和退款
- 多地点库存同步到 Shopify 的多地点功能
- Shopify Plus B2B(批发)目录链接到 Odoo 的价目表
- 从 Shopify 到 Odoo RMA 的退货流程,具有自动库存调整功能
集成架构
API方法:
该集成使用 Shopify 的 REST Admin API 进行大多数操作,并使用 Webhooks 进行事件驱动的更新:
- REST API:产品CRUD、订单读取、库存管理
- GraphQL API:批量操作(大型目录导出)、B2B 定价 (Shopify Plus)
- Webhooks:实时订单创建、订单更新、退款创建、库存水平更新
连接拓扑:
Odoo 19 (ERP Backend)
↕ Product, Inventory, Price
Shopify Admin API / Webhooks
↕ Real-time events
Shopify Storefront (Customer-facing)
身份验证:
Shopify 使用私有应用程序 API 密钥或自定义应用程序 OAuth:
- 私人应用程序:更简单,推荐用于单商店集成
- 自定义应用程序 (OAuth):Shopify 应用商店分发或多商店管理所需
对于 ECOSIRE 连接器,在 Shopify 的合作伙伴仪表板中配置自定义应用程序。
Shopify 应用程序配置
第 1 步:在 Shopify 中创建自定义应用程序
- 转到您的 Shopify 后台 → 设置 → 应用程序和销售渠道
- 单击开发应用程序 → 创建应用程序
- 设置应用程序名称(例如“Odoo Integration”)
- 配置API范围:
read_products, write_products read_orders, write_orders read_inventory, write_inventory read_shipping, write_shipping read_customers, write_customers read_fulfillments, write_fulfillments read_locations read_price_rules, write_price_rules - 设置 webhook URL:
https://your-odoo.com/shopify/webhook6.安装应用程序→复制管理API访问令牌
步骤 2:在 Odoo 中配置
导航到 销售 → Shopify 或 库存 → Shopify 商店:
| 领域 | 价值 |
|---|---|
| 店铺名称 | 您的店铺名称 |
| Shopify 域名 | yourstore.myshopify.com |
| 管理员 API 令牌 | 来自定制应用程序 |
| API版本 | 2024-10(最新稳定) |
| Webhook 秘密 | 自动生成,用于验证webhooks |
| 默认仓库 | Shopify 订单的主仓库 |
| 货币 | 储存货币 |
| 公司 | 这家商店的 Odoo 公司 |
| 付款日记 | Shopify 付款日记 |
| 退款日记 | Shopify 退款日记 |
| 订单前缀 | 例如,“SHO-” |
第 3 步:注册 webhook
保存配置后,单击“注册 Webhooks”。连接器订阅:
- 代码0
- 代码0
- 代码0
- 代码0
- 代码0
- 代码0
- 代码0
- 代码0
- 代码0
产品目录同步
同步方向选项:
| 模式 | 描述 | 使用案例 |
|---|---|---|
| Odoo → Shopify | Odoo 是大师,Shopify 是展示 | 首次在 Odoo ERP 中创建新产品 |
| Shopify → Odoo | Shopify 是主人,Odoo 是奴隶 | 现有 Shopify 商店,添加 Odoo |
| 双向 | 任一系统中的更改都是双向同步的 | 稀有的;冲突风险 |
推荐:Odoo → Shopify 用于新部署。 Odoo 的产品主数据提供了 Shopify 不需要的更丰富的数据(采购信息、成本核算、BOM)。
产品领域映射:
| 奥杜球场 | Shopify 领域 |
|---|---|
| 产品名称 | 标题 |
| 销售说明 | 正文 HTML |
| 产品类别 | 产品类型 |
| 标签 | 标签 |
| 标价 | 价格 |
| 比较价格 | 比较价格 |
| 条形码 (EAN) | 条码 |
| 重量 | 重量 |
| 产品图片 | 图片 |
| 销售还行 | 已发布(对/错) |
| 产品类型(维修/可储存) | 需要运输 |
变体同步:
Shopify 最多支持 3 种产品选项(颜色、尺寸、材质),每种产品最多有 100 个变体。连接器映射 Odoo 的产品属性:
- Odoo
product.template→ Shopify 产品 - Odoo
product.product(变体)→ Shopify 变体 - Odoo 属性值 → Shopify 选项值
批量目录同步:
对于大型目录(1000 多种产品)的初始设置:
- 导航到 Shopify → 目录 → 批量同步
- 选择要同步的产品类别
- 运行批量同步作业(后台进程)
- 监控同步日志中的进度
- 检查并解决任何映射错误
订单管理
通过 webhooks 实时订单导入:
当客户在 Shopify 上下订单时,orders/create Webhook 会在几秒钟内触发。连接器:
1.从Shopify接收webhook负载 2.验证webhook签名(HMAC-SHA256) 3. 立即在 Odoo 中创建销售订单 4.向 Shopify 返回 200 OK(防止重试)
从 Shopify 结帐到 Odoo 销售订单的端到端时间:通常为 3-15 秒。
订单数据映射:
| Shopify 领域 | 奥杜球场 |
|---|---|
| 订单编号 | 参考(带前缀) |
| 客户名称 | res.合作伙伴名称 |
| 客户邮箱 | 合作伙伴邮箱 |
| 帐单地址 | 发票地址 |
| 送货地址 | 送货地址 |
| 行项目 | 销售订单行 |
| 折扣码 | 折扣线 |
| 运输方式 | 送货承运人 |
| 运费 | 运费行 |
| 总税额 | 税线 |
| 财务状况 | 付款状态 |
| 履行状态 | 交货状态 |
| 笔记 | 客户须知 |
| 标签 | 内部标签 |
自定义订单字段:
对于具有自定义结帐属性的 Shopify Plus 商家:
- 将 Shopify 订单备注属性映射到 Odoo 自定义字段
- 示例:销售订单上的“采购订单号”属性 →
x_purchase_order_number - 示例:“礼品信息”→
note促销订单
订单处理流程:
导入后,连接器通过 Odoo 的标准工作流程管理订单: 1.销售订单确认 2. Odoo WMS 中创建的交货订单 3. 仓库挑选、包装、运输 4. 在 Odoo 中验证交付(输入跟踪) 5. 连接器将履行信息发送到 Shopify 并附上跟踪号码 6. Shopify 将订单标记为“已完成”并向客户发送电子邮件
部分履行:
Shopify 支持具有多种履行方式的订单(立即发货,稍后发货)。连接器手柄:
- Odoo 中的部分交付 → 部分履行发送至 Shopify
- Shopify 向客户显示部分履行状态
- 剩余商品在有库存时创建单独的交货
库存同步
双向库存同步:
库存双向流动以保持准确性:
Odoo → Shopify(主要方向):
- Odoo 中的每次库存变动都会触发 Shopify 的库存水平更新
- 可用数量 = 现有 - 预留 - 安全库存
- 通过 Shopify 的库存水平 API 进行更新
Shopify → Odoo(后备):
- 如果手动调整 Shopify 库存(管理员或应用程序),则会触发 webhook
- 连接器创建带有审核注释的 Odoo 库存调整
Shopify 多地点:
Shopify 的多地点功能可跟踪每个物理地点的库存。将 Odoo 仓库映射到 Shopify 位置:
| 奥杜仓库 | Shopify 位置 |
|---|---|
| 主要仓库 | 主要地点 |
| 东海岸特区 | 东海岸位置 |
| 西海岸特区 | 西海岸位置 |
| 直接托运人 | 供应商位置 |
连接器根据仓库位置映射将每个位置的数量推送到 Shopify。
库存准确性保障:
- 安全库存缓冲区可防止 Shopify 显示所有可用库存
- 缺货处理:当数量达到0时,Shopify库存= 0(非负数)
- 缺货时继续销售:可按产品配置(某些卖家允许缺货)
Shopify 付款对账
Shopify Payments 费用结构:
| 计划 | 在线价格 | 亲自率 |
|---|---|---|
| 基本 | 2.9% + 30 美分 | 2.7% |
| 店铺主页 个人中心 关注我们 线下门店 店铺信息2.6% + 30 美分 | 2.5% | |
| 高级 | 2.4% + 30 美分 | 2.4% |
| 加 | 0.2%(Shopify 付款) | 0.2% |
付款对账:
Shopify Payments 每 2-3 个工作日汇入您的银行帐户。连接器导入支付数据:
- 下载 Shopify Payments 付款报告(或通过 API)
- 通过 Shopify → 财务 → 导入付款 导入
- 连接器创建日记帐分录:
- 收入(每个订单的净销售额)
- Shopify 费用支出(付款处理)
- 退款调整
- 应收付款净额
- 银行转账到达后:根据 Shopify Payments 日记帐进行核对
处理 Shopify 退款:
在 Shopify 中处理退款时:
refunds/createwebhook 触发- 连接器在 Odoo 中根据原始发票创建贷方票据
- 如果库存被退回(重新进货):创建退货转移 4.过帐贷方票据→根据客户帐户清算余额
Shopify Plus B2B 集成
Shopify Plus 包括 B2B 功能(批发目录、付款条件、净付款)。该连接器将这些与 Odoo 的 B2B 定价集成:
公司和目录映射:
| Shopify B2B | Odoo 等效 |
|---|---|
| 公司 | res.company(或客户群) |
| 目录 | 价格表 |
| 付款条件 | 销售订单的付款条件 |
| 草稿订单 | 报价单(草稿中的销售.订单) |
同步 B2B 定价:
- 在连接器中创建 Shopify B2B 目录
- Odoo 价目表链接
- 分配给 Shopify B2B 公司
- Odoo价目表中的价格变化→自动推送到Shopify B2B目录
多店管理
对于经营多个 Shopify 商店的品牌(地区、品牌、批发与零售):
多商店配置:
为每个 Shopify 商店创建单独的连接器配置:
- 每个商店都有不同的 API 凭证
- 特定商店的产品可见性(有些产品在所有商店,有些在特定商店)
- 商店特定定价(区域定价、批发与零售)
- 商店特定的库存分配
跨商店的库存分配:
Available for Store A = On-Hand - Reserve for Store B - Reserve for Store C - Safety Stock
配置分配规则,以防止多个商店从同一库存中提取商品时出现超售。
常见问题
连接器如何处理 Shopify 的自定义数据产品元字段?
Shopify 元字段存储有关产品、订单和客户的自定义数据。连接器将特定的 Odoo 字段映射到 Shopify 元字段。例如,将 Odoo 的 x_care_instructions 字段映射到 product.care_instructions 元字段。在每个资源类型的连接器高级设置中配置元字段映射。
连接器可以处理 Shopify 的订阅产品(Shopify Subscriptions 或 ReCharge)吗?
标准 Shopify 订阅订单作为 Odoo 中的常规订单导入。对于 ReCharge 订阅,定期订单会作为单独的 orders/create webhook 触发并正常导入。连接器不管理 Shopify 中的订阅生命周期 - 它会处理每个订单,无论订单是订阅生成的还是一次性的。
如果 Shopify webhook 触发时 Odoo 服务器关闭,会发生什么情况?
Shopify 在 48 小时内重试失败的 Webhook 最多 19 次。当 Odoo 恢复时,连接器会处理 Webhook,并导入订单。为了实现关键任务的可靠性,请为 Odoo 配置冗余基础设施(负载均衡器 + 多个工作人员)并监控停机警报。 48 小时重试窗口为计划维护提供了缓冲。
连接器是否支持 Shopify Markets(多币种国际销售)?
是的。 Shopify Markets 允许从单个商店以多种货币进行销售。连接器以买方结账货币导入订单,并在 Odoo 中以该货币创建销售订单。货币换算使用订单导入时的汇率。在 Odoo 中为每个 Shopify 市场配置单独的价目表,以获得准确的本地定价。
如何在 Odoo 中处理 Shopify 礼品卡?
Shopify 礼品卡显示为订单上的付款方式。连接器为每个订单的礼品卡部分创建单独的付款行。在 Odoo 中配置“Shopify 礼品卡”责任帐户。当礼品卡(通过礼品卡产品)出售时,收入会递延。当赎回订单时,负债被清除并确认收入。
后续步骤
执行良好的 Odoo-Shopify 集成变得不可见 - 它只是正常工作,无需人工干预即可保持两个系统同步。 ECOSIRE 团队构建了 Shopify-Odoo 集成,适用范围从每天处理 50 个订单的 D2C 品牌到每天处理 10,000 个订单的企业零售商。
联系 ECOSIRE 了解您的 Shopify-Odoo 集成 →
分享您的商店详细信息和当前的痛点,我们的团队将进行 Shopify-Odoo 集成,消除您的 ERP 和店面之间的差距。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
Australian GST Guide for eCommerce Businesses
Complete Australian GST guide for eCommerce businesses covering ATO registration, the $75,000 threshold, low value imports, BAS lodgement, and GST for digital services.
eCommerce Bookkeeping: Revenue Recognition and Sales Tax
Master eCommerce bookkeeping with correct revenue recognition timing, sales tax collection across marketplaces, and reconciliation for Shopify, Amazon, and more.
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.