Magento Open Source 2.4.3 リリースノート
Magento Open Source 2.4.3では、パフォーマンスとセキュリティが強化され、プラットフォームが大幅に改善されました。 セキュリティの強化には、reCAPTCHAのカバレッジの拡大と、組み込みのレート制限の組み込みがあります。 コアコンポーザーの依存関係とサードパーティライブラリが、PHP 8.xと互換性のある最新バージョンにアップグレードされました。 Page Builderは、Magento Open Sourceのバンドル拡張機能として利用できるようになりました。 これは、Adobe CommerceとMagento Open Sourceのデフォルトのコンテンツ編集ツールになりました。
このリリースには、コアコードに対する370以上の新しい修正と33のセキュリティ強化が含まれています。 これには、コミュニティメンバーによる約290のGitHub問題の解決が含まれます。 これらのコミュニティの貢献は、コアコードの小規模なクリーンアップから、GraphQLの大幅な機能強化まで、多岐にわたります。
このリリースには、コアコードに対する370以上の新しい修正と33のセキュリティ強化が含まれています。 Magento Open Source 2.4.2 リリースノートで特定されたすべての既知の問題は、このリリースで修正されました。
Adobe Commerce 2.4.2-p2について詳しくは、Adobe Commerce 2.4.2-p2 リリースノート を参照してください。
その他のリリース情報
これらの機能のコードは四半期ごとのリリースにバンドルされますが、これらのプロジェクトのいくつか(例えば、プログレッシブ Web アプリケーション(PWA) Studio)も個別にリリースされます。 これらのプロジェクトのバグ修正は、各プロジェクトのドキュメントに記載されている、プロジェクト固有の個別のリリース情報に記載されています。
配送業者としてDHLを提供し続けるには、AC-3022.patchを適用します
DHLはスキーマバージョン 6.2を導入しており、近い将来スキーマバージョン 6.0を廃止する予定です。 DHL統合をサポートするAdobe Commerce 2.4.4以前のバージョンは、バージョン 6.0のみをサポートします。 これらのリリースを展開する販売者は、DHLを配送業者として提供し続けるために、最も早い都合でAC-3022.patchを適用する必要があります。 パッチのダウンロードとインストールについて詳しくは、配送業者としてDHLを提供し続けるためのパッチの適用 ナレッジベースの記事を参照してください。
MC-43048__set_rate_limits__2.4.3.patchを適用して、API レート制限の問題に対処します
このホットフィックスは、Web APIが配列に20個を超える項目を含むリクエストを処理できない問題の解決策を提供します。 この問題は、Magento Open Source 2.4.3、Adobe Commerce 2.4.3、または2.3.7-p1を実行しているデプロイメントに影響します。 これらのリリースには、DoS (サービス拒否)攻撃を防ぐために組み込みのレート制限が追加され、デフォルトの最大値は20に設定されました。 このパッチは、デフォルトの制限を高い値に戻します。 ストアでDoS攻撃が発生していると疑われる場合は、Adobeでは、リクエスト可能なリソースの数を制限するために、デフォルトの入力制限を低い値に下げることをお勧めします。 配列🔗 ナレッジベースの記事「Web APIが20個を超える項目でリクエストを処理できない」を参照してください。
アップグレード時のPHPの致命的なエラーに対処するには、AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patchを適用します。
Magento Open Source 2.4.3へのアップグレード中に、次の致命的なエラーが発生する可能性があります。
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
このエラーは、PHP 8.x関数であるstr_contains関数を使用した結果です。 Open Source 2.4.3はPHP 8.xをサポートしていません。 このホットフィックスは、この関数をサポートされているPHP 7.x関数に置き換えます。 Adobe Commerce アップグレード 2.4.3、2.3.7-p1 PHPの致命的なエラーのホットフィックス ナレッジベースの記事を参照してください。
ハイライト
このリリースでは、次のハイライトを確認してください。
セキュリティ機能の大幅な強化
このリリースには、33のセキュリティ修正とプラットフォームのセキュリティの改善が含まれています。 これらのセキュリティ修正の多くは、2.4.2-p2および2.3.7-p1にバックポートされています。
リモートコード実行(RCE)およびクロスサイトスクリプティング(XSS)の脆弱性をクローズするのに役立つ33のセキュリティ機能強化
これらの問題に関連する確認された攻撃は、これまでに発生していません。 ただし、特定の脆弱性を悪用して、顧客情報にアクセスしたり、管理者セッションを引き継いだりする可能性があります。 これらの問題のほとんどは、攻撃者が最初に管理者へのアクセスを取得する必要があります。 その結果、IP許可リストに加える、二段階認証、VPNの使用、/adminではなく一意の場所の使用、適切なパスワードの健全性など、管理者を保護するために必要なすべての手順を実行することをお勧めします。 これらの修正された問題については、Adobe セキュリティ情報を参照してください。
その他のセキュリティ機能
このリリースのセキュリティの改善点は、次のような最新のセキュリティのベストプラクティスに準拠することです。
-
新しいComposer プラグインは、依存関係の混乱を防ぎ、パブリックパッケージリポジトリの内部パッケージと同じ名前の悪意のあるパッケージを識別するのに役立ちます。 2.4.3 リリース 🔗のブログ記事で、Adobe リリースの新しいComposer プラグインを参照してください。
-
サービス拒否(DoS)攻撃を防ぐために、レート制限がAPIに組み込まれるようになりました。 Web APIでは、クライアントがリクエストできるリソースのサイズまたは数に制限が課されるようになりました(デフォルトの最大値は20に設定され、ビジネスニーズに応じて異なる値に設定できます)。 これらの制限の設定について詳しくは、 レート制限を参照してください。
-
ReCAPTCHA カバレッジが拡張されました。これには次のものが含まれます。
-
対応するHTML ページを持つWeb APIは、ReCAPTCHAでカバーされます。 (統合によってアクセスされるweb APIは除きます)。 ReCAPTCHAのカバレッジは、エンドポイントをスパム攻撃から保護します。 Web APIにOAuthを使用するサードパーティ統合サービスがアクセスすると、ReCAPTCHAは無効になります。
-
Place Order ストアフロントページと支払い関連のweb API。 これらのページのReCAPTCHA保護はデフォルトで無効になっており、管理者から有効にできます。 このカバレッジは、店をカード攻撃から保護するためのブルートフォース対策メカニズムを追加します。
-
基盤の改善
このリリースには、フレームワークの品質と次の機能領域を向上させる機能強化が含まれています。
-
顧客アカウント
-
カタログ
-
CMS
-
OMS
-
読み込み/書き出し
-
プロモーションとターゲティング
-
カートとチェックアウト
-
B2B
-
ステージングとプレビュー
PayPal Pay Laterは、PayPalを含むデプロイメントで サポートされるようになりました。 この機能により、買い物客は購入時に全額を支払うのではなく、隔週の分割で注文の支払いを行うことができます。
新しいuse_application_lock インデックス作成モード。 use_application_lock モードでは、環境変数を使用するか、app/etc/env.php ファイルを設定することで、再インデックス作成を有効にできます。 このモードを有効にして失敗した後に、手動でインデクサーをリセットする必要がなくなりました。 インデックス再作成プロセスに対するアプリケーションロックモードの使用を参照してください。
プラットフォームの機能強化
バージョン 2.4.3はまだPHP 8.xと互換性がありませんが、次のプラットフォームのアップグレードにより、PHP 8.xとの将来の互換性に近づくことができます。
-
コアコンポーザーの依存関係とサードパーティライブラリが、PHP 8.xと互換性のある最新バージョンにアップグレードされました。
-
KnockoutJS ライブラリがv3.5.1 (最新バージョン)にアップグレードされました。
-
非推奨のTinyMCE v3 ライブラリが削除されました。 TinyMCE v3.xに関連する
Magento_Tinymce3BannerモジュールとMFTF テストがAdobe Commerceから削除されました。 -
Magento Open Source 2.4.3は、Redis 6.0.12との互換性がテストされ、確認されています。 (バージョン 2.4.xはRedis 5.xと互換性があります)。
-
Laminas ライブラリの依存関係がPHP 8.x互換バージョンにアップグレードされました。 一部の冗長な依存関係が
composer.jsonファイルから削除されました。 Magento Open Source 2.4.3では、Laminas 3.4.0が使用されています。
パフォーマンスの強化
このリリースには、製品価格およびカタログルールインデックスのインデックス作成時間を短縮する機能強化が含まれています。 顧客グループまたは共有カタログからweb サイトを除外できるようになりました。これにより、インデックス作成のレコード数を削減し、インデックス作成時間を短縮できます。
Adobe Stockとの連携
このリリースには、Adobe Stock Integration v2.1.1が含まれています。
GraphQL
このリリースでは、共有ルートに対するGraphQLのカバレッジが追加されています。 route queryおよびRoutableInterfaceは、製品、カテゴリ、およびCMS ページでのルーティング リクエストをサポートしています。 urlResolver クエリは廃止され、その機能はroute クエリに置き換えられました。
これらの機能強化について詳しくは、GraphQL開発者ガイド を参照してください。
ページビルダー
Page Builderは、Magento Open Sourceのバンドル拡張機能として利用できるようになりました。 これは、Adobe Commerce 2.4.3およびMagento Open Source 2.4.3のデフォルトのコンテンツ編集ツールになりました。 WYSIWG エディターは、任意のサードパーティモジュールに置き換えることができます。
ページビルダーは、次の管理領域のTinyMCE エディターに置き換わります。
- CMS Page
- CMSブロック
- カテゴリの説明
- 製品説明
TinyMCEで作成されたすべてのコンテンツは、HTMLとしてページビルダーに移行されました。
PWA Studio
機能強化とバグ修正について詳しくは、PWA Studio リリース を参照してください。 PWA Studioのバージョンと互換性のあるバージョンの一覧については、互換性を参照してください。
互換性のアップグレード ツール
互換性のアップグレード ツール の範囲が、コミュニティからのフィードバックに基づいて拡張されました。 #upgrade-compatibility-tool Slack チャンネルに参加して、Adobe製品チームとコミュニティのサポートを受けるだけでなく、ツールの将来の方向性を導く手助けをします。
ベンダー開発の拡張機能
このリリースの機能と変更点については、次の記事を参照してください。
修正された問題
2.4.3 コアコードの数百もの問題を修正しました。
インストール、アップグレード、導入
bin/magento setup:db:statusコマンドは、アップグレードが成功した後、すべてが最新であることを示すメッセージを返すようになりました。 以前、アプリケーションはこのエラーを表示しました:Declarative Schema is not up to date。
- 新しい設定可能な製品の作成に失敗した場合、フォームのリロード時に設定値が保持されるようになりました。 以前は、フォームのリロード中に値が失われ、アプリケーションに次のエラーが表示されていました:
The value specified in the URL Key field would generate a URL that already exists。 GitHub-32102
- Redisを使用したMagento Open Source デプロイメントからAdobe Commerceにアップグレードするために
bin/magento setup:upgradeを実行すると、アプリケーションで例外がスローされなくなりました。
- Galera Clusterで実行されているデプロイメントは、より多くの顧客をサポートするようになりました。 GitHub-31038
- アプリケーションがインストールされ、
—use-rewrites=0オプションまたはweb/seo/use_rewritesがcore_config_data_tableで0に設定されている場合、管理者はデプロイメントに正常にログインできるようになりました。 GitHub-32100
AsyncCssPluginのsortOrder読み込みを更新しました。 アプリケーションはJsFooterPluginより前にAsyncCssPluginを読み込んでいます。 GitHub-30882
Magento\Config\Model\Config\PathValidatorは現在、表示パスをチェックして、要素が存在するかどうかを判断し、設定パスがある場合は、代わりにconfig.xmlパスを検証に使用します。 GitHub-27678
- GruntまたはサーバーサイドのコンパイルでLess ファイルをコンパイルすると、同じ結果が得られるようになりました。 以前は。
_extends.lessの他の.abs- stylesを拡張する.abs- stylesは、Gruntでコンパイルすると正しく出力されませんでした。 その結果、実稼動環境と開発環境のデプロイメントが異なっていました。 GitHub-7231
Adobe Stockとの連携
- API キー(クライアント ID)と クライアントシークレット が設定されていない場合、「Adobe Stockの検索」ページに有益なメッセージと管理者Stores > Configuration > Advanced > System ページへのリンクが表示されるようになりました。 以前は、アプリケーションに次のエラーが表示されていました:
We couldn't find any records。リンクはありません。
バックエンド
- アクセスが制限されている管理者(1つのweb サイトのみにアクセスが割り当てられているユーザーなど)は、グローバルスコープに設定されたカテゴリを編集できなくなりました。
- 生成されたシステムレポート (システム > サポート > システムレポート)が正しくレンダリングされるようになりました。 以前は、レポートの内容が食い違っていました。
- アプリケーションは、バンドル製品の作成中に 動的価格 設定が有効になっている場合、価格 フィールドの検証を正常にオフにするようになりました。 以前は、動的価格設定が有効になっている場合、価格 フィールドから値を削除すると、アプリケーションが検証エラーをスローしていました。 GitHub-26214
- アプリケーションが2つのURLからアクセスできるように設定されているデプロイメントで、管理者URLがデフォルトのweb サイト URLと異なる場合、無限リダイレクトは発生しなくなります。
バンドル製品
addProductsToCartの変異を使用して、複数のチェックボックスオプションを持つバンドル製品をカートに追加できるようになりました。
- バンドル製品の価格インデックス作成は、データベーステーブルのロックを回避する一時テーブルを使用して実行されるようになりました。 以前は、アプリケーションは物理テーブルを使用していたため、テーブルがロックされていました。
- バンドルアイテムの価格を0.00に設定できるようになりました。 以前は、価格を0.00に設定した後に編集ページに戻ると、価格はデフォルト値に戻りました。 GitHub-32383
- バンドル製品を含む注文の詳細では、注文が行われる前に価格が変更された場合、バンドル製品の正しい価格が表示されるようになりました。
- バンドル製品の在庫状況が、子製品の在庫状況に基づいて更新されるようになりました。 以前は、バンドル商品は、1つのオプションが商品から削除されたときに在庫切れとして表示され、バンドル商品には同じSKUの2つのオプションがありました。
- 管理者は、バンドル製品の
Shipment Type属性の値を、別の属性グループに移動した後で変更できるようになりました。 以前は、属性セットのデフォルトグループ以外の属性グループに移動された場合、この属性は常にTogether値で保存されていました。
- GraphQL
setGuestEmailOnCartのミューテーションが、ゲストメールを正しく更新するようになりました。 以前は、見積書と見積書の住所テーブルは更新されませんでした。
- REST API呼び出しを介してバンドル製品に子製品を追加、削除、または更新すると、トリガーが期待どおりにインデックスを再作成するようになりました。 以前は、これらのアクションはインデックス再作成をトリガーしていませんでした。そのため、バンドル商品は、手動でインデックス再作成が実行されるまで、在庫状況を変更しませんでした。
- アプリケーションに、階層価格を含むバンドル製品の正しい価格帯が表示されるようになりました。 GitHub-30284
- アプリケーションは、ショッピングカートページと、バンドルオプションの価格が変更された後のチェックアウトワークフローの出荷手順に、予想と同じ合計価格を表示するようになりました。
- 顧客のショッピングカートからバンドル製品にアクセスして、バンドル製品を正常に設定できるようになりました。 以前は、製品の設定ページが完全に読み込まれず、設定を保存できませんでした。
- マルチストア展開の各ストアビューで、バンドル商品に一意の価格を割り当てることができるようになりました。 Web サイト固有の価格は
catalog_product_bundle_selection_priceテーブルに保存されます。 以前は、Stores > Configuration > Catalog > Catalog > Price > Catalog Price ScopeがWebsiteに設定されていても、アプリケーションはバンドル製品の価格をweb サイトの範囲に基づいていませんでした。 Web サイト固有の価格はcatalog_product_bundle_selection_priceに保存されませんでした。 GitHub-12584
- Dynamic Pricingが無効になっている場合、バンドル製品の請求書に、関連するシンプル製品の正しい数量が表示されるようになりました。 以前は、バンドル製品に関連付けられた単純な製品には、バンドル製品ではなく親製品の数量がありました)。 GitHub-30802
updateProductsInWishlistの変異により、ウィッシュリスト内のバンドル製品に属するアイテムが正常に更新されるようになりました。 以前は、ウィッシュリスト項目を更新する代わりに、この突然変異により項目が削除され、新しい項目が作成され、項目IDが変更されていました。
キャッシュ
varnish6.vclファイルが更新され、顧客ページのキャッシュがバイパスされました。
CAPTCHA
- 買い物客から提供されたデータがCAPTCHAで正しく検証されるようになり、買い物客がPayPal Payflow Proでチェックアウトを複数回試みても、CAPTCHA フィールドが期待どおりに表示されるようになりました。
- チェックアウトワークフローの支払いページでCAPTCHA検証がランダムに失敗しなくなりました。
- 失敗した完了試行回数を超えると、アプリケーションにCAPTCHA フィールドが期待どおりに表示されるようになりました。 以前は、CAPTCHA チャレンジを再試行するように求めるメッセージが表示されましたが、CAPTCHA フィールドは表示されませんでした。
- CAPTCHAがチェックアウトページで正常に機能するようになりました。 以前は、買い物客がCAPTCHA チャレンジに正しく回答した後、チェックアウトページのローダーが完了せず、アプリケーションに次のエラーが表示されていました:
captchaData[formId] is undefined。 (このエラーは、買い物客が以前に2.3.5-p1を実行しているデプロイメントにアクセスしたのと同じブラウザーを使用した場合にのみ発生します)。
defaultCaptcha.jsファイルの_.isEmpty()チェックが正常に完了しました。 以前は、これらのチェックは完了せず、その結果、アップグレード後にチェックアウトページを読み込めませんでした。 GitHub-31641
カートとチェックアウト
- このアプリケーションでは、カート内の製品数量を変換および更新する際に、ロケール固有の小数点検索機能が考慮されるようになりました。
- アプリケーションでは、買い物客が「注文を配置」ボタンをクリックした場合にのみ、関連するブロックに利用条件の検証メッセージが表示されるようになりました。 以前は、チェックアウトワークフローで買い物客が支払い方法を変更するたびに、このメッセージが「割引コードを適用」ブロックに表示されていました:
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again。
- 買い物客が「更新」ボタンをクリックできず、発送手順に戻った場合、チェックアウト支払い手順の請求先住所フォームへの変更がアプリケーションによって破棄されるようになりました。
- カスタマイズ可能なオプション
(File)を持つ製品には、複数配送チェックアウトプロセス全体を通じて期待どおりにアクティブなリンクが含まれるようになりました。 以前はこのリンクがありませんでした。 GitHub-31095
- 管理者のショッピングカートに、複数の通貨をサポートするストアの正しい通貨で商品価格が表示されるようになりました。 以前は、価格は複数回、指定された通貨に変換されていました。最初はストアフロントから商品がカートに追加され、その後に管理画面で注文が表示されたときに再度価格が変換されました。
- 買い物客は、最低広告価格(MAP)が通常の商品価格を超える商品をカートに追加できるようになりました。
- 複数の住所でチェックアウトする際に、チェックアウトワークフローから請求先住所を正常に変更できるようになりました。
- ゲストが作成したすべての有料支払いトランザクションがデータベースに保存され、管理者に表示されるようになりました。 以前は、同時注文の一部のみがデータベースに保存され、データベースのロックに起因するタイムアウトにより、ほとんどの注文が失われました。 GitHub-25862
- ゲストがミニカートに商品を置いたときに、特殊文字を含むインラインウェルカムメッセージが正しく表示されるようになりました。 以前は、アプリケーションで製品をミニカートに追加したり、ウェルカムメッセージを表示したりすることはありませんでした。 GitHub-32250
- 実店舗配信が有効になっている場合、チェックアウトワークフローの配送ページが正常に読み込まれるようになりました。 以前は、アプリケーションでJavaScript エラーがスローされ、配送チェックアウトページが完全にレンダリングされませんでした。
- カタログ
di.xmlファイルにitemResolvers引数を追加しました。 その結果、設定可能な製品モジュールとグループ化された製品モジュールが無効になっている場合、チェックアウトが壊れることはなくなります。 GitHub-30860
- 管理者の再注文ワークフロー中に、支払いと配送情報 セクションにラジオボタンが表示されるようになりました。 GitHub-30257
- カートに複数のオプションを含むバンドル商品が含まれている場合、アプリケーションがカートレベルの固定割引でカート価格ルールを正しく適用するようになりました。 以前は、カート価格ルールは注文に完全に適用されていませんでした。 GitHub-30952
- カテゴリーリストビューの「カートに追加」ボタンが期待どおりに機能するようになりました。 GitHub-32232
- POST
/V1/carts/mine/itemsを使用して、グループ化された商品のカスタム数量をカートに追加できるようになりました。 GitHub-26909
- チェックアウトワークフローの請求先住所領域に配送先住所が入力されなくなりました。 以前、請求先住所の都道府県 フィールドが空で、配送先住所と請求先住所が異なる場合、アプリケーションは請求先住所都道府県 フィールドに配送先住所の情報を入力しました。 GitHub-31608
カタログ
- 数量増分を有効にする属性と 数量増分 属性の一括更新が期待どおりに機能するようになりました。 GitHub-29544
- 管理者との最近の製品同期を有効にした後、アプリケーションでJavaScript エラーがスローされなくなりました。 以前は、次のJavaScript エラーが表示されていました:
Cannot read property 'status' of undefined。
- カスタムテーマレイアウトの更新が期待どおりに適用されるようになりました。 以前は、カスタムテーマレイアウトの更新は無視されていました。
- 製品カテゴリのキャッシュが、
indexer_update_all_views実行中にcronによって正常にクリアされるようになりました。 以前は、インデックス再作成後のカテゴリーページの製品数が正しくありませんでした。
- ストアビューの製品更新REST API リクエストで属性が指定されていない場合、属性値が変更されたままになります。 以前は、属性が指定されていない場合、アプリケーションは属性値をデフォルトのスコープ値にリセットしました。
- 管理者製品グリッド(管理者カタログ > 製品)に、製品がSKUでフィルタリングされたときに正しい製品数が表示されるようになりました。
- カテゴリ権限が有効になっている場合に商品がCMS ページに追加されると、アプリケーションに正確な在庫状況が表示され、指定した顧客グループの価格が表示されなくなりました。 以前は、実際の在庫状況に関係なく、すべての商品が在庫切れとして表示されていました。
- 「Advanced Pricing Customer Group Price」ブロック価格入力フィールドの最小幅が5桁になりました。 以前は、低解像度ディスプレイでこのフィールドに表示されているのは2つのシンボルのみでした。
- 製品を削除した後、製品メディアイメージが正常に削除されるようになりました。 以前は、製品の削除に成功した後、製品メディア画像はフォルダー内に残っていました。
- 管理画面で製品を作成または編集してからスケジュール デザイン更新を作成すると、ページレイアウトが期待どおりに更新されるようになりました。 GitHub-32007
- 値が0のカスタム製品属性を空白として保存できるようになりました。 以前は、アプリケーションはこの値を空白に更新しませんでした。
- カスタムカテゴリーレイアウトの更新ファイルが、想定どおりに製品に適用されるようになりました。 以前は、更新ファイル ハンドル (
catalog_category_view_*)が製品ハンドルと一致しませんでした。 GitHub-27285
- 管理者製品リストの固定製品税(FPT)列の並べ替えが無効になりました。 以前は、FPT列を並べ替えた後に製品ページを再読み込みできませんでした。
- 一致する製品の価格が各web サイトで異なる場合に、複数のweb サイト展開でページビルダー製品ウィジェットのプレビューが期待どおりに機能するようになりました。
- GET
/rest/V1/products/?searchCriteria[filterGroups]を使用した商品検索上の位置別の並べ替えが正常に機能するようになりました。 以前、製品コレクションには、並べ替え用のフィールドposition値がありませんでした。 GitHub-31591
- 管理者ユーザーは、製品グリッドの 名前 およびSKU フィールドにダブルスペースを表示できるようになりました。 以前は、アプリケーションは複数のスペースを1つのスペースに折りたたんでいました。
- 管理画面の販売可能数量が0の場合、ストアフロントに商品が在庫切れとして表示されるようになりました。 以前は、これらの商品はストアフロントに在庫として表示されており、アプリケーションにアクティブな「カートに追加」ボタンが表示されていました。 GitHub-31117
- 管理者は、カスタマイズ可能なオプション
(File)を持つ製品を、管理者顧客ページのショッピングカートセクション(顧客のアクティビティ列)から「注文済みアイテム」グリッドに追加できるようになりました。 以前は、値が\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptionsに挿入される前に正しくフォーマットされていなかったため、アプリケーションは項目をリストに追加しませんでした。
- 単一のオプションのみを含むバンドル商品の商品オプションを選択するように求めるプロンプトが表示されなくなりました。
- 新しいウィジェットの作成中に、アプリケーションがすべてのサブカテゴリをレイアウト更新(アンカーと非アンカーのカテゴリ)に表示するようになりました。
- 1つのストアビューに対してのみ製品名が更新された場合、マルチストア展開のすべてのストアビューのデフォルト値が
productクエリで上書きされなくなりました。 GitHub-31083
- Magento Open Sourceは、管理者関連製品、アップセル、およびクロスセル リストのページごとの値を変更すると、予想どおりに合計ページ数を更新します。 GitHub-31059
- 管理者は、2つ以上のカスタマイズ可能なオプション
(File)を持つ製品をSKUで注文に追加できるようになりました。
- 権限が制限された管理者がAdminのCMS ページにProduct Widgetを追加しても、アプリケーションでエラーがスローされなくなりました。 以前は、管理者が保存 ボタンをクリックしたときに、アプリケーションがこのエラーをスローしました:
We are sorry, an error has occurred while generating the content。
- JavaScript カレンダーを使用が有効になっている場合に、以前の注文の日付が入力された日付カスタマイズ可能オプションで、商品詳細ページが開くようになりました。 現在の設定に基づいて値が書式設定されていない場合、カスタム日付オプション値リゾルバーが別の形式にフォールバックするようになりました。 以前は、カスタム日付オプションの値は空でした。
- 製品が在庫切れの場合、アプリケーションにカート内のエラーが1つだけ表示されるようになりました。 以前は、アプリケーションに冗長なメッセージが表示されていました。 GitHub-27469
POST /V1/product/:skuエンドポイントを使用してバンドル製品を作成または更新する際に、required_optionsおよびhas_optionsバンドル属性を想定どおりに設定できるようになりました。 以前は、これらのカスタム属性は、1 (1)に設定する努力にもかかわらず、0 (ゼロ)に設定されていました。
- 管理者は、カスタマイズ可能なオプション
(File)を含む製品をSKUで注文に追加できるようになりました。 GitHub-30285
type_idを指定せずに商品と価格を保存できるようになりました。 GitHub-13639
- REST
PUT /V1/products/:sku/linksリクエストを使用して新しい子製品を新しいグループ製品に関連付ける場合、グループ製品がストアフロントで期待どおりに利用できるようになりました。 以前は、bin/magento cron:runを実行した後、製品のインデックスが正しく作成されませんでした。
NULLSKU値を持つ製品を作成できなくなりました。 以前は、カスタムインポーターを使用するか、データベース内で直接SKU値を持たない製品を作成することができましたが、管理者から編集しようとすると、アプリケーションがエラーをスローしました。 GitHub-27411、GitHub-32525
- シンプルな製品に必要なカスタムオプションを追加すると、警告なしで親コンポジット製品から削除されなくなりました。 アプリケーションに有益な警告が表示され、製品が保存されなくなりました。 以前は、アプリケーションは製品の変更を保存し、警告は表示されませんでした。 GitHub-30492
カタログルール
- カタログ価格ルールが項目に適用されるときに、
productsクエリが現在の値を返すようになりました。 GitHub-26738
catalogrule_product__tempで始まる一時テーブルは、買い物かごまたはカタログルールの有効期限が切れた後に再インデックス作成が失敗した場合、無効になった場合、または非アクティブになった場合に、予期したとおりに削除されるようになりました。 GitHub-22273
- タイムゾーンは、
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIdと\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIdsで同じように適用されるようになりました。 GitHub-29549
CMS content
- 「フロントエンドのリサイズを有効にする」設定が有効になっている場合、アップロード中に大きな画像が期待どおりにサイズ変更されるようになりました。
- CMS Page save controllerのエラー処理を修正しました。 以前は、
Errorオブジェクトがcms_page_prepare_saveイベントでスローされた場合、アプリケーションはこのオブジェクトをaddExceptionMessage関数に渡し、この関数はExceptionを想定しているため、契約を解除していました。 これは、addErrorMessage関数を使用してエラーメッセージを追加することで解決されました。 GitHub-30149
コンフィグ商品
- 製品の設定可能なオプションをクリックしても、製品の画像ギャラリーに製品のサムネールが重複しなくなりました。
- OK ボタンをクリックすると、ウィッシュリストから設定可能な製品を編集しているときにアプリケーションに表示される設定ポップアップが、期待どおりに閉じるようになりました。
- アプリケーションで、設定可能な製品が1つだけの注文の請求書が正しく生成されるようになりました。 GitHub-31143
- 買い物客は、デフォルト以外のストアビューで、設定可能な商品をカートに追加できるようになりました。 以前、デフォルト以外のストアビューの買い物客が設定可能な製品を追加しようとすると、アプリケーションに次のエラーが表示されていました:
Could not add item to cart. Please check required options and try again。 GitHub-31660
コンテンツセキュリティポリシー(CSP)
- コンテンツセキュリティポリシーで、
data: scheme経由でのbase64 エンコードされた画像とフォントの読み込みがサポートされるようになりました。
cron
- Cron クリーンアップクエリがリファクタリングされ、次のパフォーマンス問題が軽減または解消されました:
cron件のジョブが保留中の状態のままになっており、MySQL クエリの速度が低下し、CPUの使用率が増加しています。 GitHub-26507
- 24時間以上状態
runningにあるcronjobsは、自動的に状態errorに変更されるようになりました。 その結果、そのジョブの新しいインスタンスが再度実行できるようになり、ジョブが誤ってステータスrunningに設定されたままになっている場合に、ジョブのステータスを手動で変更する必要がなくなります。 以前は、cronjobがステータスrunningで停止していた場合、アプリケーションによって同じジョブの新しいインスタンスの開始が妨げられており、ジョブステータスを手動で変更する必要がありました。 GitHub-8933
cronジョブが期待どおりに完了し、このシリアル化エラーをスローしなくなりました:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')。 GitHub-18409
- 前回のエラーの後、
indexer_update_all_views個のcron ジョブが期待どおりに実行されるようになりました。 失敗した実行はcron_schedule scheduleで失敗としてマークされ、後続の実行は自動的に失敗しません。 以前は、cron_scheduleテーブルに保留中のジョブが入力され、indexer_update_all_viewscron ジョブが実行されませんでした。 GitHub-23054
- グループが重複する大規模なデプロイメントで
cronがロックを設定しようとすると、cron個のデッドロックが発生しなくなります。 GitHub-8933
- 少数の
cronジョブが実行された後、テーブルcron_scheduleでcronのデッドロックが発生しなくなりました。 GitHub-22438
カスタム顧客属性
- ストアフロント顧客アカウント アドレス帳の状態 フィールドは、として読み込まれ、ドロップダウンページ要素のままになります。 すべてのページ要素が完全に読み込まれるまで、送信 ボタンは無効になっています。 以前は、アプリケーションがこのフィールドをドロップダウン要素としてレンダリングする前にテキストボックスとして読み込み、買い物客がテキストフィールドに値を入力して保存できたため、後でチェックアウト時にエラーが発生しました。
- ファイルのアップロード時に、「管理者顧客アドレス」フィールドに添付ファイルを含む顧客アドレス属性を保存すると、アプリケーションでエラーがスローされなくなりました。 これは、コントローラーアクションの戻り値ステートメントが見つからないことが原因で発生しました。 以前、アプリケーションがこのエラーをスローしました:
Something went wrong while saving the file。
- REST GET Cart API呼び出しで、請求先住所と配送先住所に対して正しいカスタム属性値が返されるようになりました。 以前は、マイアカウントストアフロントページと管理者の注文詳細ページに、カスタムのアドレス属性が誤って表示されていました。
- 入力タイプ
file (attachment)の顧客アドレス属性を含むファイルが正常に処理されるようになりました。 以前は、添付ファイルSomething went wrong while saving the fileのアップロード中にアプリケーションがこのエラーをスローしていました。
お客様
- アカウント作成日でフィルタリングすると、設定されたタイムゾーン設定に準拠し、関連するすべての作成済みアカウントをキャプチャする結果が生成されるようになりました。
- 顧客グリッドフィルターで、データが以前にキャッシュされていた場合、制限されたユーザーに対して正しいweb サイトオプションが使用されるようになりました。 以前、顧客グリッドフィルターはキャッシュからweb サイトのパラメーターを取得し、制限されたユーザーに対して誤ったデータを含めていました。
- 複数のweb サイトのデプロイメントで1つのweb サイトが削除された場合、アプリケーションは管理者の顧客ページで例外をスローしなくなりました。 以前、管理者が包括的な顧客リストにアクセスしようとすると、アプリケーションにすべての顧客が表示されず、次のエラーが表示されていました:
The website with id 2 that was requested wasn't found. Verify the website and try again。
- 権限を持つ管理者は、顧客の「アカウント情報」タブから別のweb サイトに顧客を再割り当てできるようになりました。
- 入力タイプが
(File)の顧客アドレス属性を作成するときに、ファイルを正常にアップロードできるようになりました。 以前、ファイルをアップロードして保存しようとすると、アプリケーションがこのエラーをスローしました:Something went wrong while saving the file。
ディレクトリ
- チェックアウトワークフローの配送セクションで、買い物客が無効な郵便番号を入力した場合、アプリケーションが例外をスローしなくなりました。 GitHub-23371
ダウンロード可能
- 注文にダウンロード可能な製品とダウンロード可能なオプションを含む設定可能な製品の両方が含まれている場合、アプリケーションにダウンロード可能な製品へのリンクがNew Order メールに表示されるようになりました。 以前は、アプリケーションにスタンドアロンのダウンロード可能な製品へのリンクが表示されていましたが、ダウンロード可能なオプションを備えた設定可能な製品へのリンクは表示されていませんでした。
EAV
- 顧客アドレス属性日付値は、2桁の形式ではなく4桁の形式で保存されるようになりました。
メール
- 管理者のパスワードリセット ページのパスワードリセット リンクが正常に機能するようになりました。 以前は、管理者パスワードのリセット ページにカスタム テンプレートを使用した場合、管理者がメール内のリンクをクリックすると、このメッセージがアプリケーションに表示されていました:
Your password reset link has expired。 これは、カスタムメールテンプレートにユーザーIDに間違った変数が含まれていることが原因で発生しました。
- 管理者から顧客メールを送信することが、ストアビューレベルで有効になっている場合に、正しく機能するようになりました。 以前は、メール通知設定がストアビューレベルで有効になっていても、グローバルレベルでは有効になっていないときに、アプリケーションがお客様のメールを送信しませんでした。
- すべてのweb サイトで非同期メール送信が有効になっていないマルチサイトデプロイメントで、アプリケーションが期待どおりにメールを送信するようになりました。 以前は、少なくとも1つのweb サイトでこの設定が無効になっていると、有効になっている場合でも、どのweb サイトからもメールが送信されませんでした。 請求書、出荷、クレジットメモの電子メールにも同様の問題がありました。 ただし、注文コメント、請求書コメント、出荷コメント、クレジットメモのメールは正常に送信されました。 GitHub-31950
- 請求書と請求書のPDFに、バンドル製品の価格が期待どおりに含まれるようになりました。 以前は、請求書PDFにバンドル製品の誤った価格が含まれていました。 GitHub-12856
- 文字列キャスティングがメールテンプレートフィルターメソッドに追加され、戻り値が
stringであることを確認できるようになりました。 以前は、開発者モードでないときに例外が検出されると、アプリケーションはphraseオブジェクトを返しました。 これにより、致命的なUncaught TypeErrorが発生しました。 GitHub-32671
- 複数サイト展開の1つのweb サイトで非同期送信が有効になっている(Stores > Configuration > Sales > Sales Email > 一般設定 > 非同期送信)場合、注文確認メールが期待どおりに送信されるようになりました。 GitHub-31950
- お客様がお問い合わせフォームから電子メールを送信しようとすると、例外が発生した場合に、アプリケーションが予想どおりにエラーを記録するようになりました。 GitHub-23645
フレームワーク
- 管理者の親クラスは、元のクラスおよび継承されたインターフェイスと共に、docblock注釈がチェックされるようになりました。 以前は、親クラスはチェックされていなかったため、イベントをトリガーしたAdminで顧客関連のアクションを実行するとエラーが発生していました。 アプリケーションがこのエラーを例外ログ
report.CRITICAL: Method's return type must be specified using @return annotation.に記録しました。
- Redis ページキャッシュが有効になっているデプロイメントでRedis サーバーが停止したときに、アプリケーションが致命的なエラーをスローしなくなりました。
bin/magento config:set system/backup/functionality_enabled 1でバックアップが有効になっている場合、アプリケーションは、バックアップからメディアフォルダーを除外設定を尊重するようになりました。 以前は、/magentoへのパスがダブル //で正しく形成されていなかったため、この設定にもかかわらず、メディアフォルダーがバックアップされていました。
- アプリケーションが、管理者カートページのすべての翻訳可能な文字列を想定どおりに翻訳するようになりました。 以前は、翻訳読み込みが遅すぎて、コントローラーアクションのプレディスパッチに登録されたすべてのオブザーバーがスキップされていました。 GitHub-31849
- 顧客としてログインの有効化の拡張機能の設定が無効になっている場合、新規顧客アカウントを作成ページでのフォームの検証が正常に機能するようになりました。 以前は、アプリケーションでJavaScript エラーがスローされていました。
ProcessManagerによってフォークされた子プロセスの例外処理が改善されました。 例外が発生すると、メインプロセスが終了し、エラーメッセージが1回だけ表示されます。 以前は、複数のインデクサーのエラーがログに記録され、複数のメッセージが表示されていました。 GitHub-30622
- このエリア ファイルの
di.xmlに登録済みプラグインが含まれていない場合、新しいカスタム エリア タイプのグローバル Magento Open Source プラグイン(例:webapi_restとgraphql)がトリガーされなくなりました。
- 初期化中に発生した例外はキャッシュされなくなり、500 レスポンス コードがトリガーされるようになりました。
communication.xmlファイルにマージされた最後のハンドラーが、以前に作成したすべてのハンドラーを上書きしなくなりました。 GitHub-29528
一般的な修正
- アプリケーションは、My Product Reviews ページとMyAccount ページの最近のレビューに正しい数の星を表示するようになりました。 以前は、アプリケーションは最初のレビューにのみレビュースターを適用し、ページ上の他のレビューはスター付けされていませんでした。
- ヘッダーのアカウントリンクがWCAG標準に準拠するようになりました。 以前は、ヘッダー内のアカウントリンクに重複したIDが含まれており、WCAG検証が失敗していました。
- ゲストの買い物客が無効なアドレスを使用すると、システムのログ生成エラーがスローされなくなりました。 以前は、アプリケーションはページ
No such entity with addressIdをレンダリングする代わりに、このエラーを断続的に表示していました。 GitHub-15115
- サポートされていない形式の画像の画像サイズ変更プロセスが停止しなくなりました。 以前、
catalog:images:resizeでサポートされていない画像形式が発生した場合、プロセスは停止し、アプリケーションはこのエラーを表示しました:bin/magento catalog:images:resize Unsupported image format。
- ロゴ画像のWEBPおよびAVIFのサポートが管理者に追加されました。 GitHub-32495
media_gallery属性の範囲を変更できなくなりました。 以前、media_gallery属性の範囲をglobalに変更した際に、アプリケーションがエラーをスローしました。
- スケジュールされた更新として追加された関連製品は、更新の終了日以降、ストアフロント製品ページに表示されなくなります。 GitHub-469
- エンティティタイプを選択すると、スケジュールされた書き出しのリストでフィルタリングが正常に機能するようになりました。 以前は、フィルターは機能せず、アプリケーションでJavaScript エラーがスローされていました。 GitHub-361
- カテゴリーの画像は、データベースの保存方法を使用してカテゴリーを保存すると、
catalog/tmp/categoryディレクトリからcatalog/categoryディレクトリに正常にコピーされるようになりました。media_storage_file_storageテーブルの画像行にも正しいdirectory_idが含まれるようになりました。 GitHub-11995
- CMS階層に変更を送信した後、無効なキャッシュが想定どおりに通知されるようになりました。 以前は、CMS階層の保存中にアプリケーションがキャッシュを無効にすることはありませんでした。
- ショッピングカートのカートセクションに対する冗長なAJAX リクエストが削減されました。 以前は、アプリケーションでカートの小計が正しく読み込まれず、カートの再読み込みが再びトリガーされていました。
- 予約語がURL キーに含まれないよう、URLの検証を追加しました。 既知のUniform Resource Identifier (URI)の定義を参照してください
- PHP 7.4を実行しているデプロイメントで、「Generate "category/product" URL Rewrites」設定がNo」に設定され、買い物客が存在しないカテゴリーパスにアクセスしようとすると、アプリケーションが404 エラーを返すようになりました。 以前は、アプリケーションから500 エラー(
Trying to access array offset on value of type bool)が返されていました。 GitHub-31984
nowdocさんがMagento_Backendストアスイッチャーのheredocを置き換えました。 GitHub-32262
- アルゼンチン、ボリビア、チリ、エクアドル、ガイアナ、パラグアイ、ペルー、スリナム、ベネズエラの地域を
directory_country_regionテーブルに追加しました。 GitHub-31169
- アルバニア、デンマーク、ギリシャ、アイスランド、ポルトガル、スウェーデンの地域を
directory_country_regionテーブルに追加しました。 GitHub-31040
- 例外が発生すると、メッセージがMysqlMQ メッセージキューのエラーとしてフラグ付けされるようになりました。 GitHub-18140
- 管理者クレジットメモおよび請求書ページの税情報を読み込む際に、アプリケーションが正しいクラスオブジェクトを参照するようになりました。 GitHub-31197
- Royal Mail Click & Drop統合が正常に機能するようになりました。 以前は、統合をアクティブ化しようとしたときに、アプリケーションがこのエラーをスローしました:
Sorry! Something went wrong. Please try again later。 GitHub-28996
- 誤った出荷、クレジットメモ、または請求書IDがURLに渡されると、アプリケーションに情報エラーメッセージが表示されるようになりました。 以前は、アプリケーションで致命的なエラーがスローされていました。 GitHub-30424
- 静的ファイルの場所での再帰が削除されました。 アプリケーションに、500 エラーではなく404 ページが表示されるようになりました。 以前は、デフォルトのNGINX設定のバグにより、無限の再帰が発生していました。 GitHub-31530
cms_index_noroute.xmlファイルの名前がcms_noroute_index.xmlに修正されました。 GitHub-31300
.editorconfigファイルがリファクタリングされ、db_schema_whitelist.jsonファイルの自動書式設定が修正されました。 GitHub-31171
- ブラウザーウィンドウのサイズを変更しても、重複したバインディング拡大鏡イベントがトリガーされなくなりました。 GitHub-30788
Magento\Users\Model\ResourceModel\Users\Collectionをuser_idでフィルタリングする際に、アプリケーションがSQL例外をスローしなくなりました。 GitHub-31216
ギフトカード
- 価格範囲検証ロジックがギフトカード作成ページに追加されました。 以前は、管理者は最大値を超える最小値を持つカードを作成できました。 GitHub-493
addRequisitionListItemsToCartクエリは、リクエストにallow_open_amountの値が含まれていない場合に、想定どおりにカスタムギフトカードの金額を返すようになりました。
ギフトメッセージ
- 管理者は、ログイン後、リクエストされた管理者ページに直接リダイレクトされるようになりました。 以前は、管理者がログインすると、管理者ダッシュボード(またはスタートアップページとして設定されているページ)にリダイレクトされ、手動で宛先に移動する必要がありました。 GitHub-31042
Google Tag Manager
- Google タグマネージャーが有効になっている場合に、チェックアウトワークフローの支払いページの請求先住所のUI コンポーネントで見積もり住所が正しく使用されるようになりました。 以前は、支払いページでJavaScriptエラーが発生していました。
GraphQL
- GraphQL
productsクエリで、属性編集ページで使用されているのと同じ並べ替え順で並べ替えられた属性オプションが返されるようになりました。
{ category(id: 2){ children { name children { name } } } }GraphQL リクエストに対する応答に、正しく並べ替えられたカテゴリーツリーが含まれるようになりました。
CartItemPricesオブジェクトに、新しいGraphQL フィールドfixed_product_taxesが含まれるようになりました。このフィールドは、買い物かご商品に適用される固定商品税の配列を返します。 以前は、カート商品に適用された固定製品税は、カートクエリには含まれていませんでした。
- GraphQLへの空のリクエストで、500ではなく200の応答コードがスローされるようになりました。 以前は、クエリ結果が生成される前に、GraphQL パーサーが例外をスローしていました。
applyRewardPointsToCartの突然変異により、カートの総計が更新され、差し引かれた報酬ポイントの値が正確に反映されるようになりました。 GitHub-486
- GraphQLを使用してアップセル商品をリンクする場合、無効な商品はGraphQLのレスポンスに含まれなくなりました。
- ゲストチェックアウトが無効になっている場合、GraphQL
setShippingAddressesOnCart方式を使用して、買い物客のカートの請求先住所と配送先住所を設定できるようになりました。
CategoryTreeオブジェクトに複数のフラグメントが含まれている場合、categoryListクエリで例外がスローされなくなりました。 GitHub-31086
- GraphQL
productクエリで、正しい顧客グループの価格が返されるようになりました。
- GraphQL
productsクエリ応答で、製品属性の位置に従って集計が並べ替えられるようになりました。
- 製品およびカテゴリ URL サフィックスにnull値が含まれている場合、GraphQL クエリ中に文字エラーがスローされなくなりました。 GitHub-30909
CustomizableDateValueオブジェクトにtype属性が含まれるようになりました。 値は、DATE、DATE_TIME、またはTIMEに設定できる列挙です。
dynamicBlocksクエリ は、指定されたフィルターに一致する動的ブロックの内容を返します。
- POST
V1/products/special-price-deleteリクエストで、指定されたstore_idの価格のみが期待どおりに削除されるようになりました。 以前は、この呼び出しにより、指定したSKUのすべての特別価格がすべての店舗から削除されていました。 GitHub-25907
createGiftRegistry変異内のcountry_code属性に関するエラーを修正しました。
updateGiftRegistryItems変異のgiftRegistryUid属性に関する問題を修正しました。
updateGiftRegistryRegistrantsの突然変異が、ギフトレジストリに登録者としてランダムな人物を追加するために使用されないように、追加チェックを追加しました。
addConfigurableProductsToCartの突然変異が、指定された製品の正しいサムネールを返すようになりました。 以前は、親製品のサムネールを返していました。
- 特別価格期間が将来の日付に設定されている場合、
productsクエリで製品の特別価格が表示されなくなりました。 GitHub-30210、GitHub-29631
customerクエリ応答に、OrderTotalオブジェクトの一部としてtotal_giftcard属性が含まれるようになりました。
productsクエリで、価格帯の価格設定が設定されていない項目の価格帯に関する誤った情報が返される問題を修正しました。 GitHub-32279
画像
- POST
/V1/product/:skuエンドポイントを使用してバンドル製品を作成または更新する際に、required_optionsおよびhas_options バンドル属性を期待どおりに設定できるようになりました。 以前は、これらのカスタム属性は、1 (1)に設定する努力にもかかわらず、0 (ゼロ)に設定されていました。
読み込み/書き出し
- 「ページエンティティ属性を書き出し」グリッドの製品エンティティのカテゴリ ID フィルターが正常に機能するようになりました。
- すべての子商品が在庫切れになった場合、グループ化された商品の在庫状況が在庫切れになると予想どおりに更新されるようになりました。 GitHub-32647
- 子商品在庫ステータスがインポートによって更新されたときに、設定可能な商品在庫ステータスが予想どおりに自動的に更新されるようになりました。 以前は、子商品在庫ステータスがインポートによって更新された場合、商品在庫ステータスは自動的には更新されませんでした。
- スケジュールされた書き出しで空の値を保存できるようになりました。 以前は、書き出しの作成または保存後に、アプリケーションによって空のフィルター値が更新されていました。
noとnot specifiedの両方の値がデータベース内で0で表され、値not selectedはnoで上書きされました。
- 書き出しプロセスでは、製品、在庫ソース、顧客エンティティを書き出す際に、ユーザーの役割の範囲が考慮されるようになりました。 以前は、書き出しプロセスでユーザーの役割の範囲が無視されていたため、プライベートユーザーの役割の書き出しエンティティの書き出しが許可されていました。
- 製品が
tax_class_name個の値Noneまたは0でインポートされた場合、アプリケーションは製品税クラスをNoneに設定するようになりました。 以前、product tax_class_nameがCSV ファイルのNoneであった場合、アプリケーションは新しい税区分Noneを作成し、既存の税区分を複製しました。 CSV ファイル内のproduct tax_class_nameが0だった場合、アプリケーションはその値を無視し、製品税区分はインポート後も変更されませんでした。
- バンドル製品の
bundle_valuesのnameを管理者から正常に変更できるようになりました。 以前は、管理者から名前を変更した後、アプリケーションはストアフロントで商品を在庫切れとして表示していました。 また、製品を同じSKUと統合し、単一のバンドルオプションのセクションを作成しました。
- このアプリケーションは、顧客データを書き出す際に、ユーザー範囲を考慮するようになりました。 以前、顧客を書き出そうとすると、アプリケーションはすべてのweb サイトから顧客データを書き出しました。
- CSV ファイルで
__EMPTY__VALUE__が指定されている場合、CSV ファイルの読み込み中に、アプリケーションによってアップセル、クロスセル、および関連製品の間の製品関係が予期したとおりに削除されるようになりました。
- 多くの顧客(管理者システム > 書き出し)のカスタムアドレスデータを書き出しても、日常的にメモリエラーが発生しなくなりました。 以前、カスタムアドレスデータを書き出す際に、アプリケーションがすべての顧客データを読み込もうとしたため、メモリ不足が発生し、アプリケーションがfailure-to-allocate-memory エラーをスローしました。
- デフォルトのCSV読み込みプロセス中に重複層の価格が読み込まれなくなりました。 以前は、重複した階層の価格の読み込みを防ぐ検証がなく、重複した階層の価格が発生した場合、マーチャントは商品を保存できませんでした。 マーチャントは、製品変更をスケジュールしようとしたときに、このエラーも確認しました:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…。
- すべての製品画像が読み込み中に検証されるようになりました。 以前は、製品に複数の画像がある場合、アプリケーションは最初の画像のみを検証していました。 GitHub-28236
- 読み込み中に、顧客アドレスから地域を削除できるようになりました。 以前は、顧客アドレスが空の領域で読み込まれたときに、割り当てられた領域は変更されませんでした。
- JSONまたはHTML コンテンツを含む商品を追加の商品属性としてCSV ファイルに正しく書き出せるようになりました。 以前は、CSV ファイルに重複したデータ文字列が誤ったフィールドに含まれていました。
Index
- 子プロセスが失敗した場合に、プロセスマネージャーがエラーで終了するようになりました。 以前は、プロセスマネージャーに渡される関数の数(インデクサーディメンションなど)が
MAGE_INDEXER_THREADS_COUNT環境変数の値よりも小さい場合、プロセスマネージャーは常に正常に終了していました。 GitHub-30964
- インデクサーモードが 保存時の更新 に設定されている場合に、REST PUT
/V1/products/:sku/linksリクエストを使用して商品をリンクする際に、ストアフロントの検索結果で商品が期待どおりに利用できるようになりました。
- インデクサーモードが 保存時に更新 に設定されている場合、カタログ価格ルールのインデクサーが期待どおりに機能するようになりました。 GitHub-370
- 製品を含まない無効なカテゴリを削除しても、カタログ検索とカテゴリフラットインデックステーブルには影響しません。 以前は、非アクティブなカテゴリを削除すると、完全な再インデックスがトリガーされていました。 GitHub-23297
- カスタムインデクサーで、サブスクリプションに異なるエンティティ列名を使用できるようになりました。 以前は、データベーストリガーは、指定されたインデクサーではなく、インデクサーの最後のセットから スケジュールによる更新 の列名を使用していました。 GitHub-21853
- リクエストの影響を受けない顧客データセクション (
Magento_Customer/js/section-config)をリロードするAJAX リクエストが送信されなくなりました。 GitHub-31948
- カテゴリ
catalog_category_productおよびcatalogsearch_fulltext(およびその依存関係)の製品を追加、削除、または並べ替えた後、次のインデックスは無効になりません。 以前は、これらの誤った削除により、サイトの完全なインデックス再作成がトリガーされていました。 フラットカタログが有効になっていない場合、これらの条件では、完全なインデックスの再作成が防止されるようになりました。
メール基盤
- 依存関係
pelago/emogrifierがバージョン 3.1.0から5.0.0に更新されました。 この更新により、後方互換性のない変更がMagento\Email\Model\Template\Filterクラスに導入されました。 変更されたコードは、メールテンプレートのレンダリング中に実行されます。 BIC参照を参照してください。
- 新製品を保存できない
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIdsの問題を修正しました。
- 非推奨のTinyMCE v3 ライブラリが削除されました。 TinyMCE v3.xに関連する
Magento_Tinymce3BannerモジュールとMFTF テストがAdobe Commerceから削除されました。
- フランス語の発音区別記号(「é」、「è」など)を含む電子メールアドレスを買い物客が入力した場合、このアプリケーションは「お問い合わせ」フォームに
Invalid header value detectedエラーをスローしなくなりました。 アプリケーションは、ユーザー名のUTF-8文字をASCII エンコーディングに変換するようになりました。 以前は、UTF-8文字は、電子メールアドレスの一意のセクションでASCII エンコーディングに変換されていませんでした。
- プラグインが親クラスに追加されたときに、アプリケーションがPHPの致命的なエラーをスローしなくなりました。 GitHub-31291
- これらのモジュールのREADME.md ファイルを更新しました:
Magento_Msrp、Magento_MsrpConfigurableProduct、Magento_MsrpGroupedProduct、Magento_Multishipping、Magento_MysqlMq。 GitHub-32577
phpcpdがPHP 8互換のためにv6.0.3に更新されました。
ramsey/uuidがPHP 8.0との互換性を保つように更新されました。 GitHub-31777、GitHub-826
colinmollenhour/php-redis-session-abstractがPHP 8互換のためにv1.4.4に更新されました。 GitHub-32709
phpstan.neonファイル内のタブとスペースの無効な組み合わせを修正しました。 GitHub-31239
- コードベース全体で、古いプロパティ
$_isScopePrivateの使用を削除しました。 GitHub-30506
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Containerでページレイアウトがハードコーディングされなくなりました。 その結果、getPageLayouts()関数は、異なるモジュールによって宣言されたページレイアウトの実際のリストを期待どおりに返すようになりました。 以前は、ハードコードされたレイアウトのみが返されていました。 GitHub-31168
composer.lockファイルが最新バージョンのコーディング標準に更新されました。 GitHub-31152
web-token/jwt-frameworkパッケージに欠けている依存関係をmagento/module-jwt-framework-adapterに追加しました。 GitHub-32578
- Lighthouse指標スコアを改善するために、
fotorama.jsライブラリにパッシブリスナーが追加されました。 GitHub-31140
- Google Analytics モジュールのREADME.md ファイルが更新されました。 GitHub-32616
- プロセスマネージャーがフォークされたプロセスで例外を適切に処理するようになりました。 メインプロセスが終了し、アプリケーションにエラーメッセージが1回だけ表示されるようになりました。 また、フォークされたプロセスからの例外は、メインプロセスでスローされたときに処理されるようになりました。 以前、アプリケーションは複数のインデクサーのエラーを記録し、複数のエラーメッセージを表示していました。 GitHub-30622
- プラグインが親クラスに追加されたときに、アプリケーションがエラーをスローしなくなりました。 (
optionsProviderパラメーターは、Assest.phpのgetContentIdentitiesの後に宣言されました)。 以前、アプリケーションがこのエラーをスローしました:Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface。 GitHub-31291
- 空のフォルダーで
Magento\Framework\Filesystem\Io\Ftp::ls()を実行すると、期待どおりに空の配列が返されるようになりました。 以前、アプリケーションがこの例外をスローしました:Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…。 GitHub-31288
- 役割とルールの両方の
updateメソッドは、app/code/Magento/Authorization/Model/Role.phpで非推奨としてマークされました。 GitHub-30756
- SameSite Cookie パラメーターの連結が修正されました。 以前は、誤った連結によって
lex接尾辞がvalue、domainおよびその他のパラメーターに追加されていました。 GitHub-26377、GitHub-32440
allure-framework/allure-phpunitは、コードベース全体でv1.3.1にアップグレードされました。 以前、アプリケーションはこのエラーを表示しました:Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.GitHub-24635
- 実稼動モードで
bin/magentoコマンドを実行する際にエラーが発生すると、アプリケーションに情報エラーが表示されるようになりました。 以前は、アプリケーションにエラーメッセージが表示されていないか、情報が不足しているメッセージが表示されていました。 GitHub-32786
ArrayIteratorPHP オブジェクトが更新され、PHP 7.4で期待どおりに動作するようになりました。 GitHub-32088
- 配送業者が利用できない場合に、顧客が注文を完了しようとしたときにエラーがスローされなくなりました。 代わりに、チェックアウトページと次のメッセージが表示されます:
Sorry, no quotes are available for this order at this time。 以前、アプリケーションは空のチェックアウトページを表示し、このメッセージを例外ログに記録しました:array_keys() expects parameter 1 to be array, null given。 GitHub-30830
- アプリケーションは、各Cookieを個別のコンテキストとしてログに記録しなくなりました。
$_COOKIE配列も文字列に変換されました。 以前は、各Cookieは個別のコンテキストとして記録されていたため、Cookieの数が50を超えると、アプリケーションは次のメッセージを記録しました:Unable to send the cookie. Maximum number of cookies would be exceeded。 GitHub-31334
請求書
- 管理画面で新しい請求書を作成する際に、「の電子メールコピー」チェックボックスが正常に機能するようになりました。 以前は、営業電子メールで請求書メールを送信するグローバル設定が有効になっている場合、このチェックボックスは無視されていました。 現在では、配送ページやクレジットメモ作成ページと同じように動作します。 GitHub-28511
メディアギャラリー
- XMP情報が不足しているPNG画像を処理する際に、
bin/magento media-gallery:syncが想定どおりに失敗するようになりました。
- 関連製品が削除されると、
catalog_product_entity_media_galleryテーブルのエントリが期待どおりに削除されます。 GitHub-17727
- JavaScriptの縮小が有効になっている場合に、画像の詳細をメディアギャラリーで更新できるようになりました。 以前は、画像の詳細は保存されておらず、アプリケーションはこのエラーを表示しました:
TypeError: Cannot read property 'call' of undefined in jquery.validate。 GitHub-31633
MFTF
新機能とMFTF コアのバグ修正については、機能テストフレームワークの変更履歴を参照してください。
- 次のモジュールの実行を改善するために、
magento indexer:reindexおよびcache:flushコマンドとAdminReindexAndFlushCacheアクショングループがテストから削除されました:Bundle、Catalog、CatalogRule、CatalogRuleConfigurable、CatalogUrlRewrite、Downloadable、Indexer、Paypal、およびSales。 GitHub-31031
- テスト失敗を防ぐため、
AdminSubmitCategoriesPopupActionGroupがテストに追加されました。 GitHub-31251
- テストは
StorefrontCheckQuickSearchStringActionGroupおよびStorefrontAssertProductNameOnProductMainPageActionGroup(既存のアクショングループ)でリファクタリングされました。 GitHub-31251
リファクタリングされたテスト
実行時間を改善するために、次のテストがリファクタリングされました。
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest (非推奨のAdminMassOrdersHoldOnPendingAndProcessingTestの代替)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
アクショングループ
次のテストでは、繰り返しアクションはアクショングループに置き換えられました。
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
新しいアクショングループ
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup (製品グリッドをSKUでフィルタリングし、最初の行をクリックすると、テスト実行時間を短縮します)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
削除されたアクショングループ
Backend、Bundle、BundleImportExport、Catalog、CatalogRule、CatalogSearch、Checkout、Downloadable、Elasticsearch、Elasticsearch6、Indexer、LayeredNavigation、LoginAsCustomer、Newsletter、Sales、SalesRule、Search、Store、Swatches、UrlRewrite、Weee、およびWishlistモジュールの実行時間を改善するために、CliIndexerReindexActionGroupをテストから削除しました(または値を変更)。
CliCacheFlushActionGroupをCatalog、CatalogUrlRewrite、Checkout、Config、ConfigurableProduct、Contact、Cookie、CurrencySymbol、Customer、Downloadable、Elasticsearch、Elasticsearch6、Fedex、Indexer、LayeredNavigation、LoginAsCustomer、Msrp、Multishipping、Sales、Swatches、Translation、Vault、WeeeおよびWishlistモジュールから削除しました。UrlRewrite
ニュースレター
- アプリケーションは、ニュースレターキューの作成からニュースレターの送信までの間に、ニュースレターの購読を解除したお客様にニュースレターメールを送信しなくなります。 GitHub-32116
- アプリケーションは、ニュースレターの有効化の設定(ストア > 設定 > 設定 > 顧客 > ニュースレター > 一般オプション)を尊重するようになりました。 以前は、これらの設定は、マルチストア展開では常にデフォルトスコープから取得されていました。 GitHub-31188
- 複数のニュースレターを購読しているお客様に対して、REST呼び出しGET
/V1/customers/searchが正しい情報を返すようになりました。 GitHub-31168
- ニュースレタープラグインから、購読状況のキャッシュが削除されました。 GitHub-19345
注文
- 部分的に請求された注文の店舗クレジットを顧客口座に返品する際に、アプリケーションが請求済み顧客残高を正しく計算するようになりました。
- 払い戻された顧客残高を保存する際に、アプリケーションが変更された注文を想定どおりに保存するようになりました。 GitHub-393
支払い方法
- アプリケーションは、メールの送信元の領域に関係なく、
frontendに支払いブロックをレンダリングするようになりました。 (現在の領域は、支払いブロックがレンダリングされる前にfrontendとしてエミュレートされました)。 以前は、支払いブロックはメールの送信元の領域にレンダリングされていました。 その結果、セールスメールが管理者からトリガーされたか、REST APIによってトリガーされたかにかかわらず、アセットのURLが間違った領域(webapi_restまたはadminhtml)から読み込まれようとしました。
- アプリケーションは、チェックアウト時に指定されたメールアドレスに、ダウンロード可能な製品のリンクを送信するようになりました。 以前、ゲストの買い物客がPayPal Express Checkoutを使用し、注文の送信とチェックアウトのために異なるメールアドレスを入力すると、アプリケーションはダウンロード可能な製品リンクを最初のアドレスに送信しました。
- アプリケーションは、複数の通貨をサポートするデプロイメントの「支払い方法」ページに、利用可能なストアクレジットの正確な値を表示するようになりました。
- チェックアウト中にゲストの買い物客が注文の配送先住所を別の国に変更すると、支払い方法リストが予想どおりに更新されるようになりました。 以前は、請求先住所を変更しても、支払い方法の更新がトリガーされませんでした。
ペイパル
- 買い物客は、特殊文字を含む配送先住所を含むPayPal Payflow Pro注文を正常にチェックアウトできるようになりました。 以前は、これらの注文に対する支払いをアプリケーションが拒否していました。
- PayPalでの支払いが成功すると、買い物客は注文成功ページにリダイレクトされるようになりました。 以前は、セッションデータが失われたため、買い物客は空白のページにリダイレクトされていました。
パフォーマンス
- 大規模なカタログでの管理者SKU検索のパフォーマンスが向上しました。 クエリの実行時にQuery Optimizerのヒントがインデックスの使用を強制するようになりました。
- 大きなテーブル (数百万行)で実行する場合の
catalog_product_alertcron プロセスのパフォーマンスが向上しました。 以前、catalog_product_alertはすべての製品アラートを読み込み、メモリ不足の例外が発生しました。
- 管理者フォームをレンダリングするために1つの編集ページのみを必要とする場合、アプリケーションがすべてのCMS ページを読み込まなくなりました。 これらのページの読み込みが速くなりました。 GitHub-30936
-
WHERE IN式の数値は、文字列ではなく数値としてキャストされるようになりました。これにより、一部のバージョンのMariaDBでクエリのパフォーマンスが向上します。 GitHub-31135 -
use_application_lockモードでは、環境変数を使用するか、app/etc/env.phpファイルを設定することで、再インデックス作成を有効にできます。 このモードを有効にして失敗した後に、手動でインデクサーをリセットする必要がなくなりました。 このモードが有効になっていない場合は、失敗後に手動でインデクサーをリセットする必要があります。 インデックス再作成プロセスに対するアプリケーションロックモードの使用を参照してください。
価格
- 買い物客がストアフロントで商品数量を更新すると、アプリケーションがグループ化された価格で商品の価格を正しく更新するようになりました。 GitHub-32669
- 商品に価格帯が割り当てられ、商品データの変換に
Magento\Framework\Api\ExtensibleDataObjectConverterが使用されている場合に、バンドル商品を保存できるようになりました。 以前、Magento\Framework\Api\ExtensibleDataObjectConverterを使用して製品を保存したときに製品データを配列に変換していたとき、アプリケーションは製品を保存せず、次のエラーを表示しました:Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- スケジュールされた価格の更新を、買い物客のカートに既に入っている商品に適用できるようになりました。 GitHub-356
- 数量の増分が有効で、10進数の在庫が1未満の場合、階層価格が予想どおりに製品に適用されるようになりました。 以前は、最小価格数量は1に設定されていました。
製品ビデオ
- ビデオを追加 ボタン(管理者カタログ > 製品)を使用して、複数のビデオを連続して追加できるようになりました。 以前は、ビデオフィールドには以前のビデオの詳細が保持されていました。
- 製品ページで製品ビデオの全画面モードを入力すると、モバイルデバイスで期待どおりに機能するようになりました。 以前は、フルスクリーンモードに入ると、フルスクリーンモードを終了する前にビデオが一時停止していました。
- ナビゲーション矢印ボタン(次と前)が、ストアフロント製品ビデオに期待どおりに表示されるようになりました。
- 商品ページの「ビデオを挿入」ボタンを使用して、Vimeo ビデオを予想どおりに追加できるようになりました。 以前は、アプリケーションに404 エラーが表示されていました。 GitHub-31753
見積り
/V1/guest-carts/examplecartid/items呼び出しで、リクエストされたストアビューが返されるようになりました。 以前は、リクエストされたストアビューではなく、ストアの最初のストアビューが返されていました。
- 請求書送信が設定可能になりました。 以前は、請求書の送信は設定できず、作成後に常に請求書が送信されていました。 請求書と注文の電子メールは、両方とも1人の観察者の範囲で送信されました。 注文メールと請求書メールの送信は、個別の監視者によって管理されるようになりました。 GitHub-27656
レポート
- 管理者レポート > レビュー > 製品ごとのの最終レビュー日に、正しいレビュー日が表示されるようになりました。 以前は、レビュー日ではなく製品作成日が表示されていました。
レビュー
- 製品レビューの評価スターが、マイアカウントページの「レビューの詳細」セクションで正しく計算されるようになりました。
- 製品レビューの詳細ページの「平均製品評価」セクションと「製品評価」セクションが正しくレンダリングされるようになりました。 以前は、アプリケーションがストアフロントの評価を計算する際にレビューIDが設定されず、製品レビューテンプレートが適切にレンダリングされませんでした。
- 管理者がレビューを承認すると、この製品リンクを最初にレビューする Be the first to review this product linkがレビュー数に期待どおりに変更されるようになりました。
- 管理者は、製品編集ページの「製品レビュー」セクションで、製品レビューを期待どおりに並べ替えることができるようになりました。 GitHub-30270
- 管理者がストアとは異なるドメインからレビューを承認して保存すると、レビューが正しいストア IDで保存されるようになりました。 GitHub-17510
リワード
- アプリケーションは、複数のアドレスでチェックアウトする買い物客がストアクレジット(報酬ポイント) オプションをオンまたはオフにした場合に、支払い方法リストを更新するようになりました。
営業担当者
- 管理者ユーザーは、取り寄せ注文が許可されている設定(店舗 > 設定 > カタログ > 在庫 > 製品ストックオプション)が有効になっている場合に、在庫切れ商品の注文を行えるようになりました。 以前は、アプリケーションでエラーがスローされていました。
- 買い物客は、姓が空白で終わる場合、注文と返品ページで注文を見つけることができるようになりました。
- カタログ製品および割引税の対象となり、送料無料の対象となる注文に100%割引を割り当てるカート価格ルールが適用された場合、請求書が正しい合計金額で作成されるようになりました。 以前は、注文は正しい価格でしたが、請求書はそうではありませんでした。 GitHub-30853
- 日付で注文をフィルタリングすると、正確な結果が返されるようになりました。 以前は、注文日で注文をフィルタリングした場合、00:00 UTCより後に注文された注文はアプリケーションから返されませんでした。
- マルチストア展開でWeb サイト スコープが 価格 属性に使用されている場合、クレジットメモ グリッドに正しい通貨記号が表示されるようになりました。
- 管理者新規注文を作成ページがリロードされた後、チェックアウトワークフローの「支払いと出荷情報」セクションに「支払い方法」ラジオボタンが表示されなくなりました。 GitHub-32106
- 請求書にアラビア語のテキストが正しく表示されるようになりました。
- PayPal Payment Proを支払いゲートウェイとして展開する店舗での注文または請求書に基づくクレジットメモについて、アプリケーションが部分的なクレジットメモ税合計を正しく計算するようになりました。 以前は、複数の請求書を含む注文の場合、アプリケーションは、クレジットメモの部分的な請求書のキャンセルのために、その注文の税金全体を適用していました。
- 顧客に新しい注文メールを送信する際に、アプリケーションがランダムなデータベースのデッドロックを作成しなくなりました。 以前は、アプリケーションが更新されたSQL列ではなく、オブジェクト全体と関連オブジェクトを保存していたため、デッドロックが発生していました。 アプリケーションは、次の種類のエラーを表示しました:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction。 GitHub-31090
- ストアフロントの注文詳細ページに、正しい出荷済み製品数量が表示されるようになりました。 以前は、注文出荷ページのテンプレートが Qty Shipping を
intとしてレンダリングしていたため、製品数量が正しくありませんでした。 これはfloatに変更されました。
- 「請求書の電子メール送信」ボタンがオフになっている場合、アプリケーションは注文請求書のコピーを電子メールで送信しなくなりました。 以前は、アプリケーションは 顧客 に電子メールを送信し、請求書の電子メールコピーをに送信していました。 GitHub-28511
- 既存の顧客の管理者から新しい注文を作成する際に、顧客アカウントの重複する住所エントリがアプリケーションで作成されなくなりました。 「アドレス帳に保存」チェックボックスの名前が アドレス帳に追加 に変更され、デフォルトで管理者のチェックがオフになりました。
- このアプリケーションでは、買い物客がアカウントから注文を印刷する際に、HTML印刷ビューのロゴ設定でアップロードされたロゴが使用されるようになりました。 以前は、アプリケーションにアップロードされたロゴの代わりにLUMA ロゴが表示されていました。
- ストアフロントの注文項目のページャが、項目数が20を超えると期待どおりに機能するようになりました。 以前は、ページャは子製品を考慮に入れ、合計数は正しくありませんでした。
- アプリケーションで、注文ページとクレジットメモのページグリッドに、小計と送料および処理値の正しい通貨記号が表示されるようになりました。 GitHub-22662
- Safariを使用する管理者は、管理者から注文に製品を正常に追加できるようになりました。 以前、管理者が「選択した製品を注文に追加」ボタンをクリックすると、アプリケーションに回転読み込みアイコンが表示され、ページがハングしていました。
セールスルール
- アプリケーションは、複数のカート価格ルールがショッピングカートに適用される場合に、最大数量の割引がまたは 割引数量ステップ(購入X) の条件でカート価格ルールを正しく適用するようになりました。 以前は、別のカート価格ルールの後に 最大数量の割引が または 割引数量ステップ(購入X) のカート価格ルールが適用された場合、合計割引は 最大数量の割引が適用される または 割引数量ステップ(購入X) に設定された値に引き下げられました。
- クーポンレポートで、分割データベースが実装されたデプロイメントのクーポンアクティビティが正確に反映されるようになりました。
- カテゴリ IS NOTという条件を含むカート価格ルールが、カテゴリに割り当てられていないが親製品が割り当てられている設定可能な子/シンプル製品に期待どおりに適用されるようになりました。
- GraphQL
cartクエリは、クーポンが注文に適用されたときに、カートの請求ステップの正しい合計金額を返すようになりました。
検索 search-heading
- カテゴリーページに、次の重複したHTML要素IDが含まれなくなりました:
modes-label、mode-list、toolbar-amount、sorter、limiter。
- 部分的な単語の検索結果に、予期しない一致や無関係な一致が含まれなくなり、検索では、ストアフロントと管理者の両方で一貫した結果が生成されます。 アプリケーションは、部分的な単語検索のためにステマーなしで別のアナライザーを使用するようになりました。 以前は、検索結果には検索キーワードが含まれていない商品が表示されていました。 (以前のデフォルトのアナライザーにはステマーが含まれていましたが、同じアナライザーを検索時に部分的な単語検索に使用していたため、検索結果で予期しない一致や無関係な一致が発生する可能性があります)。
- 検索クエリに複数の単語があり、製品名が検索不可に設定されている場合、クイック検索で結果が返されるようになりました。 以前は、製品名が検索不可に設定されている場合、アプリケーションは複数の単語を含む検索クエリに対してクエリ例外をスローしていました。
- 検索可能に設定されている場合に、検索結果に
weight属性が想定どおりに含まれるようになりました。
- Elasticsearchが有効になっている空のカテゴリーページを表示しても、アプリケーションでエラーがスローされなくなりました。 代わりに、ページが期待どおりにレンダリングされ、有益なメッセージが表示されます。 以前は、空のフルテキストインデックスがカテゴリーページの例外を引き起こしていました。
- 買い物客が検索を開始した後に検索フィールドの外をクリックすると、検索フィールドのオートコンプリート機能が期待どおりに動作するようになりました。 買い物客が入力を再開すると、オートコンプリートの提案が再表示されるようになりました。 以前は、アプリケーションにオートコンプリートの候補が表示されず、検索ボックスでクリックしても、検索候補が再度表示されませんでした(追加の文字を入力しても)。
- 高度な検索で完全または部分的なSKUに基づいて製品を検索すると、想定される製品が返されるようになりました。
- 階層化されたナビゲーションフィルターに、正確な商品数が表示されるようになりました。 以前は、Elasticsearchの製品数値は、カタログ権限でフィルタリングされていませんでした。
- カテゴリ URL ページパラメーターがページネーションを超えた場合に、Elasticsearchでエラーがスローされなくなりました。 GitHub-23843
- カスタム Elasticsearch フィールド マッパーを
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolverに追加できるようになりました。
- 開発者がElasticsearch マッピングを変更できるようになりました。 以前は、デフォルトマッピングでElasticsearch サーバーに送信された動的テンプレートはハードコードされていたため、開発者はカスタムモジュールに関連付けられた追加データをElasticsearchでインデックス作成できませんでした。
- 検索候補が無効になっている場合、検索フィールド(フォームのミニサーチ)が期待どおりに機能するようになりました。
発送
- 買い物客が複数の住所を持つチェックアウト中に商品を削除した後、カートページに戻ると、アプリケーションが予想通りに配送価格を更新するようになりました。
- カート内の一部の商品が送料無料に適格になった場合、アプリケーションに正しい調整済み配送価格が表示されるようになりました。 以前は、カート内の商品のサブセットが送料無料に適格であった場合、アプリケーションは送料価格を調整せず、買い物客に全送料価格を表示していました。
- 特定のweb サイトに制限されている管理者ユーザーは、同じweb サイトでの注文に対する配送を作成できるようになりました。 以前は、デフォルトのストアビューへの権限を持たない管理者ユーザーが、管理者ユーザーがアクセス権を持つストアビューに配置された注文を配送しようとしたときに、アプリケーションがこの例外をスローしました:
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293。
- アプリケーションは、注文が無料のDHL配送の条件を満たしているかどうかを判断する際に、関連するカート価格ルールの割引を考慮するようになりました。
- 配送ラベルでは、注文が基準通貨でない通貨で行われた場合に、複数の通貨をサポートするストアの注文通貨の代わりに、予想どおりに基準通貨を使用するようになりました。 GitHub-31891
- 複数配送ページから移動した後、チェックアウト時に買い物客がカートページに戻ると、アプリケーションに正しい注文小計が表示されるようになりました。 GitHub-31889
- 管理者注文作成時に請求情報を編集すると、デフォルトの配送先住所と請求先住所が異なる顧客の配送情報が変更されなくなりました。 GitHub-31786
- 買い物客が 配送方法と料金を取得 をクリックし、管理者から注文を作成する際に配送方法を選択すると、アプリケーションでコメントを追加 チェックボックスのチェックが外れなくなりました。
- 買い物客は、複数の住所を持つ注文をチェックアウトする際に、「ブラウザーの戻る」ボタンを使用して、「配送方法を選択」ページに戻ることができるようになりました。 以前、アプリケーションに「出荷方法を選択」ページが破損して表示されていました。 GitHub-30268
- 買い物客が複数の住所ページに移動してブラウザーの「戻る」ボタンをクリックした後、商品の数量が予想どおりに変更されなくなりました。
- 決済時にカート価格ルールが適用されても、定額制の配送方法による請求がゼロでなくなりました。 GitHub-21832
- 配送ラベルを作成 チェックボックスが有効で、製品名にUnicode文字が含まれている場合、マーチャントがDHLを使用して注文を配送しようとすると、アプリケーションでエラーがスローされなくなりました。 以前、ラベル作成を要求する際に、アプリケーションがこのエラーを表示しました:
The response is in wrong format。
- 1つのweb サイトで
United Statesが有効で、もう1つのweb サイトでDisable all countriesがデフォルトスコープとして有効になっているマルチサイトデプロイメントで、管理者から注文を正常に行うことができます。 以前、アプリケーションは注文を行わず、次のエラーが表示されていました:Please check the shipping address information. "regionId" is required. Enter and try again。
店舗
- ストアホームページを表示する際に、アプリケーションが
0の文字列を空の値として扱わなくなりました。 以前は、アプリケーションはリクエストパスの開始時に整数値をストア IDとして扱っていましたが、SEOに意図しない影響がありました。
- 別のモジュールから1つのモジュールの動作をカスタマイズするためにプラグインを使用する必要があるというガイドラインに従って、
lib/internal/Magento/Framework/App/Action/Pluginの下の\Magento\Framework\App\ActionInterfaceのプラグインが削除されました。 GitHub-28050
- Web サイトの作成中に
Store Viewが無効になっている場合、Websiteをデフォルトとして選択しようとすると、アプリケーションにこのメッセージが表示されるようになりました:Please enable your Store View before using this Web Site as Default。 以前は、Web サイトがクラッシュし、アプリケーションにアラートが表示されませんでした。
税
- アプリケーションは、最低注文金額の検証中に非表示の税金を考慮するようになりました。
- 買い物客がショッピングカートに戻り、バンドル商品をカートに追加した後にチェックアウトに進むと、アプリケーションに固定商品税(FPT)が期待どおりに表示されるようになりました。 GitHub-30250
- 管理者が既存顧客に対する注文を作成する際に、管理者の新規注文ページの住所情報セクションの請求先住所と配送先住所の両方の VAT番号 入力フィールドに、保存されたVAT番号が事前に入力されるようになりました。 GitHub-31846
customer/create_account/vat_frontend_visibilityが有効になっている場合、アプリケーションに顧客登録ページにVAT番号 フィールドが表示されるようになりました。
テスト
- テスト環境がRedis 6.0.12にアップグレードされました。
- 統合テストから
CacheCleaner::cleanAll();を削除しました。
- このシナリオのテストを追加しました。管理者ユーザーは、お客様がキューに入ったニュースレターを購読しているときに、お客様のアカウントを編集できます。
Catalog、CatalogUrlRewrite、LoginAsCustomerモジュールの実行時間を向上させるために、cache:flushコマンドをテストから削除しました。
- 冗長なパラメーターが削除され、
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShippingで必要に応じてPOSTがGETに変更されました。
テーマ
- お客様のログインページに、このメッセージが表示されなくなりました。JS コードをページの下部に移動設定(Store > Configurations > Advance > Developer > JavaScript Settings)とCookieの両方が有効な場合:
The store will not work correctly in the case when cookies are disabled。
- ヘッダーのアカウントリンクがWCAG標準に準拠するようになりました。 以前は、ヘッダー内のアカウントリンクに重複したIDが含まれており、WCAG検証が失敗していました。
- アプリケーションは、レイアウト設定よりもストアロゴ画像のストア設定を優先するようになりました。 以前は、ロゴ画像のサイズは固定されており、店舗によって異なっていませんでした。
- 標準のMagento Open Source テーマを使用するストアフロントページに、ページ要素が一貫して表示されるようになりました。 以前は、すべてのスタイルが空白のテーマに適用されたわけではないので、すべてのページ要素がこのテーマを使用してページに表示されたわけではありません。 (例えば、マイオーダーのページ検索フィールドに拡大鏡アイコンが表示されませんでした)。
翻訳とロケール
- インライン翻訳が設定されている場合、文字列に追加された括弧はエスケープされなくなりました。 以前は、
escapeHtmlAttrメソッドで角括弧がHTMLのエンティティ コードに変換されていました。
- 管理画面の翻訳不可能なフレーズが翻訳可能になりました。 (このプルリクエストは、すべての管理者文字列をローカライズ可能にするための継続的な取り組みに貢献します)。 GitHub-11175
- 保存済みの支払い方法(マイアカウント > 保存済みの支払い方法)の管理に使用されるテンプレート内のテキスト文字列が翻訳可能になりました。
- 管理者から送信された注文メールでは、管理者のアカウントに関連付けられているロケールではなく、ストアロケールが使用されるようになりました。
UI
- 管理者フッターに正しい製品バージョンが表示されるようになりました。
- ソースのページネーションが、管理者出荷作成時に正常に表示されるようになりました。
- カスタム日付属性を使用して製品をフィルタリングし、管理者ユーザーロケールが
en_GBである場合、製品グリッドフィルターが正しく機能するようになりました。
- IOS デバイスの商品ページの画像ギャラリー拡大鏡で、ピンチとズームのジェスチャーが期待どおりに機能するようになりました。
- 管理者製品グリッドの検索結果のページネーションが、期待どおりに各検索の1 ページ目から始まるようになりました。
- ズーム時のショッピングカートの表示に関する異常値が解決されました。 以前は、このページのズーム時に表示エレメントが重なっていました。
- PayPal Express Checkoutでのチェックアウト時に表示される注文レビューページが正常に読み込まれるようになりました。 以前は、テンプレートに未使用の配信方法を更新 ボタンが含まれていましたが、ページレンダリング中にスクリプトによって部分的にのみ非表示にされていました。
- 長い評価名が存在する場合に、製品ページの「カスタマーレビュー」セクションの評価スターとレビューテキストが適切に配置されるようになりました。
- オプションが、「請求書のアーカイブ」、「出荷」および「クレジット・メモ」ページの「処理」ドロップダウン・リストに正常に表示されるようになりました。
datetimeコンポーネントtimeOnlyオプションが yes に設定されている場合、アプリケーションに正しい時間値が表示されるようになりました。 GitHub-23157
- 管理者コンテンツ > ウィジェットで新しいウィジェットを作成した後、レイアウト更新を削除できるようになりました。 GitHub-29936
- 管理者コンテンツ > ウィジェットから追加した任意のレイアウトで、レイアウトの更新を削除 ボタンが正常に機能するようになりました。 以前は、複数のレイアウトを追加する際に、最初に選択したレイアウト以外では、このボタンは機能しませんでした。 GitHub-30286
- アプリケーションは、レイアウトファイルに設定されているページタイトルを、顧客アカウント編集ファイルのブラウザーページタイトルとして使用するようになりました。 以前は、
Magento\Customer\Controller\Account\Editコントローラーアクションによって、ページタイトルの値がAccount Informationに強制されていました。 GitHub-30724
-
これらのページには、加盟店がパスワードの表示と非表示を切り替えることができるチェックボックスが追加されました。
- 顧客ログイン
- お客様登録
- お客様の編集(パスワードの変更セクション)
- お客様が新しいパスワードを設定GitHub-31557
- 管理者が属性セットを変更した後、グループ化された製品セットに製品を追加したときに表示されるグリッドセルの冗長ヘッダーを削除しました。 GitHub-30911
- アプリケーションは、お客様 > ログイン ページの「ログイン済み」領域に
DateRangeフィルターを表示するようになりました。 以前は、アプリケーションにTextフィルターが表示されていました。 GitHub-30328
- JavaScriptはテンプレートファイルから削除され、別のファイルに移動され、管理者ページでのレンダリングの問題を軽減しました。 以前は、HTMLの最小化が有効になっているデプロイメントでは、管理ページが適切にレンダリングされませんでした。 アプリケーションで次のエラーが表示されました:
An error has happened during application run. See exception log for details。 GitHub-32454
dropdownDialogウィジェットは、必要なドラッグ可能でサイズ変更可能なjquery-uiチャンクのみを読み込むようになりました。 以前は、不要なコードを大量に読み込んでいたため、読み込み時間が長くなり、パフォーマンスが低下していました。 GitHub-32810
URLの書き換え
- 製品を一括更新してweb サイトに割り当てた後、マルチサイトデプロイメントで特定のweb サイトに対する製品URLの書き換えが、想定どおりに生成されるようになりました。
- 親カテゴリでURL キーの「デフォルト値を使用」チェックボックスが有効になっている場合、アプリケーションが子カテゴリのURL パスを正しく生成するようになりました。 以前は、階層内のカテゴリを移動すると、マルチストアビューのデプロイメントで異なるURL キーを使用する際に誤った
url_path値が発生していました。 GitHub-16202
- カテゴリ階層でカテゴリを移動すると、アプリケーションがすべてのストアスコープに割り当てられているカテゴリの
url_pathを更新するようになりました。 以前は、階層内のカテゴリを移動すると、誤ったurl_pathが発生していました。
- カスタム URLを使用して管理者から作成されたURL リダイレクトが正常に機能するようになりました。 以前、GraphQLはGraphQL
urlResolverクエリからの応答をキャッシュし、URLの書き換え更新後に古い値を返していました。
- 製品がweb サイトから削除されると、製品URLの書き換えが正常に削除されるようになりました。 GitHub-24184
app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.phpコレクションのaddStoreFilter関数のstore_idにmain_table参照を追加しました。 以前は、store_id列を含むテーブルのコレクションにjoinが追加されるたびに問題が発生していました。 GitHub-31853
PUT /V1/products/:skuREST エンドポイントは、製品URLの書き換えを期待どおりに再生成するようになりました。 以前は、エンドポイントは製品url_keyの値を再生成しましたが、URLの書き換えはありません。 GitHub-30316
ユーザー
Edit Product Design(カタログ > インベントリ > 製品 > 製品デザインを編集)を除くCatalogツリー全体を選択して、効果的な新しいユーザー役割(管理者システム > 権限 > ユーザー役割)を保存できるようになりました。 以前は、この役割のユーザーが行った製品の変更を保存せず、次のエラーが表示されていました:Not allowed to edit the product's design attributes。 GitHub-31973
- 新しい管理者ユーザーのメールを生成する際に、アプリケーションが正しいカスタムメールテンプレートを使用するようになりました。 以前は、アプリケーションは古いデフォルトのテンプレートを使用しており、管理者の名前と姓は省略されていました。
- 新しいユーザーに電子メールを送信する際に、アプリケーションが正しい電子メールテンプレートを使用するようになりました。 以前は、カスタムテンプレートを選択した場合でも、アプリケーションはデフォルトのテンプレートを使用していました。
VersionCMS
- レイアウトを変更した後で、アプリケーションがCMS ページに正しいテーマを適用するようになりました。 以前は、ページに割り当てられたテーマに関係なく、レイアウトの変更を保存した後、アプリケーションによって割り当てられたテーマがLumaに変更されていました。
ビデオ
- 高度なJavaScript バンドルが有効になっていて使用されている場合に、製品ギャラリーでビデオを利用できるようになりました。 GitHub-32501
- 設定可能な製品に属するシンプルな製品のYouTube ビデオが、正常に動作するようになりました。 以前は、画像は位置ではなくIDで順序付けされていました。 その結果、一部のビデオは画像のように扱われました。 GitHub-29690
Web API フレームワーク
- カタログ APIで、新しい値を追加して古い値を削除することで、製品のカスタムオプション値が正しく更新されるようになりました。 以前は、APIは古い値を削除しませんでした。
- POST
/V1/guest-carts/:cartId/billing-addressは、文字列ではなく整数としてアドレス IDを返すようになりました。
Widget
- 管理者は、ウィジェットのレイアウト更新をすべて削除できるようになりました。 以前は、ウィジェットに複数のレイアウト更新があった場合、管理者は最初のウィジェットのみを削除できました。
- 製品ウィジェットの「買い物かごに追加」ボタンをクリックしても、ページの再読み込みができなくなりました。 以前は、製品ウィジェットの「カートに追加」ボタンをクリックすると、製品がカートに追加される前に、現在のページが再読み込みされていました。
ウィッシュリスト
- ウィッシュリストから製品の「アイテムを編集」ボタンをクリックしても、アプリケーションは設定可能な製品の構成設定をリセットしなくなります。 GitHub-32119
- ウィッシュリストでカスタマイズ可能なファイルオプションを使用して製品を更新すると、アプリケーションに正しい製品価格が表示されるようになりました。 以前は、アプリケーションに誤った製品価格が表示され、アップロードしたファイルへのリンクが表示されませんでした。
- 複数のウィッシュリストを持つ顧客のウィッシュリスト内の合計製品数が、ウィッシュリスト内のアイテム数と一致するようになりました。 以前は、在庫切れ商品は合計商品数に含まれていました。
- アプリケーションは、注文に追加した後、欲しいものリストから製品を削除するようになりました。 GitHub-30260
- 買い物客は、欲しいものリストから関連商品をショッピングカートに追加できるようになりました。 以前は、買い物客が「関連製品」セクションの「すべてを選択」リンクをクリックすると、アプリケーションは設定可能な製品のみを追加し、設定可能な製品とその関連製品は追加しませんでした。 GitHub-32274
既知の問題
問題: reCAPTCHAが無効になっている場合のJavaScript エラー。 チェックアウトでreCAPTCHAが無効になっている場合、チェックアウトは続行されますが、アプリケーションはコンソールログにUncaught TypeError エラーを表示します。 この問題は、後のリリースで修正される予定です。
問題: コンテンツセキュリティポリシーエラー。 ストアフロントでは、コンソールログに次のエラーが表示されます:The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline。 ストアフロントのパフォーマンスには影響しません。
問題: ギフトカード金額のPayPal クレジット表示に関する異常値。 PayPal クレジットが有効になっていて、複数のギフトカード金額が設定されている場合、買い物客がギフトカードの金額を変更しても、ストアフロントは分割払いの金額を更新しません。 この問題の修正プログラムは、Adobe Commerce 2.4.4およびMagento Open Source 2.4.4に含まれます
問題: SKUによって買い物かごに追加された商品に対して、注文に追加 ボタンが機能しません。 skuで商品を注文に追加した後、注文に追加 ボタンをクリックすると、このエラーメッセージが表示されます:An error has happened during application run。 商品はカートに追加されません。 回避策:製品の追加機能を使用します。
コミュニティへの貢献
より多くのMagento Open Source コミュニティに感謝し、このリリースに対する貢献を認めたいと思います。
コミュニティエンジニアリングチーム Magento Contributorsは、月、四半期、年ごとに、最も貢献度の高い個人とパートナーのリストを管理しています。 その貢献者ページから、GitHub上の結合されたPRへのリンクをフォローできます。
パートナーの貢献
次の表は、パートナーによる貢献を示しています。 この表は、プルリクエストに貢献したパートナー、外部プルリクエスト、およびそれに関連付けられているGitHub イシュー番号(利用可能な場合)を示しています。
個々の貢献者貢献
次の表に、コミュニティメンバーからの貢献を示します。 次の表は、外部プルリクエスト、それに関連付けられているGitHub イシュー番号(使用可能な場合)、プルリクエストに貢献したコミュニティメンバーを示しています。
必要システム構成
アドビのテクノロジースタックはPHPとMySQL上に構築されています。 詳しくは、必要システム構成を参照してください。
インストールとアップグレードの手順
Magento Open Source 2.4.3は、Composerを使用してインストールできます。
移行ツールキット
Data Migration Toolは、既存のMagento 1.x ストアデータをMagento 2.xに転送するのに役立ちます。 このコマンドラインインターフェイスには、検証、進捗状況の追跡、ログ記録、テスト機能が含まれています。 インストール手順については、 データ移行ツールのインストール を参照してください。 データ移行リポジトリ の探索または貢献を検討してください。
Code Migration Toolkitは、既存のMagento 1.x ストア拡張機能とカスタマイズをMagento 2.xに転送するのに役立ちます。 コマンドラインインターフェイスには、Magento 1.x モジュールとレイアウトを変換するためのスクリプトが含まれています。