カスタムの在庫数低下アクティビティの実装
このチュートリアルでは、 CommerceLowStockActivity インターフェイスを実装して、カスタムの在庫数低下アクティビティを追加する方法を示します。
在庫数低下アクティビティは、商品が設定された最小在庫数量を下回った場合に自動的に実行されるアクションです。 Liferay Commerceは、1つの デフォルトの在庫数低下アクティビティ を提供しています。これは、商品を非公開にすることです。
概要
サンプルをデプロイする
このセクションでは、在庫数低下アクティビティをLiferay Commerceのインスタンスで実行する例を示します。
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.120-ga120。
http://localhost:8080でLiferayへのサインインします。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更します。
次に、以下の手順に従います:
-
Acme Commerce Low Stock Activity をダウンロードし、解凍してください。.
curl https://resources.learn.liferay.com/commerce/latest/en/developer-guide/managing-inventory/liferay-j1e4.zip -O
unzip liferay-j1e4.zip
-
サンプルをビルドしてデプロイします。
./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
noteこのコマンドは、デプロイされたjarをDockerコンテナの
/opt/liferay/osgi/modules
にコピーするのと同じです。 -
Dockerコンテナコンソールでデプロイを確認します。
STARTED com.acme.j1e4.impl_1.0.0
-
サンプルの在庫数低下アクティビティが追加されたことを確認します。 ブラウザで
https://localhost:8080
を開きます。 アプリケーションメニュー()をクリックし、 [コマース] → [商品] に移動します。 次に、任意の商品のメニュー内の [編集] をクリックします。 必要に応じて、 商品追加できます。そこから、 [設定] に移動します。 新しいアクティビティ(「ログ警告メッセージ」)が [Low Stock Action] ドロップダウンの下に表示されます。
Liferay Commerce 2.1以前のバージョンでは、[コントロールパネル] → [コマース] → *[商品]*に移動して商品ページを検索します。
これで、CommerceLowStockActivity
を実装する新しい在庫数低下アクティビティを正常に構築およびデプロイできました。
次に、詳細をさらに詳しく見ていきましょう。
サンプルの説明
このセクションでは、デプロイしたサンプルについて確認します。 最初に、OSGi登録用のクラスに注釈を付けます。 次に、CommerceLowStockActivity
インターフェイスを確認します。 最後に、CommerceLowStockActivity
の実装を完了します。
OSGi登録用のクラスに注釈を付ける
@Component(
property = {
"commerce.low.stock.activity.key=j1e4",
"commerce.low.stock.activity.priority:Integer=9"
},
service = CommerceLowStockActivity.class
)
public class J1E4CommerceLowStockActivity implements CommerceLowStockActivity {
Liferay Commerceが 在庫数低下アクティビティレジストリ で新しいアクティビティを他のアクティビティと区別できるように、在庫数低下アクティビティ個別のキーを提供することが重要です。 すでに使用されているキーを再利用すると、既存の関連付けられているアクティビティが上書きされます。
commerce.low.stock.activity.priority
値は、在庫数低下アクティビティのリストでこのアクティビティがUIに表示される範囲を示します。 例えば、 “未公開として設定” アクティビティ の値は10です。 作成した在庫数低下アクティビティの値を9にすると、"未公開として設定"アクティビティの直前に表示されます。
CommerceLowStockActivity
インターフェイスを確認する
次のメソッドを実装します。
public void execute(CPInstance cpInstance) throws PortalException;
このメソッドでは、カスタムアクティビティのビジネスロジックが実装されます。
public String getKey();
これにより、在庫数低下アクティビティレジストリの在庫数低下アクティビティに一意の識別情報が提供されます。 このキーを使用して、レジストリから在庫数低下アクティビティを取得できます。
public String getLabel(Locale locale);
これは、在庫数低下アクティビティを説明するテキストラベルを返します。 言語キーでラベルを取得する際のリファレンスについては、 J1E4CommerceLowStockActivity.java の実装を参照してください。
在庫数低下アクティビティを完了する
在庫数低下アクティビティは、アクティビティ自体を実行するバックエンドロジックで構成されます。 以下を行います。
ビジネスロジックをexecute
に追加する
@Override
public void execute(CPInstance cpInstance) throws PortalException {
if (_log.isWarnEnabled()) {
_log.warn("SKU " + cpInstance.getSku());
}
}
この例では、Liferayのログに追加される警告メッセージを追加します。
cpInstance
オブジェクトには、在庫の少ないアイテムについて使用できる情報が含まれています。 この例では、警告メッセージに追加するアイテムのSKUを取得するために使用します。CPInstance
で使用できるその他のメソッドは、 CPInstance および CPInstanceModel を参照してください。
言語キーをLanguage.properties
に追加する
モジュール内の Language.properties ファイルに言語キーとその値を追加します。
j1e4-commerce-low-stock-activity=J1E4 Commerce Low Stock Activity
詳細は、 アプリケーションのローカライズ を参照してください。
まとめ
CommerceLowStockActivity
インターフェイスを実装するための基本を理解し、Liferay Commerceに新しい在庫数低下アクティビティを追加しました。