# Checkout Components and utilities making it possible to integrate with the WooCommerce Cart and Checkout Blocks. ## Table of Contents - [Installation](#installation) - [Usage](#usage) - [Aliased imports](#aliased-imports) - [Folder Structure Overview](#folder-structure-overview) ## Installation This package is available as an external when the [WooCommerce Blocks Feature Plugin](https://wordpress.org/plugins/woo-gutenberg-products-block/) is installed and activated. ## Usage Package components can be accessed via the `wc` global: ```js const { ... } = wc.blocksCheckout; ``` ### Aliased imports Alternatively, you can map this to external to a custom alias using the [WordPress Dependency Extraction Webpack Plugin](https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin): ```js // webpack.config.js const DependencyExtractionWebpackPlugin = require( '@wordpress/dependency-extraction-webpack-plugin' ); const dependencyMap = { '@woocommerce/blocks-checkout': [ 'wc', 'blocksCheckout' ], }; const handleMap = { '@woocommerce/blocks-checkout': 'wc-blocks-checkout', }; module.exports = { // …snip plugins: [ new DependencyExtractionWebpackPlugin( { injectPolyfill: true, requestToExternal( request ) { if ( dependencyMap[ request ] ) { return dependencyMap[ request ]; } }, requestToHandle( request ) { if ( handleMap[ request ] ) { return handleMap[ request ]; } }, } ), ], }; ``` ## Folder Structure Overview This package contains the following directories. Navigate to a directory for more in depth documentation about each module. | Directory | Contents | | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [`blocks-registry/`](./blocks-registry) | Used to **register new Inner Blocks** that can be inserted either automatically or optionally within the Checkout Block. _**Example use case:** Creating a newsletter subscription block on the Checkout._ | | [`components/`](./components) | Components available for use by Checkout Blocks. | | [`filter-registry/`](./filter-registry) | Used to **manipulate content** where filters are available. _**Example use case:** Changing how prices are displayed._ ([Documentation](./filter-registry)) | | [`slot/`](./slot) | Slot and Fill are a pair of components which enable developers to render in a React element tree. In this context, they are used to **insert content within Blocks** where slot fills are available. _**Example use case:** Adding a custom component after the shipping options._ ([Documentation](./slot/README.md)) | | [`utils/`](./utils) | Miscellaneous utility functions for dealing with checkout functionality. |

WooCommerce
We're hiring! Come work with us!