Odoo + Shopify 同期: 製品、注文、在庫
Shopify は米国の e コマース収益全体の 10% 以上を占めています。 Odoo 19 Enterprise を運用バックボーンとして使用し、Shopify を顧客対応ストアフロントとして使用している企業にとって、両方のシステムの同期を維持することは交渉の余地がありません。システムが切断されると、在庫エラー、注文処理の遅延、会計上の頭痛の種が発生します。
このガイドでは、アーキテクチャの決定、製品カタログの同期、リアルタイムの注文インポート、双方向の在庫管理、Shopify Payments の調整、複数店舗の管理など、Odoo と Shopify の完全な統合について説明します。
重要なポイント
- Shopify の REST API と 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 が使用され、イベント駆動型の更新には Webhook が使用されます。
- REST API: 製品 CRUD、注文読み取り、在庫管理
- GraphQL API: 一括操作 (大規模なカタログのエクスポート)、B2B 価格設定 (Shopify Plus)
- Webhook: リアルタイムの注文作成、注文更新、返金作成、在庫レベル更新
接続トポロジ:
Odoo 19 (ERP Backend)
↕ Product, Inventory, Price
Shopify Admin API / Webhooks
↕ Real-time events
Shopify Storefront (Customer-facing)
認証:
Shopify は、プライベート アプリ API キーまたはカスタム アプリ OAuth を使用します。
- プライベート アプリ: よりシンプルで、単一ストアの統合に推奨
- カスタム アプリ (OAuth): Shopify App Store の配布またはマルチストア管理に必要です
ECOSIRE コネクタの場合、Shopify のパートナー ダッシュボードでカスタム アプリを構成します。
Shopify アプリ構成
ステップ 1: 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/webhook - アプリをインストール → 管理 API アクセス トークンをコピー
ステップ 2: Odoo で構成する
販売 → Shopify または 在庫 → Shopify ストア に移動します。
| フィールド | 値 |
|---|---|
| 店名 | あなたのストア名 |
| Shopify ドメイン | yourstore.myshopify.com |
| 管理者 API トークン | カスタムアプリから |
| API バージョン | 2024-10 (最新の安定版) |
| Webhook の秘密 | 自動生成され、Webhook の検証に使用されます。 |
| デフォルトの倉庫 | Shopify 注文の主要倉庫 |
| 通貨 | ストア通貨 |
| 会社概要 | この店舗の Odoo 会社 |
| 支払いジャーナル | Shopify ペイメント ジャーナル |
| 返金ジャーナル | Shopify 返金ジャーナル |
| 注文プレフィックス | 例:「SHO-」 |
ステップ 3: Webhook を登録する
構成を保存した後、[Web フックの登録] をクリックします。コネクタは以下をサブスクライブします。
- コード0
- コード0
- コード0
- コード0
- コード0
- コード0
- コード0
- コード0
- コード0
製品カタログの同期
同期方向オプション:
| モード | 説明 | 使用例 |
|---|---|---|
| Odoo → Shopify | Odoo はマスター、Shopify はディスプレイ | 最初に Odoo ERP で作成された新製品 |
| Shopify → オドゥー | Shopify はマスター、Odoo はスレーブ | 既存の Shopify ストアに Odoo を追加 |
| 双方向 | どちらのシステムでの変更も双方向で同期されます。レア;紛争のリスク |
推奨: 新規導入の場合は Odoo → Shopify。 Odoo の製品マスターは、Shopify では必要のない豊富なデータ (購入情報、原価計算、BOM) を提供します。
製品フィールドのマッピング:
| オドゥフィールド | Shopify フィールド |
|---|---|
| 製品名 | タイトル |
| 販売説明 | 本文HTML |
| 製品カテゴリー | 製品タイプ |
| タグ | タグ |
| 定価 | 価格 |
| 価格で比較 | 価格で比較 |
| バーコード (EAN) | バーコード |
| 重量 | 重量 |
| 製品画像 | 画像 |
| 販売OK | 公開済み (真/偽) |
| 製品タイプ (サービス/保管可能) | 送料が必要です |
バリアント同期:
Shopify は、製品ごとに最大 3 つの製品オプション (色、サイズ、素材) をサポートし、バリエーションは最大 100 です。コネクタは Odoo の製品属性をマッピングします。
- Odoo
product.template→ Shopify 製品 - Odoo
product.product(バリアント) → Shopify バリアント - Odoo 属性値 → Shopify オプション値
一括カタログ同期:
大規模なカタログ (1000 以上の製品) の初期セットアップの場合:
- Shopify → カタログ → 一括同期 に移動します
- 同期する製品カテゴリを選択します
- 一括同期ジョブを実行します (バックグラウンド プロセス)
- 同期ログで進行状況を監視する
- マッピング エラーを確認して解決します。
注文管理
Webhook 経由のリアルタイム注文インポート:
顧客が Shopify で注文すると、orders/create Webhook が数秒以内に起動します。コネクタ:
- Shopify から Webhook ペイロードを受信します
- Webhook 署名 (HMAC-SHA256) を検証します。
- Odoo ですぐに販売注文を作成します
- Shopify に 200 OK を返します (再試行を防ぎます)
Shopify チェックアウトから Odoo 販売注文までのエンドツーエンド時間: 通常 3 ~ 15 秒。
注文データのマッピング:
| Shopify フィールド | オドゥフィールド |
|---|---|
| 注文ID | 参照 (接頭辞付き) |
| 顧客名 | 担当パートナー名 |
| 顧客の電子メール | パートナーのメールアドレス |
| 請求先住所 | 請求書の住所 |
| 配送先住所 | 配送先住所 |
| 品目 | 販売注文明細 |
| 割引コード | 割引ライン |
| 配送方法 | 配送業者 |
| 送料 | 配送料ライン |
| 合計税額 | 税金ライン |
| 財務状況 | 支払い状況 |
| 履行ステータス | 配送状況 |
| メモ | お客様のメモ |
| タグ | 内部タグ |
カスタムオーダーフィールド:
カスタム チェックアウト属性を持つ Shopify Plus 販売者の場合:
- Shopify 注文メモ属性を Odoo カスタムフィールドにマッピング
- 例: 「PO 番号」属性 → 販売注文の
x_purchase_order_number - 例: 「ギフトメッセージ」→セール注文の
note
注文処理ワークフロー:
インポート後、コネクタは Odoo の標準ワークフローを通じて注文を管理します。
- 販売注文の確認
- Odoo WMS で作成された配送注文
- 倉庫でのピッキング、梱包、出荷
- Odoo で配送が検証される (追跡が入力される) 5.コネクタは追跡番号を付けてフルフィルメントをShopifyに送信します
- Shopify は注文を「発送済み」としてマークし、顧客にメールを送信します
部分的な履行:
Shopify は、複数のフルフィルメントを含む注文をサポートしています (利用可能なものをすぐに発送し、後で残ります)。コネクタは以下を処理します。
- Odoo で部分的に配信 → 部分的にフルフィルメントを Shopify に送信
- Shopify 顧客に部分的な履行ステータスを表示
- 残りのアイテムは在庫がある場合に別の配送を作成します
インベントリの同期
双方向の在庫同期:
精度を維持するために、在庫は両方向に流れます。
Odoo → Shopify (主な方向):
- Odoo で在庫が移動するたびに、Shopify への在庫レベルの更新がトリガーされます
- 利用可能な数量 = 手持 - 予約済み - 安全在庫
- Shopify の在庫レベル API を介した更新
Shopify → Odoo (フォールバック):
- Shopify 在庫が手動で調整される場合 (管理者またはアプリ)、Webhook が起動します
- コネクタは監査メモ付きの Odoo 在庫調整を作成します
Shopify の複数のロケーション:
Shopify のマルチロケーション機能は、物理的なロケーションごとに在庫を追跡します。 Odoo 倉庫を Shopify の場所にマッピングします。
| 大堂倉庫 | Shopify の場所 |
|---|---|
| 本社倉庫 | 主な所在地 |
| イーストコーストDC | 東海岸の場所 |
| 西海岸 DC | 西海岸のロケーション |
| ドロップシッパー | サプライヤーの所在地 |
コネクタは、倉庫と場所のマッピングに基づいて、場所ごとの数量を 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 → Finance → Import Payout 経由でインポートします
- コネクタはジャーナル エントリを作成します。
- 収益(注文ごとの純売上高)
- Shopify 手数料費用(支払い処理)
- 払い戻しの調整
- 純支払受取額
- 銀行振込が到着したら: Shopify Payments 仕訳帳と照合します。
Shopify の返金の処理:
Shopify で返金が処理される場合:
refunds/createWebhook が起動される- コネクタは、元の請求書に対して Odoo でクレジットノートを作成します
- 在庫が返品された (再入荷された) 場合: 返品転送を作成します。
- 貸方票を転記 → 顧客口座に対して残高が清算されます
Shopify Plus B2B 統合
Shopify Plus には、B2B 機能 (卸売カタログ、支払い条件、ネット支払い) が含まれています。コネクタは、これらを Odoo の B2B 価格設定と統合します。
会社とカタログのマッピング:
| Shopify B2B | Odoo 相当 |
|---|---|
| 会社概要 | res.company (または顧客セグメント) |
| カタログ | 価格表 |
| 支払い条件 | 販売注文の支払い条件 |
| ドラフトオーダー | 見積書 (ドラフトでの販売.注文) |
B2B の価格設定を同期:
1.コネクタでShopify B2Bカタログを作成します 2. Odoo 価格表へのリンク 3. Shopify B2B企業に割り当てる 4. 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 のサブスクリプションのライフサイクルを管理しません。コネクタは、サブスクリプションによって生成されたものであるか、1 回限りのものであるかに関係なく、各注文を処理します。
Shopify Webhook の起動時に Odoo サーバーがダウンしている場合はどうなりますか?
Shopify は、失敗した Webhook を 48 時間にわたって最大 19 回再試行しました。 Odoo が回復すると、コネクタは Webhook を処理し、注文がインポートされます。ミッション クリティカルな信頼性を実現するには、冗長インフラストラクチャ (ロード バランサー + 複数のワーカー) とダウンタイムのアラートを監視する Odoo を構成します。 48 時間の再試行ウィンドウは、計画されたメンテナンスのためのバッファーを提供します。
コネクタは Shopify Markets (複数通貨の国際販売) をサポートしていますか?
はい。 Shopify Markets では、1 つのストアから複数の通貨で販売できます。コネクタは、購入者のチェックアウト通貨で注文をインポートし、Odoo でその通貨で販売注文を作成します。通貨換算には、注文インポート時の為替レートが使用されます。正確なローカル価格設定を行うために、Odoo の Shopify マーケットごとに個別の価格リストを構成します。
Odoo で Shopify ギフトカードを処理するにはどうすればよいですか?
Shopify ギフトカードは注文の支払い方法として表示されます。コネクタは、各注文のギフト カード部分に対して個別の支払い明細を作成します。 Odoo で「Shopify Gift Cards」責任アカウントを構成します。ギフト カードが (ギフト カード製品を通じて) 販売される場合、収益は繰り延べられます。注文に基づいて償還されると、負債は清算され、収益が認識されます。
次のステップ
適切に実行された Odoo と Shopify の統合は目に見えなくなります。手動介入なしで両方のシステムの同期が維持され、機能するだけです。 ECOSIRE チームは、1 日あたり 50 件の注文を処理する D2C ブランドから、1 日あたり 10,000 件の注文を処理する企業小売業者まで、あらゆるものを対象とした Shopify-Odoo 統合を構築しました。
Shopify-Odoo 統合について ECOSIRE にお問い合わせください →
ECOSIRE の Shopify サービスを詳しく見る →
店舗の詳細と現在の問題点を共有していただければ、当社のチームが Shopify-Odoo の統合を検討し、ERP と店舗間のギャップを解消します。
執筆者
ECOSIRE Research and Development Team
ECOSIREでエンタープライズグレードのデジタル製品を開発。Odoo統合、eコマース自動化、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.