woocommerce/plugins/woocommerce-blocks
Mike Jolley c038a7fed4 Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127)
* Block setup

* Working filtering and intersection of arrays

* Implement block settings and no attribute placeholder

* Correctly toggle counts

* Implement filtering

* Fix price slider constraints

* Fix price slider constraints

* Edit mode

* Rename ProductAttributeControl to ProductAttributeTermControl

* Attribute ID saving

* fix incorrect test fixtures

* fix incorrect regex for parsing model (or resource names) from the route.

* Fix query classes for some endpoints

* Style improvements

* Update inline comments

* use previous tests

* Show attribute control in sidebar

* Remove displayStyle option

* Sort attributes by name

* Show more/less toggle

* Use renderFrontend

* Only sort when adding values

* Rename memo placeholder

* More specific CSS for pointer

* Update assets/js/base/hooks/use-query-state.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Remove always true taxonomy check

* Update assets/js/blocks/attribute-filter/block.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Remove lodash join

* native js for string casting

* Move internal deps

* hyphenate attributes

* Correct data set names

* Remove unwanted dependency

* Moving imports

* Missing deps

* replace yoda conditonal

* Missing deps

* Missing deps

* Check value exists

* Remove undefined filter

* renderedOptions usememo

* Set defaults in checkbox list

* Show more/less refactor

* Use getAdminLink

* Fix object length check

* Correct AND query handling for counts

* useQueryStateByContext

* Add store rest endpoints

* Update assets/js/base/components/checkbox-list/index.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Update assets/js/base/components/checkbox-list/index.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Update assets/js/base/components/checkbox-list/index.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Update assets/js/blocks/attribute-filter/block.js

Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>

* Feedback

* feedback

* API readme

* Fix API relation queries for multiple attributes

* Prevent all options flashing visible during loads

* null check

* Improve loading state

* Remove null options change - it's no longer needed
2019-11-11 10:32:56 +00:00
..
.github Create issue_label_bot.yaml 2019-07-09 10:36:17 +01:00
.sources New block: Filter Products by Price (https://github.com/woocommerce/woocommerce-blocks/pull/853) 2019-11-01 13:56:14 +00:00
assets Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127) 2019-11-11 10:32:56 +00:00
bin Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127) 2019-11-11 10:32:56 +00:00
languages Build: Add translation conversion script (https://github.com/woocommerce/woocommerce-blocks/pull/486) 2019-03-13 09:59:12 -04:00
src Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127) 2019-11-11 10:32:56 +00:00
tests Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127) 2019-11-11 10:32:56 +00: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
.eslintignore Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
.eslintrc.js Update dependencies order (https://github.com/woocommerce/woocommerce-blocks/pull/1146) 2019-11-08 17:30:11 +01:00
.gitattributes Create CODEOWNERS file (https://github.com/woocommerce/woocommerce-blocks/pull/1013) 2019-10-02 19:08:05 +02:00
.gitignore Add `package-plugin` script (https://github.com/woocommerce/woocommerce-blocks/pull/689) 2019-07-09 12:37:25 +01: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 Refresh package-lock.json due to node lts version bump (https://github.com/woocommerce/woocommerce-blocks/pull/1058) 2019-10-21 16:26:53 +01:00
CODEOWNERS Create CODEOWNERS file (https://github.com/woocommerce/woocommerce-blocks/pull/1013) 2019-10-02 19:08:05 +02:00
CONTRIBUTING.md Update NPM package docs after deprecation (https://github.com/woocommerce/woocommerce-blocks/pull/1045) 2019-10-16 11:12:24 +02:00
README.md add composer install to readme (https://github.com/woocommerce/woocommerce-blocks/pull/738) 2019-07-17 11:06:06 +12:00
bundlesize.config.json Install prettier and reformat files (https://github.com/woocommerce/woocommerce-blocks/pull/945) 2019-09-05 17:09:31 +02:00
composer.json Update dependency automattic/jetpack-autoloader to v1.3.2 (https://github.com/woocommerce/woocommerce-blocks/pull/990) 2019-09-25 12:25:37 +02:00
composer.lock New block: Filter Products by Price (https://github.com/woocommerce/woocommerce-blocks/pull/853) 2019-11-01 13:56:14 +00:00
package-lock.json Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1148) 2019-11-11 09:46:28 +01:00
package.json Update dependencies order (https://github.com/woocommerce/woocommerce-blocks/pull/1146) 2019-11-08 17:30:11 +01:00
phpcs.xml All Products with Inner Blocks (https://github.com/woocommerce/woocommerce-blocks/pull/1032) 2019-10-28 09:53:09 -04: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 to 2.4.1 and changelog 2019-09-02 15:20:41 +02:00
renovate.json Lock file maintenance (https://github.com/woocommerce/woocommerce-blocks/pull/1023) 2019-10-07 11:05:35 +01:00
webpack.config.js Filter all products block by attribute (https://github.com/woocommerce/woocommerce-blocks/pull/1127) 2019-11-11 10:32:56 +00:00
woocommerce-gutenberg-products-block.php Implement PHP DI container and refactor. Also implements new Asset data interface for extendable settings passed to js. (https://github.com/woocommerce/woocommerce-blocks/pull/956) 2019-09-23 14:07:13 -04:00

README.md

WooCommerce Product Blocks

Feature plugin for WooCommerce + Gutenberg. Now that the product blocks have been merged into WooCommerce 3.6, this plugin serves as a space to iterate and explore how else WooCommerce might work with the block editor.

If you're just looking to use these blocks, update to WooCommerce 3.6! The blocks are bundled into WooCommerce, and can be added from the "WooCommerce" section in the block inserter.

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

Table of Contents

Installing the stable 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.

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

Installing the development version

  1. Make sure you have WordPress 5.0+ and WooCommerce 3.6+
  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.

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.