oo

4.0 旧バージョンと非互換の変更

本ドキュメントは、Commerce 4.0 において、既存の機能、API、サードパーティの Liferay Commerce 開発者やユーザーとの契約を破壊する変更点を時系列で紹介します。 私たちはこれらの混乱を最小限にするために最善を尽くしていますが、時には避けられないこともあります。

このファイルに記載されている変更の種類の一部を次に示します。

  • 削除または置換される機能

  • 旧バージョンと非互換の変更:パブリックJavaまたはJavaScript APIの変更

  • テンプレートで利用可能なコンテキスト変数の変更

  • Liferayテーマおよびポートレットで利用可能なCSSクラスの変更

  • 設定の変更。 com.liferay.commerce.*.cfg などの設定ファイルの変更。

  • 実行要件。Javaバージョン、JEEバージョン、ブラウザバージョンなど。

  • 非推奨またはサポート終了:たとえば、次のバージョンで特定の機能またはAPIが停止されると警告している

  • 推奨事項:たとえば、後方互換性のためにLiferay Portalに古いAPIが保持されているにもかかわらず、古いAPIに代わる、新しく導入されたAPIを使用することを推奨している

宛先名の変更

変更点

プレフィックス commerce_com.liferay.commerce.constants.CommerceDestinationNamesで定義された Commerceの宛先に追加されました。

  • liferay/commerce_order_status;

  • liferay/commerce_payment_status;

  • liferay/commerce_order_status;

  • liferay/commerce_payment_status;

  • liferay/commerce_subscription_status.

影響を受ける人

これらの目的地を参照または使用するすべての人。

コードの更新方法

Commerce デスティネーションへの明示的な参照をすべて新しい名前に更新します。

変更が行われた理由

この変更により、Liferay のcommerceデスティネーションの命名パターンが導入されます。

宛先名の変更

変更点

externalReferenceCode を参照するメソッドの再整理.

メソッドを更新したクラス。

  • com.liferay.commerce.inventory.service.CommerceInventoryWarehouseLocalService

  • com.liferay.commerce.inventory.service.CommerceInventoryWarehouseService

  • com.liferay.commerce.price.list.service.CommercePriceEntryLocalService

  • com.liferay.commerce.price.list.service.CommercePriceEntryService

  • com.liferay.commerce.price.list.service.CommercePriceListLocalService

  • com.liferay.commerce.price.list.service.CommercePriceListService

  • com.liferay.commerce.price.list.service.CommerceTierPriceEntryLocalService

  • com.liferay.commerce.price.list.service.CommerceTierPriceEntryService

  • com.liferay.commerce.pricing.service.CommercePriceModifierLocalService

  • com.liferay.commerce.pricing.service.CommercePriceModifierService

  • com.liferay.commerce.pricing.service.CommercePricingClassLocalService

  • com.liferay.commerce.pricing.service.CommercePricingClassService

  • com.liferay.commerce.product.service.CommerceCatalogLocalService

  • com.liferay.commerce.product.service.CommerceCatalogService

  • com.liferay.commerce.product.service.CommerceChannelLocalService

  • com.liferay.commerce.product.service.CommerceChannelService

  • com.liferay.commerce.product.service.CPAttachmentFileEntryLocalService

  • com.liferay.commerce.product.service.CPAttachmentFileEntryService

  • com.liferay.commerce.product.service.CPDefinitionLocalService

  • com.liferay.commerce.product.service.CPDefinitionService

  • com.liferay.commerce.product.service.CPInstanceLocalService

  • com.liferay.commerce.product.service.CPInstanceService

  • com.liferay.commerce.product.service.CPOptionLocalService

  • com.liferay.commerce.product.service.CPOptionService

  • com.liferay.commerce.product.service.CPOptionValueLocalService

  • com.liferay.commerce.product.service.CPOptionValueService

  • com.liferay.commerce.product.service.CProductLocalService

  • com.liferay.commerce.product.service.CProductService

  • com.liferay.commerce.service.CommerceAddressLocalService

  • com.liferay.commerce.service.CommerceAddressService

  • com.liferay.commerce.service.CommerceOrderItemLocalService

  • com.liferay.commerce.service.CommerceOrderItemService

  • com.liferay.commerce.service.CommerceOrderLocalService

  • com.liferay.commerce.service.CommerceOrderNoteLocalService

  • com.liferay.commerce.service.CommerceOrderNoteService

  • com.liferay.commerce.service.CommerceOrderService

影響を受ける人

これらのクラスからメソッドを参照または使用する人。

コードの更新方法

対応する新しいメソッドを使用するようにメソッドを更新します。

変更が行われた理由

この変更は、Liferay のソースフォーマットに従うために導入されました。

ミニカートコンポーネントの拡張性

変更点

  • MiniCart TagとFE React Componentは、そのコンポーネントビューとラベルの部分的および全体的な置き換えをサポートし、その機能の一部を標準のタグ属性、またはJS実装の直接インポートによって設定できるように拡張されています。

    • 公開されている MiniCartTag の属性が変更されました。

    • commerce-frontend-js モジュールは、そのコンテンツ(特に MiniCartContext MiniCart の統合に必要)へのアクセスや公開を制御できるように、適切なインターフェイスで公開されるようになりました。

    • MiniCartコンポーネントのユーザビリティと拡張性については、こちらのドキュメント( に記載されています。

影響を受ける人

古い MiniCartTagに依存している開発者、または拡張している開発者。

なぜこの変更が行われたのですか?

Liferay DXP 標準との整合性により、コンポーネントの拡張性をサポートします。

CommerceCountry と CommerceRegion が削除されました。

  • 日付: 2021年3月02日

  • JIRAチケット: LPS-125991

変更点

  • CommerceCountry および CommerceRegion テーブルは、データベースから削除されました。

  • CommerceCountry および CommerceRegion のサービスおよび永続性クラスは削除されました。

  • com.liferay.commerce.model.CommerceCountry および com.liferay.commerce.model.CommerceRegion への参照は、 com.liferay.portal.kernel.model.Country および com.liferay.portal.kernel.model.Regionへ置き換わりました。

  • CommerceCountryCommerceRegion を参照する外部キーの名前が、 commerceCountryIdcommerceRegionId から、それぞれ countryIdregionId に変更されました。 更新されたカラムを持つテーブルは

    • CommerceAddress

    • CommerceAddressRestriction

    • CommerceShippingFixedOptionRel

    • CommerceTaxFixedRateAddressRel

    • com.liferay.commerce.country.CommerceCountryManager が、Commerce 固有の国を取得するために追加されました。 利用できる方式は

    • getBillingCountries

    • getBillingCountriesByChannelId

    • getShippingCountries

    • getShippingCountriesByChannelId

    • getWarehouseCountries

影響を受ける人

これらのモデルおよびサービスを参照または使用するすべての人。

コードを更新するにはどうすればよいですか?

CommerceCountry および/または CommerceRegion への明示的な参照を、新しい対応するモデルおよびサービス に更新します。

なぜこの変更が行われたのですか?

この変更により、Liferay Portal の重複するモデルやサービスが削除されます。

ミニコンペアウィジェット+ミニコンペア コンポーネント

変更点

  • MiniCompare FEの実装をJSP/vanilla JavaScriptからReactに移行(in commerce-frontend-js)。 commerce-product-content-webにある同じJSPのソースから直接読み込まれます。

  • CP定義IDは、セッションを使用する代わりに、クッキーに保存され、最終的にクッキーから読み取られるようになりました。

  • CompareCheckboxTag を JSP 経由でレンダリングするようにリファクタリングしました。 JSP は順番に、 CompareCheckbox React コンポーネントをレンダリングします。

    • Deprecated and removed 古い Soy/MetalJS の実装である CompareCheckbox in commerce-frontend-taglib モジュールを削除しました。

影響を受ける人

MiniCompareコンポーネント/ウィジェットの古い実装に依存している開発者、または拡張している開発者。

なぜこの変更が行われたのですか?

  • Soy/MetalJSの非推奨に伴い

  • Liferay DXPと連携し、Liferay Classic ThemeをCommerceでサポートし、将来のDXP WEM統合への道を開くこと。

アカウントセレクターを刷新

変更点

  • AccountSelectorTag をJSPでレンダリングし、 IncludeTagから拡張するようにリファクタリングしました。 JSP は、Soy/MetalJS から移行した AccountSelector React コンポーネントをハイドレートしてレンダリングしています。

  • Commerce Headless API を介して実行時のライフサイクルで伝達される Account/Order の変更について、他のコンポーネントに通知するイベント名を変更しました。

影響を受ける人

旧Soy/MetalJSコンポーネントとその関連Tagに依存または拡張している開発者の方。

なぜこの変更が行われたのですか?

  • Soy/MetalJSの非推奨に伴い

  • Liferay DXPと連携し、Liferay Classic ThemeをCommerceでサポートし、将来のDXP WEM統合への道を開くこと。

ストアフロントにおける商品カードと商品レンダリング戦略

変更点

  • 商品カードコンポーネントをJSPテンプレートに移植し、商品情報を表示するようにしました。 CPContentListRendererCPContentListEntryRendererを介してハイドレーションとレンダリングを行います。

    • Product Publisher、Search Results、Compare ウィジェットで、これらのレンダリング方法が使用されるようになりました。

    • Commerce Theme Minium Site Initializer が、これらのレンダリング戦略を使用するように設定されました。

    • この実装は現在 commerce-product-content-web モジュールにあり、 CPContentRenderer override, JSP override, または Liferay Dynamic Include によって拡張可能になっています。

    • Deprecated and removed 古い Soy/MetalJS の実装である commerce-frontend-taglib モジュールの Product Card は、 deprecated and removed となりました。

    • 古い Minium 専用 CPContentRenderer’s in commerce-theme-minium-impl module has been deprecated and removed …。

  • AddToCartTag をJSP経由でレンダリングするようにリファクタリングし、現在は IncludeTagから継承しています。 JSP は順番に、 AddToCart React コンポーネントをレンダリングし、 QuantitySelector React コンポーネントもレンダリングします。

    • Deprecated and removed 古い Soy/MetalJS の実装である AddToCartButton in commerce-frontend-taglib モジュールを削除しました。

    • 非推奨commerce-frontend-taglib モジュールにある QuantitySelector の古い Soy/MetalJS の実装を削除しました。

    • 非推奨削除 古い QuantitySelectorTagcommerce-frontend-taglib モジュールで削除しました。

  • PriceTag は、JSPでレンダリングするようにリファクタリングされ、現在は IncludeTagから継承されています。 JSPは、正しく構造化されたテンプレート(SEO対策用)と、最終的に(ユーザーページの着地用) Price Reactコンポーネントの両方をレンダリングします。

    • 非推奨 と を削除 commerce-frontend-taglib モジュールにある 価格 の古い Soy/MetalJS の実装を削除しました。

影響を受ける人

開発者が依存している、または拡張している。

  • commerce-theme-minium-implの Minium 専用の CP コンテンツレンダラー。

  • Soy/MetalJS AddToCartTagAddToCartButton*.

  • Soy/MetalJS QuantitySelectorTagQuantitySelector*.

  • the Soy/MetalJS PriceTag and Price*.

変更が行われた理由

  • Soy/MetalJSの非推奨に伴い

  • Liferay DXPと連携し、Liferay Classic ThemeをCommerceでサポートし、将来のDXP WEM統合への道を開くこと。

ServiceImplクラスでAddOrUpdateとUpsertを使い分けるためのメソッド名の標準化

変更点

Commerce *ServiceImpl クラスのメソッドで upsert* という名前のものは、 addOrUpdate*という名前に変更されました。

影響を受ける人

*ServiceImpl upsert* のいずれかのメソッドを使用している開発者は、対応するメソッド addOrUpdate*を使用する必要があります。

なぜこの変更が行われたのですか?

この変更により、上記のメソッドにLiferayのソースフォーマットが導入されます。

BOM機能は、Shop by Diagram機能に置き換わりました。

変更点

Shop by Diagramは、BOM機能に代わるものです。 つまり、FolderとBOMの項目は存在せず、Diagramという新しい製品タイプが存在することになります。

影響を受ける人

ショップのためにダイアグラムを作成しなければならない商品スペシャリストは、ダイアグラム商品タイプで商品を作成する必要はありません。

なぜこの変更が行われたのですか?

この変更により、BOMの問題が修正され、スペアパーツのユースケースをより良く満たすことができるようになりました。

Accounts ウィジェットを削除し、Liferay Commerce のモジュールではなくなりました。

変更点

アカウントウィジェットは、commerceアカウントウィジェットを置き換えたものです。 既存のランニングシステム上のすべてのインスタンスが更新されました。

影響を受ける人

  • Commerce Accountウィジェットをカスタマイズしたり、サイトのイニシャライザーで使用したことのある開発者。

  • エンドユーザー(アカウントマネージャー)は、アカウントを管理するために別のウィジェットを使用することになります。

なぜこの変更が行われたのですか?

この変更は、Commerce AccountからAccountへの移行に合わせるために必要なものです。

CommerceOrderLocalServiceImpl をリファクタリングしました。

変更点

  • updateCommerceOrder メソッドのインスタンスが、4つから3つになりました。

  • updateCustomFields メソッドを削除しました。

  • updateOrderStatus メソッドを削除した。

  • updateTransactionId メソッドを削除しました。

  • updateUser メソッドを削除しました。

影響を受ける人

コード内でこれらのメソッドを呼び出している開発者の方。

コードを更新するにはどうすればよいですか?

  • 残りの 3 つの updateCommerceOrder メソッドをそのまま代用してください。

  • expandoBridgeAttributescommerceOrder.setExpandoBridgeAttributes(ServiceContext serviceContext) で設定した後に updateCommerceOrder(CommerceOrder commerceOrder) メソッドを使用して customFieldsを更新してください。

  • orderStatuscommerceOrder.setOrderStatus(int orderStatus) で設定した後に updateCommerceOrder(CommerceOrder) メソッドを使用して orderStatusを更新してください。

  • updateCommerceOrder(CommerceOrder commerceOrder) メソッドを使用し、 transactionIdcommerceOrder.setTransactionId(String transactionId) で設定後、 transactionIdを更新してください。

  • userIduserNamecommerceOrder.setUserId(long userId)commerceOrder.setUserName(String userName) で設定し、ユーザー情報を更新してから updateCommerceOrder(CommerceOrder) メソッドを使用してください。

なぜこの変更が行われたのですか?

この変更は、クラス CommerceOrderLocalServiceImplをすっきりさせるために導入されました。

commerce-service service.xml で CommerceOrder を絞り込む。

変更点

  • CommerceOrderLocalService および CommerceOrderServiceaddCommerceOrder メソッドのパラメーターの再調整を行いました。

  • CommerceOrderLocalService および CommerceOrderServiceにおける addOrUpdateCommerceOrder メソッドのパラメーターの再調整を行いました。

  • CommerceOrderLocalService および CommerceOrderServiceupdateCommerceOrder メソッドのパラメーターの再整理を行う。

  • CommerceOrderLocalService および CommerceOrderServiceupdateCommerceOrderPrices メソッドのパラメーターの再整理。

影響を受ける人

コード内でこれらのメソッドを呼び出している開発者の方。

コードを更新するにはどうすればよいですか?

  • パラメータが新しい addCommerceOrder メソッド(複数可)と正しく整合していることを確認する。

  • パラメータが新しい addOrUpdateCommerceOrder メソッド(複数可)と正しく整合していることを確認する。

  • パラメータが新しい updateCommerceOrder メソッド(複数可)と正しく整合していることを確認する。

  • パラメータが新しい updateCommerceOrderPrices メソッド(複数可)と正しく整合していることを確認する。

なぜこの変更が行われたのですか?

この変更により、 CommerceOrder in commerce-service service.xmlのエンティティがクリーンアップされました。

CPContentHelperとCPContentHelperImplをリファクタリングしました。

変更点

  • CPContentHelper.java および CPContentHelperImpl.javaのメソッドのシグネチャを変更しました。
    • getReplacementCommerceProductFriendlyURL(long cProductId, String cpIntanceUuid, ThemeDisplay themeDisplay) to getReplacementCommerceProductFriendlyURL(CPSku cpSku, ThemeDisplay themeDisplay)
  • getCPAttachmentFileEntries() メソッド CPContentHelper.java および CPContentHelperImpl.javagetCPMedias()へ改名しました。

影響を受ける人

これは、これらのメソッドをコード内で参照または使用している開発者に影響します。

コードを更新するにはどうすればよいですか?

上記の方法の参照や使用は、すべて新しい方法に置き換えてください。

なぜこの変更が行われたのですか?

メソッドは、可読性、一貫性、保守性を高めるためにリファクタリングされました。