Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

initialize_session if it does not yet exist before calling the sessio… #5577

Merged
merged 1 commit into from
Jan 17, 2022

Conversation

mikejolley
Copy link
Member

Bug introduced in #5406

cc @gigitux

The code that finds the quantity limits also looks up remaining stock. This relies on knowing if a draft order exists in session, and it's ID.

WooCommerce does not initalize the session on all routes. We do it manually on cart routes here: https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/trunk/src/StoreApi/Routes/AbstractCartRoute.php#L68 But product routes won't do this.

To fix, we just need to see if session exists, and if not, initialize it.

We can skip the changelog entry if this ships before next release.

Testing

How to test the changes in this Pull Request:

Try this before and after to confirm you see the issue.

  1. Add all products block to a page
  2. Edit one of the displayed products. Make it stock managed, and set stock to 20.
  3. View all products block. Before this patch, the block will break (render error).

@mikejolley mikejolley added the status: blocker Used on issues or pulls that block work from being released. label Jan 17, 2022
@mikejolley mikejolley self-assigned this Jan 17, 2022
@rubikuserbot rubikuserbot requested review from a team and alexflorisca and removed request for a team January 17, 2022 14:37
@mikejolley mikejolley requested review from nielslange and removed request for alexflorisca January 17, 2022 14:37
@mikejolley mikejolley added focus: rest api Work impacting REST api routes. type: bug The issue/PR concerns a confirmed bug. labels Jan 17, 2022
@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 818 kB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.21 kB
build/active-filters.js 7.1 kB
build/all-products-frontend.js 18.6 kB
build/all-products.js 35.2 kB
build/all-reviews.js 8.39 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---8f355022.js 238 B
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.67 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.48 kB
build/atomic-block-components/add-to-cart-frontend.js 7.05 kB
build/atomic-block-components/add-to-cart.js 6.62 kB
build/atomic-block-components/button-frontend.js 1.48 kB
build/atomic-block-components/button.js 850 B
build/atomic-block-components/category-list-frontend.js 458 B
build/atomic-block-components/category-list.js 460 B
build/atomic-block-components/image-frontend.js 1.37 kB
build/atomic-block-components/image.js 1.05 kB
build/atomic-block-components/price-frontend.js 1.74 kB
build/atomic-block-components/price.js 1.7 kB
build/atomic-block-components/rating-frontend.js 699 B
build/atomic-block-components/rating.js 700 B
build/atomic-block-components/sale-badge-frontend.js 624 B
build/atomic-block-components/sale-badge.js 622 B
build/atomic-block-components/sku-frontend.js 386 B
build/atomic-block-components/sku.js 386 B
build/atomic-block-components/stock-indicator--atomic-block-components/summary--atomic-block-components/title.js 451 B
build/atomic-block-components/stock-indicator-frontend.js 924 B
build/atomic-block-components/stock-indicator.js 626 B
build/atomic-block-components/summary-frontend.js 1.22 kB
build/atomic-block-components/summary.js 925 B
build/atomic-block-components/tag-list-frontend.js 460 B
build/atomic-block-components/tag-list.js 459 B
build/atomic-block-components/title-frontend.js 1.2 kB
build/atomic-block-components/title.js 930 B
build/attribute-filter-frontend.js 16.3 kB
build/attribute-filter.js 12.6 kB
build/blocks-checkout.js 17.6 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.14 kB
build/cart-blocks/checkout-button-frontend.js 1.14 kB
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/express-payment-frontend.js 4.86 kB
build/cart-blocks/filled-cart-frontend.js 767 B
build/cart-blocks/items-frontend.js 299 B
build/cart-blocks/line-items-frontend.js 5.49 kB
build/cart-blocks/order-summary-frontend.js 8.97 kB
build/cart-blocks/totals-frontend.js 321 B
build/cart-frontend.js 45.4 kB
build/cart.js 44.5 kB
build/checkout-blocks/actions-frontend.js 1.44 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.22 kB
build/checkout-blocks/billing-address-frontend.js 887 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.15 kB
build/checkout-blocks/fields-frontend.js 344 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/order-summary-frontend.js 11.4 kB
build/checkout-blocks/payment-frontend.js 7.39 kB
build/checkout-blocks/shipping-address-frontend.js 973 B
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB
build/checkout-blocks/terms-frontend.js 1.21 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 47.5 kB
build/checkout.js 47.1 kB
build/featured-category.js 8.55 kB
build/featured-product.js 9.9 kB
build/handpicked-products.js 7.33 kB
build/legacy-template.js 2.35 kB
build/mini-cart-component-frontend.js 14.2 kB
build/mini-cart-contents.js 3.59 kB
build/mini-cart-frontend.js 1.76 kB
build/mini-cart.js 6.46 kB
build/price-filter-frontend.js 12.6 kB
build/price-filter.js 8.92 kB
build/price-format.js 1.18 kB
build/product-best-sellers.js 7.54 kB
build/product-categories.js 3.48 kB
build/product-category.js 9.12 kB
build/product-new.js 8.44 kB
build/product-on-sale.js 8.81 kB
build/product-search.js 2.47 kB
build/product-tag.js 8.5 kB
build/product-top-rated.js 8.41 kB
build/products-by-attribute.js 9.22 kB
build/reviews-by-category.js 11.9 kB
build/reviews-by-product.js 12.9 kB
build/reviews-frontend.js 7.29 kB
build/single-product-frontend.js 22.1 kB
build/single-product.js 10.5 kB
build/stock-filter-frontend.js 6.81 kB
build/stock-filter.js 6.83 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 19 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 7.44 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 4.74 kB
build/wc-blocks-data.js 8.84 kB
build/wc-blocks-editor-style-rtl.css 4.58 kB
build/wc-blocks-editor-style.css 4.58 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 949 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 21.7 kB
build/wc-blocks-style.css 21.7 kB
build/wc-blocks-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks-vendors.js 65.5 kB
build/wc-blocks.js 2.96 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.61 kB

compressed-size-action

Copy link
Member

@nielslange nielslange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this quick fix, @mikejolley! Works as expected! 🚢

@github-actions github-actions bot added this to the 6.8.0 milestone Jan 17, 2022
@mikejolley mikejolley merged commit 39fa84c into trunk Jan 17, 2022
@mikejolley mikejolley deleted the fix/session-not-initialised-for-product-route branch January 17, 2022 15:20
gigitux added a commit that referenced this pull request Jan 20, 2022
* Empty commit for release pull request

* Update readme.txt with 6.8.0 changelog

* initialize_session if it does not yet exist before calling the session class (#5577)

* Add testing notes for 6.8.0

* update testing release notes

* update testing notes

* Fix default `stockStatusOptions` in tag and attribute blocks (#5590)

* Fix default stockStatusOptions in tag and attribute blocks

These should be an array of keys, not objects.

* Fix stockStatus definition on PHP side

* Swap state to debounce.

* Improve presentation of stock filters

* Remove state usage for display options

* Remove debounce

* Consistent panel titles

* Fix global style for Product Summary block, Product Stock Indicator block, and Product Title block (#5595)

* Fix global style for Product Summary block, Product Stock Indicator block, and ProductTitle block

Fix global style for Product Summary block, Product Stock Indicator block, and ProductTitle block

* add feature flag

* fix lint errors

* fix global style bugs on Product Title block

* update testing release notes

* update new build with fixes

* Restore correct font style when the block is loaded in the editor (#5600)

* Restore correct font style when the block is loaded in the editor

Restore correct font style when the block is loaded in the editor

* fix style on Twenty Twenty theme

* update link for download the zip of the new release

* update readme.txt

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Luigi <[email protected]>
Co-authored-by: Mike Jolley <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
focus: rest api Work impacting REST api routes. status: blocker Used on issues or pulls that block work from being released. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants