woocommerce/plugins/woocommerce-blocks/docs/contributors/folder-structure.md

201 lines
6.0 KiB
Markdown
Raw Normal View History

# Folder Structure
The following snippet explains how the WooCommerce Blocks repository is structured omitting irrelevant or obvious items with further explanations:
2022-08-25 12:39:34 +00:00
```text
├── LICENSE
├── README.md
├── .github/CODEOWNERS
├── .github/CODE*OF_CONDUCT.md
├── .github/CONTRIBUTING.md
├── .github/SECURITY.md
├── .distignore
├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .gitattributes
├── .gitignore
├── .prettierrc.js
├── .stylelintrc.json
├── phpcs.xml.dist
│ Dot files and config files used to configure the various linting tools
│ used in the repository (PHP, JS, styles...).
├── .nvmrc
│ Required Node version of the project.
├── babel.config.js
├── global.d.ts
├── tsconfig.base.json
├── tsconfig.json
├── webpack.config.js
│ Transpilation and bundling config files.
├── phpcs.xml
│ Config file for the PHP Coding Standards.
├── phpunit.xml.dist
│ Config file for PHPUnit.
├── postcss.config.js
│ Config file for PostCSS.
├── renovate.json
│ Config file for Renovate.
├── docker-compose.yml
│ Docker config files for the development and testing environment.
├── .env
├── .wp-env.json
│ Config files for the development and testing environment.
│ Includes WordPress, the WooCommerce plugin and the Storefront theme.
├── composer.lock
├── composer.json
│ Handling of PHP dependencies. Used for development tools and autoloading.
├── package-lock.json
├── package.json
│ Handling of JavaScript dependencies. Both for development tools and
│ production dependencies. The package.json also serves to define common
| tasks and scripts used for day to day development.
├── readme.txt
│ Readme of the WooCommerce Blocks plugin hosted on the WordPress
│ plugin repository.
├── woocommerce-gutenberg-products-block.php
│ Entry point of the WooCommerce Blocks plugin.
├── .github/*
│ Config of the different Github features (issues and PR templates, CI,
│ owners).
├── .sources/_
│ Sketch files of the WooCommerce Blocks plugin.
├── .wordpress-org/_
│ Assets of the WooCommerce Blocks plugin hosted on the WordPress plugin
│ repository.
├── assets/css/_
│ The SCSS files of the WooCommerce Blocks plugin.
├── assets/js/_
│ The React components of the WooCommerce Blocks plugin.
├── assets/js/atomic
│ The atomic components such as product title, product rating, product
│ image, etc. These atomic components are used by the product blocks.
├── assets/js/base
│ Base contains components specific to the frontend of the store.
│ Components placed here avoid loading larger Gutenberg dependencies to
│ keep client script sizes to a minimum.
├── assets/js/blocks-registry
│ Files that allows developers to connect their extensions to this plugin.
├── assets/js/blocks
│ The main blocks of the WooCommerce Blocks plugin such as the Active
│ Filters Block.
├── assets/js/data
│ Functionality to store data using Redux and wp.data.
├── assets/js/editor-components
│ Editor components such as the block-title component.
├── assets/js/extensions
│ TypeScript files to allow Google Analytics tracking of specific events
│ such as active payment method and removing cart items.
├── assets/js/filters
│ Filter such as excluding the checkout draft from Google Analytics.
├── assets/js/hocs
│ The Higher Order Components of the WooCommerce Blocks plugin.
├── assets/js/icons
│ The WooCommerce Blocks Icon library.
├── assets/js/middleware
│ The middleware code to handle Store API calls.
├── assets/js/payment-method-extensions
│ Functionality for the payment options such as PayPal.
├── assets/js/previews
│ The previews of various components such the All Products Block.
├── assets/js/settings
│ Functionality to view the settings in the frontend.
├── assets/js/shared
│ Shared components of the WooCommerce Blocks plugin.
├── assets/js/types
│ TypeScript definitions of the WooCommerce Blocks plugin.
├── assets/js/utils
│ Shared utilities of the WooCommerce Blocks plugin.
├── bin/\_
│ Set of scripts used to build the WordPress packages.
├── docs/\*
│ Set of documentation pages of the WooCommerce Blocks plugin.
├── images
│ Images for the payment options and the previews.
├── packages
│ Things that are likely to be published as npm packages in the future. Packages can be:
│ - Production JavaScript scripts and styles loaded on WordPress
│ and the WooCommerce Blocks plugin or distributed as npm packages.
│ - Development tools available on npm.
├── patches
│ Patches for 3rd party scripts applied when installing dependencies.
├── src
│ The core PHP files of the WooCommerce Blocks plugin.
├── storybook
│ Config of the [WooCommerce Blocks Storybook](https://woocommerce.github.io/woocommerce-gutenberg-products-block/).
├── templates/emails
│ Email templates of the WooCommerce Blocks plugin.
├── tests/e2e
│ Set of end-to-end tests.
├── tests/js
│ Configuration for Jest.
├── tests/php
│ Configuration for the PHP unit tests
├── tests/utils
│ Utilities for the test cases.
2022-08-25 12:39:34 +00:00
```
## Credits
This file is inspired by the great work of @JustinyAhin and @gziolo in <https://github.com/WordPress/gutenberg/blob/trunk/docs/contributors/folder-structure.md>.
<!-- FEEDBACK -->
---
[Docs] Update links from WooCommerce.com to Woo.com for the Woo Blocks documentation (#43055) * Update woocommerce.com URLs in documentation and code files * Add changelog * Fix github repository link in extend-rest-api-add-custom-fields.md Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com> * Add github reporter (#42974) * Add github reporter * Add changelog --------- Co-authored-by: Jon Lane <jon.lane@automattic.com> * Fix product task redirect to support grouped and external products (#43051) * Rearrange product redirection logic to better accept grouped and external produc types * Add changelog * Modify feedback modal actions (#43005) * Adapt feedback modal actions * Add changelogs * Modify comments * Fix tests * Fix test * Update class-wc-gateway-bacs.php (#43054) * Update class-wc-gateway-bacs.php Fix typo in textdomain * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com> * [Product Block Editor]: Add `Linked product` tab (#43009) * add linked-products to group IDs * add Linked Products tab * tweak hideConditions condition * changelog * fix typo in doc comment * Introduce a product type selection within the new experience (#41823) * Create a relation between the product type and the product block template * Add 'patterns' to name the kind of products that can be created for a specific template * Resolve template using its id as a template query param * Rename ProductEditPattern to ProductTemplate * Rename get_patterns hook to woocommerce_product_editor_get_product_templates * Return the list of templates to the client * Set layout template events as array * Register the layout template based on the product template or the post type in case of product variations * Registering non supported product types * Create and register the woocommerce/product-details-section-description block * Add the product type to the section description * Create product type selector * Fix menu item style * Highlight selected menu item * Set the selected product template * Set product template title to lowercase in the content description * Rename blocks by blockTemplates under the AbstractBlockTemplate class * Rename to woocommerce_product_editor_product_templates filter * Remove product_template_ prefix from the supported_product_types map * Rename get_formatted to to_JSON and convert the props to client side like * Refactor get_product_templates * Fix icon resolution * Add a confirmation modal for unsupported product templates * Add changelog files * Remove product types using for testing * Fix redirection when changing to a non supported product template * Set the change button state to busy when it is saving the product * Fix php linter errors * Fix rebase conflict * Move ProductTemplate to Automattic\WooCommerce\Admin\Features\ProductBlockEditor namespace * Add the to_json definition to the BlockTemplateInterface * Create default product template by custom product type if it does not have a template associated yet * Fix some comments and product template creation validation * Add support to load the product template icon from an external resource * Fix php linter * Fix the changelog description * [Experimental] Interactivity Dropdown multi-select mode, ratings filter and introduce each directive (#42981) --------- Co-authored-by: David Arenas <david.arenas@automattic.com> * Introduce the transient files engine (#42877) Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com> * Change marketplace install API request to POST instead of GET (#43033) * Change marketplace install API to using POST instead of GET * Fix linting error * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com> * Prep trunk for 8.6 cycle (#43021) Prep trunk for 8.6 cycle with version bump to 8.6.0-dev Co-authored-by: WooCommerce Bot <no-reply@woo.com> * Add Playwright tests for All Reviews, Reviews by Product and Reviews by Category blocks (#42903) * Remove Reviews blocks Puppeteer tests * Minor code cleanup * Typos * Create publishAndVisitPost() editor util * Fix subcategories when importing products in Playwright and add reviews * Add Reviews blocks tests in Playwright * More typos * Add changefile(s) from automation for the following project(s): woocommerce-blocks * Create a 'reviews' object in data.ts so we can store reviews data in one single place * Update test so instead of creating a new post in each test, we go to the already-created post * Add source comments to reviews data to match it with the script --------- Co-authored-by: github-actions <github-actions@github.com> * Release: Remove 8.5 change files (#43022) Delete changelog files from 8.5 release Co-authored-by: WooCommerce Bot <no-reply@woo.com> Co-authored-by: Alex López <alex.lopez@automattic.com> * Delete changelog files based on PR 43033 (#43079) Delete changelog files for 43033 Co-authored-by: WooCommerce Bot <no-reply@woo.com> * Delete changelog files based on PR 43051 (#43081) Delete changelog files for 43051 Co-authored-by: WooCommerce Bot <no-reply@woo.com> * Interactive Price Filter: use `context` instead of `state` (#42980) * feat: use context instead of state * fix: temporary move the context to inner element for diffing to work * fix: update context before navigation for optimistic UI * Load google analytics gtag script asynchronously in WooCommerce Blocks (#43040) Co-authored-by: github-actions <github-actions@github.com> * set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build (#43074) * set WOOCOMMERCE_BLOCKS_PHASE to 1 for the production build * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com> * Revert "Fix schedule sales error" (#43094) Revert "Fix schedule sales error (#42700)" This reverts commit 9b800aa179b25bafebfed0da8c00eec892272cb4. * [Product Block Editor]: add Linked product sections. First approach. (#43013) * add Linked products, Upsell section * changelog * add Cross-lens section * add links to the Upsell sections * changelog * fix lint issues * fix lint issus * fix linting issue :-| * check whether the linked product group is defined * [Product Block Editor]: introduce ShoppingBags component (#43042) * add ShoppingBags component * Add ShoppingBag story * changelog * Fix: Collection data being leaked between Collection Filters blocks (#43044) * fix: CYS - change heading color (#43076) * fix: CYS - change heading color * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com> * Delete changelog files based on PR 43074 (#43118) Delete changelog files for 43074 Co-authored-by: WooCommerce Bot <no-reply@woo.com> * [Product Block Editor]: fix feature flag to hide the Linked products (#43119) * fix flag to hide/show product editor * changelog * Add changelog --------- Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com> Co-authored-by: Jonathan Lane <lanej0@users.noreply.github.com> Co-authored-by: Jon Lane <jon.lane@automattic.com> Co-authored-by: louwie17 <lourensschep@gmail.com> Co-authored-by: Fernando Marichal <fernando.marichal@automattic.com> Co-authored-by: Marc Guay <marc.guay@gmail.com> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Damián Suárez <rdsuarez@gmail.com> Co-authored-by: Maikel David Pérez Gómez <maikel.perez@automattic.com> Co-authored-by: Sam Seay <samueljseay@gmail.com> Co-authored-by: Néstor Soriano <konamiman@konamiman.com> Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com> Co-authored-by: Kyle Nel <22053773+kdevnel@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: WooCommerce Bot <no-reply@woo.com> Co-authored-by: Alex López <alex.lopez@automattic.com> Co-authored-by: Tung Du <dinhtungdu@gmail.com> Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> Co-authored-by: Luigi Teschio <gigitux@gmail.com> Co-authored-by: Patricia Hillebrandt <patriciahillebrandt@gmail.com>
2023-12-29 15:28:11 +00:00
[We're hiring!](https://woo.com/careers/) Come work with us!
🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce-blocks/issues/new?assignees=&labels=type%3A+documentation&template=--doc-feedback.md&title=Feedback%20on%20./docs/contributors/folder-structure.md)
<!-- /FEEDBACK -->