woocommerce/plugins/woocommerce-blocks
Mike Jolley 36c1bb7361 Add to cart context provider (https://github.com/woocommerce/woocommerce-blocks/pull/2903)
* Provider progress

* Revert nonce change for debugging

* Working emitters

* Fix dismiss link alignment in notices

* Fix button state and double adds

* Remove old context file

* Add type defs

* Fix context name

* Leftovers from merge

* Hooks up the variation picker to cart context

* Group event emitters in context

* Fix external product display

* Pass product through to VariationAttributes

* Pass around dispatchers

* Update assets/js/base/context/add-to-cart-form/form-state/reducer.js

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>

* Update assets/js/atomic/blocks/product-elements/add-to-cart/product-types/variable/variation-attributes/attribute-select-control.js

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>

* Update assets/js/base/context/add-to-cart-form/form-state/reducer.js

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>

* remove placeholder comment

* content->container

* Clarify variation method comment

* update comment

* Switch nesting of providers

* Variation attribute utils test coverage

* If nothing is selected yet, just return all variations.

* Comments to explain loops

* Use refs to avoid recalculation of attributes on every render

* Update memo usage

* typo

* move mock data to test file

* Switch to useShallowEqual

* trigger cart fragment refresh after add to cart

* Decode option entities

Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2020-07-30 11:57:22 +01:00
..
.github Update wp.deploy workflow adding slack hook (https://github.com/woocommerce/woocommerce-blocks/pull/2939) 2020-07-29 13:36:33 +02:00
.sources Update previews and editor styles for cart and checkout blocks (https://github.com/woocommerce/woocommerce-blocks/pull/2160) 2020-04-08 16:03:39 +01:00
assets Add to cart context provider (https://github.com/woocommerce/woocommerce-blocks/pull/2903) 2020-07-30 11:57:22 +01:00
bin Fix Reviews editor styles (https://github.com/woocommerce/woocommerce-blocks/pull/2941) 2020-07-29 16:07:21 +02:00
docs Release: 3.1.0 (https://github.com/woocommerce/woocommerce-blocks/pull/2938) 2020-07-29 18:01:01 +02:00
src enqueue and respect merchant option for disabling stripe express pay (https://github.com/woocommerce/woocommerce-blocks/pull/2920) 2020-07-30 10:29:58 +12:00
storybook Make stylesheets order consistent between build and dev (https://github.com/woocommerce/woocommerce-blocks/pull/2818) 2020-07-22 14:05:56 +02:00
tests Fix WP_CONTENT_DIR path in PHP unit tests (https://github.com/woocommerce/woocommerce-blocks/pull/2935) 2020-07-30 10:41:13 +02:00
.distignore Release: 3.0.0 (https://github.com/woocommerce/woocommerce-blocks/pull/2887) 2020-07-22 12:36:55 -04:00
.editorconfig Introduce legacy build system and new aliases (https://github.com/woocommerce/woocommerce-blocks/pull/1018) 2019-10-06 08:36:15 -04:00
.env Switch to use `wp-env` as the development/test environment (https://github.com/woocommerce/woocommerce-blocks/pull/2730) 2020-06-17 16:28:11 -04:00
.eslintignore Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
.eslintrc.js Deregister core cart/checkout scripts and styles when rendering the blocks (https://github.com/woocommerce/woocommerce-blocks/pull/2842) 2020-07-14 15:46:44 -04:00
.gitattributes CSS naming convention docs (https://github.com/woocommerce/woocommerce-blocks/pull/1653) 2020-01-28 15:50:57 +00:00
.gitignore Switch to use `wp-env` as the development/test environment (https://github.com/woocommerce/woocommerce-blocks/pull/2730) 2020-06-17 16:28:11 -04:00
.nvmrc Adds continuous integration testing with travis (https://github.com/woocommerce/woocommerce-blocks/pull/156) 2018-11-27 12:12:48 -05:00
.prettierrc Fix increment bug in withComponentId (https://github.com/woocommerce/woocommerce-blocks/pull/951) 2019-09-07 08:04:34 -04:00
.stylelintrc.json Add stylelint to find and fix css code style issues (https://github.com/woocommerce/woocommerce-blocks/pull/126) 2018-11-15 10:45:49 -05:00
.travis.yml Release: 3.0.0 (https://github.com/woocommerce/woocommerce-blocks/pull/2887) 2020-07-22 12:36:55 -04:00
.wp-env.json Switch to use `wp-env` as the development/test environment (https://github.com/woocommerce/woocommerce-blocks/pull/2730) 2020-06-17 16:28:11 -04:00
README.md Update references to use main 2020-06-16 10:38:19 +01:00
babel.config.js Fix wp-cli container permissions issues for e2e docker test environment (https://github.com/woocommerce/woocommerce-blocks/pull/1716) 2020-02-11 11:13:20 -05:00
composer.json update automattic/jetpack-autoloader to 2.0 branch (https://github.com/woocommerce/woocommerce-blocks/pull/2847) 2020-07-10 10:54:55 +02:00
composer.lock update automattic/jetpack-autoloader to 2.0 branch (https://github.com/woocommerce/woocommerce-blocks/pull/2847) 2020-07-10 10:54:55 +02:00
docker-compose.yml Expand travis matrix (https://github.com/woocommerce/woocommerce-blocks/pull/2686) 2020-06-16 13:18:34 +01:00
globals.d.ts Add initial cart flow tests (https://github.com/woocommerce/woocommerce-blocks/pull/2678) 2020-06-10 14:21:34 -04:00
package-lock.json Update dependency @octokit/graphql to v4.5.3 (https://github.com/woocommerce/woocommerce-blocks/pull/2930) 2020-07-30 10:07:01 +01:00
package.json Update dependency @octokit/graphql to v4.5.3 (https://github.com/woocommerce/woocommerce-blocks/pull/2930) 2020-07-30 10:07:01 +01:00
phpcs.xml Update NPM dependencies and script dependency handling (https://github.com/woocommerce/woocommerce-blocks/pull/1337) 2019-12-10 12:17:46 -05:00
phpunit.xml.dist Move main controllers from assets/php to src (https://github.com/woocommerce/woocommerce-blocks/pull/655) 2019-07-01 13:52:44 +01:00
postcss.config.js Create Reviews by Product block (https://github.com/woocommerce/woocommerce-blocks/pull/658) 2019-08-15 16:55:57 +02:00
readme.txt Update version numbers to 3.2.0-dev 2020-07-29 18:20:17 +02:00
renovate.json Auto-merge renovate dependency updates (except major versions) (https://github.com/woocommerce/woocommerce-blocks/pull/2742) 2020-06-24 16:37:19 +12:00
tsconfig.json Introduce Atomic Add to Cart Block (https://github.com/woocommerce/woocommerce-blocks/pull/2705) 2020-06-17 10:52:03 +01:00
webpack.config.js Make stylesheets order consistent between build and dev (https://github.com/woocommerce/woocommerce-blocks/pull/2818) 2020-07-22 14:05:56 +02:00
woocommerce-gutenberg-products-block.php Update version numbers to 3.2.0-dev 2020-07-29 18:20:17 +02:00

README.md

WooCommerce Product Blocks

Latest Tag Travis View

This is the feature plugin for WooCommerce + Gutenberg. This plugin 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.

Use this plugin if you want access to the bleeding edge of available blocks for WooCommerce. However, stable blocks are bundled into WooCommerce, and can be added from the "WooCommerce" section in the block inserter.

Table of Contents

Documentation

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

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

Code Documentation

Contributing

Installing the plugin version

We release a new version of WooCommerce Blocks onto WordPress.org every few weeks, which can be used as an easier way to preview the features.

Note: The plugin follows a policy of supporting the "L2" strategy for version support. What this means is that the plugin will support the most recent two minor versions of WordPress, and the most recent two minor versions of WooCommerce core at the time of a release.

That means if the latest version of WooCommerce is 4.3 at the time of a release, then our minimum version requirements for WooCommerce core would be 4.1+.

We recommend you always keep WordPress and WooCommerce core up to date in order to ensure your store is running with the most recent fixes and enhancements to help your store be successful.

  1. Make sure you have WordPress 5.2+ and WooCommerce 4.0+
  2. The plugin version is available on WordPress.org. Download the plugin version here.
  3. Activate the plugin.

Installing the development version

  1. Make sure you have WordPress 5.2+ and WooCommerce 4.0+
  2. Get a copy of this plugin using the green "Clone or download" button on the right.
  3. npm install to install the dependencies.
  4. composer install to install core dependencies.
  5. npm run build (build once) or npm start (keep watching for changes) to compile the code.
  6. Activate the plugin.

The source code is in the assets/ folder and the compiled code is built into build/.

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.

To begin contributing to the WooCommerce Blocks plugin, see our getting started guide and developer handbook.

Other useful docs to explore:

Vision for the Feature

Users should be able to insert a variety of products from their store (specific products, products in a category, with assorted layouts and visual styles, etc.) into their post content using a simple and powerful visual editor.