woocommerce/plugins/woocommerce-blocks
Darren Ethier d79f5ab271 Convert apple pay integration to payment request integration and finish implementation (https://github.com/woocommerce/woocommerce-blocks/pull/2127)
* add logic allowing payment method to be overridden via payment data in request

* hook in to trigger server side processing of stripe payment request

* improvements to shipping data context

- memoize event emitters
- split up emitted events (reduces how often events trigger)
- Include whether rate is being selected in exported data.

* expose `isSelectingRate` value to payment method interface

* fix typo in shipping emitters for emitter type

* include setting of shipping data in payment method success status call

- this also requires changing the nested order of providers in checkout provider

* fix priority logic for event emitters.

- lower priority is supposed to fire before higher priority.

* normalize postal code for comparisons

* move normalize functions into stripe-utils folder

* refactor stripePromise so that it provides a specific instance to each payment method.

This also provides it as a prop to the pm components.

* renadme apple pay express to payment request express

This adds full support for the stripe payment request api instead of just applePay (so GooglePay, MicrosoftPay and ApplePay are now supported).

Also adds numerous fixes to internal logic.

* add handling to skip core checkout validation logic if express payment method is handling payment

Express payment methods have their own internal validation so this removes the need for checkout validating fields. This is also necessary because checkout validation breaks the flow when making a payment using express payment methods because of the order of the flow for these methods.

* splitting out emmitter effects for checkout and improving logic

Splitting up effects limits the potential for firing off emitters more than needed.

* remove unnecessary ref definitions

* fix on cancel action erroring for payment request modal

* ensure unique stripe object for component and canPay

* set default total label if one isn’t configured on the server

* fix order of state changes

* simplify condition

* remove unnecessary dependency

* normalize to uppercase too

* simplify can make payment conditional

* update comment blocks
2020-04-08 12:36:04 -04:00
..
.github Update CONTRIBUTING links (https://github.com/woocommerce/woocommerce-blocks/pull/2135) 2020-04-07 09:56:17 +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 Convert apple pay integration to payment request integration and finish implementation (https://github.com/woocommerce/woocommerce-blocks/pull/2127) 2020-04-08 12:36:04 -04:00
bin CheckboxControl: stop using Gutenberg's CheckboxControl (https://github.com/woocommerce/woocommerce-blocks/pull/2137) 2020-04-07 16:37:03 +01:00
docs Add storybook info to dev docs (https://github.com/woocommerce/woocommerce-blocks/pull/2051) 2020-03-31 08:38:11 +13:00
src Convert apple pay integration to payment request integration and finish implementation (https://github.com/woocommerce/woocommerce-blocks/pull/2127) 2020-04-08 12:36:04 -04:00
storybook Add validation context provider and implement validation for shipping country and coupons. (https://github.com/woocommerce/woocommerce-blocks/pull/1972) 2020-03-17 12:45:33 +01:00
tests Update add to cart to useStoreCart hook (https://github.com/woocommerce/woocommerce-blocks/pull/2103) 2020-04-06 11:36:28 +01: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 [Experiment] Add container to run php unit tests in docker (https://github.com/woocommerce/woocommerce-blocks/pull/2004) 2020-03-31 11:47:40 +01: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 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
.gitattributes CSS naming convention docs (https://github.com/woocommerce/woocommerce-blocks/pull/1653) 2020-01-28 15:50:57 +00:00
.gitignore Product search block e2e test (https://github.com/woocommerce/woocommerce-blocks/pull/1712) 2020-02-11 12:23:23 -05: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 try another configuration 2020-03-22 12:31:57 -04:00
README.md Add badges to readme (https://github.com/woocommerce/woocommerce-blocks/pull/2007) 2020-03-22 12:47:23 -04: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 Bump required jetpack autoloader version (https://github.com/woocommerce/woocommerce-blocks/pull/2132) 2020-04-06 17:37:23 +01:00
composer.lock Bump required jetpack autoloader version (https://github.com/woocommerce/woocommerce-blocks/pull/2132) 2020-04-06 17:37:23 +01:00
docker-compose.yml Update mariadb Docker tag to v10.5 (https://github.com/woocommerce/woocommerce-blocks/pull/1988) 2020-04-02 14:40:27 +01:00
package-lock.json Update dependency @stripe/stripe-js to v1.3.1 (https://github.com/woocommerce/woocommerce-blocks/pull/2150) 2020-04-08 12:20:31 +01:00
package.json Update dependency @stripe/stripe-js to v1.3.1 (https://github.com/woocommerce/woocommerce-blocks/pull/2150) 2020-04-08 12:20:31 +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 Add 2.5.15 changelog 2020-03-31 12:54:12 +02:00
renovate.json Update renovate to assign `type: dependencies` label for pulls (https://github.com/woocommerce/woocommerce-blocks/pull/1648) 2020-01-27 10:37:09 -05:00
tsconfig.json Add contexts for checkout (https://github.com/woocommerce/woocommerce-blocks/pull/1915) 2020-03-10 09:39:21 -04:00
webpack.config.js Add forcing source map on production to analyze tree-shaking (https://github.com/woocommerce/woocommerce-blocks/pull/2117) 2020-04-06 10:00:47 +01:00
woocommerce-gutenberg-products-block.php Fix cached shipping fees on consecutive orders (https://github.com/woocommerce/woocommerce-blocks/pull/2144) 2020-04-08 11:23:25 +01:00

README.md

WooCommerce Product Blocks

Latest Tag Travis View

Feature plugin for WooCommerce + Gutenberg. This plugin serves as a space to iterate and explore new Blocks for WooCommerce, and how WooCommerce might work with the block editor.

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

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.

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.7+
  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.7+
  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.