Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adobe-rnd/aem-commerce-ssg
AppBuilder SSG Template for Edge Delivery Storefront
https://github.com/adobe-rnd/aem-commerce-ssg
adobe aem commerce helix helix5
Last synced: 2 days ago
JSON representation
AppBuilder SSG Template for Edge Delivery Storefront
- Host: GitHub
- URL: https://github.com/adobe-rnd/aem-commerce-ssg
- Owner: adobe-rnd
- Created: 2025-01-06T10:55:42.000Z (21 days ago)
- Default Branch: main
- Last Pushed: 2025-01-21T10:40:19.000Z (6 days ago)
- Last Synced: 2025-01-21T11:32:17.831Z (6 days ago)
- Topics: adobe, aem, commerce, helix, helix5
- Language: JavaScript
- Homepage: https://github.com/adobe-rnd/aem-commerce-ssg/wiki/Documentation
- Size: 177 KB
- Stars: 1
- Watchers: 11
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AppBuilder SSG Template for Edge Delivery Storefront
## Setup
- Populate the `.env` file in the project root and fill it as shown [below](#env)
- Add the folllowing to [helix-query](https://www.aem.live/docs/admin.html#schema/IndexConfig) config:
```yaml
index-published-products:
# adjust paths based on your specific requirements (i.e. storeCode, routes, ...)
target: s3://published-products-index.json
include:
- 'products/**'
properties:
sku:
select: head > meta[name="sku"]
value: attribute(el, "content")
last-modified:
select: none
value: parseTimestamp(headers["last-modified"], "ddd, DD MMM YYYY hh:mm:ss GMT")
# for benchmarking in the AppBuilder action
product-last-modified:
select: head > meta[name="x-cs-lastModifiedAt"]
value: parseTimestamp(attribute(el, "content"), "YYYY-MM-DDTHH:mm:ss.SSSZ")
```## Local Dev
- `aio app run` to start your local Dev server
- App will run on `localhost:9080` by defaultBy default the UI will be served locally but actions will be deployed and served from Adobe I/O Runtime. To start a
local serverless stack and also run your actions locally use the `aio app run --local` option.## Test & Coverage
- Run `aio app test` to run unit tests for ui and actions
- Run `aio app test --e2e` to run e2e tests## Deploy & Cleanup
- `aio app deploy` to build and deploy all actions on Runtime and static files to CDN
- `aio app undeploy` to undeploy the app## Config
### `.env`
You can generate this file using the command `aio app use`.
```bash
# This file must **not** be committed to source control## please provide your Adobe I/O Runtime credentials
# AIO_RUNTIME_AUTH=
# AIO_RUNTIME_NAMESPACE=
```### `app.config.yaml`
- Main configuration file that defines an application's implementation.
- Once ready, the action `check-product-changes` - in charge of detecting product changes, triggering generation and publishing of the respective Product Detail Pages - needs to be configured for periodic activation (every 1 minute); to do so, just comment out the following block from the yaml file:
```yaml
# triggers:
# everyMinTrigger:
# feed: /whisk.system/alarms/interval
# inputs:
# minutes: 1
# rules:
# everyMinRule:
# # When the action is invoked, it first checks
# # that no instances of the same action are already
# # running. If an instance is running, business logic
# # execution is skipped; if no instances are running,
# # it scans the Catalog to check for product changes.
# # The above means that the actual logic is not
# # necessarily executed every minute.
# trigger: everyMinTrigger
# action: check-product-changes
```
- More information on this file, application configuration, and extension configuration
can be found [here](https://developer.adobe.com/app-builder/docs/guides/appbuilder-configuration/#appconfigyaml)#### Action Dependencies
- You have two options to resolve your actions' dependencies:
1. **Packaged action file**: Add your action's dependencies to the root
`package.json` and install them using `npm install`. Then set the `function`
field in `app.config.yaml` to point to the **entry file** of your action
folder. We will use `webpack` to package your code and dependencies into a
single minified js file. The action will then be deployed as a single file.
Use this method if you want to reduce the size of your actions.2. **Zipped action folder**: In the folder containing the action code add a
`package.json` with the action's dependencies. Then set the `function`
field in `app.config.yaml` to point to the **folder** of that action. We will
install the required dependencies within that directory and zip the folder
before deploying it as a zipped action. Use this method if you want to keep
your action's dependencies separated.## LiveSearch
The action uses LiveSearch to list products from the store.
PLEASE NOTE that LiveSearch has a hard limit on the maximum number of results that can be returned in a search query: 10,000.
For further details, please see https://experienceleague.adobe.com/en/docs/commerce-merchant-services/live-search/boundaries-limits#query