その他のセキュリティ機能強化

このリリースのセキュリティの強化により、次のような最新のセキュリティのベストプラクティスへのコンプライアンスが向上しています。

  • 管理アクションログのギャップは、グリッドビュー、一括アクション、書き出しにおけるアクションのより具体的な監査で対処されました。

  • 支払い処理中に予期しないエラーが発生した場合に、チェックアウト中に reCAPTCHA 検証が失敗しなくなりました。 GitHub-35093

  • 管理者ユーザーがメールを変更したときにメール確認を要求する新しいシステム設定。 サイトの脆弱性を軽減するために、管理者ユーザーがメールを変更した際にメールで確認することを要求する新しいシステム設定(デフォルトでは無効)が追加されました(Stores/Settings:Configuration/Customers/Customer Configuration/Account Information Options/Require email confirmation if an email has been changed)。 このオプションを有効にすると、管理者ユーザーがメールアドレスを変更するたびに、アプリケーションからメールによる確認が要求されます。 この変更の影響を受けるモジュール:Magento_Customer

プラットフォームの機能強化

Adobe Commerce 2.4.6 では、PHP 8.2 がサポートされるようになりました。PHP 8.1 は引き続き完全にサポートされます。

PHP 7.4 のサポートは、このリリースから削除されました。 PHP 7.4 上でAdobe Commerce 2.4.6 を実行することはできません。

Adobe Commerce 2.4.6 で次がサポートされるようになりました。

  • Composer 2.2.xComposer 1.x は削除されました。

  • Redis 7.0.xRedis 6.2 との互換性は残りますが、Redis 6.2 は 2024 年に提供終了になる予定なので、このリリースを Redis 7.0.x と共にデプロイすることをお勧めします。

  • OpenSearch が、Adobe Commerceのオンプレミスおよびクラウドデプロイメントのデフォルトの検索エンジンとしてサポートされるようになりました。 Magento Open Sourceの独立した検索エンジンとしてサポートされています。 このリリースは OpenSearch v2.x をサポートしており、OpenSearch 2.5 でテストされています。OpenSearch 1.x との互換性は残りますが、このリリースを OpenSearch 2.x で使用することをお勧めします。OpenSearch 2.x を使用して、Adobe CommerceおよびMagento Open Source 2.4.6 を Cloud とオンプレミスの両方にインストールして実行できます 検索エンジンの前提条件

  • Elasticsearch 8.xElasticsearchのアップグレードを参照してください。

  • MariaDB 10.6 (LTS バージョン)。 このリリースはまだ MariaDB 10.4 と互換性がありますが、MariaDB 10.6 にアップグレードすることをお勧めします。

その他のアップグレードと交換

  • DHL スキーマは v6.2 から v10.0 に移行されました。

  • 古いJavaScript ライブラリを最新バージョンに更新し、古い依存関係を削除しました。 これらの変更には後方互換性があります。

  • PHP 7.4 との互換性は、Commerce コードベースから削除されました。

  • Symfony 依存関係が新しい LTS バージョンにアップグレードされました。 依存関係は次のとおりです。

    • friendsofphp/php-cs-fixer
    • symfony/console
    • symfony/event-dispatcher
    • symfony/finder
    • symfony/process
    • web-token/jwt-framework
  • jquery-migrate はCommerce コードベースから削除されました。 GitHub-21406

  • jQuery/fileUpload ライブラリを v10.32 にアップグレードしました。

  • 提供終了に達した Zend フレームワーク (ZF1) コンポーネントは、コードベースから削除されました。 後方互換性のない変更のハイライトを参照してください。

  • Laminas の依存関係は PHP 8.2 をサポートするように更新されました。

  • laminas/laminas-dependency-plugin Composer プラグインが削除されました。 GitHub-36515

  • Zend_Filterlaminas/laminas-filter に置き換えました。

  • web-token/jwt-framework を v3.0.5 にアップグレードしました。 (最新バージョン)

  • allure-framework/allure-phpunit を v2.x にアップグレードしました。

  • Chart-js ライブラリを v3.9.1 にアップグレードしました。

パフォーマンスと拡張性の強化

  • 多くのお客様のセグメントに影響を与える操作のパフォーマンスが向上。 マーチャントは、新しい設定を有効にすることで、100 を超える顧客セグメントを含む操作のパフォーマンスを向上させることができます。 必要に応じて Real-time Check if Customer is Matched by Segment 設定を無効にして、各顧客セグメントの顧客に対する検証を減らすことで、処理時間を短縮できます。 顧客セグメントの検証を参照してください。

  • 製品グリッドに表示される製品数を制限する新しいシステム設定。 マーチャントは、新しい Limit Number of Products in Grid 設定を使用して、製品グリッドのパフォーマンスを向上させることができます。 この制限は、デフォルトで 20000 に設定され、UI コンポーネントで使用される製品コレクションにのみ影響します。 表示される製品の数を制限すると、20 万を超える製品が入力されたグリッドの操作のパフォーマンスが向上する場合があります。 グリッド内の製品数の制限を参照してください

  • 読み込みパフォーマンスの向上(1 分あたり最大 100,000 件のレコード)。 マーチャントは、新しい POST /rest/<store_view_code>/V1/import/csv REST API エンドポイントを使用して、データをAdobe Commerceに読み込むことができます。 このエンドポイントは、管理者の読み込み機能と同じ機能を提供し、CSV ファイルを使用した製品、製品価格、顧客エンティティの作成、更新、削除をサポートします。 データのインポートを参照してください。

  • ロードバランシングによる高スループットのオーダー処理パフォーマンスの向上。 クラウドインフラストラクチャー上のAdobe Commerce 2.4.6 同時注文が大量に発生する(1 分あたりの注文件数が 1,000 件)お客様は、データベースの負荷を様々なノードにわたって分散させることで、注文処理のパフォーマンスを向上させることができます。 マーチャントは、MySQL データベースインスタンスと Redis インスタンスのセカンダリ接続を有効にすることで、この負荷を再分散できます。 高スループットのオーダー処理を参照してください

Adobe Commerce Extension メタパッケージ

このリリースでは、Adobe Commerce Extension metapackage v1.1.0 が導入されています。このバージョンでは、このコアリリースと共に、特定のAdobe Commerce Extensions が自動的にバンドルされています。 このメタパッケージに含まれているこれらの拡張機能のバージョンは、composer update の実行時にインストールされるので、最新のコアリリースにアップグレードする際にこれらの拡張機能をアップグレードするプロセスを簡略化できます。 これらの拡張機能では、独立したリリーススケジュールが引き続き維持されます。

Adobe Commerce 2.4.6 のAdobe Commerce Extension メタパッケージには、次の 2 つの拡張機能があります。

この拡張機能メタパッケージの今後のバージョンには、追加の拡張機能が含まれます。

Adobe CommerceのAdobe I/O Events

Adobe Commerce用Adobe I/O Eventsは、Commerce イベントをキャプチャし、Adobe Commerceから他のAdobe システムにデータを転送します。 開発者は、在庫の更新、注文ステータスの変更、価格の更新などのCommerce イベントにサブスクライブする、クラウドネイティブなアプリをAdobe Developer App Builderで作成できます。 開発者は、この機能を使用して、ミッションクリティカルなシステム全体でバイヤージャーニー全体のオーケストレーションのデータを交換できます。

アクセシビリティの更新

このリリースでは、より知覚、操作、理解および堅牢な Venia (PWA)でのストアフロント体験の構築に重点を置いています。 以下のような機能強化が含まれています。

  • Sign in ボタンの視覚的なテキストラベルが、アクセス可能な名前と一致するようになりました。 (ベストプラクティスとしては、UI 要素のアクセシブルな名前は、表示ラベルテキストで始めることをお勧めします)。
  • ストアフロント全体のボタンに、わかりやすいアクセシブルな名前が追加されました。
  • 検索フィルターの Has Video のチェックボックスに、口頭による説明ラベルが追加されました。
  • キーボードのみのユーザーは、ストアフロントのすべてのページ機能にアクセスできるようになりました。 以前は、買い物客は、キーストロークのみを使用してサブナビゲーションリンクにアクセスできませんでした。

Adobe CommerceとAdobe IMSの統合

次のAdobe IMSモジュールは、Adobe Commerce 2.4.6 コアコードから切り離され、別のメタパッケージとしてパッケージ化されるようになりました。

  • adobe-ims
  • adobe-ims-api
  • admin-adobe-ims

新しい adobe-ims-metapackage v2.2.0 は、Adobe Commerce 2.4.6 にバンドルされています。このリリースで変更された機能はありません。

B2B

会社向け発注機能がGraphQL API によって完全に公開されました。 このリリースでは、次の 2 つのGraphQL スキーマが導入されています。

  • 発注GraphQL スキーマは、B2B の会社ユーザーが発注Order Management機能(発注の作成、編集、削除など)を使用できるようにします。 発注(B2B)を参照してください。
  • 発注ルール GraphQLスキーマでは、承認ルールを作成、編集および削除したり、発注を手動で検証したりできます。 発注承認ルール(B2B)を参照してください。

このリリースには、複数のバグ修正が含まれています。 B2B リリースノートを参照してください。

Braintree

  • イタリアとスペインの Pay Later ボタンとバナー(メッセージ)がBraintreeで有効になりました。
  • PayPal Vault を使用した PayLater メッセージが有効になりました。
  • 不正防止と ACH Web フックを追加しました。 Braintreeでリスクの判断が行われると、不正対策 Web フックがトリガーされます。 ACH Web フックは、ACH 支払いのステータスが settled または settlement decline に更新されたときにトリガーされます。
  • LPM (Local Payment Methods) Web フックを追加しました。

GraphQL

GraphQLのパフォーマンスの強化には、次のものが含まれます。

カテゴリ権限を有効にしてカテゴリに対するクエリを実行する際の応答時間が改善されました。 カテゴリ権限が有効で、多数の顧客グループや共有カタログが含まれるカテゴリで製品に対してクエリを実行する際の応答時間が向上しました。 このパフォーマンス向上をサポートするコード変更は次のとおりです。

  • GraphQL リゾルバーの操作が最適化されました。
  • データプロバイダーは、処理される新しい製品ごとに、ランタイムにキャッシュされたデータを再設定しなくなりました。これにより、パフォーマンスが向上しました。
  • GraphQL リゾルバーでの商品の権限処理を最適化しました。 製品の権限が製品コレクションに適用され、代わりに製品ごとに適用されるようになりました。
  • addProductsToCart のバリエーションの共有カタログで読み取られる最適化された権限。
  • 製品の権限が製品のインラインフラグメントで最適化されました。

カテゴリツリーレンダリングのパフォーマンスを最適化categoryList クエリは、多数のカテゴリを持つ顧客をサポートするように最適化されています。 このクエリを使用して最大 5 レベルのネストされたサブカテゴリを持つ 1500 個を超えるカテゴリを検索するマーチャントは、パフォーマンスの向上に気付くでしょう。 コードをリファクタリングしたカテゴリの子の読み込みを改善しました。これにより、不要なメソッド呼び出しが削除され、カテゴリツリーのキャッシュが改善され、カテゴリデータが再帰的に読み込まれるようになりました。 このパフォーマンス向上をサポートするコード変更は次のとおりです。

  • カテゴリモデルのカスタム属性メタデータの取得が改善されました。
  • カテゴリ ID の取得が改善され、getChildren 呼び出しが削減されました。
  • カテゴリの子の読み込みが改善されました。

買い物かごの一括操作のクエリの応答時間の短縮。 製品の追加のミューテーションは、シンプルで設定可能な最大 500 個の製品を追加する際のクエリのパフォーマンスを向上させるために最適化されました。 バンドル製品は影響を受けません。 最適化された突然変異には、addProductsToCartaddConfigurableProductsToCartaddDownloadableProductsToCartaddSimpleProductsToCartaddVirtualProductsToCartaddWishlistItemsToCart および updateCartItems が含まれます。

顧客クエリで順序の並べ替えがサポートされるようになりましたcustomer クエリの orders 出力オブジェクトに、並べ替えフィールドが含まれるようになりました。 オーダーをオーダー番号または作成日で、昇順または降順で並べ替えられるようになりました。

新しい変異:

deleteCustomer

ページビルダー

Page Builder v.1.7.3 は、Adobe Commerce 2.4.6 と互換性があります。

PWA Studio

PWA Studio v.13.0.x はAdobe Commerce 2.4.6 と互換性があります。アクセシビリティを向上させるための複数の機能強化が含まれています。 バグ修正について詳しくは、PWA Studio リリースを参照してください。 PWA Studioのバージョンと互換性のあるAdobe Commerce コアバージョンのリストについては、 バージョンの互換性を参照してください。

既知の問題

問題:現在、New Relicには PHP 8.2 との互換性がありません。New Relicを実行している環境では、PHP 8.2 ではなく、PHP 8.1 でAdobe Commerce 2.4.6 を実行できます。回避策:PHP 8.2 をサポートする新しいバージョンのAdobe Commerceがリリースされるまで、PHP 8.1 でNew Relic 2.4.6 を実行します。このリリースは 2023 年夏に予定されています。

修正された問題

Adobe Commerce 2.4.6 コアコードの何百もの問題を修正しました。 次に、Adobe Commerce 2.4.6 で修正された問題の一部を示します。

インストール,アップグレード,デプロイメント

  • 複数のロケールと web サイトを使用した標準デプロイメントまたはコンパクトデプロイメントの際に、静的コンテンツのデプロイメントがタイムアウトしたり失敗したりすることはなくなりました。
  • コンパクト戦略で、静的コンテンツのデプロイメント(bin/magento set:static-content:deploy -f --strategy compact)を実行する際に、外部ドメインへの無効な参照が発生しなくなりました。
  • bin/magento setup:di:compile -vvv を(または -v または -vv のオプションを使用して)実行すると、失敗時に情報メッセージが返されるようになりました。 GitHub-35391
  • 既にデータ移行ツール PHP Fatal error: Declaration of Migration\Logger\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/vendor/magento/data-migration-tool/src/Migration/Logger/Logger.php on line 34 を実行しているデプロイメントで bin/magento setup:upgrade コマンドを実行すると、Adobe Commerceで次の例外がスローされなくなりました。 GitHub-35604
  • MySQL 8.0.29 を実行している環境で bin/magento setup:db:status コマンドが失敗しなくなりました。以前は、コマンド出力に、宣言型スキーマが古いことが誤って示されていました。 GitHub-35671
  • composer install コマンドは、.gitignore ファイルを上書きしなくなりました。 GitHub-32888
  • Alpine Linux でアップグレード後にサンプルデータを削除する bin/magento sampledata:remove を実行しても、次のエラーで失敗しなくなりました:Undefined constant "MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACEGitHub-36062
  • bin/magento setup:upgrade は、最初の composer install --no-dev の実行後に正常に実行されるようになりました。 GitHub-36351
  • 例外および例外スタックトレースエントリが var/log/exception.log に含まれるようになりました。 GitHub-36054
  • コマンドラインを使用してパスワードなしで Redis 接続を設定すると、Adobe Commerceがパラメーター検証エラーをスローするようになりました。

アクセシビリティ

  • チェックアウトワークフローの「Proceed to Checkout」、「Review Order」、「Place Order」ボタンが、キーボード入力で期待どおりに動作するようになりました。
  • TAB または SHIFT + TAB を使用してページコントロール間を移動する際のボタンに対するフォーカスの視覚的表示が、期待どおりに機能するようになりました。

スクリーンリーダー

  • 注文履歴ページのスクリーンリーダーが、正しい画像の説明を読み上げるようになりました。

スクリーンリーダーが以下を読み上げるようになりました。

  • 検索結果で見つかった項目の合計数(期待される
  • ユーザーがキーボードコントロール を使用して正常にログインした際の、ログインしたユーザーの名前
  • 製品検索結果のページヘッダーが、<title> 要素 の正しい値を読み取るようになりました
  • 入力フィールドが必須かどうか
  • アコーディオン要素の現在の状態を修正します(折りたたみまたは展開)
  • ユーザーが「リク Create an account スト」ボタンをクリックした後にページコンテンツが更新された場合

バンドル製品

  • 特定のストア表示の API を介してバンドル製品を更新しても、同じバンドル製品の他のストア表示データが上書きされなくなりました。 以前は、バンドルの製品オプションのタイトルは、他のストアビューの最初のオプションタイトルで上書きされていました。
  • バンドルされた製品を、オランダ語ロケールを使用する場合に、Admin Catalog/Products から正常にフィルタリングできるようになりました。 以前は、Adobe Commerceが Type: Bundle Product: Something went wrong with processing the default view and we have restored the filter to its original state でフィルターしようとした場合に、このエラーが表示されていました。 GitHub-35704
  • バンドル製品の特別価格が 1000 を超える場合に、製品グリッドが例外をスローしなくなりました。 以前は、SKU で商品を検索したり、Catalog/Products に移動したりすると、Adobe Commerceが次のエラーをスローしていました。Non Numeric value encountered GitHub-36284
  • バンドルとシンプルな製品が混在する注文のクレジットメモおよび請求書 PDF の列が正しくレンダリングされるようになりました。 以前は、列がゆがんだり、位置がずれたりしていました。
  • BundleProduct フラグメントを含むGraphQL クエリの場合、items.options.product オブジェクトには、想定どおりにデータが含まれます。 以前は、状況によってはオブジェクトが null の場合がありました。
  • Quantity uses decimals が有効な場合に、バンドルオプションの 10 進数の数量が正しくレンダリングされるようになりました。 以前は、分数成分ではなく、数量の整数部分のみがレンダリングされていました。 例えば、数量 1.5 が 1.0 としてレンダリングされました。GitHub-35964
  • GraphQLの製品クエリは、クエリ対象のストアのスコープ内で、バンドル製品オプションのみを返すようになりました。
  • カテゴリに割り当てられていない製品で、バンドルまたはグループ化された製品の製品オプションである製品は、クエリを送信する顧客に対して Allow Category Browsing 設定が有効になっている場合、応答で返されるようになりました。