商品情報管理のシステム化アプローチ

2020.11.30  株式会社エクサ

商品情報管理(PIM:Product Information Management)システムに限った話ではありませんが、最近はクラウド化やマイクロサービス化など、システムを構築する際の選択肢が増えています。PIM製品ベンダーの至近のリリース内容を見ても、SaaSでの提供やクラウド連携を前提としたAPIの拡充などを進めていることがわかります。

そこで、今回は商品情報管理システムを構築する上でのアプローチと、その利点や注意点についてご紹介します。

商品情報管理システムの役割

商品情報管理システムは、「販促・マーケティングのための商品情報を管理するシステム」です。基幹システムで管理するマスターデータを取込み、顧客に提示する「商品情報」として"肉付け"してから顧客接点(チャネル)に配信する役割として、基幹システムとフロントエンドの間に位置します。

「商品情報」を取り扱うタイミングは各企業の業種・業態などによって様々ですが、BtoB企業では新製品の発売などのタイミングでまとめて追加・更新することが多いのではないかと考えます。この時に重視すべきことは、商品情報の一括登録・更新のための外部インターフェースや、画面上でも一括で更新できるような機能となります。

PIMシステムに格納した商品情報を各顧客接点に配信する機能では、連携先のサイトやシステムの要件に応じて連携対象を細かく指定できる機能や、データの一部を加工するといった機能が重要になります。

approach-for-pim01.jpg

PIMシステムには、MDM(Master Data Management, マスタデータ管理)のような「データを保管・管理」する役割よりも、「複数ソースの商品情報を集約・関連付け」して、「様々な配信先に連携」する役割が求められます。より多くの外部システムとの連携が求められるという点で、クラウド化やサービス化に適しているシステムといえます。

PIMシステムをクラウド化・サービス化する利点・注意点

ということで、PIMシステムを構築する際のクラウド化やサービス化の利点・注意点を考えていきます。なおここでは「クラウド化」は「IaaS/PaaS」、「サービス化」は、PaaS/SaaSをイメージしてください。

クラウド化の利点・注意点

PIMシステムをクラウド化する利点は、インフラの運用コストを低減できる点と、他のクラウドサービスとの接続しやすさという点が挙げられます。ECサイトのようにシビアなオートスケーリングの必要性があまりないため、オンプレミスと比較して特筆すべき優位性は見出しにくいですが、PIM製品が分散アーキテクチャをサポートしているのであればクラウド化の利点が活かせます。
例えば、SAP Commerce CloudではフロントGUI用やバックエンドプロセス用など、役割が異なるインスタンスを分散稼働できます。高負荷の際に必要なインスタンスを追加し、必要な時以外はインスタンスを停止しておくことで、利用コストを低減できるという利点が考えられます。ただし、構成や運用が複雑化するという懸念もありますので、その点は注意が必要です。
PIMシステムでは入出力の外部インターフェースを複数必要とすることが多いですが、クラウド化することで連携方式に制約が生じる場合があることについては注意が必要です。クラウド環境でPIMシステムを運用する場合は、他システムとの連携実現性がより重要になります。

サービス化の利点・注意点

インフラの観点は当然、サポート等も含めた全体的な運用容易性が利点として挙げられます。バージョンアップやパッチ適用、バックアップなど、通常の運用業務までアウトソースできるので、「PIMを使う」ことに注力できます。
注意点としては、PIM製品によっては設定やカスタマイズに制限が設けられている場合や、外部インターフェースに制約が生じるということがあげられます。例えば自社独自開発のシステムとのインターフェースが特殊な方式になる場合、連携の際に中間にETLなどの仕組みを別途準備する必要が出てきたりします。
サービス化されているPIM製品を利用する場合、製品の機能の中で実現方法を検討していくアプローチが有効です。

個人的にはサービス化されて、かつ柔軟性・カスタマイズ性が高いといった感じのPIM製品の発展に期待していますが、現時点では要件に応じたオンプレミス/クラウド/サービスの選択が重要です。

外部インターフェースのシステム化アプローチ

続いて、ERPやECとの連携といった外部インターフェースに着目してシステム化のアプローチを考えてみましょう。

PIMシステムでは、外部インターフェースが要件やカスタマイズの肝になることが多くなります。PIMシステムにデータを提供する側のシステム(以下、連携元システム)にはERP、PIMシステムからデータを受領する側のシステム(以下、連携先システム)にはCMSやECパッケージなどがありますが、アプリケーションやベンダーによってインターフェース仕様が異なるため、この部分をどう実現するかはシステム化の大きな検討項目です。

一般的にデータ連携の実現方法は大きく3つに分けられます。

① プッシュ型

連携元システムがデータをプッシュ(押し出し)する方式です。対象の選定、データの整形、連携タイミングの制御などの処理を連携元システムが担います。連携先システムが直接受領できるインターフェースを持っているのであれば、そこにデータを流し込みます。

連携元システムでデータを収集・整形して連携先システムはそのまま取り込む、FTPサーバのイメージに近いです。


② プル型

連携先システムがデータをプル(引っ張る)する方式です。こちらは対象の選定、データの整形、連携タイミングの制御などの処理を連携先システムが担います。連携元システムがAPIやインターフェースを持っていて、そこからデータを取得できることが前提です。

連携先システムで条件を設定してデータを取得する、データベースへのクライアント接続がイメージに近いです。


③ 介在型

データを提供する側のシステムからのデータ取得と、受領する側のシステムへのデータ送信を、ETLツールのような中間部分に入るシステムを介して実行する方式です。

中間部分と連携元/先システムとは、上記①か②のどちらかの方式で連携します。

例えばETLツールの場合、連携元システムとはプル型、連携先システムとはプッシュ型で連携する方式が多いです。この場合、対象の選定、データの整形などの処理は主にこの中間部分が担います。

中間部分がファイルストレージの場合、連携元システムからデータをプッシュ型でファイルストレージに保管し、連携先システムからプル型で取得するという方式になります。この場合は、対象の選定やデータの整形などは連携元システムと連携先システムで分担することが多いため、仕様が変わる際には両方のシステムで改修が必要となる場合があります。


approach-for-pim02.jpg

3つのデータ連携の実現方法について説明しましたが、PIMシステムに当てはめて考えると、PIMシステムが連携先システムになる(=商品情報のインポート)場合と連携元システムになる(=商品情報のエクスポート)場合がありますが、いずれもプッシュ型だとシステム構成が簡潔です。さらには、ETLなどを介してPIMに取り込めるデータ形式で受け取り、PIMから出力できるデータ形式で渡すことができれば、PIM自体の保守性は上がります。
もちろん、カスタマイズの難易度や将来的な保守性も踏まえた検討も必要です。ここでは例として、2つの製品のPIM機能部分の外部インターフェースのシステム化アプローチについて紹介します。

SAP Commerce Cloud

SAP Commerce CloudのPCM(Product Content Management, PIM機能部分に相当)では、インポート/エクスポートの共通データフォーマットとして独自の「ImpEx」という形式をサポートしています。ImpExはCSV形式を基本としたデータフォーマットになりますが、データ制御用ヘッダや変数定義に加え、製品APIを使用したカスタムスクリプトを組み込むことができるため、プッシュ型でデータを取り込むだけでなく、プル型や部分的な介在型にも対応できます。ただし、若干特殊なフォーマットのため、使いこなすには特別なスキルが必要になります。

また、管理系のREST APIも充実していて、商品情報の登録・更新・削除などの操作が可能ですので、細かなデータ連携については外部のアプリケーションやシステムからAPIを使用する方法も有効です。

Contenserv

Contentservでは、「ActiveJob」という機能を使用して、プル型でのインポートとプッシュ型でのエクスポートで外部システムとの連携ができます。管理GUIでデータをマッピング・加工する機能もあるため、GUIでの設定だけで大体の連携処理に対応できます。ContentservではCSVやXMLなどの汎用的なフォーマットを広くサポートしているので、サポートしているフォーマットでデータを準備することができれば連携が極めて容易となります。

また、主要な製品とのコネクタを提供していますので、連携する外部システムによってはコネクタを利用することで短期間でのシステム連携が期待できます。

外部インターフェースについては、PIM製品毎の特徴やアーキテクチャに相違があるため、製品特性に応じた選択肢で検討する必要があります。エンジニアとしてはガッツリとカスタマイズしたいところですが、将来的な拡張などの足かせになる懸念があるので注意しましょう。

ユーザーインターフェースのシステム化アプローチ

商品情報の管理GUIについては、恐らくどの製品も一通りの機能を持ったGUIを提供していますので、それを使用するのが基本です。しかし、仕様や価格など、業務に必要な情報だけをシンプルに閲覧・編集したいというケースもあります。その場合にデータ操作用のAPIが提供されていれば、独自のスクリプトツールや専用GUIを開発して、ある業務に特化したコマンドや画面での操作が見込めます。最近では、データの登録・更新・削除機能もREST APIで提供されているケースが増えていますので、例えばPythonスクリプトでデータを加工してREST APIでPIMに投入するといったコマンドプログラムを作成するなど、GUIでの作業以外でも機能の実現性はより幅広くなっています。

APIで様々な操作ができれば、将来的に作業をRPAツールなどに置き換えることや、ローコードやノーコードの開発ツールと組み合わせて「英→仏翻訳担当専用GUI」といった業務に特化した自由度の高いGUIを提供することも可能ではないでしょうか。

商品情報管理システムを構築するにあたり

今回は商品情報管理のシステム化アプローチについて、インフラのクラウド化・サービス化と、外部システムとの連携、GUIについて紹介しました。実際にはシステム化のためにはそのほかにも様々な観点で検討する必要があります。弊社では、たくさんのお客様とともに商品情報の特性を分析して、PIMに取り込んで管理する仕組みを構築してきました。商品データの管理・活用についてお悩みの際は、ぜひエクサにご相談ください。

[Blog][Footer]【PIMコラム】商品情報管理(PIM)の必要性から プロジェクト成功の秘訣まで

RECENT POST「PIM」


商品情報管理のシステム化アプローチ