4.0 旧バージョンと非互換の変更
このドキュメントでは、Commerce 4.0 で既存の機能、API、またはサードパーティの Liferay Commerce 開発者やユーザーとの契約に影響を及ぼす変更点を時系列で示します。 私たちはこれらの混乱を最小限にするために最善を尽くしていますが、時には避けられないこともあります。
このファイルに記載されている変更の種類の一部を次に示します。
-
削除または置換される機能
-
APIの非互換性:パブリックJavaまたはJavaScript APIの変更
-
テンプレートで利用可能なコンテキスト変数の変更
-
Liferayテーマおよびポートレットで利用可能なCSSクラスの変更
-
設定の変更:
com.liferay.commerce.*.cfgなどの設定ファイルの変更。 -
実行要件: Java バージョン、JEE バージョン、ブラウザ バージョンなど。
-
非推奨またはサポート終了:たとえば、次のバージョンで特定の機能またはAPIが停止されると警告している
-
推奨事項:たとえば、後方互換性のためにLiferay Portalに古いAPIが保持されているにもかかわらず、古いAPIに代わる、新しく導入されたAPIを使用することを推奨している
宛先名の変更
-
日付: 2020年9月10日
-
JIRA チケット: COMMERCE-4762
変更点
プレフィックス 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 の宛先への明示的な参照を新しい名前に更新します。
変更が行われた理由
この変更により、Commerce の宛先に Liferayの命名パターンが導入されます。
宛先名の変更
-
日付: 2021年2月22日
-
JIRA チケット: COMMERCE-4762
変更点
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 コンポーネントの拡張性
-
日付: 2021年2月12日
-
JIRA チケット: COMMERCE-4974
変更点
-
MiniCartタグと FE React コンポーネントは、コンポーネント ビューとラベルの部分的および全体的な置き換えをサポートするように拡張され、標準のタグ属性または JS 実装の直接インポートによって一部の機能を構成できるようになりました。-
公開された
MiniCartTag属性が変更されました。 -
commerce-frontend-jsモジュールが適切なインターフェースで公開され、そのコンテンツ (特に、MiniCart統合に必要なMiniCartContext) への制御されたアクセスと公開が可能になりました。 -
MiniCart コンポーネントの使いやすさと拡張性については、 こちらで説明されています。
-
影響を受ける人
古い MiniCartTagに依存または拡張している開発者。
変更が行われた理由
コンポーネントの拡張性をサポートするために Liferay DXP 標準に準拠しています。
CommerceCountry と CommerceRegion が削除されました
-
日付: 2021年3月2日
-
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に置き換えられました。 -
CommerceCountryとCommerceRegionを参照する外部キーの名前が、それぞれcommerceCountryIdとcommerceRegionIdからcountryIdとregionIdに変更されました。 更新された列を持つテーブルは-
CommerceAddress -
CommerceAddressRestriction -
CommerceShippingFixedOptionRel -
CommerceTaxFixedRateAddressRel -
com.liferay.commerce.country.CommerceCountryManagerは、Commerce固有の国を取得するために追加されます。 利用可能な方法は次のとおりです: -
getBillingCountries -
getBillingCountriesByChannelId -
getShippingCountries -
getShippingCountriesByChannelId -
getWarehouseCountries
-
影響を受ける人
これらのモデルやサービスを参照または使用するすべての人。
コードの更新方法
CommerceCountry および/または CommerceRegion への明示的な参照を、対応する新しいモデルとサービスに更新します。
変更が行われた理由
この変更により、Liferay Portal 内の重複したモデルとサービスが削除されます。
ミニ比較ウィジェット + ミニ比較コンポーネント
-
日付: 2021年3月26日
-
JIRA チケット: COMMERCE-2909
変更点
-
MiniCompareFE 実装を JSP/バニラ JavaScript から React に移行します (commerce-frontend-js内)。 これはcommerce-product-content-web内の同じ JSP ソースから直接ロードされます。 -
CP 定義 IDは、セッションを使用する代わりに、Cookie に保存され、最終的には Cookie から読み取られるようになりました。
-
CompareCheckboxTagをリファクタリングして、JSP 経由でレンダリングするようにしました。 次に、JSP はCompareCheckboxReact コンポーネントをレンダリングします。- 非推奨の および 削除
commerce-frontend-taglibモジュール内のCompareCheckboxの古い Soy/MetalJS 実装。
- 非推奨の および 削除
影響を受ける人
MiniCompare コンポーネント/ウィジェットの古い実装に依存または拡張している開発者。
変更が行われた理由
-
Soy/MetalJSの廃止により
-
Liferay DXP と連携して、Commerce で Liferay Classic テーマをサポートし、将来の DXP WEM 統合への道を開きます。
-# アカウントセレクターの改良
-
日付: 2021年4月27日
-
JIRA チケット: COMMERCE-5888
変更点
-
AccountSelectorTagをリファクタリングして、JSP 経由でレンダリングし、IncludeTagから拡張しました。 JSP は、Soy/MetalJS から移行されたAccountSelectorReact コンポーネントをハイドレートしてレンダリングします。 -
ランタイム ライフサイクル中に Commerce Headless API を介して通信されたアカウント/注文の変更について他のコンポーネントに通知するために、イベント名を変更しました。
影響を受ける人
古い Soy/MetalJS コンポーネントを関連タグを使用して依存または拡張する開発者。
変更が行われた理由
-
Soy/MetalJSの廃止により
-
Liferay DXP と連携して、Commerce で Liferay Classic テーマをサポートし、将来の DXP WEM 統合への道を開きます。
ストアフロントにおける商品カードと商品レンダリング戦略
-
日付: 2021年4月27日
-
JIRA チケット: COMMERCE-5889
変更点
-
製品カード コンポーネントが JSP テンプレートに移植され、製品情報が表示されるようになりました。 これは、
CPContentListRenderer→CPContentListEntryRendererを介してハイドレートおよびレンダリングされます。-
製品パブリッシャー、検索結果、比較ウィジェットでは、これらのレンダリング戦略が使用されるようになりました。
-
Commerce Theme Minium Site Initializer は、これらのレンダリング戦略を使用するように構成されました。
-
実装は現在、
commerce-product-content-webモジュール内に存在し、CPContentRendererオーバーライド、JSP オーバーライド、または Liferay Dynamic Include を通じて拡張可能です。 -
非推奨 および 削除
commerce-frontend-taglibモジュール内の商品カードの古い Soy/MetalJS 実装は 非推奨 となり 削除されました。 -
commerce-theme-minium-implモジュール内の古い Minium 固有のCPContentRendererは 非推奨 となり、 削除されました。
-
-
AddToCartTagを JSP 経由でレンダリングするようにリファクタリングし、IncludeTagから拡張するようになりました。 JSP は次に、AddToCartReact コンポーネント (QuantitySelectorReact コンポーネントを含む) をレンダリングします。-
非推奨の および 削除
commerce-frontend-taglibモジュール内のAddToCartButtonの古い Soy/MetalJS 実装。 -
非推奨の および 削除
commerce-frontend-taglibモジュール内のQuantitySelectorの古い Soy/MetalJS 実装。 -
非推奨の および 削除された 古い
QuantitySelectorTagcommerce-frontend-taglibモジュール。
-
-
PriceTagは、JSP 経由でレンダリングするようにリファクタリングされ、IncludeTagから拡張されるようになりました。 JSP は、正しく構造化されたテンプレート (SEO 目的) をレンダリングし、最終的にPriceReact コンポーネント (ユーザー ページ ランディング用) をレンダリングします。- 非推奨の および 削除
commerce-frontend-taglibモジュールのPriceの古い Soy/MetalJS 実装。
- 非推奨の および 削除
影響を受ける人
以下を依存または拡張する開発者:
-
commerce-theme-minium-implの Minium 固有の CP コンテンツ レンダラー -
Soy/MetalJS
AddToCartTagとAddToCartButton*。 -
Soy/MetalJS
QuantitySelectorTagとQuantitySelector*。 -
Soy/MetalJS の
PriceTagとPrice*です。
変更が行われた理由
-
Soy/MetalJSの廃止により
-
Liferay DXP と連携して、Commerce で Liferay Classic テーマをサポートし、将来の DXP WEM 統合への道を開きます。
*ServiceImpl クラスで AddOrUpdate と Upsert を使用するためにメソッド名を標準化する
-
日付: 2021年6月4日
-
JIRA チケット: COMMERCE-6095
変更点
Commerce *ServiceImpl クラス内の upsert* という名前のすべてのメソッドの名前が addOrUpdate*に変更されました。
影響を受ける人
いずれかの *ServiceImpl upsert* メソッドを使用している開発者は、対応するメソッド addOrUpdate*を使用する必要があります。
変更が行われた理由
この変更により、上記のメソッドに Liferayのソースフォーマットが導入されます。
BOM 機能は、図によるショップ機能に置き換えられました
-
日付: 2021年10月14日
-
JIRA チケット: COMMERCE-3030
変更点
Shop by Diagram は BOM 機能に代わるものです。 これは、エントリ フォルダーと BOM エントリが存在せず、ダイアグラムと呼ばれる新しい製品タイプが存在することを意味します。
影響を受ける人
店舗用にダイアグラムを作成しなければならない商品スペシャリストはダイアグラム商品タイプで商品を作成する必要はありません。
変更が行われた理由
この変更により、BOM の問題が修正され、スペアパーツの使用ケースがより適切に満たされます。
アカウントウィジェットを削除して、Liferay Commerceのモジュールではなくなるようにします。
-
日付: 2021 年 11 月 21 日
-
JIRA チケット: COMMERCE-7288
変更点
アカウント ウィジェットはコマース アカウント ウィジェットに代わるものです。 既存の実行中のシステム上のすべてのインスタンスが更新されました。
影響を受ける人
-
コマース アカウント ウィジェットをカスタマイズした開発者や、サイト初期化機能で使用した開発者。
-
別のウィジェットを使用してアカウントを管理するエンドユーザー (アカウント マネージャー)。
変更が行われた理由
この変更は、Commerce Account から Account への移行に準拠するために必要でした。
CommerceOrderLocalServiceImpl のリファクタリング
-
日付: 2022年2月16日
-
JIRA チケット: COMMERCE-8440
変更点
-
updateCommerceOrderメソッドのインスタンスは 4 つではなく 3 つだけになりました。 -
updateCustomFieldsメソッドを削除しました。 -
updateOrderStatusメソッドを削除しました。 -
updateTransactionIdメソッドを削除しました。 -
updateUserメソッドを削除しました。
影響を受ける人
コード内でこれらのメソッドのいずれかを呼び出している開発者。
コードの更新方法
-
残りの 3 つの
updateCommerceOrderメソッドを直接の代替として使用します。 -
カスタムフィールドを更新するには、commerceOrder.setExpandoBridgeAttributes(ServiceContext serviceContext)でexpandoBridgeAttributesを設定した後、updateCommerceOrder(CommerceOrder commerceOrder)メソッドを使用します。 -
オーダーステータスを更新するには、commerceOrder.setOrderStatus(int orderStatus)でオーダーステータスを設定した後、updateCommerceOrder(CommerceOrder commerceOrder)メソッドを使用します。 -
commerceOrder.setTransactionId(String transactionId)でtransactionIdを設定した後、updateCommerceOrder(CommerceOrder commerceOrder)メソッドを使用してtransactionIdを更新します。 -
ユーザー情報を更新するには、
commerceOrder.setUserId(long userId)およびcommerceOrder.setUserName(String userName)でuserIdおよびuserNameを設定した後、updateCommerceOrder(CommerceOrder commerceOrder)メソッドを使用します。
変更が行われた理由
この変更は、クラス CommerceOrderLocalServiceImplをクリーンアップするために導入されました。
commerce-service service.xml で CommerceOrder を絞り込む
-
日付: 2022年4月13日
-
JIRA チケット: COMMERCE-8408
変更点
-
addCommerceOrderメソッドのパラメータをCommerceOrderLocalServiceとCommerceOrderServiceで並べ替えます。 -
addOrUpdateCommerceOrderメソッドのパラメータをCommerceOrderLocalServiceとCommerceOrderServiceで並べ替えます。 -
updateCommerceOrderメソッドのパラメータをCommerceOrderLocalServiceおよびCommerceOrderService内で並べ替えます。 -
updateCommerceOrderPricesメソッドのパラメータをCommerceOrderLocalServiceおよびCommerceOrderServiceで並べ替えます。
影響を受ける人
コード内でこれらのメソッドのいずれかを呼び出している開発者。
コードの更新方法
-
パラメータが新しい
addCommerceOrderメソッドと正しく整合していることを確認します。 -
パラメータが新しい
addOrUpdateCommerceOrderメソッドと正しく整合していることを確認します。 -
パラメータが新しい
updateCommerceOrderメソッドと正しく整合していることを確認します。 -
パラメータが新しい
updateCommerceOrderPricesメソッドと正しく整合していることを確認します。
変更が行われた理由
この変更により、 commerce-service service.xml内のエンティティ CommerceOrder がクリーンアップされます。
CPContentHelper と CPContentHelperImpl をリファクタリングする
-
日付: 2021年12月16日
-
JIRA チケット: COMMERCE-7830
変更点
CPContentHelper.javaおよびCPContentHelperImpl.java内のメソッドのシグネチャの変更:getReplacementCommerceProductFriendlyURL(long cProductId, String cpIntanceUuid, ThemeDisplay themeDisplay)からgetReplacementCommerceProductFriendlyURL(CPSku cpSku, ThemeDisplay themeDisplay)
CPContentHelper.javaおよびCPContentHelperImpl.javaのgetCPAttachmentFileEntries()メソッドの名前をgetCPMedias()に変更。
影響を受ける人
これは、コード内でこれらのメソッドを参照または使用するすべての開発者に影響します。
コードの更新方法
上記のメソッドの参照と使用法を新しいものに置き換えます。
変更が行われた理由
メソッドは、読みやすさ、一貫性、保守性を向上させるためにリファクタリングされました。