EC-CUBE4 Web APIの項目追加方法

EC-CUBE Advent Calendar 2021 13日目の記事です。

EC-CUBE4では外部システムと連携する時にお手軽な方法としてEC-CUBE Web APIというプラグインが存在しています。

www.ec-cube.net

EC-CUBE4 Web API プラグインの使い方はこちらを参考にしてください。

doc.ec-cube.net

EC-CUBEをカスタマイズして利用している方は、DBに項目を追加するカスタマイズも行っていると思いますが、API連携時に追加した項目を渡したい時はどうすれば良いかの説明をします。

方法はそのものズバリの説明が開発ドキュメントにあり、app/Plugin/Api/Resource/config/services.yamlに対して追加したEntityへ記述すれば可能です。

取得可能なデータの追加 - EC-CUBE4 Web API プラグイン

上記の方法でも良いのですが、プラグインに対して修正を行いたくない方は、下記の方法でも対応可能です。

まず、app/Customize/Resource/config配下にservices.yamlファイルを作成します。

ファイルを作成後以下のように内容を記述します。

  • app/Customize/Resource/config/services.yaml
services:
    custom.api.allow_list:
        class: ArrayObject
        tags: ['eccube.api.allow_list']
        arguments:
            - #
                Eccube\Entity\Order: ['sample1']
                Eccube\Entity\OrderItem: ['aaaaa', 'bbbb']

追加したい項目名を記述することで連携が可能となります。

custom.api.allow_list:と記述している箇所のcustomは何でも構いません。それ以外は変更する必要はありません。

開発ドキュメントには、

プラグインに許可リストが含まれない場合は、 Customize ディレクトリ以下の services.yaml でも定義できます。

と一文だけ記述されており、どのようにすれば良いのか説明が無かったので参考にしてください。