Documentation

カスタムの在庫数低下アクティビティの実装

このチュートリアルでは、 CommerceLowStockActivity インターフェイスを実装して、カスタムの在庫数低下アクティビティを追加する方法を示します。

在庫数低下アクティビティは、商品が設定された最小在庫数量を下回った場合に自動的に実行されるアクションです。 Liferay Commerceは、1つの デフォルトの在庫数低下アクティビティ を提供しています。これは、商品を非公開にすることです。

すぐに使える在庫数低下アクティビティ

サンプルをデプロイする

このセクションでは、在庫数低下アクティビティをLiferay Commerceのインスタンスで実行する例を示します。

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.29-ga29。

http://localhost:8080でLiferayへのサインインします。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更します。

次に、以下の手順に従います。

  1. Acme Commerce Low Stock Activity をダウンロードし、解凍してください。

    curl https://learn.liferay.com/commerce/latest/ja/developer-guide/managing-inventory/liferay-j1e4.zip -O
    
    unzip liferay-j1e4.zip
    
  2. サンプルをビルドしてデプロイします。

    ./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
    

    注釈

    このコマンドは、デプロイされたjarをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。

  3. Dockerコンテナコンソールでデプロイを確認します。

    STARTED com.acme.j1e4.impl_1.0.0
    
  4. サンプルの在庫数低下アクティビティが追加されたことを確認します。 ブラウザでhttps://localhost:8080を開きます。 アプリケーションメニュー(Applications Menu)をクリックし、 [コマース] → [商品] に移動します。 次に、任意の商品のメニュー内の [編集] をクリックします。 必要に応じて、 商品追加できます。

    そこから、 [設定] に移動します。 新しいアクティビティ(「ログ警告メッセージ」)が [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.isWarn有効()) {
        _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に新しい在庫数低下アクティビティを追加しました。