This project boilerplate is for Edge Delivery Services projects that integrate with Adobe Commerce.
https://experienceleague.adobe.com/developer/commerce/storefront/
Out of the box, this project template uses a pre-configured Adobe Commerce environment. If you want to use your own Adobe Commerce environment, you'll need to update the public config in your site config to have values that match your environment.
Additionally, you need to have the following modules and customizations installed on your environment:
- adobe-commerce/storefront-compatibility: Contains changes to the Adobe Commerce GraphQL API that enable drop-ins functionality.
- magento/module-data-services-graphql: Commerce module with the functionality necessary for adding context to events.
- magento/module-page-builder-product-recommendations: Commerce module required for PRex Widget
- magento/module-visual-product-recommendations: Commerce module required for PRex Widget
Before using the boilerplate, we recommend you to go through the documentation on https://www.aem.live/docs/ and more specifically:
- Developer Tutorial
- The Anatomy of a Project
- Web Performance
- Markup, Sections, Blocks, and Auto Blocking
The boilerplate assumes you already have an aem.live org and will onboard a new site via config service. If you do not have an aem.live org, you will need to contact Adobe to have one created, or you can do the following:
- Upload the starter content somewhere (https://da.live, sharepoint, google drive, etc).
- Copy
default-fstab.yamlto a file namedfstab.yaml. - Update
fstab.yamlwith your own mountpoint for your content. - Rename
demo-config.jsonto a file namedconfig.json - Update
config.jsonwith your endpoints, headers, etc. - Commit and push both files.
- Install the AEM Code Sync Bot
- Verify the site is working at https://main--{site}--{org}.aem.page
- Add a
/.helix/config.xlsxto your content, and add aadmin.role.adminrow with your email address. - Preview/save this file. This should update the site config with the permissions.
- Delete the
/.helix/config.xlsxand thefstab.yamlagain and use the site config from here on.
Before running the command, replace all variables to match your project values:
{ORG}- Name of your organistation in GitHub.{SITE}- Name of your site in the org. For the first site in your org, it must be equal to the GitHub repository name.{REPO}- Name of your GitHub repository.{ADMIN_USER_EMAIL}- Email address of your config admin user.{ADMIN_USER_ID}- User ID of your authoring admin (click user icon in top right, then click "share" icon in da.live to copy).{DOMAIN}- Public facing domain of your site (e.g.www.your-shop.com).{ENDPOINT}- Your Commerce graphql endpoint.{CS_ENDPOINT}- Your Catalog Services endpoint.{YOUR_TOKEN}- Your personal access token. You can retrieve one from login via one of the methods from https://admin.hlx.page/login and copy the token from theauth_tokencookie in the response.
! Double check that there are no remaining template variables in the default files before you push !
Please use HTTP PUT for the initial creation of the configuration and POST for subsequent updates.
curl -X PUT 'https://admin.hlx.page/config/{org}/sites/{site}.json' \
-H 'content-type: application/json' \
-H 'x-auth-token: {YOUR_TOKEN}' \
--data-binary '@default-site.json'curl -X POST 'https://admin.hlx.page/config/{org}/sites/{site}/content/query.yaml' \
-H 'content-type: text/yaml' \
-H 'x-auth-token: {YOUR_TOKEN}' \
--data-binary '@default-query.yaml'curl -X POST 'https://admin.hlx.page/config/{org}/sites/{site}/content/sitemap.yaml' \
-H 'content-type: text/yaml' \
-H 'x-auth-token: {YOUR_TOKEN}' \
--data-binary '@default-sitemap.yaml'After you onboard to config service you can delete fstab.yaml and other files that are no longer necessary.
npm iYou may need to update one of the drop-in components, or @adobe/magento-storefront-event-collector or @adobe/magento-storefront-events-sdk to a new version. Besides checking the release notes for any breaking changes, ensure you also execute the postinstall script so that the dependenices in your scripts/__dropins__ directory are updated to the latest build. This should be run immediately after you update the component, for example:
npm install @dropins/[email protected]. # Updates the storefront-cart dependency in node_modules/
npm run postinstall # Copies scripts from node_modules into scripts/__dropins__
This is a custom script which copies files out of node_modules and into a local directory which EDS can serve. You must manually run postinstall due to a design choice in npm which does not execute postinstall after you install a specific package.
npm run lint- Create a new repository based on the
aem-boilerplate-commercetemplate, - Rename
default-fstab.yamltofstab.yamland add a mountpoint for your site content. Commit and push this file. - Rename
demo-config.jsontoconfig.jsonand update with your site values. - Add the AEM Code Sync GitHub App to the repository
- Install all dependencies using
npm i. - Start AEM Proxy:
npm run start(opens your browser athttp://localhost:3000) - Open the
{repo}directory in your favourite IDE and start coding :)
Major changes are described and documented as part of pull requests and tracked via the changelog tag. To keep your project up to date, please follow this list:
https://github.com/hlxsites/aem-boilerplate-commerce/issues?q=label%3Achangelog+is%3Aclosed