Open Source PIMのAkeneo PIM Community Editionのインストールと日本語化と概要説明

2021.05.18

PIM製品で試しやすいものがないか探しておりましたところ、Akeneo PIM Community Editionを知りました。 ローカル環境でセットアップして触ってみましたので、それについて書いていきたいと思います。

PIM(商品情報管理)とは

オムニチャネルを実現するために商品マスタを整備して、それを各チャネルで展開していくことが必要ですが、それぞれが必要とする商品マスタの元ネタは基幹システムで保持していることがあります。その場合、基幹システムで保持している情報が各チャネル向けではなく、データ変換や加工処理が必要になることがあります。その他には、商品マスタを構成する情報を保持しているのが基幹システム以外にもあり、それぞれからデータを集めてきて取り込む場合があります。

PIMは、基幹システム等と各チャネルの間に位置して商品情報を管理します。PIMで管理する商品情報はECやアプリ、カタログサイトなどの各チャネルへ配信されます。

図は https://docs.akeneo.com/latest/index.html より引用

akeneoとは

akeneoとは、PIM(Product Information Management)製品名であり、それを開発している企業名でもあります。オープンソース版であるCommunity Editionの他に、商用版としてSaas版のGrowth EditionとSaas/Paas版のEnterprise Editionを提供しております。 各エディションの比較表はこちらにございます。

https://www.akeneo.com/ より引用

Akeneo PIM Community Editionのインストール

今回はローカル環境で試すだけなので、Docker環境でのインストール手順を実施いたしました。実施した内容は公式マニュアルに記載の通りなのですが、ハマったところを補足いたします。

ハマったところ

yarnのインストールでタイムアウトエラーが出た

akeneo PIMのプロジェクトルートに .yarnrc を作成して、タイムアウト値を長く設定しました。

vi .yarnrc
network-timeout 3600000

ビルドプロセスが途中で終了する

このようなエラーが出たのですが、私の場合はDockerの割り当てメモリが少なかったようです。 増やしたところエラーが出なくなりました。

yarn run v1.22.5
$ yarn requirements && yarn generate-models && NODE_PATH=node_modules webpack --config $npm_package_config_source/webpack.config.js
$ node $npm_package_config_source/frontend/build/check-requirements.js
Checking PIM frontend requirements
$ yarn --cwd=node_modules/@akeneo-pim-community/communication-channel generate-models
$ node $npm_package_config_generate_models_script src/definitions/ src/models/
Starting webpack from /srv/pim in dev mode
Killed
error Command failed with exit code 137.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: 137
make[2]: *** [javascript-dev] Error 137
make[1]: *** [pim-dev] Error 2
make: *** [dev] Error 2

akeneo PIMが起動しない

akeneo PIMのアプリケーションの .env を確認したところ下記のようになっておりました。

APP_DATABASE_HOST=mysql
APP_DATABASE_PORT=null
APP_DATABASE_NAME=akeneo_pim
APP_DATABASE_USER=akeneo_pim
APP_DATABASE_PASSWORD=akeneo_pim
APP_DEFAULT_LOCALE=en
APP_SECRET=ThisTokenIsNotSoSecretChangeIt
APP_INDEX_HOSTS=elasticsearch:9200

そのため、 docker-compose.yml で設定しているポートを変更いたしました。

MySQLの場合
    ports:
      - '${DOCKER_PORT_MYSQL:-3306}:3306'
Elasticsearchの場合
    ports:
      - '${DOCKER_PORT_ELASTICSEARCH:-9200}:9200'

Akeneo PIMの概要

ログイン

インストール後は http://localhost:8080 でアクセスできます。デフォルトの管理者ユーザーは、 admin / admin でログインできます。

ダッシュボード

各種データ件数(商品数、チャネル数など)など、Akeneo PIMの状態を表す情報が表示されております。

商品情報

PIMのメインとなる機能です。

商品情報の項目は 属性属性グループファミリー に関連します。これらを設定することで商品情報の項目として定義できるようになります。

商品はカテゴリに紐付けすることができます。1つの商品を複数のカテゴリに所属させることができます。

関連タイプ(Associations)は、商品をグループ化する場合に使用します。

文字情報をコメントとして登録できます。

商品情報の更新履歴として、 更新者更新前の情報更新後の情報 が記録されます。

インポート、エクスポート

CSVファイルによるデータインポートができます。

CSVファイルによるデータインポートができます。

設定 / 属性

属性とは商品情報の各項目のデータ型、入力ルールなどを設定するものです。

属性ごとに制御項目を設定できます。

指定された値から選択する項目の場合は、選択対象の値を登録できます。

属性の名称を翻訳設定ができます。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / 属性グループ

属性グループは属性をグループ単位に束ねるものです。

属性グループの名称を翻訳設定ができます。

属性グループの含める属性をメンテナンスできます。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / カテゴリ

カテゴリは商品を集約して管理するためのものです。階層構造で管理できます。

カテゴリの名称を翻訳設定ができます。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / ファミリー

ファミリーは、属性を束ねたものです。RDBでいうところのテーブルに相当するもので、CMSでいうところのコンテンツモデルのようなものです。akaneoの場合は商品情報の入力テンプレートのようなものだと言えます。

ファミリーの名称を翻訳設定ができます。

ファミリーに束ねる属性を設定できます。属性はチャンネルごとに必須、任意項目の設定ができます。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / グループタイプ

グループを作成するには、グループタイプが必要です。

設定 / グループ

グループは、商品をまとめるために使用するものです。選択した商品のすべての商品をグループ化して、テーマを作成できます。たとえば、「●●特集」といった商品のコレクションです。

グループの名称を翻訳設定ができます。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / 関連タイプ

商品同士を紐づける場合に設定します。マニュアルによると下記パターンがあるようです。

3つの異なる関連付けタイプがあります。

一方向の関連付け(製品Aが製品Bに関連付けられている場合)

双方向の関連付け(製品Aが製品Bに関連付けられている場合、製品Bは自動的に製品Aに関連付けられます)

数量との関連付け(製品Aが2つの数量の製品Bと3つの数量の製品Cに関連付けられている場合)

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

設定 / 測定

長さや重さなどの測定単位を管理できます。

設定 / 通貨

通貨の管理ができます。

設定 / ロケール

デフォルトでは de_DEen_USfr_FR が有効になっております。日本語の ja_JP も追加可能です。画面上の説明に To enable or disable a locale, go to one of your channels and add or remove a locale. とありますので、チャンネル設定をすると日本語が有効になります。

設定 / チャンネル

デフォルトでは EcommerceMobilePrint が登録されております。自由に追加することが可能で、チャンネルごとに商品情報の項目に対して必須、任意の設定が可能です。チャンネルごとに必要な商品情報の項目を管理できることは良いですが、制御できるのは入力が必須か任意かということで、商品情報の項目自体は各チャネルで共通になります。

変更履歴が管理されます。変更ごとに変更内容を含めて管理されます。

システム

システムメニューでは、ユーザー管理、ユーザーロール管理、akeneoとのコネクターの管理などを行うことができます。

例えばユーザーロール管理では、リソースごとにCRUD設定ができるようになっております。

Akeneo PIMの日本語化

インタフェースの日本語化

System > Configulation > Localization を選択して LangulageJapanese (japan) にします。

画面右上のユーザー設定のアイコン(akeneoのマスコットキャラクターはヒドラのようです)を選択し、

メニューの My Account を選択します。

Interfaces を選択し、 Japanese (Japan) を選択します。

設定を保存すると、ヒドラが箱にしまわれる画面になるので、しばらく待ちます。

日本語表示になりました!

通貨、チャネル、ロケールの日本語化

設定 > 通貨 を選択します。検索ボックスに jpy と入力して日本円の行の右上側のスイッチボタンをクリックします。

図のように アクティブ になったことを確認します。これで通貨の設定に日本円を使えるようになりました。

設定 > チャンネル を選択します。チャンネル(Channel)が表示されますので、任意のものを選択します。

ロケール日本語(日本) を選択します。

通貨JPY を選択します。

試しに商品情報を表示してみると、ロケールに日本語が追加されております。チャンネルごとに日本語、日本円を有効にした場合は、どのチャンネルでも日本語情報を設定できるようになります。

補足

日本語表示にしたことで、画面レイアウトが崩れるところがありましたので、そのへんについてはCSSなりを調整する必要がありそうです。