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.yaml
to a file namedfstab.yaml
. - Update
fstab.yaml
with your own mountpoint for your content. - Rename
demo-config.json
to a file namedconfig.json
- Update
config.json
with 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.xlsx
to your content, and add aadmin.role.admin
row with your email address. - Preview/save this file. This should update the site config with the permissions.
- Delete the
/.helix/config.xlsx
and thefstab.yaml
again 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_token
cookie 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 i
You 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/storefront-cart@2.0. # 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-commerce
template, - Rename
default-fstab.yaml
tofstab.yaml
and add a mountpoint for your site content. Commit and push this file. - Rename
demo-config.json
toconfig.json
and 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