CData Software Blog

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

様々なアプリ・プロトコルとのスマレジ連携の実現(FTP~EC API)

f:id:sugimomoto:20200818184041p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。今回の記事ではスマレジの在庫連携という切り口で様々なアプリケーション・サービスのデータとの連携方法を紹介したいと思います。

様々なシステム・プロトコルとのスマレジ在庫連携

CData で提供している スマレジ Driverはスマレジに存在する様々なデータ(商品マスタや在庫、会員データ等)を参照・操作できるコネクタとして、様々なツールから利用できます。

https://www.cdata.com/jp/drivers/smaregi/

f:id:sugimomoto:20200818181853p:plain

そんなスマレジの連携に関して、一番多く相談を受けるケースが他システムとの商品マスタや在庫データの連携です。

例えば券売機や既存のレガシーなPOS・基幹システムからのデータ連携、

もしくは、Amazon Marketplace や YahooShopping などの ECモールや Shopify などのネットショップサービスとの連携もあります。

ここで最も問題になることは、ファイル連携にせよAPI連携にせよ「様々な規格・仕様をスマレジのAPIと摺り合わせていかなければいけない」という問題です。

f:id:sugimomoto:20200818182437p:plain

前者の場合には、まだAPIが未整備であることが多く、FTPなどのファイルサーバー経由でCSVXMLといったフォーマットのデータが受け渡されます。

後者の多くはAPIが提供されているケースがありますが、その仕様は多種多様です。認証方法からAPIリクエストの方法、レスポンスのフォーマット、データ構造、すべてのAPIでそれぞれ独自の仕様で提供されている部分を個別に調整し、スマレジAPIに繋げなければいけません。

様々な「業界スタンダード」の話は持ち上がりますが、残念ながら現状デファクトスタンダードといえるような規格・プロトコルは無いのが実情です。レガシーな部分だけでなく、APIがあったとしても「API=簡単に連携できる」というわけではないことがわかります。

f:id:sugimomoto:20200818181900p:plain

そんな様々なプロトコル、ファイルフォーマット、そしてAPIの各種仕様が入り乱れる中で「データ連携」にうまく取り組むためには、各サービスの間に規格・プロトコルを仲介する役割を持つ製品を挟むことがベストです。

この記事では、その仲介役を担うETL/EAI製品である「ArcESB」と「スマレジ CData Driver」を使って様々なシステムとスマレジの在庫データを連携する方法を紹介したいと思います。

ArcESB とは?

ArcESB はETL/EAIなどのデータ連携やEDIなどの企業間での各種取引情報連携を実現できるWebアプリケーションです。

www.arcesb.com

f:id:sugimomoto:20200818181910p:plain

100を超えるファイルフォーマット、アプリケーション、プロトコルの連携をノーコードで実現することができるプラットフォームとなっていて、様々な仕様・データ・フォーマット・APIの仲介役として活用できます。

f:id:sugimomoto:20200818181928p:plain

また、CDataが提供する各種SaaS用コネクタも利用することができ、スマレジはもちろん、Amazon MarketplaceやYahooShoppingなどのEC系への連携も柔軟に対応することができます。

f:id:sugimomoto:20200818184555p:plain

今回はこのArcESB と CData Smaregi ADO.NET Providerを組み合わせて、在庫連携を行います。

今回使用するもの

以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されていますので、是非試してみてください。

FTPなどでのMFTによる在庫連携パターン

まず FTPサーバーにアップされているCSVからデータを取得し、スマレジの在庫情報を自動的に更新することを想定したフローの作成方法を紹介します。

f:id:sugimomoto:20200311230931p:plain

今回は FTP サーバーへの接続を想定していますが、ArcESBではFTP以外にも様々なクラウドストレージサービスやファイルフォーマット、EDIのプロトコルに対応したコネクターを提供しています。

f:id:sugimomoto:20200818181944p:plain

これらコネクタはすべてローコーディングで実装ができるようになっており、ユーザーがそのプロトコルクラウドストレージのAPIを意識することなく、スマレジへデータ連携を行えるようになっています。

f:id:sugimomoto:20200818181956p:plain

まず最初にFTPサーバーに接続するコネクタを配置します。今回はローカルホストにFTPサーバーを構成し、CSVファイルが配置された想定で設定しています。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/ftp1.gif

続いてスマレジへ在庫データを更新するためのコネクタを配置します。API接続用のトークンをこちらの手順を元に取得しておき、設定するだけでスマレジAPIへの接続、設定が完了できます。

対象となるテーブルには在庫情報を管理している「Stocks」を選択します。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/ftp2.gif

最後にFTP経由で取得できるCSVファイルとスマレジの在庫情報の項目を紐付けます。これでデータ連携の設定は完了です。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/ftp3.gif

実際に動かしてみると、以下のようにスマレジのデータがFTP経由で取得したCSVを元に更新されます。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/ftp4.gif

もちろん定期的にデータを取得する設定も可能ですし、Webhookなどを元に処理を実行することも可能です。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/automation.gif

API による連携パターン

続いて API による在庫連携の方法を紹介します。

先程スマレジの連携部分をコネクタを介することで実現したように、スマレジ以外にAPIにもCData Driverを組み合わせることで、ArcESBは対応できるようになっています。

f:id:sugimomoto:20200818183815p:plain

今回は一例として Amazon Marketplace の受注情報を元にスマレジの在庫を更新する方法を紹介します。

f:id:sugimomoto:20200818183823p:plain

まず Amazon Marketplace への接続を構成します。スマレジと同様に、Amazon Marketplaceへの接続情報を入力するだけで、Amazon Marketplace の複雑なAPIを意識することなく、各種データが取得できるようになります。

今回は注文明細のデータを取得するように設定しました。実際には日付指定などで最新のものを取得すると良いでしょう。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/amazonmarketplace1.gif

次に連携先のスマレジコネクタを配置します。こちらは先程のFTPの手順と同様です。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/amazonmarketplace2.gif

最後にAmazon Marketplaceの注文データとスマレジの在庫データの項目をマッピングします。これで連携の構成は完了します。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/amazonmarketplace3.gif

設定が完了したら、実際に動かしてみましょう。Amazon Marketplaceから取得したデータを元に在庫データが更新されています。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/amazonmarketplace4.gif

Amazon MarketplaceとスマレジのAPIはかなり仕様が違うAPIとなっていて、データ構造もXMLJSON形式だったりしますが、仲介するアプリケーションを挟むことで、柔軟にデータ連携を実現できることがイメージできたのではないかと思います。

ArcESBをマイクロサービスとして活用

今回はArcESB単体での動作をベースとして紹介しましたが、ArcESB は Webhook コネクタや管理用APIを活用することで、マイクロサービスのように社内のアプリケーションの一つの部品としても利用することができるようになっています。

Webhookコネクタを配置すれば、受け取った値を元に後続の処理を実行することができます。

f:id:sugimomoto:20200818184902p:plain

管理用APIでは、フローや各種コネクションの構成を行うことや

f:id:sugimomoto:20200818185020p:plain

直接フローをAPI経由で実行することも可能です。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/ArcESBSmaregi/api.gif

おわりに

今回は在庫連携という切り口でお伝えしましたが、在庫だけでなく受注情報や出荷情報、EDIや基幹システムのデータもスマレジへ連携することが可能です。

是非様々なシナリオとサービスで ArcESBとスマレジコネクタを活用してみてください。