diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/image/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/image/index.ts index 8126ad5e94a..32e5b000e0e 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/image/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/image/index.ts @@ -27,12 +27,6 @@ const blockConfig: BlockConfiguration = { keywords: [ 'WooCommerce' ], description, usesContext: [ 'query', 'queryId', 'postId' ], - ancestor: [ - 'woocommerce/all-products', - 'woocommerce/single-product', - 'core/post-template', - 'woocommerce/product-template', - ], textdomain: 'woocommerce', attributes, supports, diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/price/index.tsx b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/price/index.tsx index 6447673b9f2..4fce83f49fd 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/price/index.tsx +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/price/index.tsx @@ -16,10 +16,8 @@ import { BLOCK_DESCRIPTION as description, } from './constants'; -const { ancestor, ...configuration } = sharedConfig; - const blockConfig = { - ...configuration, + ...sharedConfig, apiVersion: 2, title, description, diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/rating/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/rating/index.ts index 0d06baac8f2..bfa7b9f9156 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/rating/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/rating/index.ts @@ -15,12 +15,6 @@ import { supports } from './support'; const blockConfig: BlockConfiguration = { ...sharedConfig, - ancestor: [ - 'woocommerce/all-products', - 'woocommerce/single-product', - 'core/post-template', - 'woocommerce/product-template', - ], icon: { src: icon }, supports, edit, diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sale-badge/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sale-badge/index.ts index 63e573f4be8..9ddbbda8e98 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sale-badge/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sale-badge/index.ts @@ -28,10 +28,7 @@ const blockConfig: BlockConfiguration = { edit, usesContext: [ 'query', 'queryId', 'postId' ], ancestor: [ - 'woocommerce/all-products', - 'woocommerce/single-product', - 'core/post-template', - 'woocommerce/product-template', + ...( sharedConfig.ancestor || [] ), 'woocommerce/product-gallery', ], }; diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/shared/config.tsx b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/shared/config.tsx index 2391ecab501..234a5766f52 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/shared/config.tsx +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/shared/config.tsx @@ -28,7 +28,14 @@ const sharedConfig: Omit< BlockConfiguration, 'attributes' | 'title' > = { supports: { html: false, }, - ancestor: [ 'woocommerce/all-products', 'woocommerce/single-product' ], + ancestor: [ + 'woocommerce/all-products', + 'woocommerce/single-product', + // Product Collection product template + 'woocommerce/product-template', + // Products (Beta) product template + 'core/post-template', + ], save, deprecated: [ { diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sku/index.tsx b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sku/index.tsx index 4edc1dfcbe2..b2fb5190c17 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sku/index.tsx +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/sku/index.tsx @@ -17,10 +17,8 @@ import { BLOCK_DESCRIPTION as description, } from './constants'; -const { ancestor, ...configuration } = sharedConfig; - const blockConfig: BlockConfiguration = { - ...configuration, + ...sharedConfig, apiVersion: 2, title, description, @@ -28,10 +26,7 @@ const blockConfig: BlockConfiguration = { usesContext: [ 'query', 'queryId', 'postId' ], attributes, ancestor: [ - 'woocommerce/all-products', - 'woocommerce/single-product', - 'core/post-template', - 'woocommerce/product-template', + ...( sharedConfig.ancestor || [] ), 'woocommerce/product-meta', ], edit, diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/stock-indicator/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/stock-indicator/index.ts index 5c7fed8b68f..25f3c7b80b0 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/stock-indicator/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/stock-indicator/index.ts @@ -28,12 +28,6 @@ const blockConfig: BlockConfiguration = { supports, edit, usesContext: [ 'query', 'queryId', 'postId' ], - ancestor: [ - 'woocommerce/all-products', - 'woocommerce/single-product', - 'core/post-template', - 'woocommerce/product-template', - ], }; registerBlockType( 'woocommerce/product-stock-indicator', { diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/summary/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/summary/index.ts index 31bb50ff892..c9713d3311b 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/summary/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/summary/index.ts @@ -20,6 +20,9 @@ import { Save } from './save'; const blockConfig: BlockConfiguration = { ...sharedConfig, + // Product Summary is not expected to be available in Product Collection + // nor Products (Beta). They use core/post-summary variation. + ancestor: [ 'woocommerce/all-products', 'woocommerce/single-product' ], apiVersion: 2, title, description, diff --git a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/title/index.ts b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/title/index.ts index 222cdf5ae17..bdc8f6c0560 100644 --- a/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/title/index.ts +++ b/plugins/woocommerce-blocks/assets/js/atomic/blocks/product-elements/title/index.ts @@ -22,6 +22,9 @@ import { Save } from './save'; const blockConfig: BlockConfiguration = { ...sharedConfig, + // Product Title is not expected to be available in Product Collection + // nor Products (Beta). They use core/post-title variation. + ancestor: [ 'woocommerce/all-products', 'woocommerce/single-product' ], apiVersion: 2, title, description, diff --git a/plugins/woocommerce/changelog/fix-product-price-ancestors b/plugins/woocommerce/changelog/fix-product-price-ancestors new file mode 100644 index 00000000000..75096745ce3 --- /dev/null +++ b/plugins/woocommerce/changelog/fix-product-price-ancestors @@ -0,0 +1,4 @@ +Significance: patch +Type: fix + +Product Price: Narrow down the ancestors of the block so it's available in inserter only in places where block makes sense diff --git a/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-woocommerce-blocks.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-woocommerce-blocks.spec.js index 97671b08a46..02194d5beb0 100644 --- a/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-woocommerce-blocks.spec.js +++ b/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-woocommerce-blocks.spec.js @@ -13,9 +13,6 @@ const singleProductPrice = '555.00'; // all WooCommerce blocks except: // default cart and checkout blocks, mini-cart, product collection const blocks = [ - { - name: 'Product Price', - }, { name: 'Product Search', },