Magento Open Source 2.4.8 release notes

NOTE
Adobe Commerce releases can contain backward-incompatible changes (BICs). To review backward-incompatible changes, see BIC reference. Major backward-incompatible issues are described in BIC highlights. Not all releases introduce major BICs.

Highlights

The following 31 highlights apply to the Magento Open Source 2.4.8 release.

Framework

Order

  • ACP2E-2709: [Feature Request] Customer suggests that Submit Comment Button on Order Details page is confusing and should be changed to something else

Other

  • AC-11420: Set indexers appear in Ready status default when new version of Adobe Commerce is installed

  • AC-11421: In existing Magento installation when install third party indexer module set indexers in update by schedule by default.

  • AC-12480: Elasticsearch 7 and 8 options should come with Deprecated in Admin config.

  • AC-12481: Add text note when Elasticsearch option is selected in Admin Configuration

  • AC-13448: Deliver tier-price operations performance improvement patch into 2.4.8

    • Fix note: The system now allows for more efficient bulk updates of tier prices without causing performance issues or site unresponsiveness when using the "/V1/products/tier-prices" REST API endpoint. Previously, updating a large number of prices using this endpoint could result in performance issues and site unresponsiveness.
    • GitHub code contribution: https://github.com/magento/magento2/commit/082d981c
  • AC-13550: Remove all the Adobe confidential copyright notices from the Magento Open Source repositories

UI Framework

  • AC-12726: [2.4.8-beta1] TinyMCE 5 migration to TinyMCE 7

    • Fix note: Migrated TinyMCE 5 to TinyMCE 7.3.0 to be a supported version for Adobe Commerce, previously system was using 5.10.2 which was out dated and reported security vulnerability
    • GitHub code contribution: https://github.com/magento/magento2/commit/edcd0dcc
  • AC-12825: [2.4.8-beta1] TinyMCE 5 migration to TinyMCE 7 Page Builder

    • Fix note: Migrated TinyMCE 5 to TinyMCE 7.3.0 to be a supported version for Adobe Commerce, previously system was using 5.10.2 which was out dated and reported security vulnerability
    • GitHub code contribution: https://github.com/magento/magento2/commit/edcd0dcc
  • AC-12844: [2.4.8-beta1] TinyMCE 5 migration to TinyMCE 7 - Magento2-infra - banned words

    • Fix note: Migrated TinyMCE 5 to TinyMCE 7.3.0 to be a supported version for Adobe Commerce, previously system was using 5.10.2 which was out dated and reported security vulnerability
    • GitHub code contribution: https://github.com/magento/magento2/commit/edcd0dcc
  • AC-12901: Require.js upgrade to the latest version 2.3.7 (security vulnerability CVE-2024-38999)

Fixed issues

We have fixed 497 issues in the Magento Open Source 2.4.8 core code. A subset of the fixed issues included in this release is described below.

APIs

  • AC-10042: /V1/transactions REST API returns error when parent_txn_id = txn_id

    • Fix note: The system now correctly handles the parent and child concept transactions where the parent transaction ID is the same as the transaction ID, preventing an infinite loop when querying the /V1/transactions REST API endpoint. Previously, this scenario would result in a fatal error due to maximum execution time being exceeded.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1bafc571
  • AC-11878: [Graphql] Type issue in 2.4.7

  • AC-3223: Special characters in category url_key (when created via REST API)

  • ACP2E-2755: Issue with rest api after enable 2FA Duo

  • ACP2E-2927: [REST API]: Use Default value in store view does not stay checked after adding configurations for a configurable product

    • Fix note: The issue has been fixed by ensuring correct database entries for the customizable options for a non-default store. The checkbox for the custom store in the "admin > Catalogue > Product Edit > Customizable Options" section was previously unchecked owing to inaccurate database entries, even if the option title for the custom store stayed the same as the default store.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3056e9cb
  • ACP2E-2969: REST API unable to make requests with slash (/) in SKU when using Oauth1

    • Fix note: Prior to the fix, you were not able to make a successful API call for a product that had "/" in its SKU. Now, you can issue a successful API get request for product details even though its SKU has a forward slash in it.
    • GitHub code contribution: https://github.com/magento/magento2/commit/b21e5d91
  • ACP2E-3079: Customer address update failing when updating through REST API if “validateDefaultAddress” enabled

  • ACP2E-3091: [Cloud] Creating the Duplicate website group price customer group in Tier Prices Api.

    • Fix note: Now Tier Price Rest Api doesn't allow to create the Duplicate website group price customer group.
      Previously it was possible to create the Duplicate website group price customer group in Tier Prices Api that would not pass validation in Admin during product save.
    • GitHub code contribution: https://github.com/magento/magento2/commit/148c3ead
  • ACP2E-3130: Can’t add order comment with status via REST API

    • Fix note: The issue has been resolved by allowing the change in order status if it is from the current state only. Previously, it was not honouring the order state and preventing changes in any order status, even if it was from the same state.
    • GitHub code contribution: https://github.com/magento/magento2/commit/93d50f8d
  • ACP2E-3236: Async operation fails when the SKU is missing from the payload

    • Fix note: Async and sync operations previously failed due to product save errors if sku is missing from payload. After the fix, the async and sync product save rest api operations fail with relevant exception message.
    • GitHub code contribution: https://github.com/magento/magento2/commit/66dea0de
  • ACP2E-3376: [CLOUD] Unable to update the Base-prices using REST API (The value of ‘value_id’ in ‘catalog_product_entity_decimal’ is not incremented correctly.)

    • Fix note: Previously to this fix, when rest api /rest/default/V1/products/base-prices was called, the increment id was increased wrongly leaving a gap between values. After the fix the increment id is increased as expected, incrementaly. Also the value_id field range was increased.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d50f6b5d
  • ACP2E-3460: Order items are not visible in credit memo emails for the API POST V1/order/:orderId/refund

    • Fix note: Previously, before this fix, when a customer creates a credit memo from an API request notifying send_email, it does not contain the product details grid. After this fix apply the customer sends a credit memo API request, and will find the product item details appearing in the email.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3f12d152
  • ACP2E-3486: Default values are not set for date and time attributes with products RestAPI

APIs, Cart & Checkout

  • ACP2E-3343: Critical 500 Error: Magento\Framework\Webapi\Exception Related to Accept HTTP Header

Account

Account, APIs, GraphQL

  • ACP2E-3246: Customer API - Login Failures Number Not Able To Reset To 0 After Successful Login

Account, Admin UI, B2B

  • ACP2E-3038: Restricted admin users can’t always see custom shared catalogs

    • Fix note: Restricted admin users can now consistently view and manage customers and all shared catalogs to which the products are assigned, provided they have access to the specific store. Previously, a restricted admin user with access to a particular store could not always see all shared catalogs to which the products were assigned or could see customers that could not save, leading to inconsistencies in the system.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7377de59

Account, Cart & Checkout

Admin UI

  • AC-10705: [Issue] add permission check for “reload data” data button

    • Fix note: The system now includes a permission check for the "Reload Data" button, ensuring that it is only displayed and accessible to users with the appropriate permissions. Previously, the "Reload Data" button was visible and clickable for all users, leading to a "not permitted" page when clicked by users without the necessary permissions.
    • GitHub issue: https://github.com/magento/magento2/issues/38283
    • GitHub code contribution: https://github.com/magento/magento2/pull/38279
  • AC-11427: [Issue] Inconsistent labels for attributes in marketing rules

  • AC-11588: Data validation is success and Import button is present during Import products with Replace behavior

    • Fix note: The system now correctly validates data and hides the "Import" button during the product import process with "Replace" behavior, preventing any unintended data replacement. Previously, the system incorrectly validated the data and displayed the "Import" button, leading to potential data inconsistencies.
    • GitHub code contribution: https://github.com/magento/magento2/commit/0574ac23
  • AC-12167: [Bug] Magento 2.4.7 doesn’t allow product photo’s with capital letter file extension.

  • AC-12319: Hidden dropdown in grids with select action (e.g. Content > Elements > Pages)

  • AC-13131: [Issue] Fix Warning: Undefined array key “filters”

  • AC-13529: Product import csv file with special characters fails due to code changes in Validate.php file

    • Fix note: The system now correctly validates and imports product CSV files containing special characters, allowing for successful data transfer. Previously, attempting to import a product CSV file with special characters would result in an error, preventing the import process.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6cfb9b6b
  • AC-13850: There is no red asterisk for mandatory phone number field

    • Fix note: Earlier red asterisk was not showing for phone number but phone number was mandatory. Which is now fixed red asterisk can be seen on phone number as a mandatory filed.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c699c206
  • AC-6975: [Issue] Set default indexer mode to ‘schedule’

  • AC-7700: [Issue] Drop indexer changelog tables on mview unsubscribe

    • Fix note: The system now automatically removes unused changelog tables when an index is switched from 'update on schedule' to 'update on save', marking the index as invalid to ensure no entries are missed. Previously, switching an index to 'update on save' would leave unused changelog tables in the system and mark all changed indexes as 'valid'.
    • GitHub issue: https://github.com/magento/magento2/issues/29789
    • GitHub code contribution: https://github.com/magento/magento2/pull/25859
  • AC-7962: No link to shipping when in payments in checkout in mobile phone view

    • Fix note: The system now ensures that the checkout titles/links "Shipping" and "Review & Payments" are always visible on top of the page in mobile view, allowing users to easily navigate between steps and make necessary corrections. Previously, these titles/links were hidden in mobile view, making it difficult for users to know their current step or go back to previous steps.
    • GitHub issue: https://github.com/magento/magento2/issues/36856
    • GitHub code contribution: https://github.com/magento/magento2/pull/36982
  • AC-8109: customer Orders query shipment comments created_at is returned in +0 timezone not in store configured timezone

  • AC-9843: i18n:collect-phrases breaks the translations integrity

    • Fix note: The bin/magento i18n:collect-phrases -o command now correctly collects and adds new phrases from JavaScript and .phtml files, ensuring that translations are accurately reflected in the translation file. Previously, the system failed to include multiline translation phrases from JavaScript files and phrases from .phtml files in the translation file, leading to incomplete or incorrect translations.
    • GitHub code contribution: https://github.com/magento/magento2/commit/0c53bbf7
  • ACP2E-2787: Apostrophe in store view name is replaced by '

  • ACP2E-2847: Favicon upload fails to validate .ico files

    • Fix note: The file validation error has been updated to "File validation failed. Please verify the Image Processing Settings in the Store Configuration." Previously, it was simply "File validation failed."
    • GitHub code contribution: https://github.com/magento/magento2/commit/39d54c2d
  • ACP2E-2957: Gallery in PageBuilder is showing old image thumbnail instead of newly uploaded image

  • ACP2E-2978: Saving product by admin user with different role scope overwrites/deletes existing Related product information in the product

    • Fix note: Previously, before the fix, the related products were reset and became empty when the secondary admin user clicked on the save button without changing in related product. After this fix, the secondary admin user clicks on the save button and the product doesn't reset and is saved successfully.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3056e9cb
  • ACP2E-3033: Unable to export more than 200 orders

    • Fix note: The server limits for the request size of previously submitted selected IDs have been neglected by altering the HTTP request from GET to POST in order to fix the issue. Previously, due to the server limitations for GET request size, the issue was encountered.
    • GitHub code contribution: https://github.com/magento/magento2/commit/93d50f8d
  • ACP2E-3037: Checkout page Validation message incorrect.

    • Fix note: If any required field is left empty, such as "address," the server-side validation will not display the message. The client-side validation will ensure that the required field error notification appears, stating "This is a required field." Previously, the message "address is required" would appear if any required field was left empty, in addition to the client-side validation message.
    • GitHub code contribution: https://github.com/magento/magento2/commit/9af794a4
  • ACP2E-3125: Password reset template issue with Admin user

    • Fix note: The issue has been resolved by using the correct key, which now includes the admin username in the email template and properly completes the subject. Previously, the problem stemmed from an outdated key that was being used.
    • GitHub code contribution: https://github.com/magento/magento2/commit/93d50f8d
  • ACP2E-3149: Double slashes in customer segment URL

  • ACP2E-3171: COD is not available for allowed specific countries

  • ACP2E-3178: Cannot update Custom created Order status

  • ACP2E-3294: The shipping address state is not auto updating

    • Fix note: Prior to the fix, the shipping address region (or region id) was not in sync with the address billing information. Now, both shipping address region and region id are properly updated when billing address information is changed.
    • GitHub code contribution: https://github.com/magento/magento2/commit/581b7ef1
  • ACP2E-3364: Reset button doesn’t work on Add/Edit admin user

    • Fix note: Previously, the Reset button did not function on the Add/Edit Admin User page. Now, in the Admin panel under System -> Permissions -> All Users, the Reset button will work correctly on the Add/Edit Admin User page.
    • GitHub code contribution: https://github.com/magento/magento2/commit/5184c067
  • ACP2E-3373: Magento admin URL routing wrong detection and CORS errors

  • ACP2E-3392: Broken validation for “Maximum Qty Allowed in Shopping Cart”

    • Fix note: Previously, when we put Maximum Qty Allowed in Shopping Cart empty, it did not throw any exception, though an empty value is not accepted here. After this fix applies, putting an empty string will throw exceptions and will not allow saving the product.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d50f6b5d
  • ACP2E-3408: [Pagebuilder Preview UI Issue] The buttons in the Page Builder column aren’t lining up correctly

  • ACP2E-3431: Products Ordered report is not exporting. 404 error instead.

  • ACP2E-3457: TinyMCE JS Error in console after Js minification enable with production mode

    • Fix note: Previously, enabling JavaScript minification in production mode within the admin panel caused JavaScript errors related to TinyMCE 6 to appear in the browser console, affecting the functionality and user experience. Now, This issue has been resolved, ensuring that TinyMCE 6 operates smoothly without generating any errors, even when JS minification is enabled.
    • GitHub code contribution: https://github.com/magento/magento2/commit/56463d5e
  • ACP2E-3459: Request for additional changes to fully complete the ACP2E-3375 fix

  • ACP2E-3503: Automatic enabling of new ACL permissions

  • ACP2E-3509: Admin Actions Log User Report doesnt show details for adminhtml_user_delete

  • ACP2E-3536: Cart Rule with shipping condition not applying when placing order from admin

  • ACP2E-3559: [FRESH] HEX code is not updating correctly in SWATCH

Admin UI, B2B

  • AC-13628: B2B Login as Customer header still has Magento branding

    • Fix note: Earlier the storefront header shows "You are now connected as <customer name> on <store name>" with Magento branding. Which is now fixed and the header shows with ADOBE branding.
    • GitHub code contribution: https://github.com/magento/magento2/commit/96dec499

Admin UI, Payment/ Payment Methods, Order

  • AC-13520: Transaction Authorization Not Displayed in Transaction Tab After PayPal Smart Button Order

    • Fix note: The system now correctly displays the transaction authorization in the Transaction tab after an order is placed using the PayPal Smart Button. Previously, the authorization transaction was not appearing in the Transaction tab after clicking the "Authorize" button, and no new transaction of type "Authorization" was created.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6cfb9b6b

Admin UI, Performance

  • ACP2E-3169: After update to 2.4.5-p8 500 errors occur when creating order from admin

    • Fix note: Previously, when enabling HTML minification, an order from admin could not be placed. Now, with HTML minification enabled, the order from admin can be placed successfully.
    • GitHub code contribution: https://github.com/magento/magento2/commit/b21e5d91

Admin UI, Shipping

  • ACP2E-2519: The coupon code count does not update in the “Time Used” column in the Manage Coupon Codes tab if an order is placed with multi-shipping.

    • Fix note: Earlier, when an order was placed with multi-shipping, the coupon code count did not update in the "Time Used" column on the Manage Coupon Codes tab. Now, the correct count is displayed in both the "Time Used" reflecting the desired values with multi shipping.
    • GitHub code contribution: https://github.com/magento/magento2/commit/4745100c

Admin UI, Staging & Preview

  • ACP2E-3424: [Cloud] Removing template with missing images causes pub/media to be deleted

Analytics / Reporting

  • AC-9922: Google Analytics CSP Error https://region1.analytics.google.com

    • Fix note: The system now correctly allows connections to 'https://region1.analytics.google.com' when Google Analytics is enabled, preventing Content Security Policy (CSP) errors. Previously, enabling Google Analytics and viewing the website from the EU would result in CSP console errors due to a refusal to connect to 'https://region1.analytics.google.com'.
    • GitHub issue: https://github.com/magento/magento2/issues/37750
    • GitHub code contribution: https://github.com/magento/magento2/pull/38991
  • ACP2E-2570: Advance Report is not working

    • Fix note: The system now supports the generation of Advance Reporting data files for extra-large datasets by loading and writing reports in batches of 10,000. Previously, the Advance Reporting module was unable to generate data files for extra-large datasets, causing "MySQL server has gone away" errors during the execution of the analytics_collect_data cron job.
    • GitHub code contribution: https://github.com/magento/magento2/commit/a12063bd
  • ACP2E-3080: Admin Ordered Products Report date range visibility issue.

  • ACP2E-3096: Incorrect curl headers making newrelic:create:deploy-marker not working

  • ACP2E-3183: NewRelic browser monitoring inlineJS script causes CSP errors

    • Fix note: NewRelic Browser Monitoring scripts are now injected by the application instead of the APM agent for compliance with CSP (Content Security Policy). Previously, NewRelic Browser Monitoring scripts injected by APM agent were not compliant with CSP and caused the scripts to not be executed.
    • GitHub code contribution: https://github.com/magento/magento2/commit/66dea0de
  • ACP2E-3189: INSERT queries to the sales_bestsellers_aggregated_daily table become slow on project with large sales order volume

    • Fix note: Previously the bestsellers aggregated daily report would take a lot of time to generate for large volume of placed orders. Now the report is generated in a timely manner.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7377de59
  • ACP2E-3276: Order reports showing the wrong currency symbol

    • Fix note: The currency symbol for order amounts in the Order Report was incorrectly taken from currency/options/base. It has now been corrected to use currency/options/default for accurate reporting.
    • GitHub code contribution: https://github.com/magento/magento2/commit/fd5cf3af
  • ACP2E-3302: [Cloud] Incorrect Calculations in Coupon Usage Report

    • Fix note: The sales total in the coupon report grid is now accurately calculated by incorporating both the "Discount Tax Compensation Amount" and the "Shipping Discount Tax Compensation Amount." Previously, these amounts were missing from the calculation, leading to discrepancies between the sales total and the sales order data.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d75cff27
  • ACP2E-3339: Issues with shared “<project_id>/var/tmp”

    • Fix note: Analytics DataExport temporary files will use the sys tmp directory, which is more suitable for frequent access and changes. To avoid collisions in case multiple instances are running on the same server, the tmp path was updated to use an instance's unique id
    • GitHub code contribution: https://github.com/magento/magento2/commit/a4cf5e62

Analytics / Reporting, B2B

  • ACP2E-2300: B2B - sitemap includes products/categories not assigned to Shared Catalog

    • Fix note: Restrict the sitemap generated categories and products to the categories and product assigned only to the public shared catalog and / or the catalog category permission setup.
    • GitHub code contribution: https://github.com/magento/magento2/commit/ea79f7dd

Analytics / Reporting, Cloud

  • ACP2E-3067: Magento discards most New Relic cron transactions #34108

    • Fix note: AC is correctly reporting cron job related transactions to NewRelic. Previously, some cron job related transactions would be shown as "OtherTransaction/Action/unknown" in NR
    • GitHub code contribution: https://github.com/magento/magento2/commit/35b1b1da
  • ACP2E-3187: Metric in NR might be misleading for background transactions- Follow up of ACP2E-3067

B2B

  • ACP2E-2139: Products assigned to shared catalog are not reflect on the front end when partial index is executed

    • Fix note: Products assigned to shared catalog via REST API are now immediately visible on storefront after partial indexing is complete. Previously, Products were visible only after a full re-indexation.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7377de59
  • ACP2E-3044: Unnecessary borders on the My Orders section

    • Fix note: Previously an additional container(order references) was created that applied additional CSS classes, which caused unnecessary border lines were appearing below the order number inside the My Orders section, which isn't visible now.
    • GitHub code contribution: https://github.com/magento/magento2/commit/9af794a4
  • ACP2E-3247: sales_clean_quotes cron deletes quotes from to yet approved purchase orders

B2B, Framework

  • AC-9607: Filtering Company Grid & Then Attempting Grid CSV Export Will Fail & Throw Exception

    • Fix note: The system now allows successful CSV export of the Companies grid data in the admin panel, even when filters such as 'Outstanding Balance' and 'Company Type' are applied. Previously, applying certain filters and attempting to export the grid data would result in a failure and an exception being thrown.
    • GitHub code contribution: https://github.com/magento/magento2/commit/44cef3a9

Bundle

  • AC-10826: Storefront Bundle Checkbox Validation Error message count more than 1

    • Fix note: The system now displays only one validation error message when the 'Add to Cart' button is clicked without selecting any checkbox options for a bundled product. Previously, the system was displaying multiple validation error messages for each unselected checkbox.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3ea26621

Cart & Checkout

  • AC-10660: Exception is not getting handled properly while adding a product to cart in the compare product page

  • AC-10698: GTag not send transaction prices and totals.

  • AC-11641: [Issue] [Checkout] Depend directives updated in failed payment email template

  • AC-11717: Magento 2 login inside the checkout with existing customer give console error in Firefox browser

  • AC-11876: [Issue] Sales Rules regression in 2.4.7

  • AC-11914: [Issue] Sales rule CartFixed calculation : incorrect discount amount

  • AC-11993: [Issue] The loader blocks the shipping methods after the postcode is changed, shipping rates validation rules

    • Fix note: The system now correctly handles custom shipping methods without shipping rates validation rules, ensuring that the loader does not block the shipping methods after the postcode is changed in the shipping address during checkout. Previously, changing the postcode in the shipping address during checkout would cause the loader to block the shipping methods and not disappear when custom shipping methods without shipping rates validation rules were used.
    • GitHub issue: https://github.com/magento/magento2/issues/38742
    • GitHub code contribution: https://github.com/magento/magento2/commit/1bafc571
  • AC-12170: Coupon code feature is not working properly in the checkout page on Magento 2.4.7

  • AC-12479: Terms and conditions checkbox is not allowing HTML on storefront

    • Fix note: The system now supports HTML formatting in the "Terms and Conditions" checkbox text on the storefront, allowing for enhanced customization and readability. Previously, the checkbox text was displayed in plain text format, ignoring any HTML tags used.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6cfb9b6b
  • AC-12541: Cart price rule created for logged in user incorrectly gets applied for not logged in user

    • Fix note: The system now correctly removes the cart price rule for logged-in users when they are automatically logged out due to cookie expiration, ensuring that the discount is not applied to non-logged-in users. Previously, the cart price rule was still applied even when the user was logged out, resulting in an incorrect discount being applied to non-logged-in users.
    • GitHub issue: https://github.com/magento/magento2/issues/38944
    • GitHub code contribution: https://github.com/magento/magento2/commit/7d5e3906
  • AC-13302: [Issue] [FEATURE] Performance optimisation large shopping carts by preventing…

  • AC-8103: Translation VAT in address renderer

  • ACP2E-2055: Duplicate orders with same Quote Id at same time with few time difference

  • ACP2E-2470: Persistent shopping cart cleared during checkout step

  • ACP2E-2518: Reorder adds non assigned product to cart

    • Fix note: Previously, for the different stores products can be reordered from the other store. After this fix is applied only the same store , same scope product can be reordered when the customer account share is enabled
    • GitHub code contribution: https://github.com/magento/magento2/commit/f89a447e
  • ACP2E-2620: In admin, the “Shopping Cart” on left side doesn’t get updated when selecting the items and “Move to Shopping Cart” from the right side

    • Fix note: The "Shopping cart" on the left side gets updated when selecting the items and "Move to shopping cart" from the right side in the admin side. Previously this functionality was not working because the transformed cart items were not getting empty from the session.
    • GitHub code contribution: https://github.com/magento/magento2/commit/39d54c2d
  • ACP2E-2646: [Cloud] Sales Rule not applied to first order of Multi Shipping

  • ACP2E-2664: [Cloud] Production Parallel Requests to Add Same Product to Cart Result In Two Separate Items In The Cart rest API

    • Fix note: The system now correctly processes multiple parallel requests to add the same product to the cart into a single line item, preventing the creation of separate line items for the same SKU. Previously, making parallel requests to add the same product to the cart via the REST API would result in multiple line items for the same SKU.
    • GitHub code contribution: https://github.com/magento/magento2/commit/f89a447e
  • ACP2E-2704: Getting Unable to send the cookie. Size of ‘mage-messages’ while trying to Reorder

  • ACP2E-2798: Default shipping address is not selected on checkout

  • ACP2E-2897: [CLOUD] graphql addProductsToCart api issue with custom option

  • ACP2E-2923: Multiple addresses added to the account when checkout as new customer

  • ACP2E-3004: Reordering customer order via guest order form results an empty cart

    • Fix note: Previously, when placing a reorder through the Orders and Returns page, the customer was redirected to the login page. After this fix is applied, the registered customer is correctly redirected to the View Cart page when placing a reorder. The flow works the same as like as guest customers.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6a185204
  • ACP2E-3025: Admin User with limited Role Resources unable to view Shopping Carts

    • Fix note: Previously, the restricted admin could not see the abandoned shopping cart from the admin panel for an associated website. After this fix is applied, the restricted admin can see the abandoned shopping cart from the admin panel.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d1f7dc95
  • ACP2E-3176: [Cloud] quick order large amount of SKU performance

    • Fix note: Checkout performance has been improved when attributes used in cart price rules conditions are not present for all products and when MAP (Minimum advertised price) feature is enabled.
    • GitHub code contribution: https://github.com/magento/magento2/commit/66dea0de
  • ACP2E-3211: Duplicated items in cart

    • Fix note: The system now correctly processes multiple parallel requests to add the same product to the cart into a single line item, preventing the creation of separate line items for the same SKU. Previously, making parallel requests to add the same product to the cart on Storefront would result in multiple line items for the same SKU.
    • GitHub code contribution: https://github.com/magento/magento2/commit/66dea0de
  • ACP2E-3296: Checkout order email confirmation is sent to emails entered in First/Last name

  • ACP2E-3402: Checkout shipping address form get update with wrong address

    • Fix note: shippingAddressFromData is now saved into the local storage per website. Previously, an address from the wrong website could be auto-populated into the shipping address form during checkout if a store code was used in the URL and checkout was initiated from multiple websites during the same guest session.
    • GitHub code contribution: https://github.com/magento/magento2/commit/078c387e
  • ACP2E-3407: Gift Card Product | Cart Merge is merging Gift Cards

  • ACP2E-3415: Cart persistence is not being respected upon logout

  • ACP2E-3488: Existing quote data is not update / not visible, instead create a new quote record when trigger_recollect = 1

  • ACP2E-3618: [CLOUD] Re-order button functionality

    • Fix note: Re-orderind an order from the administrator area will now add products with stock to the quote even though there are some products in the original order that do not have stock anymore. Prior to the fix no products were being added to the new quote if product with no stock were in the original order.
    • GitHub code contribution: https://github.com/magento/magento2/commit/a52ff98f
  • ACP2E-3622: Search stores are not working by zip code

    • Fix note: Searching pickup locations by zip code was not working properly for Dutch localisations. After the fix, the pickup location search will provide results based on zip code.
    • GitHub code contribution: https://github.com/magento/magento2/commit/344fce23

Cart & Checkout, Checkout/ One Page Checkout

  • AC-9386: [Random BUG] Email field isn’t rendered or takes a lot of time show up in Checkout Shipping or Payment page

Cart & Checkout, Order

  • ACP2E-3097: Datepicker for product with multiple Customizable Options with date fields not working when placing order from admin

    • Fix note: The system now correctly displays the date picker for all date fields when configuring a product with multiple customizable date options in the admin order creation process. Previously, the date picker was only displayed for the first date field, leaving the remaining fields without a date picker.
    • GitHub code contribution: https://github.com/magento/magento2/commit/b21e5d91

Cart & Checkout, Shipping

Catalog

  • AC-10910: Cleanup of cron_schedule database table doesn’t cleanup non-existing jobs

    • Fix note: The system now automatically cleans up the cron_schedule database table, removing entries for jobs that no longer exist in the system. This ensures optimal performance by maintaining a minimal number of rows in the table. Previously, entries for jobs from inactive or removed modules were not cleaned up, leading to unnecessary data accumulation in the cron_schedule table.
    • GitHub issue: https://github.com/magento/magento2/issues/38217
    • GitHub code contribution: https://github.com/magento/magento2/pull/38693
  • AC-10953: Tier Price is not being deleted from Configurable Product

    • Fix note: The system now correctly removes the tier price of a product when it is converted from a simple product to a configurable product, ensuring accurate price display on the frontend. Previously, the tier price of a configurable product was not deleted when a product was converted from a simple product to a configurable product, leading to a mismatch in the displayed price.
    • GitHub issue: https://github.com/magento/magento2/issues/38390
    • GitHub code contribution: https://github.com/magento/magento2/pull/38427
  • AC-11804: Category description WYSIWYG is empty on non default storeview

  • AC-11970: Imposible to reorder configurable products with one checkbox selected custom option

  • AC-12076: [Issue] Fix wording of filter item on layered navigation

  • AC-12164: Date and Time Format for Custom Option Not Working

  • AC-13068: Dropdown options missing

    • Fix note: The system now correctly displays all values in the dropdown when creating a new attribute with more than 20 values. Previously, only the first 20 values or another selected page values were displayed, causing the remaining values to be missing.
    • GitHub code contribution: https://github.com/magento/magento2/commit/47b448e2
  • AC-13296: [Issue] Use current sore id for category runtime cache

  • AC-13324: bin/magento sampledata:deploy --no-update throws an exception

  • AC-13355: [Issue] Fix usage of EAV cache type

  • AC-13596: Catalog Advanced Search with empty data goes to search result page[2.4.dev branch]

    • Fix note: The system now correctly retains users on the Advanced Search page and displays an error message when they attempt to perform a search without entering any data. Previously, performing an empty search would redirect users to the Catalog Advanced Search page with a message prompting them to modify their search.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6cfb9b6b
  • AC-13622: [Issue] Product layout based on attribute_set

  • AC-6738: Missing unique key on eav_attribute_option_value table

    • Fix note: The system now includes a unique key on the 'option_id' and 'store_id' columns in the 'eav_attribute_option_value' table, preventing the possibility of an option having multiple values for the same store view. Previously, faulty code could result in an option having multiple values for the same store view, causing issues when editing products or attributes.
    • GitHub issue: https://github.com/magento/magento2/issues/24718
    • GitHub code contribution: https://github.com/magento/magento2/pull/28796
  • AC-8297: [Issue] Use visibility class for category product indexer, instead of hardcoded values

  • AC-9375: Currency code not change in New product widget

  • ACP2E-2224: Regular Price does not show on PLP for Configurable Product

  • ACP2E-2478: Stock information not showing right on Visual Merchandising grid

  • ACP2E-2621: Widget content is not updating on cms page

    • Fix note: The system now updates the widget content on a CMS page when a product is set as new and saved, ensuring that the page displays the updated product collection. Previously, the page was not updated to show the new product due to the incorrect cache identities used for the widget in the cache.
    • GitHub code contribution: https://github.com/magento/magento2/commit/f89a447e
  • ACP2E-2630: Issues saving advanced pricing on bundle products

  • ACP2E-2652: [On-Premise] Re-index process is inefficient when creating Catalog Price Rules

  • ACP2E-2679: Updating time of Date and Time type product attributes via CSV import

  • ACP2E-2689: No Appropriate error message when website id is wrong in the request

    • Fix note: Now the appropriate error message was added to display when the website id is wrong in the request. Previously there was no validation when the website id was wrong in the request.
    • GitHub code contribution: https://github.com/magento/magento2/commit/39d54c2d
  • ACP2E-2785: Product image is lost after deleting an existing Scheduled Update that doesn’t affect the image

  • ACP2E-2799: [Cloud] Wrong bundle product price when used with tier prices

  • ACP2E-2805: Catalog Promotions Rule not working with quantity_and_stock_status attribute

  • ACP2E-2837: Product entity updated_at column values not updating while updating price through REST API

    • Fix note: The product 'last updated at' column from the admin is updated the proper date time while updating the existing products through the REST API. Previously the column 'last updated at' is not updated properly.
    • GitHub code contribution: https://github.com/magento/magento2/commit/39d54c2d
  • ACP2E-2840: It’s possible to set non-unique values via product import

  • ACP2E-2843: Products on the frontend use store specific data when Single-Store Mode is enabled

    • Fix note: Previously, when we enabled single store mode for the default store view, the changes were not migrated to the website-level scope. After this fix is applied, when we enable single store mode, the default store view-specific data will be synced with website-level-specific data and will resolve the possible conflicts for products and categories.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8931218
  • ACP2E-2857: Cannot set “Default Sort By” in a category using the rest API

  • ACP2E-2871: [Cloud] The Merchant is facing issues with wishlist count

    • Fix note: Adding a product to the wishlist in one store no longer increases the wishlist count in other stores open in the same browser. Previously, if both stores were loaded in the same browser, the wishlist count would increase in the other store as well.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3a7c4d17
  • ACP2E-2874: Category Page at frontend shows empty slots when using bundle product

  • ACP2E-2905: [Cloud] Issue of Quote in multi-website architecture

  • ACP2E-2909: dynamic-rows.js:658 Uncaught TypeError: dataRecord.slice while editing bundle products

  • ACP2E-2950: [Cloud] Bundle Product wrong pricing in order confirmation

  • ACP2E-2956: YouTube Video Adding Bug

    • Fix note: Product images and videos are configured in global scope. Given that you can't have a product video in one scope and not in another, Youtube API key setting has been set to global scope.
    • GitHub code contribution: https://github.com/magento/magento2/commit/a4fbf702
  • ACP2E-2964: [Cloud] URL update only for store_id=0

    • Fix note: The "URL Path" is now stored with the correct store ID. Previously, the store ID was incorrect, resulting in incorrect URL paths remaining in the database when moving categories.
    • GitHub code contribution: https://github.com/magento/magento2/commit/9af794a4
  • ACP2E-3009: async.operations.all executed and created an error.

  • ACP2E-3029: [Cloud] Mobile Issue Only not able to pinch on the PDP image

    • Fix note: The system now supports pinch-to-zoom functionality on product detail page images in mobile view on Chrome, enhancing the mobile user experience. Previously, double-tapping on the image in mobile view on Chrome did not zoom in on the image as expected.
    • GitHub code contribution: https://github.com/magento/magento2/commit/148c3ead
  • ACP2E-3058: Missing label in LayeredNavigation with option name 0

  • ACP2E-3069: Customers see prices from other customer groups

  • ACP2E-3076: Error when deleting bundle options

    • Fix note: The system now correctly deletes bundle options without triggering an error or causing the page to become unresponsive. Previously, attempting to delete bundle options would result in a "Page Unresponsive" error and prevent the product from being saved.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6a185204
  • ACP2E-3100: [Cloud] Image File does not exist in New Relic Error Log

    • Fix note: The system now synchronizes custom placeholder images to local storage, ensuring that they render correctly when using remote storage such as AWS S3. Previously, custom placeholder images failed to render when using remote storage, resulting in a broken image display and error logs.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d1f7dc95
  • ACP2E-3103: New Products RSS feed is not updated with new products due to cache

  • ACP2E-3126: [Cloud] Product Media Gallery GQL response is not sorted by image position

  • ACP2E-3136: [Cloud] Sub Category items are not displayed on the widgets edit on the admin backend

    • Fix note: The category tree on the new widget page should no longer have issues loading Level 5+ categories. Previously, some categories were missing when loading the tree past Level 5 categories.
    • GitHub code contribution: https://github.com/magento/magento2/commit/148c3ead
  • ACP2E-3198: [cloud] Two-finger zoom and move issue on the real mobile device

    • Fix note: The system now ensures consistent image zoom functionality on mobile devices, providing a smooth and predictable user experience. Previously, the image zoom feature was inconsistent and would suddenly zoom out after a certain point when viewed on a mobile device.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1366ae5e
  • ACP2E-3282: When we unassign products from the shared catalog, the wishlist products are not being cleared

    • Fix note: Now, no items are visible in the wishlist if a product is not available in the shared catalog. Previously, the wishlist page incorrectly displayed a count of "1 Item" even when no items were actually available in the wishlist.
    • GitHub code contribution: https://github.com/magento/magento2/commit/5184c067
  • ACP2E-3286: Related products Select All/Unselect All Issue

    • Fix note: Previously, the "Select All"/"Unselect All" buttons for related products didn't work correctly if a product was manually selected. After the fix, these buttons now function consistently, even after manual selection, ensuring that all products are properly selected or unselected.
    • GitHub code contribution: https://github.com/magento/magento2/commit/fd5cf3af
  • ACP2E-3336: [Cloud] Stock alert email translation to the wrong language

  • ACP2E-3350: Disabled Categories are no longer have their names grayed out in the category tree

  • ACP2E-3410: Configurable product edit form load causes timeout and memory exhaustion

    • Fix note: Prior to the fix configurable product variations were constructed based on all possible attribute option combinations. In cases where attributes had a lot of options this resulted in a lengthy and resource consuming operation. Now, configurable product variations are constructed based on existing child product attributes. This results in far less calculations - thus an improved usage of resources.
    • GitHub code contribution: https://github.com/magento/magento2/commit/078c387e
  • ACP2E-3454: Fotorama doesn’t load video correctly when using Swatches and option is pre-selected via URL

  • ACP2E-3461: PageBuilder Carousel Widget shows products that doesn’t match conditions

  • ACP2E-3469: Validation Error Triggered for All Products in Group When One Has Invalid Quantity

  • ACP2E-3513: [CLOUD] Special price not showing in Configurable product

  • ACP2E-3516: Indexers Temporary tables are not cleaned up if the process is terminated

  • ACP2E-3520: [QUANS] Core unit test failures in 2.4.7-p3

  • ACP2E-3533: Performance Issue in Stock Quantity Retrieval for Grouped Products with Multiple Sources

  • ACP2E-3641: Refix https://jira.corp.adobe.com/browse/ACP2E-3389

Catalog, Content

  • ACP2E-3063: [Cloud] Cache is not getting invalidated.

    • Fix note: Previously, when saving a CMS page with an updated design layout, it did not reflect appropriately on the front end. After this fix is applied, the appropriate design layout will be visible at the front end when we change the design layout and save the CMS page.
    • GitHub code contribution: https://github.com/magento/magento2/commit/66dea0de
  • ACP2E-3131: [Cloud] Anchor/Non-Anchor Categories Reversed in Content Widget

    • Fix note: Previously, when we selected Display On -> Anchor Categories, it showed all the categories that did not reflect the parent-child relation between the anchor and non-anchor. After this fix is applied, the Display On -> Anchor Categories only displays Anchor Categories (selectable), and Display On -> Non Anchor Categories displays Non-Anchor Categories (selectable)
    • GitHub code contribution: https://github.com/magento/magento2/commit/7377de59
  • ACP2E-3152: Categories not working with widgets

    • Fix note: Previously, if we saved the CMS block for different anchor/non-anchor categories, it did not work for the child categories when it showed on the front end. After this fix has been applied, the block is shown at the front end for different categories.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d01ee51e

Catalog, Framework

  • AC-9111: Order get(Shipments|Creditmemos|Invoice)Collection - Collection should not be loaded

  • ACP2E-2949: [Cloud]Follow-up: Mismatch in Data Comparison when checking if data has changes

    • Fix note: Previously, the save object was called every time without any data changes (for any numeric data field - like int/float/double). It triggers the flag _hasDataChanges to be true and calls the save function. It also does not check the floating numbers encapsulated by string. After this fix applies, the save function will call only if the data is changed. The data value for int/float/double-check with the value passing to the function and does strict type matching
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8931218

Catalog, GraphQL

  • ACP2E-3090: Handling Category Filters in GraphQL: includeDirectChildrenOnly and category_uid

  • ACP2E-3166: [Cloud] Graphql Product sorting do not work

  • ACP2E-3312: Tier Prices return wrong value in products GraphQL (compared to Storefront)

Catalog, Pricing, Staging & Preview

  • ACP2E-2672: [Cloud] Special price API endpoint returns error when updating large numbers of products concurrently

    • Fix note: Now Special Price bulk update API will create a single campaign for each date range instead of multiple scheduled updates for each product and date range. Also, it will support concurrent API requests for faster processing of large number of SKUs.
    • GitHub code contribution: https://github.com/magento/magento2/commit/f89a447e

Catalog, Product

  • AC-7050: Category selection tree in edit product is not in the same order as set in Catalog->Categories

    • Fix note: The system now correctly displays the category selection tree in the product edit section in the same order as set in Catalog->Categories, making product administration easier in large catalogues. Previously, the category tree in the product edit section was displayed in the order of category creation, regardless of the display order set in Catalog->Categories.
    • GitHub issue: https://github.com/magento/magento2/issues/36101
    • GitHub code contribution: https://github.com/magento/magento2/pull/36104

Catalog, SEO

  • ACP2E-3653: Incorrect canonical URL for category when page > 1

    • Fix note: Previously, the canonical URL for multi-page content did not function correctly, consistently displaying the base URL. However, after the fix was implemented, the canonical URL for multi-page content now correctly displays the URL with the page ID.
    • GitHub code contribution: https://github.com/magento/magento2/commit/982b1c42
  • ACP2E-2757: Products not showing on category and search but direct links are working

  • ACP2E-3053: [Cloud] Elastic search error on certain category pages

    • Fix note: Previously, with the configuration ticket mentioned, when we put price 0 for multiple products, it will throw an exception at the frontend category page. After this fix applied when multiple product price 0 and we load category page at frontend it wont throw any exception and will load category page successfully.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8931218
  • ACP2E-3345: Type Error occurred when creating object: Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor Exception

  • ACP2E-3521: [CLOUD] Issue with Products are Not Visible in Frontend After Saving in Magento Admin

Cloud

  • ACP2E-3010: [Cloud] PHPSESSID is changing each POST Request

    • Fix note: PHPSESSID no longer regenerates on POST requests on frontend area for a logged-in customer if L2 Redis cache is enabled and the customer was updated from the backend
    • GitHub code contribution: https://github.com/magento/magento2/commit/6a185204
  • ACP2E-3532: Sitemap Generation Warnings

Content

  • AC-10539: [Issue] issue with the price display in the Recently Viewed widget

    • Fix note: The system now correctly displays the price of out-of-stock simple products in the "Recently Viewed Product" widget, ensuring consistency across all widgets and product list pages. Previously, the price of out-of-stock simple products was not displayed in the "Recently Viewed Product" widget due to a condition in the price loading templates.
    • GitHub issue: https://github.com/magento/magento2/issues/38167
    • GitHub code contribution: https://github.com/magento/magento2/pull/38159
  • AC-10596: [Issue] Correct typo and grammar in acl.xsd file

  • AC-10845: Pagebuilder banner image not visible in gallery

    • Fix note: The system now correctly displays banner images uploaded in newly created folders in the Pagebuilder gallery, eliminating previous console errors. Prior to this fix, banner images were not visible in the gallery if they were uploaded in a new folder, causing a console error.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8f87c25
  • AC-12283: “Area code not set” after update to 2.4.5-p8

    • Fix note: The system now successfully completes the static content deployment process when the Magento_CSP module is enabled and "dev/js/translate_strategy" is set to "embedded", without triggering the "Area code not set" error. Previously, under these conditions, the static content deployment process would fail with an "Area code not set" error.
    • GitHub issue: https://github.com/magento/magento2/issues/38845
    • GitHub code contribution: https://github.com/magento/magento2/pull/38922
  • AC-12692: Widget category tree is not rendered correctly

  • AC-13054: Unable to see “Using Default value” message when changing the theme in design configuration page

    • Fix note: The system now includes a separate column to display the "Using Default value" message depending on the selected theme in the design configuration page. This ensures clarity and visibility of the default value status. Previously, the "Using Default value" message was not displayed, leading to confusion about the status of the selected theme.
    • GitHub code contribution: https://github.com/magento/magento2/commit/47b448e2
  • AC-13569: [Issue] Restores backwards compatibility with TinyMCE plugins again (after it…

    • Fix note: The system now restores backward compatibility with TinyMCE plugins, allowing functions defined inside the plugin to be called when using the widget from another location. Previously, due to a change in the TinyMCE version, the plugins were not returning the widgets as an object, resulting in an error when trying to call certain functions on the widget instance.
    • GitHub issue: https://github.com/magento/magento2/issues/39262
    • GitHub code contribution: https://github.com/magento/magento2/pull/39258
  • AC-9638: [Issue] file upload issue in WYSIWYG editor on product page

    • Fix note: The system now correctly displays the folder tree and allows image uploads in the WYSIWYG editor on the product page, even after expanding the 'Image and Videos' tab first. Previously, expanding the 'Image and Videos' tab first resulted in the folder tree not being displayed and an error message when attempting to upload an image in the WYSIWYG editor.
    • GitHub issue: https://github.com/magento/magento2/issues/38026
    • GitHub code contribution: https://github.com/magento/magento2/pull/38025
  • ACP2E-2392: [On-PREM] Dynamic block issue

  • ACP2E-2693: [Cloud] Frontend not loading due to issue in newsletter template

  • ACP2E-2836: ACP2E-2836: [Cloud] Investigate exception found in the log: InvalidArgumentException: Class does not exist in vendor/magento/module-rule/Model/ConditionFactory.php

    • Fix note: Removing a condition on PageBuilder products content settings no longer causes an exception to be recorded in the log files. Previously, removing a condition on PageBuilder products content settings would cause a critical exception to be recorded in the logs, despite not causing any issues on the frontend.
    • GitHub code contribution: https://github.com/magento/magento2-page-builder/commit/36c0f5df
  • ACP2E-2842: Switching to single store mode - global content no longer appears

    • Fix note: The system now synchronizes store view design configurations with website design configurations when enabling single store mode, ensuring that content updates are visible on the frontend. Previously, switching to single store mode would prevent content updates from being reflected on the storefront.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7e0e5582
  • ACP2E-2903: Page Builder replaces image when trying to add link and other usability glitches.

    • Fix note: Now clicking on an image, links in wysiwyg editor in Page Builder text element will load proper data in the image, link configuration dialog. Also adding a link to an image in the editor now works properly. Previously, the image was replaced with a link.
    • GitHub code contribution: https://github.com/magento/magento2-page-builder/commit/4d5db10a
  • ACP2E-2970: Old media gallery fails to render images when a 0-byte image is placed in the directory

    • Fix note: The system now handles 0-byte images in the media gallery without disrupting functionality, allowing other images in the directory to be displayed and selected as expected. Previously, the presence of a 0-byte image in the media gallery would prevent all images in the directory from being displayed or selected.
    • GitHub code contribution: https://github.com/magento/magento2/commit/35b1b1da
  • ACP2E-3064: Error Page Builder when editing CMS Block

  • ACP2E-3092: [CLOUD] No buttons of checkout or edit cart on the cart section

  • ACP2E-3122: [CLOUD] Upload image button doesn’t work

  • ACP2E-3127: imagecreatetruecolor(): Argument #2 ($height) must be greater than 0. Can’t upload specific image

    • Fix note: Resolved the issue causing errors in the admin when uploading images with a height of 0 via the media gallery, and successful the assets synchronization using the sync command. Previously can't upload the image via the media gallery and the sync command also fails when a specific image is in the gallery.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6f4805f8
  • ACP2E-3154: Prototype.js Array.from in conflict with Google Maps API

  • ACP2E-3275: [Cloud] - CMS Slider not reflecting the latest changes

  • ACP2E-3326: An error occurs in CSM page when CMS blocks are inserted using page builder in certain order

    • Fix note: Previously on some versions of PHP and OS (Linux), the rendering of blocks that referenced other cms blocks through PageBuilder would have failed with an "An unknown error occurred. Please try again.". Now the content of the cms blocks is rendered correctly inside a PageBuilder controlled content.
    • GitHub code contribution: https://github.com/magento/magento2-page-builder/commit/ae2cdeb0
  • ACP2E-3428: Pagebuilder’s template preview failure for large content

    • Fix note: Large content was leading to canvas element overflowing the browser's limits, and returning incorrect value, which broke backend code (cannot properly decode the image). Fixed with limiting canvas size to the universal browser's limit.
    • GitHub code contribution: https://github.com/magento/magento2-page-builder/commit/adfb1747
  • ACP2E-3430: Latest security updates with TinyMCE 7 missing font size

  • ACP2E-3483: TinyMCE 7 editor font size in the admin in PT and not PX please clarify

  • ACP2E-3490: Product Content Type in Page Builder Gets Collapsed Without Correct Messages

  • ACP2E-3534: [page builder]Adding Product Listing to block results in errors

Customer/ Customers

  • AC-12162: Front end - Date of birth validation is failing in Customer creation page

  • AC-8499: Region text field is not reset when country dropdown is changed

    • Fix note: The system now resets the region text field when the country is changed in the dropdown menu, ensuring that previous values do not persist. Previously, changing the country from the dropdown list did not reset the region field, causing the last saved value to be preserved.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3ea26621
  • AC-9240: Deleting Customer Does Not Clean All Browser Session Data on Storefront for Logged in & Deleted Customer

    • Fix note: Deleting a customer now cleans all browser session data from the storefront for logged-in and deleted customers as expected. The shopper can continue shopping, and their browser treats their session as a guest session. Previously, when the customer account for a logged-in shopper was deleted from the Admin, then the shopper’s browser threw JavaScript errors.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7d5e3906

Framework

  • AC-10037: [Question]Unused Type configuration in app/code/Magento/Translation/etc/di.xml

  • AC-10654: V1/customers/password endpoint question/issue

    • Fix note: The system now adheres to the constraints set within the management GUI when processing password change requests via the API, preventing potential abuse of the password reset function. Previously, the API could process password change requests outside of the rules defined in the management GUI, potentially allowing for a constant stream of reset emails if valid emails were known.
    • GitHub issue: https://github.com/magento/magento2/issues/38238
    • GitHub code contribution: https://github.com/magento/magento2/commit/0c53bbf7
  • AC-10738: Varnish configuration does not exclude all marketing parameters

  • AC-10838: Catalog search index process error indexation process

  • AC-10941: Added created_at, status and grand_total filters to customer Orders query and fixed multiple filters failure

  • AC-10991: Randomly getting flooded with queries from related / upsell / crosssell blocks and price indexing

  • AC-11423: Exception: Warning: Trying to access array offset in… -> Calendar.php since upgrade to ICU 74.1 (PHP Intl)

  • AC-11476: [Issue] Fix issues with Customer Data when form contains element with name method

    • Fix note: The system now correctly identifies the 'method' attribute in form submissions, even when an element named 'method' is present in the form. This ensures accurate processing of customer data. Previously, if a form element was named 'method', it would interfere with the identification of the 'method' attribute in form submissions, leading to potential issues with customer data handling.
    • GitHub issue: https://github.com/magento/magento2/issues/38484
    • GitHub code contribution: https://github.com/magento/magento2/pull/38449
  • AC-11489: [Issue] Fix PHPDocs for \Magento\Framework\Data\Collection::getItemById

    • Fix note: The PHPDocs for the \Magento\Framework\Data\Collection::getItemById method have been updated to include null as a possible return type, addressing issues with static analysis tools. Previously, the method's PHPDocs did not specify null as a possible return type, leading to warnings or errors in static analysis when the method was used in conditional statements.
    • GitHub issue: https://github.com/magento/magento2/issues/38485
    • GitHub code contribution: https://github.com/magento/magento2/pull/38439
  • AC-11592: [Issue] Allow only valid preferences during setupcompile

    • Fix note: The system now throws an error during the setupcompile command if a preference is created for a class that does not exist or is specifically excluded, ensuring that only valid preferences are allowed. Previously, these scenarios would fail silently, potentially rendering any plugins associated with the original classes useless.
    • GitHub issue: https://github.com/magento/magento2/issues/38517
    • GitHub code contribution: https://github.com/magento/magento2/pull/33161
  • AC-11651: Magento trying to modify read-only property in __wakeup method of LoggerProxy

  • AC-11681: [Issue] AC-2039 AC-1667 upgrade TinyMCE references

  • AC-11696: ChangelogBatchWalker does not work in multiple threads

  • AC-11781: [Issue] Rename wrongly named variable

  • AC-11809: [Issue] Pass custom attributes to current link via XML

    • Fix note: The system now allows custom attributes to be passed to the current link via XML, ensuring that these attributes are correctly displayed even when the link is the current page. Previously, custom attributes were not displayed for the current page link due to the getAttributesHtml() method not being used for the current link.
    • GitHub issue: https://github.com/magento/magento2/issues/38500
    • GitHub code contribution: https://github.com/magento/magento2/pull/30070
  • AC-11819: Built-in FPC cache is broken in 2.4.7 for some configurations

  • AC-11829: [Issue] Fix exception handling inconsistency between developer and production modes

    • Fix note: The system now consistently handles exceptions between developer and production modes, preventing unexpected redirection to the login page when an exception is thrown. Previously, an inconsistency in exception handling could cause a redirect to the login page in production mode instead of displaying the exception message.
    • GitHub issue: https://github.com/magento/magento2/issues/38639
    • GitHub code contribution: https://github.com/magento/magento2/pull/37712
  • AC-11852: Replace ‘PayPal Account’ translation in token_list.phtml

    • Fix note: The system now labels the section for tokenizable account payment methods as "Account" instead of "PayPal Account" in the Stored Payment Methods page, making it more representative of its function. Previously, this section was specifically labeled as "PayPal Account", which was misleading when other tokenizable account payment methods were added.
    • GitHub issue: https://github.com/magento/magento2/issues/35622
    • GitHub code contribution: https://github.com/magento/magento2/pull/37959
  • AC-11874: Backward compatibility has been lost on Magento\Catalog\Model\ProductRepository class

    • Fix note: The ProductRepository class now maintains backward compatibility by restoring the Initialization Helper class as the second parameter, ensuring that modules extending from this class function as expected. Previously, the removal of the Initialization Helper from the constructor in the ProductRepository class resulted in a loss of backward compatibility, forcing users to employ a workaround.
    • GitHub issue: https://github.com/magento/magento2/issues/38669
  • AC-11905: [Issue] Static content deploy - Type error

  • AC-12002: [Issue] [View] Removed extra space in link and script tag

  • AC-12127: [Issue] avoid a misconfiguration infinite loop

    • Fix note: The system now avoids an infinite loop by preventing self-referential mapping in virtual type configurations. This ensures the application does not get stuck in an endless loop when attempting to dereference a self-referential node. Previously, if a virtual type configuration was self-referential, it would cause the application to spin indefinitely.
    • GitHub issue: https://github.com/magento/magento2/issues/38822
    • GitHub code contribution: https://github.com/magento/magento2/pull/38794
  • AC-12299: Object Manager not used for Magento\Csp\Model\Mode\Data\ModeConfigured

  • AC-12540: Inaccurate doc block comment in Product Stock and Price Alerts

    • Fix note: The doc block comment for the deleteCustomer method in the Product Stock and Price Alerts has been corrected to accurately reflect that the method deletes all stock product or price alerts associated with a given customer and website, not the customer from the website. Previously, the comment inaccurately stated that the method was for deleting a customer from the website.
    • GitHub issue: https://github.com/magento/magento2/issues/38939
    • GitHub code contribution: https://github.com/magento/magento2/pull/39001
  • AC-12594: [Issue] Use compiled config for generated data instead of general config

    • Fix note: The system now uses the compiled configuration for generated data instead of the general configuration, reducing network transfer and overhead of data that depends on a certain version of code. This change prevents cache overriding in shared instances during container swapping, leading to improved stability and reduced downtime. Previously, certain core classes used shared config type, which could lead to cache overriding or application downtime due to differences in code versions across multiple servers.
    • GitHub issue: https://github.com/magento/magento2/issues/38785
    • GitHub code contribution: https://github.com/magento/magento2/pull/29954
  • AC-12597: [Issue] Remove references to files from extjs which got removed in e1ccdb…

  • AC-12778: [Issue] Minor cleanup: fixed wrong usage of sprintf, it only takes 2 placeholders here and w…

  • AC-12857: PHP 8.2.15 removed FTP extension

  • AC-12869: [Issue] Fixes incorrect classes being referenced in Magento modules.

    • Fix note: The system now correctly references classes in modules, ensuring smoother operation and preventing crashes due to non-existing classes. This includes a bugfix in the Indexer and Creditmemo modules, and the implementation of the HttpGetActionInterface in the PrintAction class. Previously, incorrect class references led to errors and potential system crashes, and certain functionalities, such as the filename for creditmemo PDF files and reindexing of stocks, were not working as expected.
    • GitHub issue: https://github.com/magento/magento2/issues/39126
    • GitHub code contribution: https://github.com/magento/magento2/pull/37784
  • AC-12964: Ability to define Area for devinfo CLI command

  • AC-13149: [Issue] add isMultipleFiles property to image form element template

  • AC-13279: [Issue] Remove all marketing get parameters to minimize the cache

  • AC-13345: [Issue] [PHPDOC] Fix bad phpdoc Magento\Directory\Model\AllowedCountries::getAllowedCountries()

  • AC-13348: [Issue] Removes some code for PHP versions we no longer support.

  • AC-13417: [Issue] Make ImageMagick Adapter compatible with php8 (Implicit conversion from float to int)

  • AC-13537: [Issue] [PHPDOC] Fix bad phpdoc Magento\Framework\App\Config\ScopeConfigInterface

  • AC-13725: Magento\Framework\Filesystem\Driver\Http depends on reason phrase OK

  • AC-13810: Customer Grid indexer does not work properly in Update by Schedule mode

  • AC-6754: typo error on a js file.

  • AC-8353: [Issue] Remove forbidden @author tag

  • AC-8356: [Issue] Remove forbidden @author tag from Magento_Customer (part 2)

  • AC-8659: Space in editorconfig syntax breaks rule for [{composer,auth}.json]

  • AC-8662: [Issue] Improve cron error logging

  • AC-8984: [Issue] Adds some more colors to the output of certain setup cli commands

  • AC-9630: Upgrading Magento resets general/region/state_required when new country with required state/region is added.

    • Fix note: The system now only adds the modified country to the 'general/region/state_required' configuration when a new country with required states is added, preventing any disruption to custom code that assumes the region is disabled. Previously, adding a new country with required states would reset the 'general/region/state_required' configuration to default countries with a required state, potentially breaking the shop.
    • GitHub issue: https://github.com/magento/magento2/issues/37796
    • GitHub code contribution: https://github.com/magento/magento2/pull/38076
  • AC-9712: Difference in less compilation between php & nodejs library (grunt) with complicated calc expressions

  • ACP2E-2692: “Base table or view not found” error occurs when partial indexing is executed

  • ACP2E-2844: Issues after upgrading MariaDB to 10.5.1 or higher

  • ACP2E-2855: Type Mismatch in Data Comparison when checking if data has changes

    • Fix note: Previously, the save object was called every time without any data changes (for any numeric data field - like int/float/double). It triggers the flag _hasDataChanges to be true and calls the save function. After this fix applies, the save function will call only if the data is changed. The data value for int/float/double-check with the value passing to the function and does strict type matching.
    • GitHub code contribution: https://github.com/magento/magento2/commit/57a32313
  • ACP2E-2959: [Cloud] import cannot be used with directory var

  • ACP2E-2966: In ipad mini the menu and header loads as mobile, instead they should load as desktop.

  • ACP2E-3230: Modifying column length via db_schema.xml doesn’t work in case of foreign keys

  • ACP2E-3361: Some of the relations records are saved to DB when order record is saved

    • Fix note: Before the fix unnecessary UPDATE queries were being triggered that can have an impact performance wise. After the fix, the unnecessary UPDATE queries were eliminated.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1366ae5e
  • ACP2E-3375: [CLOUD] In admin there are many javascript error in console

    • Fix note: Previously, In admin panel there are many javascript error in console. Now, In the admin panel, there will be no JavaScript errors in the console, and all the default JavaScript functions will execute successfully without any issues.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d75cff27
  • ACP2E-3387: [Cloud] Magento: queue message has been deleted

    • Fix note: Queue messages are now properly being cleared out. Prior to the fix, given that SQL queue system was being used, new messages could have been deleted if the cleaning queue message was running at the same time.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d50f6b5d
  • ACP2E-3537: Corresponding cache key entries are not available in cache tags, hence cache cleaning does not work correctly

  • ACP2E-3681: MAGENTO_DC_INDEXER__USE_APPLICATION_LOCK value is ignored

Framework, GraphQL

Framework, UI Framework

  • ACP2E-3324: Possibility to overwrite config value even if it’s locked

    • Fix note: Previously to this fix, the design configuration could not be set through bin/magento config:set command and locked values could be changed by manipulation of the form displaying them. After the fix locked values set from cli with --lock-env or --lock-conf cannot be updated anymore.
    • GitHub code contribution: https://github.com/magento/magento2/commit/55615e61

GraphQL

  • AC-11729: Magento_GraphQl execute headers processing even if the header value does not pass validation

    • Fix note: The system now ensures that header processing is only executed once and only if the header value passes validation, enhancing security and preventing potential vulnerabilities. Previously, header processing was executed even if the header value did not pass validation, leading to potential vulnerabilities and unexpected behavior due to double processing of header values.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8f87c25
  • AC-8951: Physical Giftcard options don’t have the right sorting order

    • Fix note: The system now correctly sorts the options of physical gift card products when queried via GraphQL, ensuring consistent rendering with the Luma theme. Previously, the sort order was incorrect according to luma theme, leading to incorrect display and ordering of options such as sender name, recipient name, and amount.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1bafc571
  • AC-9157: [GraphQL] Resolver Cache is Invalidated When Creating/Editing/Moving/Deleting a Staging Update

    • Fix note: The system now ensures that the resolver cache is not invalidated when creating, editing, moving, or deleting a staging update, but only when the staging update is applied to the entity. Previously, the resolver cache was invalidated prematurely, even before the staging update was applied, which led to unnecessary cache invalidations.
    • GitHub code contribution: https://github.com/magento/magento2/commit/0c53bbf7
  • ACP2E-2642: Fastly cache not cleared for content staging update

  • ACP2E-2653: Disabling Layered Navetion - Does not remove aggregation from Graphql

    • Fix note: The issue has been fixed after applying the check while requesting a product search with category aggregations through a GraphQL query when the admin configuration setting of "Catalog > Layered Navigation > Display Category Filter".
    • GitHub code contribution: https://github.com/magento/magento2/commit/12e071c3
  • ACP2E-2928: GraphQL Products call containing the price filter {from:“0”} returns no result

    • Fix note: Previously graphql products search with filter for zero prices did not return any results at all due to a thrown exception. Now the search returns results as expected.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c971859e
  • ACP2E-2974: Translations for customer return attributes not reflected in GraphQL API for respective StoreView

    • Fix note: Translations for customer return attributes are reflected in GraphQL API for respective StoreView.
      Previously customer Return attributes for respective StoreView were not reflected in GraphQL API.
    • GitHub code contribution: https://github.com/magento/magento2/commit/ec7e32a9
  • ACP2E-3128: [Cloud] Broken GraphQL call for getPurchaseOrder with node quote

  • ACP2E-3184: [Cloud] Configurable Products not shown in Production Site if Product is not enabled in “All Store Views”

    • Fix note: The system now correctly displays configurable products in the site even if the product is not enabled in "All Store Views", but is enabled in specific store view scopes.
      Previously, if a product was disabled in "All Store Views" and enabled only in specific store view scopes, the product attributes would not be displayed correctly in the GraphQL response, leading to the product not being displayed properly.
    • GitHub code contribution: https://github.com/magento/inventory/commit/3f300077
  • ACP2E-3190: [Cloud] Products graphql having error when same simple product has assigned to multiple configurable products

    • Fix note: Previously, with separate configurable products with the same simple product, grapQL returns an error. After this fix apply, different configurable products with the same simple product, grapQL returns result without no error.
    • GitHub code contribution: https://github.com/magento/magento2/commit/148c3ead
  • ACP2E-3215: [Cloud] Issue with User Authentication and Cross-Site Token Access in Multi-Site Setup

    • Fix note: GraphQl Customer Info and Cart queries in Multi-Site setup checks if the customer on non-default website exists.
      Previously query worked without making sure the customer exists on non-default website in Multi-Site setup.
    • GitHub code contribution: https://github.com/magento/magento2/commit/581b7ef1
  • ACP2E-3253: GraphQL cart itemsV2 pagination is not working correctly

    • Fix note: The issue has been fixed by passing the correct value for the current page argument in the collection query. Previously, the wrong value was getting passed to set the current page, causing the issue.
    • GitHub code contribution: https://github.com/magento/magento2/commit/8459b17d
  • ACP2E-3255: [GRAPHQL] model value should be specified when getting customerCart

    • Fix note: The GraphQL 'customerCart' query can now create an empty cart even when the quote is not available in the database. Previously, this operation failed due to country validation issues while creating the empty cart.
    • GitHub code contribution: https://github.com/magento/magento2/commit/fd5cf3af
  • ACP2E-3380: [GraphQl] Wishlist items are visible via GraphQl but not visible on storefront

  • ACP2E-3404: [GraphQL] Reset password email inconsistency between content and subject/link

    • Fix note: The issue has been resolved by simulating the correct store where the customer's account is registered when sending the password reset request, regardless of the website store.
    • GitHub code contribution: https://github.com/magento/magento2/commit/5184c067
  • ACP2E-3419: [Cloud] products GraphQL query returns related products not assigned to current website

    • Fix note: Previously, for graphQL query, multi-store related products do not show properly for product query. After this fix is applied, for products, graphQL query multi-store related products showing accordingly.
    • GitHub code contribution: https://github.com/magento/magento2/commit/078c387e
  • ACP2E-3447: Using the wrong Store ID in GraphQL header causes fatal memory error

  • ACP2E-3467: [Cloud] 500 response to empty Graphql response on 2.4.7

  • ACP2E-3492: [Cloud] Problems with Graphql API

  • ACP2E-3505: Disabled product still appears in related, upsell, crosssell items in grpahQL query

  • ACP2E-3647: [CLOUD]: GraphQl error Internal server error placeOrder mutation

    • Fix note: The "placeOrder" mutation with coupon code information in the request is no longer throwing an internal error exception, the order was placed successfully. Previously, it failed with "Internal server error".
    • GitHub code contribution: https://github.com/magento/magento2/commit/982b1c42
  • LYNX-426: The discount_percentage is not calculated for bundle products with dynamic price

    • Fix note: Fix added for discount_percentage of product.price_details not showing the correct value for bundle products with dynamic price enabled and discount coupon applied.
  • LYNX-485: Bundle products still shows “IN_STOCK” when one of its bundled product out of stock

    • Fix note: Resolved the issue where bundle products were still showing "IN_STOCK" even when one of their bundled products was out of stock.
  • LYNX-486: not_available_message and only_x_left_in_stock doesn’t show the same available stock

    • Fix note: Resolved the issue where the not_available_message and only_x_left_in_stock were showing inconsistent stock availability
  • LYNX-488: original_row_total field returning wrong value

    • Fix note: Resolved the issue with the original_row_total field, which was returning incorrect values when custom options were selected
  • LYNX-503: Grouped product thumbnail should be shown according to the configuration .

    • Fix note: Resolved the issue to ensure the grouped product thumbnail is displayed according to the configuration settings
  • LYNX-512: original_item_price is not including discounts

    • Fix note: Updated original_item_price to include discounts.
  • LYNX-530: Not available message is not showing the available inventory quantity

    • Fix note: Resolved the error message and error code for the AddProductsToCart mutation to align with the "not available" message configuration
  • LYNX-532: “OUT_OF_STOCK” status returns on Simple with custom options products with multi select options

    • Fix note: Updated the StockStatusProvider resolver in the inventory package to fix the stock_status for simple products with custom options.
  • LYNX-533: Error (GQL): cart.itemsV2.items.product.custom_attributesV2 returns a server error

    • Fix note: Resolved the server error that occurred when a cart query included a product's custom attributes by adding a product without any custom attributes.
  • LYNX-536: orders/date_of_first_order always returning null

    • Fix note: Resolved the issue where orders > date_of_first_order was always returning null.
  • LYNX-544: Customer must not be able to cancel a partially shipped order

    • Fix note: Validation has been added to restrict customers from canceling a partially shipped order.
  • LYNX-548: Error codes for order cancellation based on the error message

    • Fix note: The error codes for order cancellation are now based on the specific error message.
  • LYNX-581: Move back cookie-related properties from private to protected

    • Fix note: Reverts Magento\Framework\App\PageCache\Version class constructor properties visibility from private to protected
  • LYNX-600: Increase max default GraphQL query complexity to 1000

    • Fix note: Increased the default maximum GraphQL query complexity from 300 to 1000.
  • LYNX-620: GQL - itemsV2 > Original row total, price range prices is returned as $0.00 for downloadable product with file options which has separate prices.

    • Fix note: Resolved an issue where downloadable products with separate link purchase options enabled were returning $0 for itemsV2 > Original row total, price range returned as $0.00 for products with file options having separate prices.
  • LYNX-772: GraphQl Compatibility for PHP-8.4 Version

    • Fix note: Fixed GraphQL compatibility issues with PHP 8.4 across multiple resolvers, ensuring smooth functionality. Updated affected files in CatalogRule, Customer, GiftMessage, GiftCard, and GiftWrapping modules.

GraphQL, Inventory / MSI

GraphQL, Inventory / MSI, Performance

GraphQL, Performance

  • AC-9569: [GraphQL Resolver] Customer Resolver Data is Not Invalidated From Import

    • Fix note: GraphQL customer resolver cache is now invalidated as expected when a customer is edited or deleted through imports. Previously, the cache was not invalidated, and customer data could be edited or deleted during import.
    • GitHub code contribution: https://github.com/magento/magento2/commit/0574ac23
  • ACP2E-2809: GraphQL product list sorting by multiple parameters doesn’t work

  • ACP2E-948: Product listing GraphQL query limited to total_count 10,000 products only

    • Fix note: After the fix, the search result is not limited to 10000 products, it becomes possible to get all products matching the search criteria even if the count is more than 10000.
    • GitHub code contribution: https://github.com/magento/magento2/commit/a4cf5e62

GraphQL, Test framework

Import / export

  • AC-12172: Issue at product import when provided with custom options-type: file (Created Product does not contain price for custom-option and show only the first file type extension provided)

    • Fix note: The system now correctly imports product data with custom options of type 'file', ensuring that all provided file extensions are displayed and the price for the custom option is included. Previously, during product import, if a custom option of type 'file' was provided with more than one file extension, only the first extension was displayed and the price for the custom option was missing.
    • GitHub issue: https://github.com/magento/magento2/issues/38805
    • GitHub code contribution: https://github.com/magento/magento2/pull/38926
  • ACP2E-2710: Wrong execution time for import operation in Import History grid

  • ACP2E-2737: Duplicate customers being created with same email address using import

  • ACP2E-2902: Add/Update Import on Products Duplicating Customizable Options

    • Fix note: The issue has been resolved by assigning the correct store to product options during product options CSV imports.
      Previously, assigned to the admin store instead of their respective store.
    • GitHub code contribution: https://github.com/magento/magento2/commit/3a7c4d17
  • ACP2E-2990: Customer “created_at” date Not Converted to store time zone upon export

  • ACP2E-3165: [Cloud] Getting error while checking the data in import data using CSV

    • Fix note: There is no error when checking the data during CSV import. Previously, the error message displayed was: "We can't find a customer who matches this email and website code in row(s): 1" when checking the data in the import section using CSV from the admin.
    • GitHub code contribution: https://github.com/magento/magento2/commit/8459b17d
  • ACP2E-3172: Import button missing

    • Fix note: Resolve the Import button missing issue after data checks with correct and incorrect records in the CSV. Previously the import button doesn't display after data checks with correct and incorrect records in the CSV.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1819fe73
  • ACP2E-3382: Exported customer address cannot be imported

    • Fix note: Customer address import will proceed as expected. Previously, a customer address import file would not pass validation if Share Customer Accounts = Global, and there are two websites where the default website has a restricted country list, and the address that is being imported is for another website where allowed countries are different
    • GitHub code contribution: https://github.com/magento/magento2/commit/ec7e32a9
  • ACP2E-3448: [Cloud] Wrong quantity in CSV file did not give error

    • Fix note: Now stock sources import will throw validation error for non numeric values in the quantity column. Previously, importing stock sources with non numeric value in the quantity column resulted in the quantity being set to 0.
    • GitHub code contribution: https://github.com/magento/inventory/commit/5b21b7af
  • ACP2E-3455: Duplicated URL key error message generated when importing a product is not correct when the URL Key already belongs to a category

  • ACP2E-3475: Product export causes OOM even with 4G memory limit

    • Fix note: Previous to this fix, the product export failed if product attributes had thousands of option values even with 4G available memory. After this fix, the product export should finish exporting the csv file.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1984c61c
  • ACP2E-3527: [Cloud] Import Processes Interfering with Each Other

Import / export, Performance

  • ACP2E-3476: [Cloud] Product import time has significantly increased

    • Fix note: Previous to the fix, catalog product import with over 10K entries had a significant time degradation. After the fix, the import of catalog product executes in a timely manner.
    • GitHub code contribution: https://github.com/magento/magento2/commit/87d012e5

Install & Administer

Inventory / MSI

  • AC-10750: Inventory update of Configurable Product fails when database uses prefixes

    • Fix note: The system now correctly updates the inventory of configurable products when the database uses prefixes, preventing any error messages and ensuring the correct quantity is saved. Previously, an error would occur when trying to save the inventory quantity for simple products within a configurable product if the database was using prefixes.
    • GitHub issue: https://github.com/magento/magento2/issues/38045
  • AC-11593: Google google API key is not working while adding Map with attributes

    • Fix note: The system now supports the latest Google Maps API version 3.56, allowing users to successfully add a Map content block from the PageBuilder menu to the stage without encountering any errors. Previously, users were unable to add a Map content block due to compatibility issues with the Google Maps API version, resulting in a "something went wrong" error message.
    • GitHub code contribution: https://github.com/magento/magento2/commit/0574ac23
  • AC-13922: Unable to create shipment for order item with multiple sources and corrupted SKU

    • Fix note: Earlier when spaces was mistakenly added in sku through database leads to error in shipment page which is now fixed and automatic trim is considered as human friendly error and no impact was found .Therefore shipment was successfully created.
    • GitHub code contribution: https://github.com/magento/inventory/commit/c18eb5fa
  • ACP2E-1411: [Test] Bundle products with 0 inventory showing on store front

    • Fix note: The bundle product does not display on the additional websites using additional stock.
  • ACP2E-2794: [Cloud] Critical Issue with Product Listing with Empty Spaces

  • ACP2E-3335: Unable to ship the order when MSI pick up store is enabled

  • ACP2E-3355: Cron reindex fails to update product availability on the frontend

    • Fix note: Previously, Products remained out of stock on the frontend after updating the backorder status through the REST API. Now, after updating the backorder status via the REST API, products are shown as in stock.
    • GitHub code contribution: https://github.com/magento/inventory/commit/e6fe0aa7
  • ACP2E-3357: Adding images to configurable not working when MSI is enabled.

  • ACP2E-3470: Issue with Bundle Product + MSI in Clean M2.4.7-p3

  • ACP2E-3413: All products are indexed with [is_out_of_stock] = 1 when the SKU is not set as a searchable attribute

Order

  • AC-10828: Backend order overview screen: Backordered quantity not visible on order item level

    • Fix note: The system now displays the number of backordered items in the quantity column on the backend order overview screen. This ensures that users can accurately track the status of all items in an order. Previously, the quantity column only showed the number of items that were ordered, invoiced, and shipped, but did not display the number of backordered items.
    • GitHub issue: https://github.com/magento/magento2/issues/38252
    • GitHub code contribution: https://github.com/magento/magento2/pull/38320
  • AC-10994: [Issue] Wrong store ID used in Order Address Renderer

    • Fix note: The system now correctly uses the store ID associated with an order when rendering the order address, ensuring that addresses are formatted correctly according to their respective store ID. Previously, the system was incorrectly using the current store ID, which could lead to incorrect address formatting in cases where multiple order emails from different stores needed to be sent.
    • GitHub issue: https://github.com/magento/magento2/issues/38412
    • GitHub code contribution: https://github.com/magento/magento2/pull/37932
  • AC-11690: JoinProcessor caching issue

  • AC-11798: [Issue] Shipping price showing diffrent in printed pdf

  • AC-13839: Reorder with a deleted parent configurable product

  • AC-13924: [Issue] Fix bad \Magento\Sales\Model\Order\Email\Container\Template::$id property

  • ACP2E-2622: Unable to save changes to phone number in existing order details

  • ACP2E-2734: Emails are failing to send

    • Fix note: The system now includes a configuration option async_sending_attempts to specify the number of attempts to send an email before stopping, improving the handling of failed email sends when "Asynchronous sending" is enabled. Previously, if an email failed to send, the system would continuously attempt to resend it, resulting in an endless loop of error messages in the system log.
    • GitHub code contribution: https://github.com/magento/magento2/commit/b2286ecf
  • ACP2E-2756: [Cloud] Order Status changed to complete when partially refund of a partially shipped order

  • ACP2E-3002: [CLOUD] Cannot Disable Send Emails from Admin UI as Dev Docs shows

    • Fix note: The system now correctly prevents sales emails from being sent when email communication is disabled. These emails will no longer be sent when email communication is re-enabled. Previously, sales emails initiated while email communication was disabled would still be sent once email communication was re-enabled.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c8931218
  • ACP2E-3045: Order closed without fully refunded

    • Fix note: The system now correctly maintains the order status as 'Processing' and the invoice status as 'Pending' when an order with an uncaptured payment has a shipment created. This ensures that orders are only marked as 'Closed' after being fully refunded. Previously, creating a shipment for an order with a pending invoice would incorrectly change the order status to 'Closed'.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6a185204
  • ACP2E-3311: [Cloud] Cannot create order in admin on one store if only the Default Billing Address was not set up

    • Fix note: Now relevant error message "A customer with the same email address already exists in an associated website." is displayed if a customer doesn't have a Default Billing Address and tries to create an order on another store.
    • GitHub code contribution: https://github.com/magento/magento2/commit/d75cff27
  • ACP2E-3416: Admin duplicated place order requests sent

    • Fix note: Previously, the "Submit Order" button in the admin panel could be clicked multiple times or activated by repeatedly pressing the "Enter" key, causing duplicate or order submissions with error. Now, preventing additional actions until the order is fully processed, ensuring that only one order is submitted.
    • GitHub code contribution: https://github.com/magento/magento2/commit/5184c067
  • ACP2E-3425: Admin can still place order even without payment method

Order, Payments

  • ACP2E-3233: Admin can still place order even without payment method

    • Fix note: Previously, the merchant could place orders from the admin panel without selecting a payment method. Now, the merchant is required a payment method to proceed with placing an order.
    • GitHub code contribution: https://github.com/magento/magento2/commit/fd5cf3af

Order, Returns

  • ACP2E-2982: Order refund results in duplicate credit memo

Order, Tax

  • ACP2E-3003: [CLOUD] Incorrect base_row_total in RESTFUL order API when enabling cross-border transactions and applying coupon discounts

Other

  • LYNX-339: private_content_version cookie returned in GQL queries
    • Fix note: Fixed an issue where the private_content_version cookie was returned in GraphQL queries, even when the session cookie was disabled. The cookie is no longer included in GraphQL responses when the session is disabled, as expected.
  • LYNX-380: is_available attribute in CartItemInterface returns always false for configurable products
    • Fix note: Fixed an issue where the is_available attribute in CartItemInterface always returned false for in-stock configurable products. Now, it correctly reflects availability as true when applicable.
  • LYNX-382: is_available attribute in CartItemInterface returns true even when salable stock is lower than the quantity of the product
    • Fix note: Fixed the issue where the is_available attribute in the CartItemInterface incorrectly returned true even when the cart item quantity exceeded the salable stock.
  • LYNX-399: Placeholder thumbnail returns when a simple product added to cart within a grouped product
    • Fix note: Fixed an issue where adding a simple product (part of a grouped product) to the cart returned a placeholder thumbnail image, even when the product had an assigned image.
      Fix Details:
      • The product thumbnail now correctly displays the assigned image if available.
      • The thumbnail selection respects the admin configuration under:
      Stores > Configuration > Sales > Checkout > Shopping Cart > Grouped Product Image.
      This ensures consistent thumbnail behavior for grouped products based on store settings.
  • LYNX-400: Customer’s custom option attributes not working with integer values
    • Fix note: Fixed an issue where customer’s custom option attributes did not work when the returned value was an integer. Custom options now correctly handle and return integer values as expected.
  • LYNX-402: Internal server error when trying to get priceDetails for Bundle products with dynamic price
    • Fix note: Resolved an issue where querying price_details for bundle products with dynamic pricing via GraphQL resulted in an internal server error. This enhancement ensures stable cart queries when working with bundle products configured with dynamic pricing.
  • LYNX-403: only_x_left_in_stock always returns 0 for configurable products
    • Fix note: Resolved an issue where the only_x_left_in_stock attribute always returned 0 for configurable products when added using the parent SKU with options.
      Fix Details:
      • The only_x_left_in_stock value now accurately reflects the stock of the selected child variant instead of the parent SKU.
      • This ensures that stock levels are correctly displayed for configurable product variations in the cart and product pages.
  • LYNX-411: GraphQL query not returning correct calculated regular price for customizable products
    • Fix note: Fixed an issue where GraphQL did not return the correct calculated regular price for customizable products. The query now correctly includes the calculated regular price with customizable values applied (e.g., $125) in the prices property, reflecting both the base price and any additional customization costs.
  • LYNX-412: AppliedTaxes via EstimatedTotals persist with updated mutations
    • Fix note: Fixed an issue with the EstimatedTotals mutation where applied taxes persisted on a cart even after updating the region or postcode. The mutation now correctly updates the applied taxes when changing between region and postcode values, ensuring that only the correct tax rule is applied based on the current cart data.
  • LYNX-420: is_available attribute in CartItemInterface returns true even when salable stock is lower than the quantity of the product
    • Fix note: Fixed an issue where the is_available attribute in CartItemInterface incorrectly returned true even when the salable stock was lower than the requested product quantity. The is_available field now correctly returns false when the product’s quantity exceeds the available stock.
  • LYNX-425: Product regular price with 12 decimals and wrong value
    • Fix note: Fixed an issue where the regular_price value in the product.price_range.maximum_price and minimum_price GraphQL paths did not match the catalog price when multiple tax rates were applied. The regular_price now consistently reflects the catalog price across all tax configurations, ensuring accurate unit pricing, total row cost calculations, and discount checks in the Cart Summary.
  • LYNX-430: GraphQL server error on cart with out of stock bundled product
    • Fix note: Fixed an issue where GraphQL returned an internal server error when fetching a cart containing a bundled product with an out-of-stock item, specifically when the query included the itemsV2 property. GraphQL now correctly returns a list of items with relevant error messages attached to the bundled product item entry, as expected.
  • LYNX-441: It is not possible to create an address with custom attributes
    • Fix note: Fixed an issue with the createCustomerAddress mutation that prevented the creation of addresses with required custom attributes. The mutation now correctly handles custom address attributes when the appropriate payload is provided.
  • LYNX-447: GraphQL server error on cart with only_x_left_in_stock on bundled product
    • Fix note: Fixed an issue where fetching a cart containing a bundled product with the only_x_left_in_stock field in the GraphQL query resulted in an internal server error. GraphQL now correctly returns a float or null for the only_x_left_in_stock field without errors.
  • LYNX-464: GraphQL error when removing other products with insufficient configurable product in cart
    • Fix note: Fixed an issue where attempting to remove in-stock products from the cart resulted in a “The requested qty is not available” GraphQL error if the cart also contained configurable products with insufficient stock. The removal now works as expected without triggering errors.
  • LYNX-469: Cannot add products due to SKU in mutation being case sensitive
    • Fix note: Resolved an issue where the addProductsToCart mutation returned a “PRODUCT_NOT_FOUND” error when using SKUs with different casing. The mutation now handles SKUs case-insensitively, ensuring consistency with Catalog Service queries and PDP behavior.
  • LYNX-603: Product attribute > trademark short form ™ is returned as ™
    • Fix note: Resolved character encoding issue with the product name for the GraphQL API
  • LYNX-619: updateCustomerEmail mutation issue
    • Fix note: Resolved an issue with the updateCustomerEmail mutation where customers without required custom attributes (added after account creation) were unable to update their email.
  • LYNX-626: Mutation setShippingAddressesOnCart throws error when using pickup_location_code
    • Fix note: Fixed an issue where the setShippingAddressesOnCart mutation returned an error when using pickup_location_code without specifying customer_address_id or address. The mutation now correctly allows setting a shipping address with just the pickup_location_code.
  • LYNX-637: Storefront Compatibility - Update logic to get table name with prefix and other minor improvements
    • Fix note: Updated logic to retrieve the table name with the prefix (related to SCP changes).
  • LYNX-643: save in address book does not work when using setBillingAddressOnCart GQL’s same_as_shipping field
    • Fix note: Fixed an issue where the shipping address was not saved to the customer’s address book when using the setBillingAddressOnCart GraphQL mutation with the same_as_shipping field set to true. Now, the shipping address is correctly stored as expected.
  • LYNX-650: Standarize the order_id in mutations
    • Fix note: Standardized the order_id input in mutations and updated the order cancel confirmation email template to expose increment id instead of order id.
  • LYNX-651: CustomerOrder is not displaying the order comments
    • Fix note: Resolved an issue with CustomerOrder to include order comments in guest and customer order GraphQL queries.
  • LYNX-652: original_item_price must not include any discount
    • Fix note: Updated the logic for original_item_price in GraphQL Cart Item prices to exclude discounts.
  • LYNX-681: Bundle products still shows “IN_STOCK” when one of its bundled product out of stock
    • Fix note: Resolved an issue where product.stock_status for bundle products still showed "IN_STOCK" even when one of the bundled items was out of stock.
  • LYNX-686: customer query returns Internal Server Error if value for deleted custom attribute exists for a customer
    • Fix note: Fixed the issue where the customer query returned an internal server error when a deleted custom attribute still had a stored value. Now, a proper error message is returned if a non-existing attribute is requested. Necessary cache is invalidated upon deleing customer custom attribute.
  • LYNX-687: Action parameter for return and cancel confirmation links
    • Fix note: Action parameter added for return and cancel confirmation email related links
  • LYNX-689: Guest user confirmation url is redirected to order status page as it is missing orderRef
    • Fix note: Added orderRef parameter to the link in guest order cancellation confirmation email
  • LYNX-699: Cannot return null for non-nullable field “TaxItem.title” on placeOrder GQL
    • Fix note: Fixed an issue where the placeOrder mutation failed with an internal server error due to a null value for the non-nullable field TaxItem.title. Now, the field always returns a valid value, ensuring successful order placement.
  • LYNX-702: EstimateTotals: Discounts is null for virtual product types
    • Fix note: Resolved the issue with the estimateTotals mutation returning null for discounts when a discount code is applied to a cart containing virtual products.
  • LYNX-703: Bundle product does not return the correct discount percentage and amount
    • Fix note: New properties "catalog_discount" and "row_catalog_discount" have been introduced for catalog item prices to display the correct discount amounts and percentages at both the row and single item levels.
  • LYNX-714: Gift message configuration on product level
    • Fix note: Fixed an issue where gift messages were not applied at the product level when globally disabled. Now, if gift messages are enabled for a specific product, they can be successfully added using the updateCartItems mutation and will be correctly saved and reflected.
  • LYNX-757: cart.rules query return error instead of empty array in case no active cart rules are applied
    • Fix note: Fixed the cart.rules query to return an empty array instead of an error when no active cart rules are applied.
  • LYNX-778: GraphQL calls with OPTIONS method are returning 500 response code when adobe-commerce/storefront-compatibility package installed
    • Fix note: Fixed an issue where GraphQL calls using the OPTIONS method returned a 500 Internal Server Error when the adobe-commerce/storefront-compatibility package was installed. The endpoint now correctly returns a 200/204 response as expected.

Other Developer Tools

Payment/ Payment Methods, Order

  • AC-13699: Papal payflow Credit card details saved for later use are not showing up on stored payment method page

    • Fix note: Earlier Papal payflow Credit card details saved for later use was not showing up on stored payment method page which is now fixed credit card details are showing up on stored payment method page.
    • GitHub code contribution: https://github.com/magento/magento2/commit/96dec499

Payments

  • AC-13414: Credit Card(Payflow Link) payment is not working

  • ACP2E-2841: Payflow creates new transaction each time we click on fetch button on the view transaction screen

    • Fix note: The system now correctly fetches transaction information without creating a new payment transaction each time the fetch button is clicked on the view transaction screen. Previously, clicking the fetch button would incorrectly create a new payment transaction for an order that had already been paid.
    • GitHub code contribution: https://github.com/magento/magento2/commit/b2286ecf
  • ACP2E-3028: Paylater message not showing in PDP for Canadian paypal merchant account

    • Fix note: The system now correctly displays the PayLater message for Canadian PayPal merchant accounts on the Product Detail Page (PDP) when the buyer's country can be determined from the account billing address or shipment. Previously, the PayLater message was not displayed due to a missing parameter, resulting in an error in the browser console.
    • GitHub code contribution: https://github.com/magento/magento2/commit/6a185204
  • ACP2E-3143: PayPal order refund results in duplicate credit memo

  • ACP2E-3163: Cart price rule not working for Paypal

  • ACP2E-3208: [Cloud] Users with a specific role cannot login

Performance

  • AC-11932: Default Product Attribute Settings Issue

  • AC-12000: [Issue] Code cleanup and add new critical head block and move critical css before assets

  • AC-12176: Theme compilation breaks when mysql host contains port information

  • AC-13471: Support for Symfony’s CommandLoaderInterface in Magento CLI

  • ACP2E-2494: Performance issue when loading product attributes in cart rules

  • ACP2E-2673: Price partial indexing performance

  • ACP2E-2850: Order gets rejected on multi-store setup when using Async-order processing + Terms and Conditions

  • ACP2E-2910: Order Rest API call is taking a long time to execute

    • Fix note: The system now executes the Order Rest API call within a reasonable timeframe, improving the performance when fetching a large number of orders. Previously, the Order Rest API call was taking a long time to execute, causing delays when retrieving a large number of orders.
    • GitHub code contribution: https://github.com/magento/magento2/commit/001e5188

Pricing

  • AC-11810: Magento2.4.6-p4 Order API Simple Item missing price

    • Fix note: The system now correctly displays the price of simple products when queried through the Order API, ensuring accurate data representation. Previously, the price of simple products was incorrectly displayed as zero in the API response.
    • GitHub issue: https://github.com/magento/magento2/issues/38603
  • AC-13855: Penny rounding error in catalog rule

Product

  • AC-10535: Special characters in configurable associate product name are being Converted to HTML Entities.

  • AC-10947: ProductRepository function GetById does not create the correct cache key

    • Fix note: The system now correctly creates a cache key in the ProductRepository's function GetById, regardless of whether the store ID is passed as a string or an integer. This ensures that the product is retrieved from memory on subsequent calls, improving performance. Previously, the system would retrieve the product from the database each time the function was called, even with the same parameters, due to incorrect cache key creation.
    • GitHub issue: https://github.com/magento/magento2/issues/38384
    • GitHub code contribution: https://github.com/magento/magento2/pull/38433
  • AC-11992: [Issue] [MFTF] Added AdminClickAddOptionForBundleItemsActionGroup

  • AC-13173: [Issue] Fix typo in PHPDoc block

  • AC-13423: [Issue] Fixed broken Bundle and Downloadable product pages layout in Magento >= 2.4.7

  • AC-5969: AlertProcessor - Argument #2 ($storeId) must be of type int, string given

  • ACP2E-2944: [Cloud] addFilterToMap function is not working for certain columns

Promotion

  • ACP2E-2602: Customer attribute not visible when creating account from invitation

  • ACP2E-2627: Coupon code with Uses per Coupon limit is not getting released for payment failed with order cancel

    • Fix note: The system now immediately updates coupon usages when an order is created or cancelled, and adds rule usages to a queue to prevent potential deadlocks. This ensures that a coupon code with a "Uses per Coupon" limit is released and can be reused if an order is cancelled due to a failed payment. Previously, the system did not release the coupon code for reuse in such cases, resulting in an error message stating that the coupon code was not valid.
    • GitHub code contribution: https://github.com/magento/magento2/commit/c971859e
  • ACP2E-2811: [Cloud] Reindexing Catalog Rule Product Indexer throws SQLSTATE[HY000]: General error: 2006 MySQL server has gone away.

    • Fix note: The system now correctly handles custom "batchCount" value in the di.xml for the "Magento\CatalogRule\Model\Indexer\IndexBuilder", preventing SQL errors such as "General error: 2006 MySQL server has gone away" during the reindexing of the Catalog Rule Product Indexer due to the incorrect batch size on large catalogs
    • GitHub code contribution: https://github.com/magento/magento2/commit/b2286ecf
  • ACP2E-3139: Sales Rule with Discount Qty Step (Buy X) attribute causes other rules to not be applied

  • ACP2E-3332: Issue sales rules with Fixed amount discount and “Maximum Qty Discount is Applied To”

    • Fix note: Fixed issue with cart rules discount, when fixed amount discount is configured to be applied for a limited qty of products is the cart. Previously, the "Maximum Qty Discount is Applied To" value was used to calculate current item's price in the cart, not only for calculation the rule's discount.
    • GitHub code contribution: https://github.com/magento/magento2/commit/581b7ef1
  • ACP2E-3349: Cart rules “Fixed amount discount for whole cart” Action applies discounts incorrectly

    • Fix note: Coupon codes will be validated properly regardless of upper case or lowercase, when used in order creation from the admin area. Before, the coupon code was not validated if it did not match the exact letter case of the configured cart rule code.
    • GitHub code contribution: https://github.com/magento/magento2/commit/581b7ef1
  • ACP2E-3374: In Backend, default store values for product attributes (instead of expected admin values)

  • ACP2E-3377: Cart rules “Fixed amount discount for whole cart” action applies discounts incorrectly when adding bundle products

    • Fix note: Fixed amount cart rules were not being applied properly for bundle products. Now, when calculating the total discount amount, bundle child products are taken into consideration, resulting in proper discount calculation.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1366ae5e
  • ACP2E-3403: Cart Price Rules Miscalculating Discount

  • ACP2E-3406: Nested categories in rule conditions not showing

  • ACP2E-3432: usage_limit and uses_per_customer not updating in salesrule_coupon Table

    • Fix note: Updating Uses per Coupon and Uses per Customer in cart price rule will now affect existing autogenerated coupons. Previously the new values affected only new coupons
    • GitHub code contribution: https://github.com/magento/magento2/commit/88660e79
  • ACP2E-3456: Cart price rule doesn’t consider parent category when it is using “equals or greater than” condition.

  • ACP2E-3463: Invalid discount calculation with priority

    • Fix note: In the case of fixed amount appllied for the whole cart discount type, the amount was not being calculated properly for cart items that were already discounted by a previous promotion. Now, discounts are properly summed up.
    • GitHub code contribution: https://github.com/magento/magento2/commit/078c387e
  • ACP2E-3472: [CLOUD] Shipping calculation is not considering the shopping cart rule

  • ACP2E-3491: Cart rule sku condition is failing for invoice.

  • ACP2E-3498: Incorrect discount value when multiple cart price rules are applied simultaneously with discounted/special priced products

    • Fix note: Prior to the fix, fixed amount for whole cart rules were not being applied properly if more than one was being applied. Now, fixed amount discount cart rules are being applied properly.
    • GitHub code contribution: https://github.com/magento/magento2/commit/1984c61c

SEO

  • AC-11907: Adding URL rewrites with an accent causes infinite loading

  • ACP2E-2641: Multi Store Wrong category url-rewrite for third level category

  • ACP2E-2770: Double-byte characters (special characters) in Product Name field blocks product creation in backend

    • Fix note: A new setting has been added that allows you to apply transliteration to product URL or not. Setting is available here: Stores > Configuration > Catalog > Catalog > Search Engine Optimization: "Apply transliteration for product URL"
    • GitHub code contribution: https://github.com/magento/magento2/commit/b2286ecf
  • ACP2E-3383: Incorrect url_rewrite entries creation with multiple stores in one store group

    • Fix note: Prior to the fix, you could only generate URL rewrites on a website level when editing a product. With the fix, a new setting was introduced (Stores > Configuration > Catalog > Catalog > Search Engine Optimization, "Product URL Rewrite Scope" with options "Store view", "Website") that allows you to generate URL rewrites at the store view or website level.
    • GitHub code contribution: https://github.com/magento/magento2/commit/2d627301
  • AC-13053: Getting “Enter a search term and try again.” error on advanced search page in storefront in 2.4.8-beta1

    • Fix note: The system now correctly displays search results on the Advanced Search page when a product attribute is set to "No". Previously, setting a product attribute to "No" and performing a search would result in an error message, "Enter a search term and try again."
    • GitHub code contribution: https://github.com/magento/magento2/commit/3ea26621
  • AC-13721: magento/module-open-search depends on on nonexistent opensearch-php branch

  • ACP2E-3362: search_query table when of huge size, has large impact on load time frontend

Security

  • AC-11855: [Issue] Missing Font CSP Paylater Popup

    • Fix note: The system now allows the loading of the font 'https://www.paypalobjects.com/webstatic/mktg/2014design/font/PP-Sans/PayPalSansBig-Medium.woff' without violating the Content Security Policy directive, ensuring the correct display of the Paylater Popup. Previously, the font was refused to load due to a violation of the Content Security Policy directive, causing display issues with the Paylater Popup.
    • GitHub issue: https://github.com/magento/magento2/issues/38624
    • GitHub code contribution: https://github.com/magento/magento2/pull/37401
  • AC-12035: [Issue] Update js.js DOM text reinterpreted as HTML

    • Fix note: By using innerText, it will avoid the risk of HTML injection, as these properties automatically escape any HTML special characters in the provided text. This fix, helps prevent cross-site scripting (XSS) vulnerabilities by treating the input as plain text rather than interpreted HTML.
    • GitHub issue: https://github.com/magento/magento2/issues/38767
  • ACP2E-3273: ReCaptcha V2 shows incorrectly on checkout for German language

    • Fix note: Previously the recaptcha from under email address from checkout appear unstyled for languages with long words, like german. After this the recaptcha looks the same as all recaptcha elements from the rest of the areas.
    • GitHub code contribution: https://github.com/magento/magento2/commit/7377de59
  • ACP2E-3300: Captcha on admin login does not require interaction for some users

Shipping

  • AC-10757: [Issue] Fixed typo in tracking.phtml - renamed JS-functions “currier” to “carrier”

    • Fix note: The system now correctly uses the term "carrier" instead of the misspelled "currier" in the JavaScript handler functions used in the order tracking template, ensuring proper function naming and code clarity. Previously, the misspelled term "currier" was used, leading to potential confusion and inconsistency in the codebase.
    • GitHub issue: https://github.com/magento/magento2/issues/34523
    • GitHub code contribution: https://github.com/magento/magento2/pull/33414
  • AC-11938: UPS REST “A shipment cannot have a KGS/IN or LBS/CM or OZS/CM as its unit of measurements”

  • AC-13172: [Issue] Correct spelling of variables for customer address

  • ACP2E-2738: Tracking Window showing wrong Expected Delivery Date

  • ACP2E-2763: Table Rates Still Showing Even Though Free Shipping Is Applied

  • ACP2E-2765: MFTF test AdminCreatingShippingLabelTest failing due to credentials not added in Jenkins environment

  • ACP2E-3340: FedEx Track API not working with REST credentials

  • ACP2E-3354: [Cloud] FedEx Negotiated Rates not returned on REST

    • Fix note: Previous to the fix,FedEx account specific rates where not sent on the response, even through according to FedEx documentation they should have been sent. After the fix, the account specific rates are sent on the response by changing the request from our side.
    • GitHub code contribution: https://github.com/magento/magento2/commit/55615e61

Staging & Preview

  • ACP2E-3453: Unable to Update Scheduled Update When Using Unique Custom Category Attribute

Targeting

  • AC-9432: [Issue] Allow use of CIDR ranges in maintenance allow list

Tax

Test framework

UI Framework

  • AC-12128: Prototype.js security vulnerability fix CVE-2020-27511

    • Fix note: The system has been updated to address the security vulnerability CVE-2020-27511 in Prototype.js 1.7.3, enhancing the overall security of the system. Prior to this update, the system was susceptible to a Regular Expression Denial of Service (ReDOS) through stripping crafted HTML tags.
    • GitHub code contribution: https://github.com/magento/magento2/commit/de4dfb8e
  • AC-12189: Grunt Less uses pub/ prefix for sourcemaps

  • AC-12432: Ui Component File Field

  • AC-12645: [Issue] Improved date format in js console: switch from 12 hour to 24 hour fo…

  • AC-12650: [Issue] add sourceMap generation for less files in developer mode

  • AC-1306: Static content is deploying for disabled modules

  • AC-13459: Inconsistent Behavior in “Out of Stock” Sorting with Minimum Stock Threshold

    • Fix note: The system now correctly sorts products in the catalog based on stock levels, adhering to the set Minimum Stock Threshold and moving out-of-stock items to the bottom of the list consistently. Previously, the sorting behavior was inconsistent, with items not always appearing in the correct order based on their stock levels, and changes in sorting could occur unpredictably after saving, refreshing, or modifying the category hierarchy.
    • GitHub code contribution: https://github.com/magento/magento2/commit/47b448e2
  • AC-13472: Suggestion for improved error reporting for require.js loading problems

  • AC-14004: PHP 8.4 Deprecation Errors Causing Build Failures in 2.4-develop

  • AC-9007: [Issue] Do not load backend block context on frontend

    • Fix note: The system now ensures that backend block context is not loaded on the frontend, preventing the creation of unnecessary backend sessions and potential session locks. Previously, the system was incorrectly loading the backend block context on the frontend, leading to the creation of backend sessions and potential session locks.
    • GitHub issue: https://github.com/magento/magento2/issues/37617
    • GitHub code contribution: https://github.com/magento/magento2/pull/36368
  • AC-9168: [Issue] Remove unnecessary scripts review summary

  • ACP2E-2529: Exception when checking a gift card balance when Recaptcha is enabled

  • ACP2E-2729: [CLARIFICATION] Feature Request ADA Compliance

    • Fix note: The system now ensures ADA compliance by removing unsupported CSS properties and replacing them with supported ones in the print.css file. Previously, the use of unsupported CSS properties led to browser compatibility issues.
    • GitHub code contribution: https://github.com/magento/magento2/commit/57a32313
  • ACP2E-3061: [Cloud] Confusion library code in effect-drop.js of AC 2.4.4-p8

    • Fix note: The system now correctly implements the effect-drop.js library, ensuring the proper functioning of jQuery UI effects. Previously, the effect-drop.js library was mistakenly overwritten with the effect-clip.js library, causing potential issues with jQuery UI effects.
    • GitHub code contribution: https://github.com/magento/magento2/commit/35b1b1da
  • ACP2E-3367: Site Header | Special Characters Breaking the Customer Welcome section

  • ACP2E-3561: Customer Segment edition fails with daterange

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f