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

Store API: Consistent error code and hook naming #5992

Merged
merged 7 commits into from Mar 7, 2022

Conversation

mikejolley
Copy link
Member

This is a PR for hook name and error code consistency across the Store API codebase. I've updated docs + usage, and deprecated the previous names inline.

  • For error codes: Codes should have the prefix woocommerce_rest_. This is inline with the majority of existing error codes, but there were a few with either no prefix, or blocks prefix. Additionally, codes should use underscores rather than hyphens to separate words.
  • For action and filter hooks: Hook names from WooCommerce should be marked as such. I've added inline @internal documentation to state this. For new Store API hooks, they should have the woocommerce_store_api_ prefix. Newer hooks are doing this, but we had some older ones using woocommerce_blocks_. I've deprecated these.

We also had some instances where we had different codes for the same type of error in the cart controller, so I cleared this up also.

Fixes #5980

Testing

Nothing should be user facing however, placing an order via Block checkout should be smoke tested, as well as one of the extensions consuming the deprecated hooks such as pre-orders (https://github.com/woocommerce/woocommerce-pre-orders/blob/bd1169c93ed3ccd8c2f33f3a54b244aefe63b0c2/includes/class-wc-pre-orders-checkout.php#L39 or subscriptions (https://github.com/woocommerce/woocommerce-subscriptions/blob/0704f35c00ea6df2821b9c1592b77205a96e2937/includes/early-renewal/class-wcs-cart-early-renewal.php#L34-L38)

Changelog

Deprecated woocommerce_blocks_checkout_order_processed in favour of woocommerce_store_api_checkout_order_processed
Deprecated woocommerce_blocks_checkout_update_order_meta in favour of woocommerce_store_api_checkout_update_order_meta
Deprecated woocommerce_blocks_checkout_update_order_from_request in favour of woocommerce_store_api_checkout_update_order_from_request
Normalised Store API error codes

@mikejolley mikejolley added focus: rest api Work impacting REST api routes. type: refactor The issue/PR is related to refactoring. labels Mar 3, 2022
@mikejolley mikejolley self-assigned this Mar 3, 2022
@rubikuserbot rubikuserbot requested review from a team and nielslange and removed request for a team March 3, 2022 16:08
@github-actions
Copy link
Contributor

github-actions bot commented Mar 3, 2022

Size Change: +2 B (0%)

Total Size: 863 kB

Filename Size Change
build/checkout-frontend.js 47.4 kB +2 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.27 kB
build/active-filters.js 6.94 kB
build/all-products-frontend.js 18.6 kB
build/all-products.js 33.9 kB
build/all-reviews.js 8.03 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/catego--90468e1a.js 223 B
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.65 kB
build/atomic-block-components/add-to-cart-frontend.js 7.01 kB
build/atomic-block-components/add-to-cart.js 7.49 kB
build/atomic-block-components/button--atomic-block-components/category-list--atomic-block-components/imag--f11cdc7a.js 498 B
build/atomic-block-components/button-frontend.js 2.08 kB
build/atomic-block-components/button.js 2.3 kB
build/atomic-block-components/category-list-frontend.js 920 B
build/atomic-block-components/category-list.js 501 B
build/atomic-block-components/image-frontend.js 1.86 kB
build/atomic-block-components/image.js 1.09 kB
build/atomic-block-components/price-frontend.js 1.93 kB
build/atomic-block-components/price.js 1.51 kB
build/atomic-block-components/rating-frontend.js 1.13 kB
build/atomic-block-components/rating.js 718 B
build/atomic-block-components/sale-badge-frontend.js 1.09 kB
build/atomic-block-components/sale-badge.js 683 B
build/atomic-block-components/sku-frontend.js 385 B
build/atomic-block-components/sku.js 386 B
build/atomic-block-components/stock-indicator-frontend.js 1.03 kB
build/atomic-block-components/stock-indicator.js 624 B
build/atomic-block-components/summary-frontend.js 1.34 kB
build/atomic-block-components/summary.js 923 B
build/atomic-block-components/tag-list-frontend.js 921 B
build/atomic-block-components/tag-list.js 499 B
build/atomic-block-components/title-frontend.js 1.31 kB
build/atomic-block-components/title.js 932 B
build/attribute-filter-frontend.js 16.8 kB
build/attribute-filter.js 13 kB
build/blocks-checkout.js 17.2 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.14 kB
build/cart-blocks/checkout-button-frontend.js 1.15 kB
build/cart-blocks/empty-cart-frontend.js 347 B
build/cart-blocks/express-payment-frontend.js 5.18 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.5 kB
build/cart-blocks/order-summary-frontend.js 8.88 kB
build/cart-blocks/totals-frontend.js 320 B
build/cart-frontend.js 45.2 kB
build/cart.js 43.5 kB
build/checkout-blocks/actions-frontend.js 1.41 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.13 kB
build/checkout-blocks/billing-address-frontend.js 891 B
build/checkout-blocks/contact-information-frontend.js 2.85 kB
build/checkout-blocks/express-payment-frontend.js 5.48 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.3 kB
build/checkout-blocks/payment-frontend.js 7.77 kB
build/checkout-blocks/shipping-address-frontend.js 997 B
build/checkout-blocks/shipping-methods-frontend.js 4.73 kB
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 323 B
build/checkout.js 44.7 kB
build/featured-category.js 8.63 kB
build/featured-product.js 9.74 kB
build/handpicked-products.js 7.11 kB
build/legacy-template.js 2.18 kB
build/mini-cart-component-frontend.js 16 kB
build/mini-cart-contents-block/empty-cart-frontend.js 363 B
build/mini-cart-contents-block/filled-cart-frontend.js 222 B
build/mini-cart-contents-block/footer--mini-cart-contents-block/products-table-frontend.js 5.33 kB
build/mini-cart-contents-block/footer-frontend.js 6.27 kB
build/mini-cart-contents-block/items-frontend.js 206 B
build/mini-cart-contents-block/products-table-frontend.js 5.33 kB
build/mini-cart-contents-block/shopping-button-frontend.js 260 B
build/mini-cart-contents-block/title-frontend.js 348 B
build/mini-cart-contents.js 24.2 kB
build/mini-cart-frontend.js 1.71 kB
build/mini-cart.js 6.39 kB
build/price-filter-frontend.js 12.5 kB
build/price-filter.js 8.47 kB
build/price-format.js 1.19 kB
build/product-best-sellers.js 7.39 kB
build/product-categories.js 3.17 kB
build/product-category.js 8.5 kB
build/product-new.js 7.68 kB
build/product-on-sale.js 7.99 kB
build/product-search.js 2.19 kB
build/product-tag.js 7.82 kB
build/product-top-rated.js 7.91 kB
build/products-by-attribute.js 8.4 kB
build/reviews-by-category.js 11.5 kB
build/reviews-by-product.js 12.6 kB
build/reviews-frontend.js 7.34 kB
build/single-product-frontend.js 22 kB
build/single-product.js 10 kB
build/stock-filter-frontend.js 6.5 kB
build/stock-filter.js 6.56 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.51 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--194c50bf-frontend.js 5.26 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary--mini-cart-contents-block/products-table-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/vendors--mini-cart-contents-block/footer--mini-cart-contents-block/products-table-frontend.js 7.72 kB
build/wc-blocks-data.js 9.78 kB
build/wc-blocks-editor-style-rtl.css 4.84 kB
build/wc-blocks-editor-style.css 4.84 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 953 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 22.2 kB
build/wc-blocks-style.css 22.2 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 69.4 kB
build/wc-blocks.js 2.62 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

@mikejolley mikejolley force-pushed the update/error-code-and-hook-naming branch from a763555 to e254de4 Compare March 4, 2022 13:40
@mikejolley mikejolley added this to the 7.2.0 milestone Mar 7, 2022
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.

LGTM 🚢

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. type: refactor The issue/PR is related to refactoring.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Error Codes in stock_exceptions_to_wp_errors
2 participants