OroCRMにはMagentoのデータを取り込む機能が標準で用意されています。
Magentoの生みの親であるYoav Kutner氏が率いるチームが開発しているだけあって、Magentoは最優先に考えられているところは弊社としてはありがたい限りです。

このエントリではOroCRMとMagentoをどのように連携させるかについて説明します。
(このエントリはOroCRM公式サイトに掲載されている英文のエントリを参考にしたものです)

連携をする前に確認しておくこと

OroCRMとMagentoは、WebAPIを通じて連携を行います。
現時点ではOroCRMがMagentoに対してデータ取得を行うようになっているので、Magento側でSOAP APIが使えるかどうかを事前に確認しておく必要があります。
残念ながら現時点ではREST APIでの連携はできません。 

Magento側の準備

OroCRM側の設定を行う前に、Magento側で設定を行います。
おもに管理画面の「システム>ウェブサービス」の機能を用いて設定を行います。

管理画面メニュー 

SOAP/XML-RPC APIユーザーの権限設定を行う

Magentoの管理画面で、「システム>ウェブサービス」にある、「SOAP/XML-RPC - 権限」にアクセスしてWebAPIで使用する権限を定義します。

権限作成

権限リソースはとりあえずAllにしておきます。

権限作成2

SOAP/XML RPCユーザーの作成を行う

次はこの権限に割り当てられるユーザーを作成します。
スクリーンショットでは空欄にしていますが、適当に設定していきます。APIキーは要はパスワードなので、あまり簡単なものを設定しないほうがよいでしょう。 

ユーザー作成

ユーザー権限タブを選択し、先ほど作った権限を割り当てます。

権限割り当て

これでMagento側の準備はできました。
つぎはOroCRM側の設定を行います。 

OroCRM側の設定

では、OroCRM側の設定を行います。
OroCRMでは外部システムとの連携はチャンネル(Channel)と呼ばれています(翻訳の都合でブレがありますが近日中に直します)。
標準では

  • シンプル
  • Magento

の2種類のチャンネルが用意されています。
チャンネルを管理している機能は、「システム>チャンネル」にあります。

メニュー

この機能を開くと、チャンネルの一覧と作成ボタンが出てきます。
最初はなにもないと思うので、作成ボタンを押してチャンネルを作成します。

チャンネル作成

図ではすでに値を入れてありますが、チャンネルの設定で詰まるポイントはURLです。
Magento側のAPIURLを指定するのですが、以下のように入力しないとうまく接続できません。

http://example.com/index.php/api/v2_soap/?wsdl=1 

あとは図を真似て登録していけばうまくいくと思います。
入力ができたら「Check connection」をクリックして、正しくMagentoと接続できるかを確認します。

うまく接続できた場合は、「ウェブサイト」のプルダウンに、Magento上にあるウェブサイトやストアビューの情報が入ります。
ここで選んだウェブサイトがOroCRMと同期されていきます。

サイトに「コネクタ」で同期する対象データを選択して、チャンネルの設定は完成です。 

連携処理の実行

チャンネルの設定までできたら、あとは連携処理を行えばOKです。

チャンネルの編集画面に「Sync Schedule」というボタンがあります。
このボタンをクッリクすると、OroCRM上にジョブが作成されます。
ジョブの一覧にアクセスすると、これまで実行したジョブと、これから実行するジョブの一覧が表示されます。

ジョブ一覧

OroCRMはジョブの実行にWebサーバとは別のプロセスを使用します。
デーモンと呼ばれる別プロセスをPHP経由で起動し、そのプロセスがジョブを次々と実行するようになっています。
デーモンの状況は「デーモンのステータス」で確認できます。停止しているようであれば実行してやる必要があります。 

同期結果の確認

デーモンが無事に起動し、ジョブを正常に処理できたら、結果を検証します。
「セールス>注文>magento」にアクセスすると、結果が表示されます。

同期された注文データ 

このようにOroCRMはMagentoと簡単に連携できる仕組みを標準で備えています。
さらに、Magento ConnectではOroCRMとMagentoの連携を強化するためのエクステンションが、OroCRM開発チームによって提供されています。