Odoo 接続:注文と顧客を取り込み、在庫を確認
Odoo の My Profile → Account Security で API Key を作成し、インスタンス URL、データベース、ユーザー名、API Key を Integration に入力、テスト・マッピング・有効化。
Odoo コネクタは Odoo ERP の販売注文と顧客をこのシステムに取り込み、Odoo にある在庫数量を確認できます。Odoo から読み取る接続です:在庫の変更を Odoo に返送せず、請求書は取り込まず、履行実績も Odoo に送信しません。Odoo のインスタンスとデータベースごとに 1 接続です。
前提条件#
- ログインできる Odoo インスタンスと、統合に使う Odoo ユーザーのログイン名。
- Odoo Online の場合:外部 API の利用には Custom プランが必要です。他の Odoo Online プランでは、どの値を入れても接続できません。開始前にプランを確認してください。
- インスタンスのアドレス(例:https://mycompany.odoo.com。自前運用の場合は自社サーバーのアドレス)とデータベース名が分かっていること。データベース名は Odoo のログインページのデータベース選択で確認でき、Odoo Online では通常サブドメインです。
- Odoo で My Profile を開き、Account Security タブで API Key を作成する権限。
認証情報の取得#
- 統合用ユーザーで Odoo にログインし、右上のアバターをクリックして My Profile を開きます。
- Account Security タブを開き、New API Key をクリックします。
- Odoo が作成した API Key をコピーします。この接続では、API Key がログイン時にパスワードの代わりに使われます。別途パスワードを探す必要はなく、キー自体がパスワードの役割を果たします。
- 同時に他の 3 つの値も控えます:インスタンスのアドレス、データベース名(Odoo のログインページのデータベース選択で確認。Odoo Online では通常サブドメイン)、そして同じユーザーのログイン名です。
Integration への入力#
- Integration → コネクタマーケットプレイス → Odoo → 新規接続 を開きます。
- base_url、必須、Odoo インスタンス URL:インスタンスのアドレス(例:https://mycompany.odoo.com)を入力します。自前運用の場合は自社サーバーのアドレスを入力してください。http:// または https:// で始める必要があります。
- database、必須、データベース名:Odoo のログインページのデータベース選択に表示されるデータベース名(例:mycompany)を入力します。Odoo Online では通常、インスタンスアドレスのサブドメインです。
- username、必須、ユーザー名(ログイン名):統合用 Odoo ユーザーのログイン名(例:admin)を入力します。API Key を作成した同じユーザーのログイン名を使ってください。ログイン名の具体的な形式はインスタンスによります。
- api_key、必須、API Key:My Profile → Account Security → New API Key でコピーした API Key を貼り付けます。パスワード型のフィールドで、パスワードの代わりに使われ、秘密情報として保存されます。
接続テスト#
接続テストをクリックします。テストは 2 つの実際の手順を実行します。まずログインせずにインスタンスへバージョンを問い合わせ、アドレスが応答することとサーバーのバージョンを読み取ります。次に、database、username、api_key を使って実際にログインします。キーがパスワードの役割を果たし、ログインが成功した場合のみ合格となります。つまり、アドレスが正しくてもキーが間違っていれば合格しません。アドレスはインスタンスへの到達を証明し、ログインは認証情報を証明します。base_url が未入力か http:// または https:// で始まらない場合、テストは MISSING_BASE_URL で止まります。database、username、api_key のいずれかが未入力の場合、実際のログインには 3 つすべてが必要なため、MISSING_CREDENTIALS で止まります。
Mapping / テンプレート選択#
Odoo 標準の Mapping を選択します。Odoo の標準モデルに対応します:販売注文は sale.order、顧客は res.partner、在庫確認は product.product を読みます。テスト合格後、1 回取得を実行し、実注文を並べて確認してください(注文番号、顧客、明細、数量)。さらに 1 製品の数量を Odoo の表示と照合してから有効化します。インスタンスの項目が標準モデルと異なる場合は、Odoo 側の名前を変えず、Mapping でその項目を調整してください。
有効化#
有効化後、接続は設定した頻度で Odoo の販売注文と顧客をこのシステムに取り込み、在庫確認では Odoo の現在の数量を読み取ります。最初は Runs / Logs で取得を確認し、Odoo と照合してから無人運用に移してください。
この接続が行わないこと:在庫の変更を Odoo に返送せず、Odoo から請求書を取り込まず、履行実績や出荷結果を Odoo に送信しません。これらは引き続き Odoo 自体で、または実際の作業を行うシステムで処理してください。
よくある質問#
アドレスは開けるのに、テストが AUTH_FAILED で失敗する
インスタンスには到達できています(バージョン確認の手順は応答しました)が、実際のログインが拒否されました。database、username、api_key のいずれかが一致していないということです。3 つの値はセットでなければならず、キーは username と同じユーザーのものでなければなりません。アドレスが正しいだけでは、このテストは合格しません。
統合用ユーザー向けに新しい API Key を作成し(右上のアバター → My Profile → Account Security タブ → New API Key)、api_key フィールドにそのままコピーしてください。次に、Odoo のログインページのデータベース選択で database を、そのユーザーのログイン名で username を再確認し、再テストしてください。
テストが MISSING_CREDENTIALS または MISSING_BASE_URL で止まる
4 つのフィールドのいずれかが空か、アドレスが使用できません。MISSING_BASE_URL は base_url が未入力か、http:// または https:// で始まっていないことを示します。MISSING_CREDENTIALS は database、username、api_key のいずれかが未入力であることを示し、3 つが揃わなければテストは実際にログインできません。
Integration への入力の手順に従って 4 フィールドすべてを入力してください:base_url は http:// または https:// を含むインスタンスの完全なアドレス、database と username を補い、api_key は切り取らず全文を貼り付けます。保存して再テストしてください。
どの値も正しく見えるのに、Odoo Online が接続できない
お使いの Odoo Online プランに外部 API の利用が含まれていません。Odoo Online で外部 API を開放するのは Custom プランだけです。他のプランではブラウザではインスタンスが応答しても、外部からの API 呼び出しは利用できません。入力値の問題ではありません。
まず Odoo Online インスタンスのプランを確認してください。インスタンスを Custom プランに変更し、同じ 4 つの値で同じ接続を再テストしてください。その間、値を何度も変えないでください。
接続済みだが販売注文が取り込まれない
接続は機能しています(テストで実際にログインできました)が、新しく取り込むものがありません。Odoo データベースの取得範囲内に新しい販売注文がないか、ある注文が sale.order 上の販売注文ではありません。
Odoo で販売注文を 1 件作成または確認し、接続が使用する同じデータベースにあることを確認し、手動取得を実行して、プレビューまたは Runs / Logs に注文が表示されるか確認してください。