Skip to content
Get Started

Explore the Structure

The storefront project is a collection of blocks (Content components, widgets, and drop-in components), scripts, and styles designed for amazing performance, easy customizations, and rapid content development.

Big picture

The file structure of the storefront boilerplate is shown here. Detailed descriptions are scheduled to be added before our April release.

  • Directoryblocks/ — Content and Commerce blocks
    • Directorycards/ — Content block
      • cards.css — CSS classes
      • cards.js — JavaScript decorator
    • Directorycolumns/ — Content block
      • columns.css — CSS classes
      • columns.js — JavaScript decorator
    • Directorycommerce-account/ — Commerce block
      • commerce-account.css — CSS classes
      • commerce-account.js — JavaScript decorator
    • Directorycommerce-cart/ — Commerce block
      • commerce-cart.css — CSS classes
      • commerce-cart.js — JavaScript decorator
    • Directorycommerce-checkout/ — Commerce block
      • commerce-checkout.css — CSS classes
      • commerce-checkout.js — JavaScript decorator
    • Directorycommerce-login/ — Commerce block
      • commerce-login.css — CSS classes
      • commerce-login.js — JavaScript decorator
    • Directorycommerce-order-confirmation/ — Commerce block
      • commerce-order-confirmation.css — CSS classes
      • commerce-order-confirmation.js — JavaScript decorator
    • Directoryfooter/ — Content block
      • footer.css — CSS classes
      • footer.js — JavaScript decorator
    • Directoryfragment/ — Content block
      • fragment.css — CSS classes
      • fragment.js — JavaScript decorator
    • Directoryheader/ — Content block
      • header.css — CSS classes
      • header.js — JavaScript decorator
    • Directoryhero/ — Content block
      • hero.css — CSS classes
      • hero.js — JavaScript decorator
    • Directoryproduct-details/ — Commerce block
      • product-details.css — CSS classes
      • product-details.js — JavaScript decorator
    • Directoryproduct-list-page/ — Commerce block
      • product-list-page.css — CSS classes
      • product-list-page.js — JavaScript decorator
    • Directoryproduct-teaser/ — Commerce block
      • product-teaser.css — CSS classes
      • product-teaser.js — JavaScript decorator
  • Directoryfonts/ — Default fonts
    • roboto-bold.woff2
    • roboto-regular.woff2
  • Directoryicons/ — SVG icons
    • caret-down-fill.svg
    • more…
  • Directoryscripts/ — JavaScript files that provide core site functions and connections to Commerce backend services
    • Directory__dropins__ — Imported drop-in components
      • Directorystorefront-cart/ — minified/optimized drop-in code
      • Directorystorefront-checkout/ — minified/optimized drop-in code
      • Directorystorefront-order-confirmation/ — minified/optimized drop-in code
      • Directorystorefront-pdp/ — minified/optimized drop-in code
    • Directorywidgets/ — Imported widgets
      • LiveSearchAutocomplete.js — For site search field in nav bar
      • search.js — For Product List Page
    • aem.js — AEM site functions
    • commerce.js — Commerce backend GraphQL queries
    • dropins.js — Drop-in endpoints and initializers/loaders
    • scripts.js — Loads blocks, fonts, and lazy-styles
    • others…
  • Directorystyles/ — CSS files for drop-in design tokens, fonts, deferred styles
    • fonts.css — Default font styles
    • lazy-styles.css — Global styles loaded post LCP
    • styles.css — Global site design tokens and styles
  • Directorytools/ — Commerce Picker code and Sidekick configuration file
    • Directorypicker/ — Picker project code
      • project-files… — Contains Catalog Services GraphQL queries for categories and products
    • Directorysidekick/ — Sidekick configuration
      • config.json — Configuration settings for Commerce Picker, including Picker button title
  • fstab.yaml — Connects the code to the content using the URL and ID to your Google Drive or SharePoint folder
  • head.html — Includes @dropin importmap, aem.js, scripts.js, and styles.css
  • helix-query.yaml — Defines the path and properties for your enrichment blocks
  • package.json — Includes aem-cli, @dropins/tools, and the currently integrated drop-in components

Vocabulary

Commerce drop-in components

Full-featured shopping components that turn websites into storefronts. [Drop-in components](/discovery/architecture/#drop-in components-and-widgets) are not primitive components, like Carousels and Galleries. They provide the entire storefront shopping experience for a website using pages and other commerce features.

Commerce blocks

The integration of Commerce drop-in components into the Edge Delivery Services architecture of JavaScript blocks and document-based authoring. Commerce blocks are the components that provide the content and layout for commerce pages in the storefront.

Content blocks

The Edge Delivery components that provide the content and layout for non-commerce pages in the storefront. These include Cards, Columns, Headers, Footers, and many more. Visit the Adobe Experience Manager Block Collection section for the details.

Start exploring

Run your storefront locally using the npm start command and use the table below to see how each boilerplate page has a corresponding Commerce block, which wraps the drop-in (or widget) that provides the block with its features and functions.

Relationship between the Commerce blocks and drop-in components

In the following table, the first column of links won’t resolve unless you have your storefront running locally on port 3000. The second column links to the Commerce block code in the boilerplate repository, and the third column links to the drop-in/widget code that powers the block.