Sales
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

新しい税エンジンの実装

このチュートリアルでは、 CommerceTaxEngine インターフェイスを実装して新しい税金エンジンを追加する方法を説明します。

税エンジンは、取引が行われるときに税金の計算を実行します。 Liferay Commerce には、固定税率用の FixedCommerceTaxEngine と、住所による税金計算用の ByAddressCommerceTaxEngine という 2 つのデフォルトの税金エンジンが用意されています。

すぐに使える税エンジン

概要

  1. サンプルをデプロイする
  2. サンプルの説明

サンプルをデプロイする

このセクションでは、Liferay Commerce のインスタンスでサンプルの税務エンジンを起動して実行します。

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

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

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

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

  1. Acme Commerce Tax Engineをダウンロードして解凍します。

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

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

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

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

    STARTED com.acme.q4b9.impl_1.0.0
    
  4. サンプルの税エンジンが追加されたことを確認します。 ブラウザでhttps://localhost:8080を開きます。 次に、アプリケーション メニュー (Applications Menu) をクリックし、 コマースチャネルに移動します。 新しいチャネルを編集します。 新しい税金エンジン (「Q4B9 Commerce Tax Engine」) がリストに表示されます。

Commerce 2.1 以前では、税金エンジンを見つけるには、 サイト管理コマース設定税金税金計算の順に移動します。

新しい税エンジン

これで、CommerceTaxEngineを実装する新しい税エンジンを正常にビルトおよびデプロイできました。

次に、詳細をさらに詳しく見ていきましょう。

サンプルの説明

このセクションでは、デプロイした例を確認します。 まず、OSGi 登録用のクラスにアノテーションを付けます。 次に、 CommerceTaxEngine インターフェースを確認します。 3 番目に、 CommerceTaxEngineの実装を完了します。

OSGi登録用のクラスに注釈を付ける

@Component(
   property = "commerce.tax.engine.key=q4b9", service = CommerceTaxEngine.class
)

Liferay Commerce が新しいエンジンを 税務エンジン レジストリ内の他のエンジンと区別できるように、税務エンジンに固有のキーを提供することが重要です。 すでに使用されているキーを再利用すると、既存の関連付けられている税金エンジンが上書きされます。

CommerceTaxEngineインターフェイスを確認する

次のメソッドを実装します。

public CommerceTaxValue getCommerceTaxValue(
      CommerceTaxCalculateRequest commerceTaxCalculateRequest)
   throws CommerceTaxEngineException;

このメソッドは、税金エンジンのビジネス ロジックが実装される場所です。 詳細については、 CommerceTaxValue を参照してください。

public String getDescription(Locale locale);

これは、税エンジンの簡単な説明を返します。 言語キーを使用して説明を取得する際のリファレンスについては、 liferay-q4b9.zip/q4b9-impl/src/main/java/com/acme/q4b9/internal/commerce/taxQ4B9CommerceTaxEngine.java クラスを参照してください。

public String getName(Locale locale);

これは、税エンジンの名前を返します。 このメソッドは、getDescriptionメソッドと同様に動作します。

税エンジンを完成させる

税エンジンは、税の計算を実行するロジックで構成されています。 以下を行います。

ビジネスロジックをgetCommerceTaxValueに追加する

@Override
public CommerceTaxValue getCommerceTaxValue(
      CommerceTaxCalculateRequest commerceTaxCalculateRequest)
   throws CommerceTaxEngineException {

   BigDecimal flatTaxValue = _ONE_POINT_FIVE_ZERO;

   if (commerceTaxCalculateRequest.isPercentage()) {
      flatTaxValue = _ONE_POINT_FIVE_ZERO.divide(new BigDecimal(100.0));

      flatTaxValue = flatTaxValue.multiply(
         commerceTaxCalculateRequest.getPrice());
   }

   return new CommerceTaxValue(
      "q4b9", "q4b9-commerce-tax-engine", flatTaxValue);
}

private static final BigDecimal _ONE_POINT_FIVE_ZERO = new BigDecimal(
   "1.50");

CommerceTaxCalculateRequestパラメータには、計算に必要な情報が含まれています。 この例では、CommerceTaxCalculateRequestからの価格と、レートをパーセンテージとして適用するかどうかを示す値を使用します。 CommerceTaxCalculateRequest で使用できるその他のメソッドについてはCommerceTaxCalculateRequest.javaを参照してください。

言語キーをLanguage.propertiesに追加する

モジュール内の liferay-q4b9.zip/q4b9-impl/src/main/resources/content にある Language.properties ファイルに言語キーとその値を追加します。

q4b9-commerce-tax-engine=Q4B9 Commerce Tax Engine
this-tax-engine-serves-a-fixed-x-percent-flat-tax-rate=This tax engine serves a fixed {0} percent flat tax rate.

詳細については、「 アプリケーションのローカライズ 」を参照してください。

さいごに

  CommerceTaxEngineインターフェイスを実装するための基本を理解し、Liferay Commerceに新しい税エンジンを追加しました。