Magento Open Source 2.4.6 リリースノート
Magento Open Source 2.4.6 では PHP 8.2 がサポートされています。PHP 8.1 は引き続き完全にサポートされますが、PHP 7.4 のサポートは削除されました。 パフォーマンスと拡張性が大幅に強化されています。 買い物かごの一括操作に対するGraphQLの操作とカテゴリツリーレンダリングの応答が最適化されました。
このリリースには、品質を超える修正と機能強化が含まれています。 Core Composer の依存関係とサードパーティライブラリは、PHP 8.2 と互換性のある最新バージョンにアップグレードされました。
その他のリリース情報
これらの機能のコードは、Magento Open Sourceコアコードのリリースにバンドルされていますが、これらのプロジェクトの一部も個別にリリースされています。 これらのプロジェクトのバグ修正は、各プロジェクトのドキュメントで利用できる別のプロジェクト固有のリリース情報に記載されています。
Magento Open Source 2.4.6 のハイライト
このリリースのハイライトは次のとおりです。
セキュリティ機能の強化
このリリースには、8 つのセキュリティ修正とプラットフォームセキュリティの改善が含まれています。
これらの問題に関連する確認された攻撃は、今日まで行われていません。 ただし、特定の脆弱性が悪用されて、顧客情報にアクセスしたり、管理者のセッションを引き継いだりする可能性があります。 これらの問題のほとんどは、攻撃者が最初に管理者へのアクセス権を取得する必要があります。 そのため、管理者を保護するために必要なすべての措置をとることをお勧めします。これには、以下の取り組みが含まれますが、これらに限定されません。
- IP許可リストに加える
- 二要素認証
- vpn の使用
/admin
ではなく一意の場所の使用- 適切なパスワードハイジーン
修正された問題の最新情報については、Adobeセキュリティ速報を参照してください。
その他のセキュリティ機能強化
このリリースのセキュリティの強化により、次のような最新のセキュリティのベストプラクティスへのコンプライアンスが向上しています。
-
管理アクションログのギャップは、グリッドビュー、一括アクション、書き出しにおけるアクションのより具体的な監査で対処されました。
-
支払い処理中に予期しないエラーが発生した場合に、チェックアウト中に reCAPTCHA 検証が失敗しなくなりました。 GitHub-35093
-
管理者ユーザーがメールを変更したときにメール確認を要求する新しいシステム設定。 サイトの脆弱性を軽減するために、管理者ユーザーがメールを変更した際にメールで確認することを要求する新しいシステム設定(デフォルトでは無効)が追加されました(Stores/Settings:Configuration/Customers/Customer Configuration/Account Information Options/Require email confirmation if an email has been changed)。 このオプションを有効にすると、管理者ユーザーがメールアドレスを変更するたびに、アプリケーションからメールによる確認が要求されます。 この変更の影響を受けるモジュール:
Magento_Customer
。
プラットフォームの機能強化
Magento Open Source 2.4.6 では PHP 8.2 がサポートされています。PHP 8.1 は引き続き完全にサポートされます。
PHP 7.4 のサポートは、このリリースから削除されました。 PHP 7.4 上でMagento Open Source 2.4.6 を実行することはできません。
Magento Open Sourceは、以下をサポートするようになりました。
-
Composer 2.2.xComposer 1.x は削除されました。
-
Redis 7.0.xRedis 6.2 との互換性は残りますが、Redis 6.2 は 2024 年に提供終了になる予定なので、このリリースを Redis 7.0.x と共にデプロイすることをお勧めします。
-
OpenSearch が、Magento Open Sourceのオンプレミスおよびクラウドデプロイメントのデフォルトの検索エンジンとしてサポートされるようになりました。 Magento Open Sourceのための独立した検索エンジンとしてサポートされています。 このリリースは OpenSearch v2.x をサポートしており、OpenSearch 2.5 でテストされています。OpenSearch 1.x との互換性は残りますが、このリリースを OpenSearch 2.x で使用することをお勧めします。OpenSearch 2.x を使用したMagento Open SourceとMagento Open Source 2.4.6 を、クラウドとオンプレミスの両方にインストールして実行できます 検索エンジンの前提条件。
-
Elasticsearch 8.x アップグレードElasticsearch を参照してください。
-
MariaDB 10.6 (LTS バージョン)。 このリリースはまだ MariaDB 10.4 と互換性がありますが、MariaDB 10.6 にアップグレードすることをお勧めします。
その他のアップグレードと交換
-
DHL スキーマは v6.2 から v10.0 に移行されました。
-
古いJavaScript ライブラリを最新バージョンに更新し、古い依存関係を削除しました。 これらの変更には後方互換性があります。
-
PHP 7.4 の互換性は、CommerceおよびMagento Open Sourceのコードベースから削除されました。
-
Symfony 依存関係が新しい LTS バージョンにアップグレードされました。 依存関係は次のとおりです。
friendsofphp/php-cs-fixer
symfony/console
symfony/event-dispatcher
symfony/finder
symfony/process
web-token/jwt-framework
-
jquery-migrate
は、CommerceおよびMagento Open Sourceコードベースから削除されました。 GitHub-21406 -
jQuery/fileUpload
ライブラリを v10.32 にアップグレードしました。 -
提供終了に達した Zend フレームワーク (ZF1) コンポーネントは、コードベースから削除されました。 後方互換性のない変更のハイライトを参照してください。
-
Laminas の依存関係は PHP 8.2 をサポートするように更新されました。
-
laminas/laminas-dependency-plugin
Composer プラグインが削除されました。 GitHub-36515 -
Zend_Filter
をlaminas/laminas-filter
に置き換えました。 -
web-token/jwt-framework
を v3.0.5 にアップグレードしました。 (最新バージョン) -
allure-framework/allure-phpunit
を v2.x にアップグレードしました。 -
Chart-js
ライブラリを v3.9.1 にアップグレードしました。
アクセシビリティの更新
このリリースでは、Venia (PWA)でのストアフロントのエクスペリエンスをより分かりやすく、操作しやすく、理解しやすく、堅牢にすることに重点を置いています。 以下のような機能強化が含まれています。
- Sign in ボタンの視覚的なテキストラベルが、アクセス可能な名前と一致するようになりました。 (ベストプラクティスとしては、UI 要素のアクセシブルな名前は、表示ラベルテキストで始めることをお勧めします)。
- ストアフロント全体のボタンに、わかりやすいアクセシブルな名前が追加されました。
- 検索フィルターの Has Video のチェックボックスに、口頭による説明ラベルが追加されました。
- キーボードのみのユーザーは、ストアフロントのすべてのページ機能にアクセスできるようになりました。 以前は、買い物客は、キーストロークのみを使用してサブナビゲーションリンクにアクセスできませんでした。
Adobe CommerceとAdobe IMSの統合
次のAdobe IMSモジュールは、Adobe CommerceおよびMagento Open Sourceコアコードから切り離され、個別のメタパッケージとしてパッケージ化されるようになりました。
adobe-ims
adobe-ims-api
admin-adobe-ims
新しい adobe-ims-metapackage
v2.2.0 は、Adobe Commerce 2.4.6 およびMagento Open Source 2.4.6 にバンドルされています。このリリースで変更された機能はありません。
Braintree
- イタリアとスペインの Pay Later ボタンとバナー(メッセージ)のBraintreeが有効になりました。
- PayPal Vault を使用した PayLater メッセージが有効になりました。
- 不正防止と ACH Web フックを追加しました。 Fraud Protection Web フックは、Braintreeでリスクの判断が行われた際にトリガーされます。 ACH Web フックは、ACH 支払いのステータスが
settled
またはsettlement decline
に更新されたときにトリガーされます。
- LPM (Local Payment Methods) Web フックを追加しました。
GraphQL
GraphQLのパフォーマンスの強化には、次のものが含まれます。
カテゴリ権限を有効にしてカテゴリに対するクエリを実行する際の応答時間が改善されました。 カテゴリ権限が有効で、多数の顧客グループや共有カタログが含まれるカテゴリで製品に対してクエリを実行する際の応答時間が向上しました。 このパフォーマンス向上をサポートするコード変更は次のとおりです。
- GraphQL リゾルバーの操作が最適化されました。
- データプロバイダーは、処理される新しい製品ごとに、ランタイムにキャッシュされたデータを再設定しなくなりました。これにより、パフォーマンスが向上しました。
- GraphQL リゾルバーでの商品の権限処理を最適化しました。 製品の権限が製品コレクションに適用され、代わりに製品ごとに適用されるようになりました。
addProductsToCart
のバリエーションの共有カタログで読み取られる最適化された権限。- 製品の権限が製品のインラインフラグメントで最適化されました。
カテゴリツリーレンダリングのパフォーマンスを最適化。 categoryList
クエリは、多数のカテゴリを持つ顧客をサポートするように最適化されています。 このクエリを使用して最大 5 レベルのネストされたサブカテゴリを持つ 1500 個を超えるカテゴリを検索するマーチャントは、パフォーマンスの向上に気付くでしょう。 コードをリファクタリングしたカテゴリの子の読み込みを改善しました。これにより、不要なメソッド呼び出しが削除され、カテゴリツリーのキャッシュが改善され、カテゴリデータが再帰的に読み込まれるようになりました。 このパフォーマンス向上をサポートするコード変更は次のとおりです。
- カテゴリモデルのカスタム属性メタデータの取得が改善されました。
- カテゴリ ID の取得が改善され、
getChildren
呼び出しが削減されました。 - カテゴリの子の読み込みが改善されました。
買い物かごの一括操作のクエリの応答時間の短縮。 製品の追加のミューテーションは、シンプルで設定可能な最大 500 個の製品を追加する際のクエリのパフォーマンスを向上させるために最適化されました。 バンドル製品は影響を受けません。 最適化された突然変異には、addProductsToCart
、addConfigurableProductsToCart
、addDownloadableProductsToCart
、addSimpleProductsToCart
、addVirtualProductsToCart
、addWishlistItemsToCart
および updateCartItems
が含まれます。
顧客クエリで順序の並べ替えがサポートされるようになりました。 customer
クエリの orders
出力オブジェクトに、並べ替えフィールドが含まれるようになりました。 オーダーをオーダー番号または作成日で、昇順または降順で並べ替えられるようになりました。
新しい変異:
deleteCustomer
ページビルダー
Page Builder v.1.7.3 は、Magento Open Source 2.4.6 と互換性があります。
PWA Studio
PWA Studio v.13.0.x はMagento Open Source 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 年夏に予定されています。
修正された問題
Magento Open Source 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
コマンドを実行すると、Magento Open Sourceが次の例外をスローしなくなりました。 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_BRACE
。 GitHub-36062
bin/magento setup:upgrade
は、最初のcomposer install --no-dev
の実行後に正常に実行されるようになりました。 GitHub-36351
- 例外および例外スタックトレースエントリが
var/log/exception.log
に含まれるようになりました。 GitHub-36054
コマンドラインを使用してパスワードなしで Redis 接続を設定すると、Magento Open Sourceがパラメーター検証エラーをスローするようになりました。
アクセシビリティ
- チェックアウトワークフローの「Proceed to Checkout」、「Review Order」、「Place Order」ボタンが、キーボード入力で期待どおりに動作するようになりました。
- TAB または SHIFT + TAB を使用してページコントロール間を移動する際のボタンに対するフォーカスの視覚的表示が、期待どおりに機能するようになりました。
スクリーンリーダー
- 注文履歴ページのスクリーンリーダーが、正しい画像の説明を読み上げるようになりました。
スクリーンリーダーが以下を読み上げるようになりました。
- 検索結果で見つかった項目の合計数(期待される )
- ユーザーがキーボードコントロール を使用して正常にログインした際の、ログインしたユーザーの名前
- 製品検索結果のページヘッダーが、
<title>
要素 の正しい値を読み取るようになりました - 入力フィールドが必須かどうか
- アコーディオン要素の現在の状態を修正します(折りたたみまたは展開)
- ユーザーが「リク Create an account スト」ボタンをクリックした後にページコンテンツが更新された場合
バンドル製品
- 特定のストア表示の API を介してバンドル製品を更新しても、同じバンドル製品の他のストア表示データが上書きされなくなりました。 以前は、バンドルの製品オプションのタイトルは、他のストアビューの最初のオプションタイトルで上書きされていました。
- バンドルされた製品を、オランダ語ロケールを使用する場合に、Admin Catalog/Products から正常にフィルタリングできるようになりました。 以前は、Magento Open Sourceが
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 に移動したりすると、Magento Open Sourceが次のエラーをスローしていました。
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 設定が有効になっている場合、応答で返されるようになりました。
キャッシュ
- 注文した製品が在庫切れでない限り、注文がフルフルフィルメントされた後にフルページキャッシュがフラッシュされなくなりました。 以前は、出荷が作成されるたびに、カテゴリのキャッシュがパージされていました。
- L2 キャッシュが設定され、リモートデータが部分的に消去されると、データは正常にキャッシュされるようになりました。 以前は、データのハッシュを含まないデータキャッシュのみをフラッシュした後は、データのハッシュが存在する間、新しいキャッシュが保存されませんでした。
- キャッシングを妨げる
CatalogUrlResolverIdentity
およびCmsUrlResolverIdentity
の欠陥を修正しました。 これは、複数のリクエストに対するルートクエリのキャッシュに影響を与えました。
買い物かごとチェックアウト
- 買い物客は、買い物かごにシンプルな製品の最小数量が含まれている場合、買い物かごに追加の項目を追加できるようになりました。
- ストア通貨とベース通貨が同じ場合、買い物かごデータを取得するための REST API 呼び出しで、同じ
grand_total
とbase_grand_total
値が返されるようになりました。 GitHub-34649
- 書き出された値 Maximum Qty Allowed in Shopping Cart は、管理者の設定で指定されたデフォルト値と一致するようになりました。
- Magento Open Sourceは、注文の払い戻しに対する総計を、送料の割引を使用して正しく計算するようになりました。
- Google reCAPTCHA は、ストアフロントの注文で期待どおりに機能するようになりました。 以前は、買い物客が最初に注文を試みる前にGoogle ReCAPTCHA が最初に選択されなかった場合、Magento Open Sourceに次のエラーが表示されていました。
ReCaptcha validation failed, please try again
とNo such cart with id = ID
。
- CAPTCHA 画像の更新では、管理設定に従い、設定が無効の場合はトリガーされなくなりました。 以前は、設定が有効か無効かに関係なく、支払い方法が変更されるたびに更新がトリガーされていました。 GitHub-34855
- Magento Open Sourceは、買い物客が買い物かごを更新せずに買い物かごページの製品数量を変更してから次のページに移動しようとすると、買い物客を次のページにリダイレクトする前に、期待どおりに確認ポップアップを表示するようになりました。
- 買い物客は、管理画面で商品の量を減らした後で、買い物かごから減らすことができるようになりました。 以前は、買い物客が製品数量を減らそうとした際に、Magento Open Sourceが次のエラーをスローしていました。
The requested qty is not available
GitHub-35780
- 複数配送のチェックアウト時に商品数が設定された上限を超えた場合に、JavaScript コンソールでMagento Open Sourceがエラーをスローしなくなりました。 代わりに、Magento Open Sourceに、情報を示すエラーメッセージが表示されるようになりました。 GitHub-36184
- 買い物客がキーボードの下向き矢印キーを使用して製品数量を変更すると、買い物かごページの品目数量が負の数として表示されなくなりました。 GitHub-36299
- 買い物客が属する顧客グループを変更した後で、許可されなくなったカテゴリからの製品を買い物かごに追加できなくなりました。 Magento Open Sourceは、権限設定が変更された場合、特定のカテゴリに対する顧客グループの権限アクセスを確認するようになりました。
- 顧客の買い物かごは管理者による注文の作成前には空ではなくなり、注文がキャンセルまたは破棄された場合は買い物かごの内容が復元されるようになりました。 商品が注文を作成した後にのみカートから削除されるようになりました。 以前は、管理者ユーザーが管理者の「買い物かごを管理」ページで注文を作成しようとすると、買い物かごが空になっていました。
bin/magento catalog:image:resize
を実行した後、ミニ カートに正しい製品画像が表示されるようになりました。 以前は、すべての画像がデフォルトの製品プレースホルダー画像に置き換えられていました。 GitHub-35535
- 配送先住所に拡張属性が含まれている場合、チェックアウトが正常に完了できるようになりました。 以前は、Magento Open Sourceが次のエラーをスローしました:
Object of class Magento\Quote\Api\Data\AddressExtension could not be converted to string
。 GitHub-34202
- 必要な製品オプションに値がない場合、
addBundleProductsToCart
のミューテーションによって見積もりに製品が追加されなくなりました。 GitHub-25676
- 十分な権限を持たない商品を買い物かごに追加したときに
addProductsToCart
ミューテーションが失敗した場合、Magento Open Sourceが情報メッセージを返すようになりました。
- クイックオーダーを使用して利用可能な在庫を超える数量の商品を追加しても、Magento Open Sourceが買い物かごページでエラーがスローされなくなりました。
買い物かご価格ルール
- ルール作成時に設定した買い物かご価格ルールの無料配送オプションが、期待どおりに注文に適用されるようになりました。 以前は、ルールの作成時に適用された送料無料オプションがチェックアウト時に無視され、ルールが適用された際に送料無料が許可されていませんでした。 GitHub-35013
- 製品の
sales_order_item
表のdiscount_percent
列に、品目割引数量が設定されていない場合、または受注品目数量以上の場合に、割引率が期待どおりに入力されるようになりました。 以前は、この列は、この商品に買い物かごの価格ルールが適用された際に入力されていませんでした。
カタログ
- 製品リストウィジェットに、ログインした買い物客に対する誤った価格やキャッシュされた価格が表示されなくなりました。 ホームページのウィジェットに表示される価格は、買い物客のアドレスと一致するようになりました。また、買い物客がアドレスを更新すると更新されます。 以前は、ブラウザーキャッシュは、顧客グループ税ルールに基づいてホームページの製品価格を更新していませんでした。
- 製品の比較リスト機能は、複数 web サイトのデプロイメントで正しく機能するようになりました。これは、web サイトによって異なります。
- 製品の詳細ページを再ロードすると、Magento Open Sourceに前のページのデータが表示されなくなりました。 以前は、製品詳細ページをリロードすると、最初のタブのデータが、分割された 2 秒間に新しくロードされたデータとマージされていました。
- サブカテゴリを持つカテゴリを、モバイルデバイスのメインメニューで期待どおりに展開できるようになりました。 以前は、買い物客は、モバイルデプロイメントで、サブカテゴリを含むカテゴリを開いたり展開したりできませんでした。 GitHub-35329
- 商品が新しい web サイトまたはストアに割り当てられると、カテゴリリストが期待どおりに更新されるようになりました。 以前は、製品価格インデクサーが無効とマークされていませんでしたが、その後、期待どおりに
cron
実行で再トリガーされました。 その結果、商品の価格エントリが価格インデックステーブルに見つからず、新しい店舗や web サイトに表示されませんでした。
- Display Out of Stock Products 設定が有効になっている場合のストアフロントの在庫数が正確になりました。 GitHub-35899
- Allow All Products Per Page 設定が有効になっている場合、カテゴリページは空ではなくなります。 GitHub-35900
- 有効にすると、Display Out of Stock Products 設定オプションが期待どおりに動作するようになりました。 以前は、管理者でこのオプションが有効になっている場合、すべての製品が在庫切れとしてストアフロントに表示されていました。 GitHub-35898
- ブール属性による製品の並べ替えが期待どおりに動作するようになりました。 GitHub-36390
- カタログ価格ルールの割引は、固定価格のカスタム商品オプションには適用されなくなりましたが、商品の元の価格にのみ適用されます。
- カタログ価格ルールでは、選択した範囲が考慮され、属性のオプション値がルールと一致する web サイトの製品にのみ適用されるようになりました。 以前は、マルチサイトデプロイメントで選択したスコープがルールで考慮されていませんでした。 GitHub-36049
- 買い物客が買い物かごページから設定可能な製品を変更すると、スウォッチオプションのカラーおよびサイズ属性が製品の詳細ページで事前選択されるようになりました。 (jQuery 3.x バージョンで
swatchRenderer
ウィジェット名(キャメルケース)がサポートされるようになりました。) 以前は、スウォッチオプションは事前には選択されていませんでした。
- 顧客が価格低下アラートを購読すると、製品価格低下の通知が送信されるようになりました。 以前は、アプリケーションレベルのキャッシュのため、価格の下落に関する通知が送信されないことがありました。
- is not one of の条件を持つ SKU に基づくカタログルールが期待どおりに動作するようになりました。
- Magento Open Sourceは、カテゴリパスに基づいて、あるカテゴリが別のカテゴリの親カテゴリであると誤って想定しなくなりました。 以前は、2 つのカテゴリが隣接し、1 つのカテゴリ ID が別のカテゴリのカテゴリ ID で始まる場合、Adobe Commerceでは、カテゴリには同じ親カテゴリがあると見なされていました。 GitHub-32464
設定可能な製品
- 既に多くのシンプルな商品が割り当てられている設定可能な商品に、管理者ユーザーが手動で商品を追加しても、Magento Open Sourceがエラーがスローされなくなりました。 以前は、Magento Open Sourceで「
Something went wrong with processing the default view and we have restored the filter to its original state
」というエラーが表示されていました。
- 買い物客は、バックオーダーを無効にしたデプロイメントでは、販売可能な数量が 0 の設定可能な製品を買い物かごに追加できなくなりました。 Magento Open Sourceは、商品が在庫切れであることを示すようになりました。 GitHub-35319
- 別のストア表示から多数のオプションを持つ設定可能な製品を読み込んで新しい製品を作成すると、最初の製品の正確なコピーが期待どおりに作成されるようになりました。 以前は、新製品の設定可能なオプションの並べ替え順が正しくなく、複数のストアビューとロケールを含むデプロイメントで、タイトルが新しいストアビューのロケールに翻訳されませんでした。 GitHub-35200
- すべての在庫切れの子製品を含む設定可能な製品が、ストアフロントに在庫切れとして表示されるようになりました。
- 設定可能な製品 SKU と製品名が正確に表示されるようになりました。 以前は、Stores/Attribute set の製品詳細グループの上に属性グループを移動すると、名前と SKU が未定義として表示されていました。 GitHub-36309
クーポン
- クーポンの生成時にクーポンコード設定を適用する検証ロジックがクーポンコードの管理ワークフローに追加されました。 以前は、クーポン数 の値が 2500 より大きい場合、クーポンコードの生成で Code Length 設定が無視されていました。
- PayPal Express の支払い方法でチェックアウト中に報酬クーポンが適用された場合、報酬ポイントが期待どおりに顧客のアカウントに追加されるようになりました。
- 買い物かごの価格ルールに重み付けを条件として、管理者による注文の作成時にクーポンコードを適用できるようになりました。 以前は、製品に他のフィールドが選択されていない場合、クーポンコードは設定されませんでした。 GitHub-36271
- 複数の買い物かご価格ルールでクーポンレポートをフィルタリングできるようになりました。 GitHub-36272
- カスタムオプションを使用して製品を設定する際に管理者が Enter を押した場合に、カスタムオプションが適用および保存されるようになりました。 以前は、オプションを選択して製品を注文に追加できましたが、オプションが保存されず、管理者ユーザーは製品オプションを再選択するように求められました。 GitHub-35284
- クーポンコードを Excel XML に正常に書き出せるようになりました。 以前は、生成されたファイルには、選択されたすべてのクーポンコードが含まれていませんでしたが、ページセレクターごとの項目で選択された項目のみが含まれていました。GitHub-36073
cron
catalog_index_refresh_price
cron ジョブが正常に実行されるようになりました。 以前は、Magento Open Sourceは cron の実行中に次のエラーを記録していました。report.ERROR: Cron Job catalog_index_refresh_price has an error: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
通貨
- カスタムの通貨記号と価格の間に欠落していたスペースが、ストアフロントと管理者の製品価格の両方に追加されました。 適切な条件と正規表現が追加され、通貨記号でカスタム NBSP が使用できるようになりました。 たとえば、IDRx 105.00 は以前は IDRx105.00 として表示されていました。
電子メール
- 管理者から注文が作成された後、Magento Open Sourceがお客様に重複メールを送信しなくなりました。
- Email order confirmation 設定が無効になっている場合、管理者の注文メールが送信されなくなりました。 GitHub-36256
- カスタムオプションを使用する商品のクレジットメモ、注文確認、請求書顧客メール(デフォルトテンプレート)では、画像オプションがHTMLのマークアップとして表示されなくなりました。
フレームワーク
- EU 諸国 設定(Stores/Configuration/General/Country options/European Union Countries)に国がない場合、管理者ユーザーは Admin Store/Configuration ページを正常に開くことができるようになりました。 以前は、管理者ユーザーがこのページを開こうとすると、Magento Open Sourceが次のエラーをスローしていました:
TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/www/php/folder/vendor/magento/module-config/ViewModel/CountryFilter.php:46
。 GitHub-35901
jquery.cookie
の依存関係は、JavaScriptの依存関係で期待どおりに動作するようになりました。 以前は、jquery/jquery.cookie
にエイリアスを使用することはできませんでした。 GitHub-35913
bin/magento i18n:collect-phrases
コマンドに、書き出され<title>
CSV ファイルのテキストが含まれるようになりました。 GitHub-35462
Magento\Framework\Code\Reader\ArgumentsReader::getParentCall()
は、名前付きコンストラクター引数をサポートするようになりました。 パラメーターを名前で設定して、関数を呼び出せるようになりました。
- エラーが
exception.log
ファイルに期待どおりに記録されるようになりました。 以前は、エラーはsystem.log
ファイルに記録されていましたが、エラーはvar/log/exception.log
に記録されていませんでした。
- マーチャントは、カスタムの外部 SMTP プロバイダーを指定できるようになりました。 GitHub-26104
- Magento Open Source 2.4.3-p2 を実行するデプロイメントで、OAuth 統合を期待どおりに再認証できるようになりました。 以前は、再認証は次のエラーで失敗していました:
The attempt to post data to consumer failed due to an unexpected error. Please try again later
。 Magento Open Sourceは、暗号化されていない値も復号化しようとしました。 GitHub-35313
- 子カテゴリを持つカテゴリのカテゴリ
urlKey
を保存する際に、正しいrowId
パラメーターが渡されるようになりました。 以前は、カテゴリURLKey
を保存する際に、間違ったcategoryId
が渡されていました。
- 製品属性コード
event
が予約製品属性コードのリストに追加されました。これにより、ストアフロントでこの名前の属性を使用することに関連するエラーが排除されます。 以前は、event
を使用すると、アプリケーションが製品の詳細ページと検索/製品リストページに次のエラーをスローしていました:report.CRITICAL: Error: Call to a member function getStatus() on string in /home/mer33515/public_html/ee24develop/magento2ee/app/code/Magento/CatalogEvent/Observer/ApplyIsSalableToProduct.php:23
。
- 注文配置中に発生するストアフロント検証エラーメッセージが、一貫して表示されるようになりました。 以前は、メッセージが現れ、折りたたまれ、そして再び現れました。 GitHub-35651
- PHP 8.1 を実行するデプロイメントで非推奨の
trim()
関数が原因で、AMQP コンシューマーが失敗することがなくなりました。以前は、インストール後に AMQP コンシューマーが起動すると、Magento Open Sourceが次のエラーをスローしていました:Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143
。 GitHub-35380
getFilteredTimerIds
メソッドが期待どおりに動作するようになりました。 クラスMagento\Framework\Profiler\Driver\Standard\Stat
は PHP 8.1 と互換性を持つようになりました。以前は、このメソッドが呼び出されたときにMagento Open Sourceが例外をスローしていました。 GitHub-35307
imagemin-svgo
ライブラリへの依存を削除しました。
- 最初のコメントが
//
で始まる場合、縮小テンプレートプロセスで連続したコメントが正常に処理されるようになりました。 GitHub-34880
BundleGraphQl
モジュールによって発行された、次のエラーを返すデータベース クエリを修正しました:"debugMessage": "Notice: Undefined offset: 16 in vendor/magento/module-bundle-graph-ql/Model/Resolver/Options/Collection.php on line 130"
。GitHub-34991
一般的な修正点
- 管理者ユーザーが管理者統計ダッシュボードから「Last 24 Hours」オプションを選択すると、Magento Open Sourceに正確な時間範囲が表示されるようになりました。 以前は、Magento Open Sourceで間違った時間範囲が表示されていました。 これは、データベースのタイムゾーンが変更されなかったことが原因で発生しました。
- 整数と小数の両方の数量に対してクレジット メモを生成できるようになりました。 以前は、整数の数量のみがサポートされていました。
- タイプ 数値のみ の顧客の郵便番号の入力検証ルールが、Edit Customer Address フィールド(Store/Attribute/Customer Address)で期待どおりに機能するようになりました。 以前は、顧客の住所情報は郵便番号の検証なしで保存されていました。
- グローバルに共有される顧客アカウントのアドレスが、現在の web サイトで許可されている国のリストに対して検証され、正常に保存されるようになりました。 以前は、これらのアカウントは、顧客が登録された web サイトの許可された国に対して誤って検証されていました。
- CMSのページ階層のパンくずリストは、無効にすると表示されな Enable Hierarchy Functionality なりました。 以前は、パンくずリストは表示されていましたが、買い物客がクリックすると、404 ページが表示されていました。 GitHub-35513
- 管理者を使用してすべての web サイトから製品を削除しても、次のエラーが発生しなくなりました。
SQLSTATE[42000]: Syntax error or access violation
。 GitHub-35133
- ログインの最大失敗回数を超えたお客様は、パスワードのリセット後にログインできるようになりました。 GitHub-34981
- 管理者ユーザーが新しい要素を追加した場合、動的行コンポーネントが期待どおりに動作するようになりました。 以前は、新しいシンプルな製品がグループ化された製品に追加されると、行コンポーネントが正しく動作しませんでした。 GitHub-34850
app/code/Magento/Backend/etc/menu.xsd
ファイルの入力ミスと間違った文法を修正しました。
- テーブルの作成を正確に記述するように
app/code/Magento/Authorization/README.md
ファイルを更新しました。
recordLogin
メソッドが更新され、ユーザーモデルにログイン値が設定され、admin_user
テーブルのlogdate
フィールドとlognum
フィールドに正しい値が保持されるようになりました。 以前は、更新された管理者ユーザーのログイン試行は記録されていませんでした。
- GitHub イシューテンプレートは、開発者エクスペリエンスのイシューや機能リクエストのイシューフォームに変換されました。
Is required
顧客属性が、管理者顧客編集フォームの web サイト範囲ごとに適切に実装されるようになりました。
- Use in Filter Options 設定が無効の場合、顧客および顧客の住所属性の Grid Filter Condition Type フィールドが属性編集ページに表示されなくなりました。
- 商品の作成時にマーチャントがオプションの SKU 属性値を入力できなかった場合に、Magento Open Sourceに情報エラーメッセージが表示されるようになりました。 以前は、属性がオプションの場合にアプリケーションがこの例外をスローしていました:
Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/mg244/project-community-edition/vendor/magento/module-eav/Model/Entity/AbstractEntity.php on line 932
。 GitHub-35810
- My Quotes ページの Show my quotes フィルターが期待どおりに動作するようになりました。 以前は、フィルター結果には他の管理者ユーザーの引用符が含まれていました。
GraphQL
- GraphQL コードで複数のインターフェイスを実装する
Types
ールは、GraphQL@doc
仕様に従って、&
記号で区切,
ことも、区切ることもできます。
setShippingAddressesOnCart
のミューテーションで、数値地域コードをregion
として設定できるようになりました。 以前は、このミューテーションは、地域コードの数値に対して正しく機能しませんでした。
products
クエリは、指定された範囲に関連付けられたレビューのみを返すようになりました。 以前は、クエリはすべてのストアからのレビューを返していました。
- カテゴリ権限は、GraphQL リクエスト中に考慮されるようになりました。
customer
クエリで、指定されたfrom
とto
範囲を持つ注文が正しくフィルタリングされるようになりました。 GitHub-31537
product
クエリは、正しいカテゴリデータを集計で返すようになりました。 以前は、attribute_code.category_uid
はcategory_uid
ではなくcategory_id
の値を返していました。
customerOrders
クエリで\"model\" value should be specified
エラーがスローされなくなりました。 GitHub-35852
customer
クエリでは、範囲に基づいて注文をフィルタリングするようになりました。 これで、クエリで注文をストア、web サイト別またはグローバル別にフィルタリングするかどうかを指定できます。
categoryList
クエリは、アンカーされている親カテゴリとアンカーされていない親カテゴリの両方について、正確な製品数を返すようになりました。 新しいis_anchor
属性がカテゴリコレクションの選択列リストに追加されました。 以前は、リクエストは製品数 0 を返していました。 GitHub-36300
- マルチストアデプロイメントでデフォルト以外のストアにログインするためのトークンを作成する際に、
generateCustomerTokenAsAdmin
のミューテーションが期待どおりに機能するようになりました。 GitHub-35084
- 期限切れのトークンが使用されると、
createEmptyCart
のミューテーションが期待どおりに例外をスローするようになりました。 GitHub-26112
- 買い物かごクエリのエラーメッセージが、より有益になりました。 GitHub-34546
products
クエリの応答での集計データに、価格タイプ属性attribute_code
およびlabel
の正しい値が含まれるようになりました。 GitHub-28878
- データベースのプレフィックスに null 以外の値が含まれている場合、
products
クエリは想定どおりにカテゴリ情報を返します。 以前は、Internal server error
が返されていました。 GitHub-36117
getCustomerIsGuest
メソッドの戻り値のタイプを修正しました。 GitHub-29529
Magento\CatalogGraphQl\Plugin\DesignLoader
プラグインはリファクタリングされています。
- 買い物かごがGraphQLの変更によって初期化された場合、買い物かごへのリロードが期待どおりに 1 回だけトリガーされるようになりました。 以前は、買い物かごの読み込みによって、買い物かごが読み込まれるたびに大量のリソースが消費される、在庫インベントリに対する不要な買い物かごの再検証がトリガーされていました。
- が
gift_message
タイプをOrderItemInterface
に追加しました。 GitHub-29418
- GraphQLの応答で返される商品オプションに、ユーザーが属するカタログ内の商品のみが含まれるようになりました。 ユーザーが共有カタログに属している場合、共有カタログ内の製品のみが返されます。 ユーザーがゲストであるか、カスタム共有カタログの一部ではない場合は、公開カタログ内の製品のみが返されます。
Google ReCAPTCHA
- Google V3 reCAPTCHA Admin ログインの
var/log/exception.log
ファイルの reCAPTCHA エラーが解決され、エラーメッセージはログに記録されません。 以前は、管理者ユーザーが Configuration/Security/Google reCAPTCHA Admin Panel 設定を指定すると、数秒ごとに次のエラーがスローされていました。main.ERROR: Can not resolve reCAPTCHA parameter. {"exception":"[object] (Magento\Framework\Exception\InputException(code: 0): Can not resolve reCAPTCHA parameter. at /home/xxxxxxx/public_html/vendor/magento/module-re-captcha-ui/Model/CaptchaResponseResolver.php:25)"} []
GitHub-34975
画像
- PDFの納品書のロゴサイズに関する推奨事項を更新しました。
インポート/エクスポート
- 既存の製品と同じ数値 URL キーを持つ製品を、端末のアルファベット文字なしで読み込んだ場合、管理者で Product URL Suffix が空に設定されていると、検証エラーが発生しなくなりました。
bin/magento app:config:import
コマンドは、特定のcron
式が含まれている場合に、config.php
ファイルの内容を正常に読み込むようになりました。 以前は、読み込みは次のエラーで失敗していました:Import failed: Notice: Trying to access array offset on value of type null in [..]/vendor/magento/module-config/Model/Config/Backend/Currency/Cron.php on line 66
。 GitHub-31428
- AWS S3 をリモートストレージとして使用する場合、完全な書き出しが正しく機能するようになりました。 以前は、アップロードされたファイルサイズが原因で、書き出しに失敗していました。
- CSV ファイルの在庫データ列が見つからない場合、製品ステータスが正しく読み込まれるようになりました。 以前は、製品の読み込み後に、デフォルトソースが製品に自動的に割り当てられ、その数量は 0 に設定され、CSV ファイル内の在庫データ列が見つからない場合、そのステータスは在庫切れとリストされていました。
- インポートに 100 を超えるレコードが含まれている場合、前払い価格設定値をインポートすると、新規レコードと更新されたレコードの正確なカウントが表示されるようになりました。 以前は、読み込み成功メッセージによって誤ったカウントが提供されていました。
- 書き出された CSV ファイルに、複数の言語で保存されたカテゴリ名への正しいパスが含まれるようになりました。 カテゴリ収集用にストア ID が追加されました。 以前は、書き出されたファイルには、デフォルトのストア表示から派生したカテゴリパスではなく、異なる言語の混在パスが含まれていました。
- 読み込みを使用して、特定のストア表示で製品のカスタムオプションを更新すると、正常に完了するようになりました。 以前は、製品関連の行が複数のバッチに分割された場合に、内部サーバーエラーがスローされていました。
Fixer.io
インポートサービスが期待どおりに動作するようになりました。 通貨レートが正常に読み込まれました。 GitHub-36010
索引
- カタログにバンドル製品が含まれていて、どの web サイトにも割り当てられていない場合、価格のインデックス再作成が正常に実行されるようになりました。 以前は、製品価格インデックスの実行時に、次のエラーが発生していました。
Warning: Undefined array key <bundel product id > in vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php on line 117
GitHub-35796
インフラストラクチャ
- サードパーティの
colinmollenhour/php-redis-session-abstract
モジュールと PHP 8.1 の問題が解決されました。 GitHub-35634
順序
- インストールスクリプトに渡される注文プレフィックスが、注文 ID に正しく追加されるようになりました。
- 注文に、長いカスタムテキスト値を持つ製品が含まれている場合、注文の詳細ページが正常に読み込まれるようになりました。 以前は、製品にテキストカスタムオプションの長い値が含まれている場合、注文の詳細ページが読み込まれず、
sales_order_item.product_options
列の値は適切に保存されませんでした。
- 一部払い戻された注文のストアフロントの注文ステータスが正確になりました。 以前は、一部の払い戻しが適用された場合、出荷後も注文は処理状態のままでした。 GitHub-35528
- ゲストユーザーが作成した注文の顧客グループが、ログインしていません として正確に表示されるようになりました。 以前は、ゲスト注文の概要で顧客グループが NULL になっていましたが、これが確認メールと注文の書き出しに影響を与えていました。 GitHub-35440
- クレジットメモが発行され、顧客が払い戻された後、Closed のステータスが期待どおりに仮想の注文に割り当てられるようになりました。 以前は、仮想製品はステータス ドロップダウンに Complete として表示されていましたが、管理者からコメントが追加されると、注文コメントのフッターに Closed が表示されていました。 GitHub-35283
- お客様は数量が 1 未満の商品を注文できるようになり、商品の数量は
float
のように厳密に入力されるようになりました。 以前は、製品数量はint
と厳密に入力されていたため、1 未満の製品数量の注文は次のメッセージで失敗しました:Some of the products are disabled
。 GitHub-36060
- Apply discount on prices 設定オプションが including taxes に設定されている場合、送料の払い戻しが正しく計算されるようになりました。
- 請求書、出荷、クレジット・メモの各グリッドは、オーダーがアーカイブされた後、非同期で更新されるようになりました。
- 同一のGraphQL リクエストの同時実行が原因で重複した注文が発生しなくなりました。 見積もりは、重複した注文の作成を防ぐために最大 10 秒間ロックされ、2 番目のリクエストは次のエラーで失敗するようになりました:
The cart isn't active
またはThe order has already been placed and is currently processing
。 このロック値は、Magento\Quote\Model\PlaceOrderMutex
クラスlockWaitTimeout
パラメーターの di を使用して設定できます。 GitHub-36274
- 会社属性値が、チェックアウトワークフローの請求セクションと配送先住所セクションに期待どおりに表示されるようになりました。 以前は、注文作成時に店舗が正しく設定されていなかったので、会社属性が注文詳細ページに正しく表示されませんでした。 属性値が正しく格納されるのは、マルチストアデプロイメントで メイン Web サイト の 会社を表示 プロパティが optional に設定されている場合のみです。
- チェックボックスがオンの場合、
customer_address_id
値が新しい請求先住所の期待通り My billing and shipping address are the same 設定されるようになりました。 配送先住所の顧客住所 ID を設定する前に、請求先住所が配送先住所と同じかどうかを識別する追加条件が導入されました。
- 注文配置に関する同時実行の問題が解決されました。 以前は、2 つの注文が異なるブラウザーから同時に、またはほぼ同じ時間に注文された場合、両方の注文に同じ注文 ID が割り当てられていました。 GitHub-35833
- 非同期インデックス作成が有効な場合に、無料の製品に自動請求注文を行うと、期待どおりに動作するようになりました。 これらの注文のエントリは
sales_order_grid or sales_invoice_grid
テーブルに追加されません。 以前は、cron
に依存するのではなく、注文処理中にグリッドのインデックスを作成しようとしたため、Magento Open Sourceが例外をスローしていました。 GitHub-36334
支払い方法
- 配送先住所と請求先住所で指定した国に対して代金引換払いが免除されると、ストアフロントのチェックアウトワークフローで代金引換払い方法が表示されなくなりました。 以前は、この機能の管理者設定は実装されていませんでした。
- 買い物客がトークンを保存していない場合、Vault の支払情報が管理注文作成ワークフローの「支払い」セクションに表示されなくなりました。 GitHub-33954
- 買い物かごの価格ルールによって割引が適用された後、カスタム価格が倍増されなくなりました。 GitHub-35154
- 小計ゼロのチェックアウト支払い方法を使用して注文が行われた場合、新しい注文保留ステータスが期待どおりに適用されるようになりました。
- PayPal Express を使用するゲストの買い物客が、GraphQL経由で注文を作成する際に、ゲストのメール設定が考慮されるようになりました。 以前は、メールアドレスの設定は、PayPal アカウントに設定されたメールアドレスによって上書きされていました。
Braintree
- 支払トランザクションの決済リクエストに注文 ID が追加されるようになりました。
- マーチャントが Reports/Braintree Settlement:
Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49
をクリックしても、Magento Open Sourceが次のエラーをスローしなくなりました。 GitHub-35434
- 管理者で Vault がオフになっている場合、
customerPaymentTokens
クエリはBraintreeトークンを返さなくなりました。
- イタリアとスペインでは、Pay Later のボタンとバナーが有効になっています。
- 管理者ユーザーは、Braintree支払い方法が有効な場合、注文を作成したり、並べ替えたりできるようになりました。 以前は、Magento Open Sourceが次のエラーをスローしました:
report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
。
- BraintreePayPal が有効で Enable Card Payments が無効の場合、Braintree支払い方法を使用したチェックアウトが正常に完了するようになりました。 以前は、進行状況バーが解決されず、Magento Open Sourceに「
adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66)
」というコンソールエラーが表示されていました。 GitHub-35961
- 不正防止、ACH 支払い、ローカル支払い方法の Web フックが実装されました。 不正防止 Web フック リスクの判断がBraintreeされた場合にのみトリガーされます。 ACH Web フックは、ACH 支払いが
settled
またはsettlement decline
に更新された後にのみトリガーされます。
- 「Tagline」および「Layout 設定フィールドが、「管理者のスタイル設定」セクションのすべての PayPal ボタンから削除されました。
- 買い物客が請求先住所を更新しても、チェックアウトワークフローでは、「Braintreeコンテナの支払い方法」オプションが選択されたままになります。 以前は、買い物客が「My billing and shipping address are the same」ボタンの選択を解除すると、支払い方法の選択が解除されていました。
- 管理者から Send Line Items 設定が有効な場合、PayPal トランザクションの行項目が渡されるようになりました。
- 「ACH 支払方法 Account Number」フィールドの検証ロジックで、4 桁から 17 桁のテキストがサポートされるようになりました。
- 管理者から Vault がオフになっている場合、
customerPaymentTokens
クエリはBraintreeトークンを返さなくなりました。
- 管理者ユーザーは、Braintree支払い方法が有効になっている場合に、顧客の注文を作成したり、並べ替えたりできるようになりました。 以前は、Magento Open Sourceが次のエラーをスローしました:
report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
- 買い物客は、Enable Card Payments が無効になっているストアフロントでBraintree支払い方法を使用できるようになりました。 以前は、Magento Open Sourceは次のJavaScript エラーをスローしていました:
_adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66).
パフォーマンス
- 価格インデクサーは、大きなカタログの部分的な再インデックス中にレコードを置き換えた後、期待どおりに古いデータを削除するようになりました。 以前は、インデックス再作成プロセスにより、古いレコードが置き換えられる前に削除されたため、製品がストアフロントから一時的に消えることがありました。 GitHub-35616
bin/magento/setup:upgrade
コマンドのパフォーマンスが向上しました。 以前は、このコマンドはデータベース・トリガーを再作成したため、コマンドの実行中に重大なダウンタイムが発生していました。 さらに、インデクサーはスケジュールされたモードに戻らず、保存モードのままでした。 GitHub-33386
- API による階層価格の更新が高速に実行されるようになりました。 以前は、階層価格を更新すると、不要な
SELECT
クエリが生成され、多くの顧客グループが製品に割り当てられたときに実行が遅れていました。
- カタログウィジェットの製品リストを含んだページの読み込みを最適化しました。 以前は、非グローバル属性はデータベースから直接読み込まれていました。
レポート
- 注文合計レポート 開始日 および 終了日 が、日付選択での選択後に正しく表示されるようになりました。
Braintree/Ui/Component/Report/Listing/Column/PaymentType.php
のANDROID_PAY_CARD
定数はGOOGLE_PAY_CARD
に置き換えられました。 これにより、Braintreeレポートの問題が解決されます。
レビュー
- 特定の範囲へのアクセスが制限された管理者ユーザーは、製品レビューを期待どおりに削除できるようになりました。
役割
- Stores/Configuration/Services/OAuth に不足している ACL を追加しました。 以前は、役割の権限を設定する際に、この OAuth 設定へのアクセスを定義することはできませんでした。
検索
- Minimum Terms to Match 設定が有効な場合、引用符で囲まれた文字列の検索が期待どおりに機能するようになりました。 以前は、Magento Open Sourceが次のエラーをスローしました:
{"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase] query does not support [minimum_should_match]' ...
。
- 販売注文顧客グリッドの顧客レコードの サインアップ ポイント 検索フィルターが、注文作成中に正常に機能するようになりました。
- 複数単語クエリの検索候補の品質が向上しました。
- Display Out Of Stock Products が有効な場合、利用可能なすべての製品の在庫切れオプション出力が検索結果に含まれるようになりました GitHub-36055
送料
- FedEx、USPS、および UPS の配送料は、「送料無料の買い物かご」ルールが買い物かご内の品目のサブセットにのみ一致するように設定されている場合に、正しく計算されます。
- 注文の合計が、送料無料の対象となる指定された最小オーダー金額を下回っている場合、管理配送ページに送料無料オプションが表示されなくなりました。 GitHub-33697
- Magento Open Sourceは、配送先または顧客住所を表示する際に、Admin Customer Show Company 設定に従うようになりました。 この設定を無効にすると、配送会社は配送、顧客住所、またはデータベース注文レコードに含まれなくなります。 以前は、無効化の設定にもかかわらず、情報が表示されていました。 GitHub-33729
- 出荷を見積もる際に、見積もりに余分な保存操作を削除しました。
storeId
範囲が$request->getStoreId()
から直接適用され、管理者ユーザーが見積もりを作成しても範囲が失われないようになりました。 以前は、サードパーティのモジュールを使用して管理者から Quote が作成された場合、発送方法で問題が発生することがありました。
url_key
設定がストアビューレベルで上書きされる製品に対して、SEO に対応する URL が生成されるようになりました。 以前は、カテゴリ製品 URL は、SEO に対応する URL にリダイレクトされませんでした。
- 送料に割引が適用される際に、Magento Open Sourceが最小注文金額エラーをスローしなくなりました。
- 送料の払い戻しは、割引が送料に適用された後に税金が適用された場合に、正しく計算されるようになりました。
- GraphQL
cart
のクエリを使用して、リクエストされた買い物かごに適用されるすべてのプロモーションが、一緒に返されます。 プロモーションには、品目割引、買い物かごルール/割引、クーポン、ギフトカード、店舗クレジットが含まれます。 GitHub-35545
setShippingMethodsOnCart
ミューテーションの出力にprice_excl_tax
タイプとprice_excl_tax
タイプを追加しました。 GitHub-31206
- 一意の配送 ID が、GraphQLのクエリに対して複数のアドレスに配送される注文の配送の詳細と共に、GraphQLの応答で渡されるようになりました。
税
- 複数の配送方法を提供するデプロイメントでの注文に対して、Display Zero Tax Subtotal 設定が期待どおりに適用されるようになりました。 以前は、この設定が無効になっている場合でも、発送方法が選択される前のチェックアウト時に、税金がゼロのフィールドが買い物かごページに表示されていました。 GitHub-35561
- PHP 8.1 を実行する環境で、Magento Open Sourceはストアフロントのカテゴリページに税を含むグループ化された商品を表示できるようになりました。以前は、Magento Open Sourceに商品のリストが表示されず、次の例外がスローされていました。
main.CRITICAL: Exception: Deprecated Functionality: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/m24/vendor/magento/module-tax/Pricing/Render/Adjustment.php on line 188 in /var/www/m24/vendor/magento/framework/App/ErrorHandler.php:61
GitHub-35500
- マーチャントは、スケジュールされた更新を、同じルール ID を含む別の更新に移動できなくなりました。 以前は、同じルール ID を含む別の更新に更新を移動した場合、買い物かご価格ルールの更新をスケジュールすると、重複したスケジュールが作成されていました。
- 顧客グループの自動割り当ては、顧客の住所に関連付けられた VAT ID がない場合に機能するようになりました。 住所に VAT ID が含まれていない場合は、非 VAT 登録顧客に属していると見なされ、Magento Open Sourceは顧客グループを非 VAT グループに変更します。 以前は、Enable Automatic Assignment to Customer Group が有効になっている場合、VAT ID が顧客アカウントから削除されても、顧客アカウントは自動的に
customerGroup
に割り当てられていませんでした。
- ステージングプレビューモードのステージング済みカタログルールに対して、正しいダイナミックブロックが表示されるようになりました。 以前は、関連のないダイナミック ブロックが表示されていました。
- チェックアウト時に複数送料が適用された場合、請求書およびクレジットカードの税金概要セクションで、複数の税金が正しく表示されるようになりました。
- 固定製品税金額と共に税金を含む注文の小計が、買い物かごページの買い物かごルール条件を超える場合、割引は適用されなくなりました。 以前は、合計が買い物かごルールの条件を超えた場合でも、割引が適用されていました。
- GraphQLを使用してゲスト買い物客のアドレスを追加または更新する際に、
vat_id
を指定できるようになりました。
テスト
ICU
およびlibxml
ライブラリのバージョンごとにエラーが発生する修正済みの単体テスト。
- 開発者は、特定のストア表示でデータ修正を実行するようにシステムに指示できるようになりました。 新しいオプションパラメーター
scope
は、ストア器具エイリアスに対応するstring
を受け入れます。
- オプションの
count
パラメーターを使用して、データ固定の複数のインスタンスを生成する機能が追加されました。
- MFTF フレームワークの開発依存関係から非ネイティブ
array_first
関数を削除しました。
翻訳とロケール
- インライン翻訳が、SCRIPT タグにあるフレーズに拡張 Unicode 文字を含む特殊文字で正しく機能するようになりました。 以前は、インライン翻訳を使用する際に、編集されたスクリプトで日本語の文字が正しくレンダリングされませんでした。
- 製品名の
ñ
文字が、URL キーの生成中にn
に変換されるようになりました。
- 実行中の
bin/magento i18n:collect-phrases
の出力に、メールテンプレートの翻訳が期待どdepend
りに構文に含まれるようになりました。 GitHub-35449
- 日本語の文字を製品ページ属性セット(コンボボックス)に直接入力できるようになりました。 以前は、このコンボボックスに直接日本語を入力すると、MacOSで Firefox ブラウザーを実行する際に、文字が変更または削除されていました。 すべてのブラウザーで日本語HTMLの処理が改善される
textInput
文字の属性が、Value
属性とvalueUpdate
属性に置き換えられました。
getOptions
メソッドは、ストアビューに基づいて属性ラベル値price
正しく取得するようになりました。 以前は、price
属性は、間違ったストア表示に対してGraphQLの操作中に翻訳されていました。
UI
- Web サイト固有の通貨が、管理製品グリッドの特別価格、コスト、MSRP 列で期待どおりに使用されるようになりました。 以前は、特別価格でストアビューでフィルタリングすると、管理カタログの製品グリッドに正しい通貨記号が表示されていませんでした。
- 製品カスタムオプションのドラッグ&ドロップ機能が期待どおりに動作するようになりました。 カスタマイズ可能なオプショングリッドに複数のページがある場合、カスタマイズ可能なオプションをページ間で移動できるようになりました。
- 管理ダッシュボードグラフに、現在の暦年の初めから現在の日付までの YTD 時間間隔が期待どおりに表示されるようになりました。 以前は、日付範囲は 12 か月以上が含まれていました。
- ストアフロントのホームページに、欠落していたデフォルトのお気に入りが追加されました。 GitHub-35493
- 管理者は、各管理者ユーザーの最新のログイン日を正常に表示できるようになりました。 以前は、管理者ユーザーが初めて管理者にログインすると、管理者ユーザーグリッドに空のログイン日付の値が表示されていました。
- メールテンプレートのプレビュー機能(Marketing/Communications/Email Templates)で、テンプレートが正しく表示されるようになりました。 以前は、プレビュー画像は切り捨てられていました。 GitHub-35697
- 新しい配送先住所モーダルのスタイル設定をサポートするために、
new-shipping-address-modal
クラスを追加しました。
- Admin Stores の
Search Weight
属性のStorefront Properties
入力フィールドの下に情報テキストを追加しました > Attributes > Product。
- メールのプレビューが、ポップアップウィンドウではなく別のタブで開くようになりました。ポップアップウィンドウでは、メールコンテンツをより広く表示できます。 以前は、メールコンテンツは切り捨てられていました。
- ユーザーロールグリッドのフィルター機能(管理者 System/Permissions/User roles/Administrators)が期待どおりに動作するようになりました。 配列の値は個別に処理されるようになりました。 以前は、このグリッドにクエリを入力しようとすると、Magento Open Sourceがこのコンソールエラーをスローし、ページが読み込まれませんでした:
Uncaught TypeError: Cannot read properties of null
。 GitHub-35993
- REST API を使用して顧客を作成する際の、属性値の検証が追加されました。 無効な属性値が指定された場合、作成プロセスが失敗するようになりました。 以前は、必須フィールドではない性別の検証はありませんでした。 顧客の作成時に、性別として渡された値が
customer_entity
テーブルに保存されました。
- チェックアウト時に追加されたアドレスが、想定される形式を維持するようになりました。 以前は、空白行は無視されていました。
- 商品グリッドの列グリッド表示を変更し、カスタムビューで新しい列を選択すると、「すべてのグリッド列を選択」アクションがトリガーされなくなりました。 以前は、列ボックスが表示されなくなり、グリッド内の製品が選択または選択解除されていました。 GitHub-36302
- 管理者ユーザーは、管理者完了タスクログを正常にクリアできるようになりました。 以前は、管理者には「
Something went wrong
」というエラーが表示されていました。 GitHub-36255
- テーマのヘッダー設定
Welcome Text
に一重引用符を含めることができるようになりました。 以前は、Magento Open SourceがJavaScript エラーUncaught SyntaxError: Unable to process binding "ifnot: function(){return customer().fullname }"
をスローしていました。
URL の書き換え
- グローバルなすべてのストアビュー範囲で製品の表示を Not Visible Individually に変更すると、表示属性を上書きしていないストアビューの URL 書き換えのみが削除されるようになりました。 この方法で製品の表示を変更すると、URL キー属性を上書きしたストア表示も含め、すべてのストア表示で URL の書き換えが生成されます(ただし、表示設定は生成されません)。 以前は、表示設定が変更された場合に、URL 書き換えルールが適用されませんでした。
Web API フレームワーク
- 画像が他のストア表示の役割に割り当てられているために製品から削除されていない場合、REST API
DELETE /rest/V1/products/:sku/media/:entryId
はエラーメッセージを返すようになりました。 以前は、画像が正常に削除されなかった場合でも、API は成功した応答を返していました。
- マーチャントは、REST API を使用して、総計が 0 の注文のクレジットメモを作成できるようになりました。 以前は、Magento Open Sourceで「
The order does not allow a credit memo to be created. The credit memo's total must be positive. We can't create a credit memo for the invoice/order
」というエラーが表示されていました。
- 管理者の製品編集ページに、REST API を使用して製品の web サイトの割り当てが変更された後の製品の割り当てが正確に反映されるようになりました。 GitHub-36281
- 製品を更新するための一括 REST API リクエスト中に、複数選択の属性に重複したオプション ID を含めることがなくなりました。 以前は、製品を更新するための一括 API リクエストを送信する際に、複数選択属性に重複したオプション ID を設定できました。 その複数選択属性がレイヤーナビゲーションに含めるように設定されている場合、EAV インデックス作成が
Duplicate entry
エラーで失敗しました。
- 買い物かごの製品名で、指定されたストア表示の値が期待どおりに使用されるようになりました。 以前は、買い物かご内の製品名は、REST API の買い物かご応答で、常にデフォルトのストア表示の値を返していました。
- 買い物かご項目のカスタムオプションの値が、REST API を使用して更新できるようになりました。 GitHub-35768
- 20 を超える一括 API リクエスト
sourceItems
、在庫が有効なデプロイメントで正常に完了するようになりました。
- Fixer 通貨サービスが ApiLayer 経由で生成されたキーで期待どおりに機能するようになり、通貨レートが正しく書き出されます。 以前は、マーチャントが管理者を通じて通貨レートをインポートしようとすると、Magento Open Sourceがエラーをスローしました。
- REST API
/rest/V1/bulk?searchCriteria[filter_groups]
リクエストを使用して、検索条件で一括操作をクエリできるようになりました。 以前は、次のエラーが返されていました。report.CRITICAL: Report ID: webapi-624bbb1db96c4; Message: Item (Magento\AsynchronousOperations\Model\Operation) with the same ID "0" already exists.
- 製品価格は、Manage Base Price API を使用して、管理ページとストアフロントカタログ検索ページの両方で正しく更新されるようになりました。 GitHub-33767
ウィッシュリスト
- 買い物客は、ログイン後、ウィッシュリストに商品を追加できるようになりました。 以前は、ログイン後のフォームキー検証に関する問題が原因で、ウィッシュリストへの追加要求で送信されたフォームキーが無効になっていました。
- ゲストの顧客が確認メールでアカウントを確認した後、製品リストおよび表示ページから、ウィッシュリストに期待どおりに製品が追加されるようになりました。 以前は、アカウントの確認後、製品はウィッシュリストに追加されませんでした。
- 買い物客が商品またはカスタムオプションの無効な値を含むアイテムをウィッシュリストに追加しようとすると、
addProductsToWishlist
クエリが情報エラーメッセージを返すよselect
になりました。 以前は、ドロップダウンカスタムオプションの値に対するサーバー検証が見つからなかったので、データベースで無効な値が発生していました。 その結果、エンドポイントが内部サーバーエラーGraphQL endpoint returns Internal server error with "Call
を返しました。
既知の問題
問題:送料無料が使用可能(Stores/Configuration/Sales/Delivery Methods)で、表示された出荷価格に税金が含まれている場合は、クレジット・メモを作成できません。 クレジットメモを作成しようとすると、Adobe Commerceが次の例外をスローします:"Division by zero".vendor/magento/module-sales/Model/Order/Creditmemo/Total/Tax.phpLine 139
。 GitHub-36800
回避策:この問題のホットフィックスが利用できるようになりました。 Quality Patches Tool: Search for patches に移動し、パッチ ACSD-50814 を検索します。
コミュニティの投稿
より広いMagento Open Sourceコミュニティに感謝し、今回のリリースへの貢献を認めたいと思います。
コミュニティエンジニアリングチーム のMagento貢献者は、貢献した上位の個人とパートナーのリストを月別、四半期別、年別に管理しています。 その投稿者ページから、GitHub の結合された PR へのリンクをフォローできます。
パートナーの投稿
次の表に、パートナー様のコントリビューションを示します。 この表には、プルリクエストを行ったパートナー、外部プルリクエスト番号、関連付けられた GitHub 問題番号(使用可能な場合)が一覧表示されます。
個々のコントリビューターの投稿
次の表に、コミュニティメンバーからの投稿を示します。 この表は、プルリクエストを行ったコミュニティメンバー、外部プルリクエスト番号、関連付けられた GitHub 問題番号(使用可能な場合)の一覧です。
必要システム構成
当社の技術スタックは、PHP と MySQL をベースに構築されています。 詳しくは、 システム要件を参照してください。
インストールとアップグレードの手順
Composer を使用してMagento Open Source 2.4.6 をインストールできます。