diff --git a/changelog.txt b/changelog.txt
index a6f0eca56b00..e475913fd054 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,199 @@
== Changelog ==
+= 8.7.0 2024-03-01 =
+
+**WooCommerce**
+
+* Fix - Product Editor pages do not pass global settings into Editor. Product Editor is responsible for loading settings itself. [#45490](https://github.com/woocommerce/woocommerce/pull/45490)
+* Fix - Fix issue where no text would be displayed if no shipping methods are available in the cart/checkout [#45249](https://github.com/woocommerce/woocommerce/pull/45249)
+* Fix - Products Stock Indicator and Sale Badge: prevent fatal when block were used in a homepage [#45135](https://github.com/woocommerce/woocommerce/pull/45135)
+* Fix - Fix LegacyProxy::get_instance_of throwing an error when trying to get an instance of a non-Woo namespaced class. [#45178](https://github.com/woocommerce/woocommerce/pull/45178)
+* Fix - "Hero product chessboard" pattern: remove placeholder and update margins. [#44553](https://github.com/woocommerce/woocommerce/pull/44553)
+* Fix - Add checks and filters to the product_page shortcode. [#44666](https://github.com/woocommerce/woocommerce/pull/44666)
+* Fix - Adds a nonce check to the HPOS order sync tool. [#44667](https://github.com/woocommerce/woocommerce/pull/44667)
+* Fix - Avoid duplicate templates appearing on the Site Editor when the WooCommerce template and the theme template have been customized by the user [#44000](https://github.com/woocommerce/woocommerce/pull/44000)
+* Fix - Core - CYS: fix fonts not loaded on the font picker iframes [#44586](https://github.com/woocommerce/woocommerce/pull/44586)
+* Fix - Core - CYS: fix Inter font not applied. [#44544](https://github.com/woocommerce/woocommerce/pull/44544)
+* Fix - Corrects references for WC_API_Server. It was all uppercase. [#37054](https://github.com/woocommerce/woocommerce/pull/37054)
+* Fix - CYS - Core: Ensure that the Bodoni font is loaded [#44464](https://github.com/woocommerce/woocommerce/pull/44464)
+* Fix - CYS - Core: ensure that the the default font pair and color pair are selected. [#44309](https://github.com/woocommerce/woocommerce/pull/44309)
+* Fix - CYS - Core: fix fonts not loaded after the setup [#44550](https://github.com/woocommerce/woocommerce/pull/44550)
+* Fix - CYS - Core: install fonts only when the tracking is enabled [#44558](https://github.com/woocommerce/woocommerce/pull/44558)
+* Fix - CYS - Ensure the size of fonts is not affected by a font family change. [#44424](https://github.com/woocommerce/woocommerce/pull/44424)
+* Fix - CYS - Fix button typhography for the "Montserrat + Arvo" and "Commissioner + Crimson Pro" font pairings. [#44458](https://github.com/woocommerce/woocommerce/pull/44458)
+* Fix - CYS - Update pattern image to have a better resolution [#44611](https://github.com/woocommerce/woocommerce/pull/44611)
+* Fix - Ensure a consistent border style is applied to combobox suggestions and the main input. [#44183](https://github.com/woocommerce/woocommerce/pull/44183)
+* Fix - Ensure all customers have a session when visiting the order pay page. [#43858](https://github.com/woocommerce/woocommerce/pull/43858)
+* Fix - Ensure proper handling of product-related taxonomies in the Product Collection block [#44230](https://github.com/woocommerce/woocommerce/pull/44230)
+* Fix - Ensure that no undefined index warnings are thrown while parsing the backtrace to determine a log's source [#44486](https://github.com/woocommerce/woocommerce/pull/44486)
+* Fix - Ensure WC admin functions are defined before attempting to add notices. [#44114](https://github.com/woocommerce/woocommerce/pull/44114)
+* Fix - Fix - Add back the parent machine to the `designWithNoAiStateMachineDefinition` child machine option. [#44397](https://github.com/woocommerce/woocommerce/pull/44397)
+* Fix - Fix a possible fatal exception setting a duplicate asset registry key `needsRefreshForInteractivityAPI` [#44808](https://github.com/woocommerce/woocommerce/pull/44808)
+* Fix - Fix default shipping method selection after rate changes. [#44117](https://github.com/woocommerce/woocommerce/pull/44117)
+* Fix - Fix deprecation notices for legacy order item keys. [#44362](https://github.com/woocommerce/woocommerce/pull/44362)
+* Fix - Fixed a bug affecting registration during checkout that would prevent a new user from logging in. [#43777](https://github.com/woocommerce/woocommerce/pull/43777)
+* Fix - Fixed a bug where express payment methods could not be removed from the wc/store/payment data store. [#44633](https://github.com/woocommerce/woocommerce/pull/44633)
+* Fix - Fixed coupon errors with coupon codes containing apostrophes. [#40998](https://github.com/woocommerce/woocommerce/pull/40998)
+* Fix - fix fatal string to array conversion error in get_full_size_image_dimensions [#40395](https://github.com/woocommerce/woocommerce/pull/40395)
+* Fix - Fix for the dependency injection container resolution by tag [#44496](https://github.com/woocommerce/woocommerce/pull/44496)
+* Fix - Fix orders being attributed to Web Admin incorrectly in certain cases. [#44219](https://github.com/woocommerce/woocommerce/pull/44219)
+* Fix - Fix overlay sizing issue with the Product Gallery Pop-Up. [#44479](https://github.com/woocommerce/woocommerce/pull/44479)
+* Fix - Fix pre-publish modal styles #44562 [#44562](https://github.com/woocommerce/woocommerce/pull/44562)
+* Fix - Fix refund props not updating properly with HPOS [#44214](https://github.com/woocommerce/woocommerce/pull/44214)
+* Fix - Fix regression (and inconsistency) in the way the session handler references its database table. [#44517](https://github.com/woocommerce/woocommerce/pull/44517)
+* Fix - Fix SVG markup in miniCartIcon [#44042](https://github.com/woocommerce/woocommerce/pull/44042)
+* Fix - Fix the missing AI status when reloading the CYS transitional page. [#44121](https://github.com/woocommerce/woocommerce/pull/44121)
+* Fix - Fix the REST API controllers registration [#44833](https://github.com/woocommerce/woocommerce/pull/44833)
+* Fix - Fix the Site Editor showing the template slug instead of the template title when saving a WooCommerce block template customized by the theme. [#44254](https://github.com/woocommerce/woocommerce/pull/44254)
+* Fix - Fix untranslated "Are you already selling somewhere else?" text in the product task [#44763](https://github.com/woocommerce/woocommerce/pull/44763)
+* Fix - Focus return to the trigger element when closing the Product Gallery Pop-Up [#44414](https://github.com/woocommerce/woocommerce/pull/44414)
+* Fix - HPOS: fix handling order meta containing nonexistent class when sync is on. [#43517](https://github.com/woocommerce/woocommerce/pull/43517)
+* Fix - Prevent script caching by using the WC core version to hash Interactivity API assets instead of old WC Blocks version [#44806](https://github.com/woocommerce/woocommerce/pull/44806)
+* Fix - Prevent `wc_get_chosen_shipping_method_ids` from causing fatal errors if chosen methods are not strings. [#43869](https://github.com/woocommerce/woocommerce/pull/43869)
+* Fix - Product Collection: fix incorrect product data being displayed when Product Collection is placed in Single Product block [#44123](https://github.com/woocommerce/woocommerce/pull/44123)
+* Fix - Product Collection: fix minor UI glitches in editor [#44403](https://github.com/woocommerce/woocommerce/pull/44403)
+* Fix - Product Editor loading state now shows until form is displayed. No more blank flash of white. [#43840](https://github.com/woocommerce/woocommerce/pull/43840)
+* Fix - Product Image block: show the setting to control the imageSizing attribute and add the attribute to the Product Catalog and Product Search Results templates. [#44691](https://github.com/woocommerce/woocommerce/pull/44691)
+* Fix - Remove double reporting from daily runs [#44592](https://github.com/woocommerce/woocommerce/pull/44592)
+* Fix - Remove override of /jetpack/v4/connection/data that was added as a workaround to fix issues with the mobile apps. [#44390](https://github.com/woocommerce/woocommerce/pull/44390)
+* Fix - Remove property type hints in TransientFilesEngine and ReceiptRenderingEngine [#44829](https://github.com/woocommerce/woocommerce/pull/44829)
+* Fix - Removes the ability to test if arbitrary files exist on a server through the product editor's downloadable files UI. [#44665](https://github.com/woocommerce/woocommerce/pull/44665)
+* Fix - Restrict the Number of Thumbnails setting from the Product Gallery block to integer values [#44282](https://github.com/woocommerce/woocommerce/pull/44282)
+* Fix - Translations for the new Product Editor are now loaded. [#44520](https://github.com/woocommerce/woocommerce/pull/44520)
+* Fix - Updates REST API V1 (though it generally should no longer be used) to prevent the emission of various deprecation notices. [#44741](https://github.com/woocommerce/woocommerce/pull/44741)
+* Fix - Update `get_shipping_countries` to return an empty list of countries when shipping is disabled. [#44034](https://github.com/woocommerce/woocommerce/pull/44034)
+* Fix - [CYS - Core]: Before installing the fonts, ensure that the font library is available [#44358](https://github.com/woocommerce/woocommerce/pull/44358)
+* Fix - [CYS- Core] Improve the default palette. [#44722](https://github.com/woocommerce/woocommerce/pull/44722)
+* Fix - [Experimental] Fix a bug where the editor for attribute selector would flicker and re-render constantly. [#44147](https://github.com/woocommerce/woocommerce/pull/44147)
+* Fix - [Experimental] Fix the style of chip for new active filter block. [#44682](https://github.com/woocommerce/woocommerce/pull/44682)
+* Add - Add a filter to allow preventing an expired log file from being deleted [#44380](https://github.com/woocommerce/woocommerce/pull/44380)
+* Add - Add a new remote variant for random distribution of cohort assignment. [#44786](https://github.com/woocommerce/woocommerce/pull/44786)
+* Add - Add details about the logging configuration to the System Status Report [#44106](https://github.com/woocommerce/woocommerce/pull/44106)
+* Add - Added the selected collection name in the product collection block context [#43247](https://github.com/woocommerce/woocommerce/pull/43247)
+* Add - Add focus trapping within the Product Gallery Pop-Up to enhance keyboard navigation and accessibility. [#44439](https://github.com/woocommerce/woocommerce/pull/44439)
+* Add - Add functionality to navigate between Product Gallery image thumbnails with the keyboard. [#44236](https://github.com/woocommerce/woocommerce/pull/44236)
+* Add - Add legacy data cleanup process for HPOS. [#43293](https://github.com/woocommerce/woocommerce/pull/43293)
+* Add - Add new "can receive cancelled order email" test [#43985](https://github.com/woocommerce/woocommerce/pull/43985)
+* Add - Adds logic to display notices of promotions from Woo.com on in-app marketplace pages [#44840](https://github.com/woocommerce/woocommerce/pull/44840)
+* Add - Add structured metadata to grouped products. [#42808](https://github.com/woocommerce/woocommerce/pull/42808)
+* Add - Adds `wp wc hpos backfill` tool to backfill from/to either order datastore. [#44281](https://github.com/woocommerce/woocommerce/pull/44281)
+* Add - Add test to check product reviews. [#44077](https://github.com/woocommerce/woocommerce/pull/44077)
+* Add - Add the "Mobile app" order attribution source. [#44519](https://github.com/woocommerce/woocommerce/pull/44519)
+* Add - Add the receipts rendering engine [#43502](https://github.com/woocommerce/woocommerce/pull/43502)
+* Add - Add `source` event props for `marketing_recommended_extension` track events to differentiate recommendations from woo.com API or default fallback data. [#44714](https://github.com/woocommerce/woocommerce/pull/44714)
+* Add - Always show the variation options and variations section [#44001](https://github.com/woocommerce/woocommerce/pull/44001)
+* Add - Announce Pop-Up Opening with Voiceovers [#44332](https://github.com/woocommerce/woocommerce/pull/44332)
+* Add - CYS - Core - Check the Font Library availability. [#44206](https://github.com/woocommerce/woocommerce/pull/44206)
+* Add - CYS - Core: Add async job to install fonts. [#44473](https://github.com/woocommerce/woocommerce/pull/44473)
+* Add - CYS - Core: add integration with the font library. [#44004](https://github.com/woocommerce/woocommerce/pull/44004)
+* Add - Fix styles for our InterfaceSkeleton actions #44331 [#44331](https://github.com/woocommerce/woocommerce/pull/44331)
+* Add - Hide Downloads section under Toggle for product variations [#44152](https://github.com/woocommerce/woocommerce/pull/44152)
+* Add - Improve Accessibility in Product Collection Navigation [#44599](https://github.com/woocommerce/woocommerce/pull/44599)
+* Add - Introduce WooCommerce Admin Notice component [#44620](https://github.com/woocommerce/woocommerce/pull/44620)
+* Add - Product Collection: Add loading indicator for client-side pagination [#44571](https://github.com/woocommerce/woocommerce/pull/44571)
+* Add - Product Collection: recognise the location of block in Editor and pass it with the request [#43997](https://github.com/woocommerce/woocommerce/pull/43997)
+* Add - Product Collection: Return to top after the page change [#43817](https://github.com/woocommerce/woocommerce/pull/43817)
+* Add - Product Editor: Subsection block #43725 [#43725](https://github.com/woocommerce/woocommerce/pull/43725)
+* Add - Use the new text area block in the summary field [#44104](https://github.com/woocommerce/woocommerce/pull/44104)
+* Add - [Product Block Editor]: use text-area block to handle the variation description field [#44151](https://github.com/woocommerce/woocommerce/pull/44151)
+* Update - Add Moroccan regions to states.php [#41769](https://github.com/woocommerce/woocommerce/pull/41769)
+* Update - Change promotions transient name to correspond with WC_Admin_Marketplace_Promotions::TRANSIENT_NAME. [#44857](https://github.com/woocommerce/woocommerce/pull/44857)
+* Update - Comment: This is behind a feature flag [#44615](https://github.com/woocommerce/woocommerce/pull/44615)
+* Update - Create a dedicated survey and tracking events for the CYS flow on core. [#43862](https://github.com/woocommerce/woocommerce/pull/43862)
+* Update - CYS - Move checking if the current active theme has modifications to the assembler-hub step instead of the intro step [#44647](https://github.com/woocommerce/woocommerce/pull/44647)
+* Update - CYS - Reduce the width of the "Design your own" text box on the Intro screen [#44546](https://github.com/woocommerce/woocommerce/pull/44546)
+* Update - CYS - Update "Start customizing your store" task description on Core [#44584](https://github.com/woocommerce/woocommerce/pull/44584)
+* Update - CYS - Update homepage templates intro patterns [#44616](https://github.com/woocommerce/woocommerce/pull/44616)
+* Update - CYS - Update sidebar links copy on the assembled page. [#44762](https://github.com/woocommerce/woocommerce/pull/44762)
+* Update - CYS - Update the "Change your homepage" description on Core [#44579](https://github.com/woocommerce/woocommerce/pull/44579)
+* Update - CYS - Update the subheading copy of the transitional page [#44603](https://github.com/woocommerce/woocommerce/pull/44603)
+* Update - CYS: Proceed with product creation when their images fail to upload. [#44031](https://github.com/woocommerce/woocommerce/pull/44031)
+* Update - Fix condition in Promotions component so marketplace promotions are properly filtered by page. [#44884](https://github.com/woocommerce/woocommerce/pull/44884)
+* Update - Fix type handling and default value for remote API transformers [#44418](https://github.com/woocommerce/woocommerce/pull/44418)
+* Update - Improved the combobox component validation error message [#44229](https://github.com/woocommerce/woocommerce/pull/44229)
+* Update - Improve remote specifications transient handling and error management [#44384](https://github.com/woocommerce/woocommerce/pull/44384)
+* Update - Introduced `woocommerce_my_account_after_my_address`, `woocommerce_order_details_after_customer_address`, and `woocommerce_edit_account_form_fields` hooks. [#43823](https://github.com/woocommerce/woocommerce/pull/43823)
+* Update - Move rendering of Order Attribution inputs to `woocommerce_checkout_after_customer_details`. Expose a method for custom theming. [#44333](https://github.com/woocommerce/woocommerce/pull/44333)
+* Update - Product Collection: improve flaky E2E test when block was nested in Single Product block [#44404](https://github.com/woocommerce/woocommerce/pull/44404)
+* Update - Remove WooCommerce Blocks entry from the WooCommerce status page [#44412](https://github.com/woocommerce/woocommerce/pull/44412)
+* Update - Simplify the applied coupon data that gets stored as line item meta [#44113](https://github.com/woocommerce/woocommerce/pull/44113)
+* Update - This is behind a feature flag. [#44463](https://github.com/woocommerce/woocommerce/pull/44463)
+* Update - This is behind a feature flag. [#44615](https://github.com/woocommerce/woocommerce/pull/44615)
+* Update - Update "Large Footer" and "Large Footer Dark" Twitter icons to X and update the social URLs. [#44807](https://github.com/woocommerce/woocommerce/pull/44807)
+* Update - Update Action Scheduler to 3.7.2 [#44628](https://github.com/woocommerce/woocommerce/pull/44628)
+* Update - Updated example plugin code in activity-panel-inbox.md to include namespacing. [#44504](https://github.com/woocommerce/woocommerce/pull/44504)
+* Update - Update experiment name for enabling new product editor. [#44731](https://github.com/woocommerce/woocommerce/pull/44731)
+* Update - Update Shipping Method creation call to action button with more clear label [#44788](https://github.com/woocommerce/woocommerce/pull/44788)
+* Update - Updates the bundled JS Cookie library to v3.0.5. [#43686](https://github.com/woocommerce/woocommerce/pull/43686)
+* Update - Update the CYS intro modal copy on Core. [#44081](https://github.com/woocommerce/woocommerce/pull/44081)
+* Update - Update the Product gallery pattern title [#44604](https://github.com/woocommerce/woocommerce/pull/44604)
+* Update - [CYS - Core] Handling errors during the setup for the `NoAI` flow [#43810](https://github.com/woocommerce/woocommerce/pull/43810)
+* Update - [Experimental] Add a flag that will force page refresh when combining interactivity filters with classic template or products (beta) blocks. [#44631](https://github.com/woocommerce/woocommerce/pull/44631)
+* Dev - Add base RemoteSpecsEngine class, add logging for errors in all remote specs [#44775](https://github.com/woocommerce/woocommerce/pull/44775)
+* Dev - Add checks and unit tests to rule processors [#44448](https://github.com/woocommerce/woocommerce/pull/44448)
+* Dev - Add checks and unit tests to Transformers [#44634](https://github.com/woocommerce/woocommerce/pull/44634)
+* Dev - Add e2e tests to edit and delete product reviews. [#44411](https://github.com/woocommerce/woocommerce/pull/44411)
+* Dev - Added e2e test to monitor number of JS includes in certain pages [#44046](https://github.com/woocommerce/woocommerce/pull/44046)
+* Dev - Add error handling and tests for ShippingPartnerSuggestions [#44641](https://github.com/woocommerce/woocommerce/pull/44641)
+* Dev - Add extra checks (description, sale-price, SKU, purchase note, attribute color) to the existing add-virtual-product test [#43783](https://github.com/woocommerce/woocommerce/pull/43783)
+* Dev - Add php unit watcher and update unit test docs [#44681](https://github.com/woocommerce/woocommerce/pull/44681)
+* Dev - Adds e2e tests for the creation of all coupon types (merchant) [#44671](https://github.com/woocommerce/woocommerce/pull/44671)
+* Dev - Adds e2e tests for user account email flows [#44622](https://github.com/woocommerce/woocommerce/pull/44622)
+* Dev - Adds logic to get notices of promotions from Woo.com endpoint, and (if necessary) show a bubble next to the WooCommerce "Extensions" menu item. [#44655](https://github.com/woocommerce/woocommerce/pull/44655)
+* Dev - Add some missing core contributors to the contributors list. [#44740](https://github.com/woocommerce/woocommerce/pull/44740)
+* Dev - Adds tests for the creation of restricted coupons [#44716](https://github.com/woocommerce/woocommerce/pull/44716)
+* Dev - Add `queryContextIncludes` attribute to Product Collection block [#44150](https://github.com/woocommerce/woocommerce/pull/44150)
+* Dev - Apply Rector suggestions for PHP 8.1 [#43230](https://github.com/woocommerce/woocommerce/pull/43230)
+* Dev - Apply Rector suggestions for PHP 8.1 [#43233](https://github.com/woocommerce/woocommerce/pull/43233)
+* Dev - Apply type checks and enhancements for PHP 8.1 [#41253](https://github.com/woocommerce/woocommerce/pull/41253)
+* Dev - Apply type checks and enhancements for PHP 8.1 [#41482](https://github.com/woocommerce/woocommerce/pull/41482)
+* Dev - E2E tests: add explicit timeout for action and navigation [#44891](https://github.com/woocommerce/woocommerce/pull/44891)
+* Dev - E2E tests: add test for creating a downloadable product [#44112](https://github.com/woocommerce/woocommerce/pull/44112)
+* Dev - E2E tests: add tests for managing product images in block editor [#44470](https://github.com/woocommerce/woocommerce/pull/44470)
+* Dev - E2E tests: add tests for product edit using blocks editor [#44272](https://github.com/woocommerce/woocommerce/pull/44272)
+* Dev - E2E tests: add tests for product inventory in product block editor [#44699](https://github.com/woocommerce/woocommerce/pull/44699)
+* Dev - E2E tests: add tests for products bulk edit [#44039](https://github.com/woocommerce/woocommerce/pull/44039)
+* Dev - E2E tests: add tests for up-sells and cross-sells [#44154](https://github.com/woocommerce/woocommerce/pull/44154)
+* Dev - E2E tests: fix a flaky product inventory test [#44897](https://github.com/woocommerce/woocommerce/pull/44897)
+* Dev - E2E tests: update product review tests to work with more reviews [#44644](https://github.com/woocommerce/woocommerce/pull/44644)
+* Dev - Fix a couple of flaky e2e tests [#44208](https://github.com/woocommerce/woocommerce/pull/44208)
+* Dev - Fixed the postinstall command failing on macos [#44853](https://github.com/woocommerce/woocommerce/pull/44853)
+* Dev - Improve return value type checks prior to usage [#43227](https://github.com/woocommerce/woocommerce/pull/43227)
+* Dev - Improve the existing E2E test shopper simple product to test description and images [#44365](https://github.com/woocommerce/woocommerce/pull/44365)
+* Dev - Misc e2e test fixes [#44325](https://github.com/woocommerce/woocommerce/pull/44325)
+* Dev - Move the test out of isolation (tax folder) and update it to reflect cart flow [#44115](https://github.com/woocommerce/woocommerce/pull/44115)
+* Dev - Product Collection: minor E2E test optimisation [#44407](https://github.com/woocommerce/woocommerce/pull/44407)
+* Dev - Product Filters: update E2E tests after adding Beta label [#44564](https://github.com/woocommerce/woocommerce/pull/44564)
+* Dev - Revert a workaround updating the mariadb image tag in wp-env [#44881](https://github.com/woocommerce/woocommerce/pull/44881)
+* Dev - Shard Blocks Playwright test execution [#44440](https://github.com/woocommerce/woocommerce/pull/44440)
+* Dev - Stabilize a flaky E2E Add to Cart Form test [#44639](https://github.com/woocommerce/woocommerce/pull/44639)
+* Dev - Stabilize a flaky Price Filter test by addressing the unstable nature of the filter input. [#44690](https://github.com/woocommerce/woocommerce/pull/44690)
+* Dev - Stabilize the 'Products can be filtered based on "on sale" status' E2E test. [#44796](https://github.com/woocommerce/woocommerce/pull/44796)
+* Dev - This aims to add more checks to confirm that a completed order email is received, as well as its content. [#44186](https://github.com/woocommerce/woocommerce/pull/44186)
+* Dev - Update onboarding task documentation and fix example command [#44026](https://github.com/woocommerce/woocommerce/pull/44026)
+* Dev - Updates the test of a virtual product creation functionality with further characteristics [#43783](https://github.com/woocommerce/woocommerce/pull/43783)
+* Dev - Update the daily test workflow to run e2e tests with sharding [#44330](https://github.com/woocommerce/woocommerce/pull/44330)
+* Dev - Update WooCommerce Blocks Playwright End to End Tests readme [#44468](https://github.com/woocommerce/woocommerce/pull/44468)
+* Dev - Workaround for fixing broken wp-env test environment. Force mariadb image tag. [#44841](https://github.com/woocommerce/woocommerce/pull/44841)
+* Dev - Wrangle MarketingRecommendations as RemoteSpecsEngine [#44828](https://github.com/woocommerce/woocommerce/pull/44828)
+* Dev - [Experimental] Add beta suffix to new filter blocks in prep for release. [#44487](https://github.com/woocommerce/woocommerce/pull/44487)
+* Dev - [Experimental] Fix a bug in new attribute filter where we didn't set the attribute from content panel [#44757](https://github.com/woocommerce/woocommerce/pull/44757)
+* Dev - [Experimental] Unify class naming in new interactivity stock filter block. [#44073](https://github.com/woocommerce/woocommerce/pull/44073)
+* Dev - [Experimental] Utilize WP generated class names to style rating filter block. [#44072](https://github.com/woocommerce/woocommerce/pull/44072)
+* Dev - [Experimental] Utilize WP generated class names when styling new active filters block. [#44069](https://github.com/woocommerce/woocommerce/pull/44069)
+* Dev - [Product editor block]: Rename the Add button to Publish #44461 [#44461](https://github.com/woocommerce/woocommerce/pull/44461)
+* Tweak - Adjust spacing in/between elements on the Cart and Checkout block pages. [#44160](https://github.com/woocommerce/woocommerce/pull/44160)
+* Tweak - Improve tasklist performance and add tasklist id track props [#44442](https://github.com/woocommerce/woocommerce/pull/44442)
+* Tweak - Product Collection: fix flaky E2E test [#44687](https://github.com/woocommerce/woocommerce/pull/44687)
+* Tweak - Setup E2E block theme without opening browser and remove obsolete CLI call. [#44702](https://github.com/woocommerce/woocommerce/pull/44702)
+* Tweak - [Experimental] Filter block: replace custom upgrade panel by Transforms API [#44024](https://github.com/woocommerce/woocommerce/pull/44024)
+* Performance - Avoid duplicating requests to the `/onboarding/themes/recommended` and `/onboarding/tasks` endpoints during the CYS flow. [#44179](https://github.com/woocommerce/woocommerce/pull/44179)
+* Enhancement - CYS - Add title to the "Product Gallery" pattern. [#44556](https://github.com/woocommerce/woocommerce/pull/44556)
+* Enhancement - CYS - Core: catch error when font installation fails. [#44559](https://github.com/woocommerce/woocommerce/pull/44559)
+* Enhancement - Prevent prefilling of the billing address with the shipping address in the Checkout block for the Guest Shopper. [#44347](https://github.com/woocommerce/woocommerce/pull/44347)
+* Enhancement - Product Collection: enable "Sync with query" option by default only for the first Product Catalog instance, disable for 2nd and next ones [#44577](https://github.com/woocommerce/woocommerce/pull/44577)
+
+
= 8.6.1 2024-02-20 =
**WooCommerce**
diff --git a/packages/js/product-editor/changelog/feature-add-loading-state-to-schedule-button b/packages/js/product-editor/changelog/feature-add-loading-state-to-schedule-button
new file mode 100644
index 000000000000..9641c721bf33
--- /dev/null
+++ b/packages/js/product-editor/changelog/feature-add-loading-state-to-schedule-button
@@ -0,0 +1,4 @@
+Significance: minor
+Type: add
+
+Product Editor: Add loading state functionality to Schedule Product modal
diff --git a/packages/js/product-editor/changelog/fix-45589_publish_dropdown_not_visible b/packages/js/product-editor/changelog/fix-45589_publish_dropdown_not_visible
new file mode 100644
index 000000000000..0a60faeeb8ce
--- /dev/null
+++ b/packages/js/product-editor/changelog/fix-45589_publish_dropdown_not_visible
@@ -0,0 +1,4 @@
+Significance: minor
+Type: fix
+
+Fix publish dropdown visibility in new product after hiding pre-publish modal #45682
diff --git a/packages/js/product-editor/changelog/fix-45590_prepublish_panel_section_title b/packages/js/product-editor/changelog/fix-45590_prepublish_panel_section_title
new file mode 100644
index 000000000000..09ae59af686a
--- /dev/null
+++ b/packages/js/product-editor/changelog/fix-45590_prepublish_panel_section_title
@@ -0,0 +1,4 @@
+Significance: minor
+Type: fix
+
+Fix section title styles in the pre-publish panel on WP 6.5 #45689
diff --git a/packages/js/product-editor/changelog/fix-45665 b/packages/js/product-editor/changelog/fix-45665
new file mode 100644
index 000000000000..a32d020da444
--- /dev/null
+++ b/packages/js/product-editor/changelog/fix-45665
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Header tag Hidden now is aligned with the Visibility: Hidden from the pre publish modal
diff --git a/packages/js/product-editor/changelog/fix-45667 b/packages/js/product-editor/changelog/fix-45667
new file mode 100644
index 000000000000..477c682dd0b4
--- /dev/null
+++ b/packages/js/product-editor/changelog/fix-45667
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Replace the Draft tag with a Scheduled tag in the product header
diff --git a/packages/js/product-editor/changelog/fix-45669_doulbe_scroll_bar_prepublish_panel b/packages/js/product-editor/changelog/fix-45669_doulbe_scroll_bar_prepublish_panel
new file mode 100644
index 000000000000..4eaeb6bc74bf
--- /dev/null
+++ b/packages/js/product-editor/changelog/fix-45669_doulbe_scroll_bar_prepublish_panel
@@ -0,0 +1,4 @@
+Significance: minor
+Type: fix
+
+Fix double scroll bar in pre-publish panel #45671
diff --git a/packages/js/product-editor/changelog/product-editor-prompt-exports b/packages/js/product-editor/changelog/product-editor-prompt-exports
new file mode 100644
index 000000000000..9fb937de19b4
--- /dev/null
+++ b/packages/js/product-editor/changelog/product-editor-prompt-exports
@@ -0,0 +1,4 @@
+Significance: minor
+Type: dev
+
+Exports handlePrompt from @woocommerce/product-editor for use by extensions expanding the variation quick update menu. Also introduces handleConfirm and exposes it also
diff --git a/packages/js/product-editor/src/components/header/header.tsx b/packages/js/product-editor/src/components/header/header.tsx
index decae5160b4e..06b7a52e1d65 100644
--- a/packages/js/product-editor/src/components/header/header.tsx
+++ b/packages/js/product-editor/src/components/header/header.tsx
@@ -125,7 +125,7 @@ export function Header( {
function getVisibilityTags() {
const tags = [];
- if ( productStatus === 'draft' || productStatus === 'future' ) {
+ if ( productStatus === 'draft' ) {
tags.push(
);
}
+ if ( productStatus === 'future' ) {
+ tags.push(
+
+ );
+ }
if (
- ( productStatus !== 'future' && catalogVisibility === 'hidden' ) ||
+ ( productStatus !== 'future' && catalogVisibility !== 'visible' ) ||
( isVariation && productStatus === 'private' )
) {
tags.push(
@@ -249,7 +257,8 @@ export function Header( {
diff --git a/packages/js/product-editor/src/components/header/hooks/use-publish/use-publish.tsx b/packages/js/product-editor/src/components/header/hooks/use-publish/use-publish.tsx
index f4805ee9e47f..09d3db63e59f 100644
--- a/packages/js/product-editor/src/components/header/hooks/use-publish/use-publish.tsx
+++ b/packages/js/product-editor/src/components/header/hooks/use-publish/use-publish.tsx
@@ -4,6 +4,7 @@
import { MouseEvent } from 'react';
import { Button } from '@wordpress/components';
import { useEntityProp } from '@wordpress/core-data';
+import { isInTheFuture } from '@wordpress/date';
import { __ } from '@wordpress/i18n';
import type { Product } from '@woocommerce/data';
@@ -28,12 +29,18 @@ export function usePublish< T = Product >( {
const { isValidating, isDirty, isPublishing, publish } =
useProductManager( productType );
- const [ status, , prevStatus ] = useEntityProp< Product[ 'status' ] >(
+ const [ , , prevStatus ] = useEntityProp< Product[ 'status' ] >(
'postType',
productType,
'status'
);
+ const [ editedDate ] = useEntityProp< string >(
+ 'postType',
+ productType,
+ 'date_created_gmt'
+ );
+
const isBusy = isPublishing || isValidating;
const isDisabled = disabled || isBusy || ! isDirty;
@@ -53,7 +60,7 @@ export function usePublish< T = Product >( {
function getButtonText() {
if (
window.wcAdminFeatures[ 'product-pre-publish-modal' ] &&
- status === 'future'
+ isInTheFuture( editedDate )
) {
return __( 'Schedule', 'woocommerce' );
}
diff --git a/packages/js/product-editor/src/components/header/publish-button/publish-button-menu/publish-button-menu.tsx b/packages/js/product-editor/src/components/header/publish-button/publish-button-menu/publish-button-menu.tsx
index 4a08bb1ab255..12c5fba4bc91 100644
--- a/packages/js/product-editor/src/components/header/publish-button/publish-button-menu/publish-button-menu.tsx
+++ b/packages/js/product-editor/src/components/header/publish-button/publish-button-menu/publish-button-menu.tsx
@@ -26,7 +26,7 @@ export function PublishButtonMenu( {
postType,
...props
}: PublishButtonMenuProps ) {
- const { isScheduled, schedule, date, formattedDate } =
+ const { isScheduling, isScheduled, schedule, date, formattedDate } =
useProductScheduled( postType );
const [ showScheduleModal, setShowScheduleModal ] = useState<
'schedule' | 'edit' | undefined
@@ -62,6 +62,7 @@ export function PublishButtonMenu( {
setShowScheduleModal( undefined ) }
onSchedule={ scheduleProduct }
/>
diff --git a/packages/js/product-editor/src/components/header/publish-button/publish-button.tsx b/packages/js/product-editor/src/components/header/publish-button/publish-button.tsx
index 106f43e85264..3ed47f61da2f 100644
--- a/packages/js/product-editor/src/components/header/publish-button/publish-button.tsx
+++ b/packages/js/product-editor/src/components/header/publish-button/publish-button.tsx
@@ -25,7 +25,8 @@ import type { PublishButtonProps } from './types';
export function PublishButton( {
productType = 'product',
- prePublish,
+ isMenuButton,
+ isPrePublishPanelVisible = true,
...props
}: PublishButtonProps ) {
const { createErrorNotice } = useDispatch( 'core/notices' );
@@ -68,7 +69,7 @@ export function PublishButton( {
if (
productType === 'product' &&
window.wcAdminFeatures[ 'product-pre-publish-modal' ] &&
- prePublish
+ isMenuButton
) {
function renderPublishButtonMenu(
menuProps: Dropdown.RenderProps
@@ -78,7 +79,11 @@ export function PublishButton( {
);
}
- if ( editedStatus !== 'publish' && editedStatus !== 'future' ) {
+ if (
+ editedStatus !== 'publish' &&
+ editedStatus !== 'future' &&
+ isPrePublishPanelVisible
+ ) {
function handlePrePublishButtonClick(
event: MouseEvent< HTMLButtonElement >
) {
diff --git a/packages/js/product-editor/src/components/header/publish-button/types.ts b/packages/js/product-editor/src/components/header/publish-button/types.ts
index 4c38361c8f30..d007eee6bd31 100644
--- a/packages/js/product-editor/src/components/header/publish-button/types.ts
+++ b/packages/js/product-editor/src/components/header/publish-button/types.ts
@@ -8,5 +8,6 @@ export type PublishButtonProps = Omit<
'aria-disabled' | 'variant' | 'children'
> & {
productType?: string;
- prePublish?: boolean;
+ isMenuButton?: boolean;
+ isPrePublishPanelVisible?: boolean;
};
diff --git a/packages/js/product-editor/src/components/prepublish-panel/prepublish-panel.tsx b/packages/js/product-editor/src/components/prepublish-panel/prepublish-panel.tsx
index 1be8366147cb..412211e290d2 100644
--- a/packages/js/product-editor/src/components/prepublish-panel/prepublish-panel.tsx
+++ b/packages/js/product-editor/src/components/prepublish-panel/prepublish-panel.tsx
@@ -10,6 +10,7 @@ import { useEntityProp } from '@wordpress/core-data';
import { closeSmall } from '@wordpress/icons';
import classnames from 'classnames';
import type { Product } from '@woocommerce/data';
+import { isInTheFuture } from '@wordpress/date';
/**
* Internal dependencies
@@ -30,10 +31,10 @@ export function PrepublishPanel( {
'woocommerce'
),
}: PrepublishPanelProps ) {
- const [ editedDate, , date ] = useEntityProp< string >(
+ const [ editedDate ] = useEntityProp< string >(
'postType',
productType,
- 'date_created'
+ 'date_created_gmt'
);
const [ productStatus, , prevStatus ] = useEntityProp<
@@ -47,7 +48,7 @@ export function PrepublishPanel( {
? productStatus === 'publish'
: true;
- if ( editedDate !== date ) {
+ if ( isInTheFuture( editedDate ) ) {
title = __( 'Are you ready to schedule this product?', 'woocommerce' );
description = __(
'Your product will be published at the specified date and time.',
diff --git a/packages/js/product-editor/src/components/prepublish-panel/style.scss b/packages/js/product-editor/src/components/prepublish-panel/style.scss
index a325916e501c..50336d470400 100644
--- a/packages/js/product-editor/src/components/prepublish-panel/style.scss
+++ b/packages/js/product-editor/src/components/prepublish-panel/style.scss
@@ -52,7 +52,12 @@
}
&__content {
- min-height: calc( 100% - #{ $header-height + 220px } );
+ // Ensure the pre-publish panel content accounts for the header and footer height.
+ min-height: calc( 100% - #{ $header-height + 222px } );
+ .editor-post-publish-panel__link {
+ font-weight: 400;
+ padding-left: $gap-smallest;
+ }
}
&__footer {
diff --git a/packages/js/product-editor/src/components/schedule-publish-modal/schedule-publish-modal.tsx b/packages/js/product-editor/src/components/schedule-publish-modal/schedule-publish-modal.tsx
index d0f8d9f2b488..ed5d7af5c1db 100644
--- a/packages/js/product-editor/src/components/schedule-publish-modal/schedule-publish-modal.tsx
+++ b/packages/js/product-editor/src/components/schedule-publish-modal/schedule-publish-modal.tsx
@@ -26,6 +26,7 @@ export function SchedulePublishModal( {
className,
onCancel,
onSchedule,
+ isScheduling,
...props
}: SchedulePublishModalProps ) {
const [ date, setDate ] = useState< string | undefined >(
@@ -77,6 +78,8 @@ export function SchedulePublishModal( {