woocommerce/plugins/woocommerce-blocks
Karol Manijak 2750e79224
Getting the Product Collection location/context (#43997)
* Early implementation of getting the Product Collection location/context

* Solve the problem of async fetch in the hook

* Improve typing

* Import core data store instead of hardcoding store name

* Recognise Product Category and Product Tag

* Remove attr property from archive location data

* Unify states naming

* Add TODO entry

* Display the info about the location of Product Collection

* Improve the typing

* Recognise if Product Collection is nested in Single Product block

* Improve cases descriptions and add some defaults to potentially undefined values

* Change the taxonomies sourceData

* Recognise Mini Cart as Cart context

* Recognise attribute as archive contect but no taxonomy

* Refactor the function into single useEffect and clean it up

* Fix typo

* Remove unnecessary import

* Stop rendering the output in Editor (it was for demo purposes)

* Pass location data to Product Template query in Editor

* Replace templateSlugs literal strings with object reference

* Rename parseResponse function to more specific name getIdFromResponse

* Add dpeendency array to useEffect

* Refactor templates detection

* Use full taxonomy names instead of shortcuts

* Write down scenarios to test

* Working scenario

* Change the verification way for more robust

* Add more robust methods to include Single Product block

* Add test Product Collection in Single Product block in a Single Product Template

* Imprvoe the order of veryfing the requests

* Fix linter issues. Although that makes code less readable

* Improve the useGetLocation typing so it's more generic

* Rework the E2E tests regarding location of Product Collection and limit their number

* Bring back necessary eslint-disable

* Remove unused imports

* Uncomment line required for other tests

* Add changelog

* Rename constant from BLOCK_NAME to BLOCK_SLUG as it's a slug

* Add a BLOCK_NAME constant and replace the literal block name usages in E2E tests

* Fix post merge issues

* Fix test after merge

* Adjust the tests to kick off waiting for request before action that triggers them
2024-02-12 20:59:40 +01:00
..
.github Add e2e tests to verify block templates can be customized if the theme has its own custom templates (#43650) 2024-01-18 11:39:24 +01:00
.husky Update Husky config to v8 (https://github.com/woocommerce/woocommerce-blocks/pull/9150) 2023-04-21 10:07:55 +02:00
.sources
.vscode Fix ESLint errors (https://github.com/woocommerce/woocommerce-blocks/pull/7556) 2022-11-02 17:46:14 +01:00
.wordpress-org Update WooCommerce Blocks brand assets (https://github.com/woocommerce/woocommerce-blocks/pull/10622) 2023-08-16 14:15:20 +01:00
assets Getting the Product Collection location/context (#43997) 2024-02-12 20:59:40 +01:00
bin [Experimental] Product Filter - Reintroduce Wrapper Block (#43688) 2024-01-23 18:29:24 +13:00
changelog [Experimental] Product Gallery: Update div elements to ul/li for better accessibility (#43612) 2024-01-15 13:04:03 -08:00
docs Fix broken link to internal *.md file. (#43261) 2024-01-05 10:48:36 +07:00
packages [Experimental] Utilize WP generated class names to style interactivity stock filter block. (#44073) 2024-01-26 19:29:39 +13:00
patches Revert "Remove Combobox patch (https://github.com/woocommerce/woocommerce-blocks/pull/6465)" (https://github.com/woocommerce/woocommerce-blocks/pull/6531) 2022-06-07 14:09:50 +02:00
storybook [Docs] Update links from WooCommerce.com to Woo.com for the Woo Blocks documentation (#43055) 2023-12-29 12:28:11 -03:00
tests Getting the Product Collection location/context (#43997) 2024-02-12 20:59:40 +01:00
.distignore Rename commands and directories for Playwright and JEST e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/10493) 2023-08-08 17:58:12 +01:00
.editorconfig Update MD editor config (https://github.com/woocommerce/woocommerce-blocks/pull/7968) 2022-12-19 12:06:48 +00:00
.env
.eslintignore Rename commands and directories for Playwright and JEST e2e tests (https://github.com/woocommerce/woocommerce-blocks/pull/10493) 2023-08-08 17:58:12 +01:00
.eslintrc.js Add lint config to blocks to lint imports (#43310) 2024-01-08 18:32:15 +13:00
.gitattributes Revert "Remove .gitattributes file (https://github.com/woocommerce/woocommerce-blocks/pull/5242)" (https://github.com/woocommerce/woocommerce-blocks/pull/6049) 2022-03-14 12:42:34 +00:00
.gitignore Playwright E2E tests: Multiple signed in roles (https://github.com/woocommerce/woocommerce-blocks/pull/10561) 2023-12-08 17:44:59 +01:00
.markdownlint.json Upgrade wp-prettier to 2.6.2 and reformat the codebase (https://github.com/woocommerce/woocommerce-blocks/pull/6566) 2022-06-15 11:56:52 +02:00
.markdownlintignore Improve the structure of the WooCommerce Blocks Handbook (https://github.com/woocommerce/woocommerce-blocks/pull/6429) 2022-06-09 17:52:19 +02:00
.nvmrc Bump Node version to 16.15.0 (https://github.com/woocommerce/woocommerce-blocks/pull/8885) 2023-03-28 13:49:20 -03:00
.prettierignore Create 2e2 tests for Cross-Sells block (https://github.com/woocommerce/woocommerce-blocks/pull/6983) 2022-09-21 13:29:16 +07:00
.prettierrc.js
.stylelintrc.json Enable declaration-block-no-duplicate-properties stylelint rule (https://github.com/woocommerce/woocommerce-blocks/pull/10163) 2023-07-11 13:03:05 +00:00
.wp-env.json Playwright test workflow migration from Blocks repo (#42804) 2023-12-15 09:34:29 -08:00
LICENSE
README.md [Docs] Update links from WooCommerce.com to Woo.com for the Woo Blocks documentation (#43055) 2023-12-29 12:28:11 -03:00
babel.config.js Migrate Storybook to 6.4.0 and enable auto-detection of controls (https://github.com/woocommerce/woocommerce-blocks/pull/5249) (https://github.com/woocommerce/woocommerce-blocks/pull/5264) 2021-12-01 12:28:27 +01:00
checkstyle.xml Migrate Block Title component to TypeScript (https://github.com/woocommerce/woocommerce-blocks/pull/9712) 2023-06-13 16:30:57 +05:30
composer.json [Docs] Update links from WooCommerce.com to Woo.com for the Woo Blocks documentation (#43055) 2023-12-29 12:28:11 -03:00
composer.lock Fix Component Project Changelog Checking (#42794) 2023-12-13 15:41:11 -08:00
docker-compose.yml Add PHP 8.1/8.2 to unit testing matrix (https://github.com/woocommerce/woocommerce-blocks/pull/8757) 2023-04-21 12:07:37 +01:00
global.d.ts
package-lock.json Bump @wordpress/wordcount from 3.13.0 to 3.47.0 (https://github.com/woocommerce/woocommerce-blocks/pull/12094) 2023-12-08 14:28:16 +00:00
package.json Added Missing Blocks Linting Change Trigger (#44233) 2024-02-08 13:48:03 -08:00
phpcs.xml Introduce Additional Fields extensibility API (#42695) 2023-12-15 13:45:38 +01:00
phpunit.xml.dist Add PHP 8.1/8.2 to unit testing matrix (https://github.com/woocommerce/woocommerce-blocks/pull/8757) 2023-04-21 12:07:37 +01:00
postcss.config.js
readme.txt [Docs] Update links from WooCommerce.com to Woo.com for the Woo Blocks documentation (#43055) 2023-12-29 12:28:11 -03:00
tsconfig.base.json Upgrade TypeScript to 5.3.2 (https://github.com/woocommerce/woocommerce-blocks/pull/11926) 2023-12-05 18:17:04 +13:00
tsconfig.json Add a stock filter block powered by the interactivity API (https://github.com/woocommerce/woocommerce-blocks/pull/11663) 2023-11-15 16:50:05 +13:00
webpack.config.js Fix: load blocks style separately for classic themes (https://github.com/woocommerce/woocommerce-blocks/pull/10758) 2023-09-08 11:15:48 +07:00
wp-cli.yml Improve the E2E testing process with Playwright (https://github.com/woocommerce/woocommerce-blocks/pull/9148) 2023-05-05 11:03:36 +00:00

README.md

WooCommerce Blocks

This is the client for WooCommerce + Gutenberg. This package serves as a space to iterate and explore new Blocks and updates to existing blocks for WooCommerce, and how WooCommerce might work with the block editor.

Table of Contents

Documentation

To find out more about the blocks and how to use them, check out the documentation on Woo.com.

If you want to see what we're working on for future versions, or want to help out, read on.

Code Documentation

  • Blocks - Documentation for specific Blocks.
  • Editor Components - Shared components used in WooCommerce blocks for the editor (Gutenberg) UI.
  • WooCommerce Blocks Handbook - Documentation for designers and developers on how to extend or contribute to blocks, and how internal developers should handle new releases.
  • WooCommerce Blocks Storybook - Contains a list and demo of components used in the plugin.

Getting started with block development

Run through the "Writing Your First Block Type" tutorial for a quick course in block-building.

For deeper dive, try looking at the core blocks code, or see what components are available.

Other useful docs to explore:

Long-term vision

WooCommerce Blocks are the easiest, most flexible way to build your store's user interface and showcase your products.