CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData ArcESB - スマレジの在庫情報を「ザイコロボ(zaiko Robot)」を通じて複数のEC ショップに連動する

こんにちは。CData Software Japan の色川です。

EC ショップの運営において在庫情報の管理は重要ですよね。入荷した在庫情報が反映されないまま在庫切れで販売機会を逃がしたり、既に販売した商品について在庫数の更新が遅れて売り越してしまったりしては大変です。特に複数のEC モールへ出店されている場合、各EC モールやショップの在庫情報を連動させるのに苦労されているケースは多いのではないでしょうか。

そのようなケースでは、複数のEC ショップに関する情報を一元管理してくれるシステムやサービスが便利です。

この記事では、CData ArcESB を使って、スマレジの在庫情報を、在庫の一元管理システム「ザイコロボ(zaiko Robot)」を通じて、複数のEC ショップに連動する方法をご紹介します。

ザイコロボ(zaiko Robot)とは

ザイコロボ(zaiko Robot)は、Hunglead 社が提供するRobot シリーズの内、在庫の一元管理として提供されているシステムです。Hunglead 社のRobot シリーズはネットショップ一元管理システムとして非常に数多く導入されています。Robot シリーズでネットショップを一元管理することで業務が効率化され、顧客対応や販促など本来注力すべき仕事に時間を割くことができます。

www.hunglead.com

CData ArcESB とは

ファイル転送(MFT)とSaaSデータ連携をノーコードで実現できるデータ連携ツールです。ファイル・データベース・SaaS API、オンプレミスやクラウドにある様々なデータをノーコードでつなぐ事ができます。

www.arcesb.com

この記事のシナリオ

ザイコロボ(zaiko Robot)を使うと、複数のEC ショップの在庫情報を一元管理することができます。EC ショップの在庫情報は、基幹システムやPOS システムと自動連携させたいケースが多いですよね。ザイコロボ(zaiko Robot)では、そのような時のために、APIFTP の2つの外部連携オプションを提供しています。

www.hunglead.com

ザイコロボ(zaiko Robot)が提供するこれらの連携オプションと、基幹システムやPOS システムの情報を連携させることで、以下のようなニーズを実現することが可能になります。

  • 基幹システムで在庫数を変更したら、自動で各モールやカートにも反映したい
  • 各モールやカートで商品が売れたら、自動で基幹システムの在庫数を変更したい
  • 実店舗とEC ショップの在庫数を連動したい
  • etc ...

このようなシーンの例として、この記事では「スマレジの在庫情報を、在庫の一元管理システム「ザイコロボ(zaiko Robot)」を通じて複数のEC ショップに連動する」シナリオを作成します。

www.hunglead.com

より具体的には「スマレジの在庫情報を抽出し、ザイコロボの連携オプション(APIFTP)を利用して、各EC ショップの在庫情報を更新する」シナリオを作成します。

必要なものと準備

CData ArcESB は30日間フル機能を利用できるトライアルライセンスが提供されています。ぜひお手元で試してみてください。

製品のインストール等はこちらの記事を参考にしてください。

www.cdatablog.jp

ザイコロボ(zaiko Robot)利用準備

ザイコロボ(zaiko Robot)では50以上のモールカート、システムへの連携に対応しており、標準対応していないモール・カート(独自モール・カート)についても一定の条件を満たせば在庫連動することができます。

この記事ではザイコロボ(zaiko Robot)自体の設定や、ザイコロボ(zaiko Robot)とEC ショップやモールとの連動設定については扱いませんが、ザイコロボ(zaiko Robot)は設定も利用もとても分かりやすいシステムになっていますので、複数EC ショップ運営での在庫情報の連動にお困りの方はぜひ検討してみてください。

EC ショップの在庫連動はザイコロボ(zaiko Robot)に任せることができますので、この記事では、基幹システムやPOS システムとザイコロボ(zaiko Robot)との自動連携について紹介します。

この記事のシナリオを試すには、ザイコロボ(zaiko Robot)のAPI 連携オプション、FTP 連携オプションが利用できるプランが必要です。ご利用のザイコロボ(zaiko Robot)環境でこれらのオプションが利用できる状態にしておいてください。

スマレジとEC ショップの在庫

この記事では、ザイコロボを通じた在庫情報の連動を試すために、以下のような商品と在庫状態を用意しました。

スマレジ

ザイコロボ

ショップA(在庫はザイコロボで管理されています)

ショップB(在庫はザイコロボで管理されています)

スマレジ側の在庫情報の変化を、ザイコロボを通じて、ショップA、ショップB の在庫情報へ連携します。ザイコロボを使わない場合、ショップA、ショップB それぞれの在庫情報に直接連携して更新する必要がありますが、こういった連携はショップやモールの数が多いほど作成も維持も大変です。この記事では、ザイコロボのおかげで、スマレジ側の在庫情報の変化はザイコロボに連携するだけで、ザイコロボが各ショップの在庫情報を一元管理(一元更新)してくれます。

CData ArcESB の基本的な使い方

CData ArcESB の起動方法や基本的なフローの作り方についてはこちらをご覧ください。

www.arcesb.com

www.arcesb.com

それでは実際に連携フローを作成していきます。この記事ではザイコロボの外部連携オプションにフォーカスしていますので、API 連携オプションで連携する場合と、FTP 連携オプションで連携する場合、それぞれのフローを試してみます。

API 連携オプションを利用する

最初に「スマレジの在庫情報を抽出し、ザイコロボのAPI 連携オプションを利用して、各EC ショップの在庫情報を更新する」シナリオを作成します。

ザイコロボのAPI 連携オプションでは、受注・商品・在庫の情報が扱えるXML-RPC 形式のAPI が提供されています。リクエストはXML で構成し、HTTP POST でリクエストします。CData ArcESB ではREST コネクタを利用します。 cdn.arcesb.com

このシナリオで作成する連携フローは以下のような流れになっています。基本的な流れとしては「スマレジの在庫情報を抽出」して「ザイコロボのAPI リクエストの形式にマッピング」して「ザイコロボのAPI を実行」します。

  コネクタ 内容
1 CData CData Smaregi ドライバを利用して、スマレジの在庫情報を抽出
2 XML Map 1 で抽出した在庫情報を、ザイコロボのAPI リクエストの形式にマッピング
3 REST 2 の内容をリクエストボディとしてザイコロボのAPI を実行

1. CData

最初にフローの起点となるCData コネクタを配置し「CData Smaregi ドライバを利用して、スマレジの在庫情報を抽出」します。コアカテゴリから「CData コネクタ」を選択し、フローキャンバスへ配置します。

コネクタの設定で、スマレジへの接続を設定してください。

Action は「Select」。対象テーブルに「Stocks」を選択します。この記事ではスマレジの在庫情報から在庫の実数を取得して、ザイコロボへ更新後の実数として連携します。なお、ザイコロボでは在庫数の更新を実数での上書き更新以外に、現在の在庫数からの加算や減算で指定することもできます。

変更を保存 でコネクタ設定を保存します。アウトプットタブから受信を実行して、リクエストの成功と取得内容を確認します。

2. XML Map

次に「1 で抽出した在庫情報を、ザイコロボのAPI リクエストの形式にマッピング」します。コアカテゴリから「XML Map コネクタ」を選択し、フローキャンバスへ配置します。

1 から2 へフローをつなぎます。

ザイコロボのAPI 連携オプションでは、在庫情報(在庫更新)として「hzr.rpc.ZaikoUpdate」メソッドが用意されています。このメソッドでは「商品コードを指定してzaiko Robot の在庫数を更新(予約)する」ことができます。

ザイコロボのAPI 連携仕様で、在庫更新(hzr.rpc.ZaikoUpdate)のパラメータ構成やレスポンスを確認することができます。XML サンプルも掲載されていますので、掲載されているXML サンプルを出力ファイル(デスティネーションファイル)のスキーマとして利用して設定します。

デスティネーションファイルを指定するために「サンプルファイルをアップロード」します。

ここではサンプルとして提供されているXML ファイルをスキーマファイルとして、ID 等の項目以外に「商品コードと在庫数」にスマレジから取得した在庫情報をマッピングします。なお、ザイコロボのログインID やAPI 利用に必要なデベロッパーID は連携オプション利用の際に通知されます。ザイコロボのAPI 連携オプションについて、詳しくはザイコロボのAPI 仕様を確認してください。

ここまで進んだら、3. でのAPI 実行時に必要な「ザイコロボのAPI 連携仕様に一致するリクエストファイル(XML ファイル)」が生成されるか、確認してみます。1. のアウトプットタブから受信を実行して、スマレジから在庫情報を抽出します。2. のアウトプットタブを確認して、出力されているXML ファイルを確認してみます。API 連携仕様で求められている形で、商品コードや在庫数などが設定されていることが確認できました。

3. REST

最後に「2 の内容をリクエストボディとしてザイコロボのAPI を実行」します。コアカテゴリから「REST コネクタ」を選択し、フローキャンバスへ配置します。

2 で出力したXML ファイルが 3 のインプットファイルとなるよう、2 から3 へフローをつなぎます。

ザイコロボのAPI 連携オプションでは、シンプルなXML-RPC 形式のAPI が提供されています。REST コネクタを以下のように設定します。

プロパティ 設定値
メソッド POST
URL https://[各社ごとのzaiko Robot ドメイン]/zaikoapi/
認可タイプ Basic
Username 連携オプション利用時に通知されたデベロッパーID
パスワード 連携オプション利用時に通知されたデベロッパーパスワード
ボディの種類 raw
Content Type XML (application/xml)

これで「スマレジの在庫情報を抽出し、ザイコロボのAPI 連携オプションを実行する ≒ スマレジの在庫情報を抽出し、ザイコロボのAPI 連携オプションを利用して、各EC ショップの在庫情報を更新する」シナリオが出来あがりました。

連携フローの実行と確認

在庫数の変動が更新されることを確認するために、スマレジの在庫数を変更します。

起点となるCData コネクタからフローを実行してみます。アウトプットタブから「受信」を実行します。

フローの終点となるREST コネクタのインプットタブを開き、ザイコロボの在庫更新API の実行と成功を確認します。

ザイコロボの在庫数が更新されていることが確認できます。

ザイコロボにより、各ショップの在庫数が更新されていることが確認できます。この部分はザイコロボにお任せです。この記事ではショップが2つですが、連動すべきショップが多ければ多いほど便利さを感じますね。

FTP 連携オプションを利用する

今度は「スマレジの在庫情報を抽出し、ザイコロボのFTP 連携オプションを利用して、各EC ショップの在庫情報を更新する」シナリオを作成します。

ザイコロボのFTP 連携オプションでは、ザイコロボ側で用意されたFTP サーバーを経由して、受注・商品・在庫の情報をCSV 連携できる機能です。決められたFTP Server パスに、決められたCSV フォーマットでアップロードすることで更新すべき在庫や商品の情報を自動連携します。また受注情報を取得する際には、決められたFTP Server パスに決められたフォーマットで出力されるCSV ファイルをダウンロードすることで、EC ショップの受注情報を取得・連携することができます。 CData ArcESB ではFTP Server に接続・連携するFTP クライアント機能としてFTP コネクタを利用します。 cdn.arcesb.com

このシナリオで作成する連携フローは以下のような流れになっています。基本的な流れとしては「スマレジの在庫情報を抽出」して「ザイコロボが期待するCSV フォーマットの形式にマッピング」して(CSV ファイルの文字コードを変換してから)「ザイコロボのFTP Server にアップロード」します。

  コネクタ 内容
1 CData CData Smaregi ドライバを利用して、スマレジの在庫情報を抽出
2 CSV Map 1 で抽出した在庫情報を、ザイコロボが期待するCSV フォーマットの形式にマッピング
3 Script 2 で作成したCSV ファイルの文字コードをザイコロボが期待する文字コードに変換(UTF-8 -> Shift-JIS)
4 FTP 3 のファイルをFTP Server の決められたディレクトリにアップロード

1. CData

このステップはAPI 連携オプションと一緒です。最初にフローの起点となるCData コネクタを配置し「CData Smaregi ドライバを利用して、スマレジの在庫情報を抽出」します。コアカテゴリから「CData コネクタ」を選択し、フローキャンバスへ配置します。

コネクタの設定で、スマレジへの接続を設定してください。

Action は「Select」。対象テーブルに「Stocks」を選択します。この記事ではスマレジの在庫情報から在庫の実数を取得して、ザイコロボへ更新後の実数として連携します。なお、ザイコロボのFTP 連携オプションも先ほどのAPI 連携オプションと同じように在庫数の更新を実数での上書き更新以外に、現在の在庫数からの加算や減算で指定することもできます。

変更を保存 でコネクタ設定を保存します。アウトプットタブから受信を実行して、リクエストの成功と取得内容を確認します。

2. CSV Map

次に「1 で抽出した在庫情報を、ザイコロボが期待するCSV フォーマットの形式にマッピング」します。コアカテゴリから「CSV Map コネクタ」を選択し、フローキャンバスへ配置します。

1 から2 へフローをつなぎます。

ザイコロボのFTP 連携オプションにおける在庫更新では、zaiko Robotに登録されている商品に対して在庫数の更新を行うことができます。 更新する商品と在庫数の情報を、決められたFTP Server パスに、決められたCSV フォーマットでアップロードすることで、自動的にザイコロボへの取込みが実施されます。(取込みは一定の周期ごとに自動的に実施されます)

ザイコロボのFTP 連携仕様で、在庫更新時に必要なCSV ファイルの仕様を確認することができます。CSV サンプルも取得することができますので、この記事ではCSV サンプルを出力ファイル(デスティネーションファイル)のスキーマとして利用して設定します。

デスティネーションファイルを指定するために「サンプルファイルをアップロード」します。

ここではサンプルとして提供されているCSV ファイルをスキーマファイルとして「商品コード」と「在庫数」にスマレジから取得した在庫情報をマッピングします。

なお、アップロードするCSV ファイル名には(非正常時の調査等を容易にするためにも)送信日時のタイムスタンプを利用して「yyyyMMddHHmmss.csv」の形式とすることが奨められています。このタイミングでフローを流れるファイルが「yyyyMMddHHmmss.csv」となるように、ローカルファイルスキームプロパティを利用して指定します。ザイコロボのFTP 連携オプションについて、詳しくはザイコロボのFTP 連携仕様を確認してください。

プロパティ 設定値
ローカルファイルスキーム %DateFormat:yyyyMMddHHmm%.csv

3. Script

CData ArcESB のフローで流れるデータは基本的にUTF-8 ですが、ザイコロボのFTP Server ではアップロードされるファイルのエンコードにShift-JIS を期待しています。そのため、次に「2 で作成したCSV ファイルの文字コードをザイコロボが期待する文字コードに変換(UTF-8 -> Shift-JIS)」します。コアカテゴリから「Script コネクタ」を選択し、フローキャンバスへ配置します。

2 から3 へフローをつなぎます。

スクリプトコネクタの設定を開き、インプットファイルをUTF-8 で読みこみ、Shift-JIS で書きこむスクリプトコードを、スクリプト欄に追加します。

<arc:set attr="file.file" value="[FilePath]" /> 
<arc:set attr="file.encoding" value="UTF-8" /> 
<arc:call op="fileRead" in="file" out="out"> 
  <arc:set attr="fileOut.data" value="[out.file:data]" /> 
</arc:call> 

<arc:check attr="fileOut.data"> 
  <arc:set attr="fileOut.filename" value="[FileName]" /> 
  <arc:set attr="fileOut.encoding" value="Shift-JIS" /> 
  <arc:push item="fileOut" /> 
  <arc:else> 
    <arc:throw code="NoData" desc="No File Data."/> 
  </arc:else> 
</arc:check> 

ここまで進んだら、3. でFTP 連携時に必要な「ザイコロボのFTP 連携仕様に一致するCSV 形式でリクエストファイル(CSV ファイル)」が生成されるか、確認してみます。1. のアウトプットタブから受信を実行して、スマレジから在庫情報を抽出します。3. のアウトプットタブを確認して、出力されているCSV ファイルを確認してみます。FTP 連携仕様で求められている形で、商品コードや在庫数が設定されていることが確認できました。文字コードも期待通りShift-JIS になっていることが確認できます。

4. FTP

最後に「 3 のファイルをFTP Server の決められたディレクトリにアップロード」します。MFT カテゴリから「FTP コネクタ」を選択し、フローキャンバスへ配置します。

3 で出力したCSV ファイルが 4 のインプットファイルとなるよう、3 から4 へフローをつなぎます。

ザイコロボのFTP 連携オプションを利用する際に通知されたアカウント情報等をもとに、FTP コネクタを以下のように設定します。

プロパティ 設定値
リモートホスト 連携オプション利用時に通知されたFTP サーバ
ユーザー名 連携オプション利用時に通知された在庫更新用FTPアカウントID
パスワード 連携オプション利用時に通知された在庫更新用FTPアカウントパスワード
アップロード - リモートパス FTP 連携仕様に記載された在庫更新用のアップロードディレクトリ

これで「スマレジの在庫情報を抽出し、ザイコロボのFTP 連携オプションを実行する ≒ スマレジの在庫情報を抽出し、ザイコロボのFTP 連携オプション用のディレクトリにCSV をアップロードして、各EC ショップの在庫情報を更新する」シナリオが出来あがりました。

連携フローの実行と確認

在庫数の変動が更新されることを確認するために、スマレジの在庫数を変更します。

起点となるCData コネクタからフローを実行してみます。アウトプットタブから「受信」を実行します。

フローの終点となるFTP コネクタのインプットタブを開き、ザイコロボのFTP Server ディレクトリへのアップロード成功を確認します。

(取込みが実行されるサイクルを少し待つと)ザイコロボの在庫数が更新されていることが確認できます。

ザイコロボにより、各ショップの在庫数が更新されていることが確認できます。この部分はザイコロボにお任せです。この記事ではショップが2つですが、連動すべきショップが多ければ多いほど便利さを感じますね。

シナリオの自動実行

CData ArcESB ではフローを定期実行するスケジューラ機能を持っています。今回のシナリオであれば「API 連携オプションを利用する」「FTP 連携オプションを利用する」の何れのパターンも、フローの起点となるCData コネクタの「オートメーション」タブで設定することができます。1時間に1度、毎時0分に定期実行する場合は、このように設定します。

おわりに

この記事では、ザイコロボ(zaiko Robot)と基幹システムやPOS システムなど外部との連携で、もっとも分かりやすい「在庫更新」のシナリオについて、API 連携・FTP 連携、それぞれの連携オプションを利用した自動化の方法を紹介しました。

ザイコロボ(zaiko Robot)のAPI 連携オプションやFTP 連携オプションでは、在庫情報(在庫更新)以外にも、受注や商品の情報も扱うことができます。API での連携、FTP での連携では同期のタイミングなど、連携仕様が少しずつ異なりますが、Web API での連携も、ファイルでの連携も得意なCData ArcESB なら、何れの方法で連携したい場合にも柔軟に対応することができます。

CData ArcESB はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。

皆さんのつなぎたいシナリオでぜひCData ArcESB を試してみてください。

www.arcesb.com

お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

www.cdata.com


この記事では CData ArcESB™ 2021 - 21.0.8126 を利用しています。