Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
38eefd0
feat: using ecomm category placeholders to order navigation hierarchy
Benj0s Jul 10, 2025
8ec0307
feat: adding stricter types and immutability when enriching hierarchy…
Benj0s Jul 11, 2025
396a908
feat: only use selectable placeholder
Benj0s Jul 16, 2025
dc41968
fix: hide placeholder if 'is active button' unchecked
deeebeee3 Jul 21, 2025
e009c52
fix: pass child content active state when generating cms categories
Benj0s Jul 22, 2025
18e642c
feat: ecomm container renamed to match schemas
Benj0s Jul 29, 2025
fd7287b
feat: removing need for autopopulate ecomm flag
Benj0s Jul 30, 2025
de13ddd
feat: add placeholder indication
deeebeee3 Jul 30, 2025
98d175e
feat: add show all ecomm categories switch
deeebeee3 Jul 31, 2025
8b64883
feat: making sure the correct category id is passed
Benj0s Jul 31, 2025
25a9220
refactor: renaming properties for better visibility
Benj0s Jul 31, 2025
78e38ae
fix: moving empty array check earlier
Benj0s Jul 31, 2025
ea2fb04
refactor: removing unnecessary map return
Benj0s Jul 31, 2025
da1ca1f
Merge pull request #93 from amplience/feat/placeholdes-indicator
Benj0s Aug 5, 2025
0d1abb4
Merge pull request #94 from amplience/feat/show-all-switch
Benj0s Aug 5, 2025
dc8eb9c
fix: rename item type to match refactor name change
Benj0s Aug 5, 2025
2228f13
docs: update docs for navigation
deeebeee3 Aug 6, 2025
2c92251
fix: docs typo
deeebeee3 Aug 6, 2025
496ad8c
docs: Update to Working With Pages text and images
scottstore4 Aug 7, 2025
ef8d6ed
docs: update images
deeebeee3 Aug 7, 2025
3667fe7
docs: architecture update
neilmistryamplience Aug 8, 2025
3a09cdd
docs: change updates on Deep Dive & typo on EcommConfig
scottstore4 Aug 8, 2025
80bf323
docs: added hierarchy
neilmistryamplience Aug 8, 2025
8e0868f
Merge branch 'dev' into feature/docs-update
Benj0s Aug 19, 2025
44aefc6
docs: v5 upgrade docs
Benj0s Aug 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,5 +207,6 @@ In your Vercel project browse to Settings --> Environment Variables and edit the
- [Contribution Model (fork, PR, etc.)](https://github.com/amplience/dc-cli/blob/master/CONTRIBUTING.md)
- [FAQ](docs/FAQ.md)
- Upgrades:
- [v5.0.0 Upgrade](docs/v5.0.0-upgrade.md)
- [v4.0.0 Upgrade](docs/v4.0.0-upgrade.md)
- [v3.0.0 Upgrade](docs/v3.0.0-upgrade.md)
6 changes: 3 additions & 3 deletions docs/ArchDiagram.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# High-Level Architecture

<!-- TODO: Update to look better -->
## dc-demostore Architecture

![High-Level Architecture](../media/architecture.png)

[back](../README.md)
[back](../README.md)
16 changes: 9 additions & 7 deletions docs/DeepDive.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,24 @@ let filterRequest: GetByFilterRequest =

## Navigation Hierarchy

![Site Pages](../media/sitePages.png)
![alt text](../media/nav-sitePagesNew.png)

The `Site Pages` hierarchy defines the top navigation of the site.
This hierarchy is always loaded server-side and available for the Next.js pages.

Each commerce related node (Site Pages and Category Page) has an option to populate sub nodes from commerce.
Each commerce related node (Category Page and eComm Container) has an option to populate sub nodes from commerce.

![Site Pages](../media/site-pages-sub.png)
The eComm Container allows you to select all commerce categories to be shown in the visualisation menu or a selection of your choice. These can be re-ordered as you wish. More than one eComm Container can be added to distribute the commerce categories through the visualisation menu as desired.

When set to true, the navigation will auto populate sub items from the commerce category (or root).
![alt text](../media/nav-ecommContainer.png)

If set to false, only CMS managed sub items will appear.
The Category Page allows you to select one commerce category.

CMS managed sub items will display AFTER the commerce items.
![alt text](../media/nav-categoryPage.png)

The default automation has the Site Pages node set to true to automatically render sub items from commerce.
Further details are available at [WorkingWithPages.md](../docs/WorkingWithPages.md)

The default automation has the eComm Container node set to Show All to automatically render all sub items from commerce.

Other sub-hierarchies like `Components` and `Themes` are also always loaded in.

Expand Down
2 changes: 1 addition & 1 deletion docs/ECommerceConfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ For any of the supported integrations, you will need follow the guidance to setu

Details can be found in [dc-demostore-integration](https://github.com/amplience/dc-integration-middleware) for each of the supported commerce vendors.

## What do i need to change?
## What do I need to change?

There are 2 elements that you need to change to have your demostore work with a different supported eCommerce Vendor:

Expand Down
1 change: 1 addition & 0 deletions docs/FeatureHighlights.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- Content fully coming from Amplience Dynamic Content
- Multi-language & multi-currency front-end
- Multiple Components and Content Types implemented (banners, card lists, blogs, slots, etc.)
- Fully content managed 'Drag and Drop' hierarchy implementation.
- Multiple Visualisation implemented (page, standalone, time-based, etc.)
- Visualisation SDK implementation for Real-Time Visualisation from Amplience Dynamic Content
- Filter API implementation for Store page & Product Details Page personalisation
Expand Down
45 changes: 34 additions & 11 deletions docs/WorkingWithPages.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,58 @@ The concepts of pages are a key demonstrable area of Demostore. They exist in 2

### Navigation:

- **Category Page** - An item & page linked to a Commerce category (PLP)
- **Landing Page** - An item and standalone page for content only
- **External Page** - An item which has an external link for its page content
- **Landing Page** - A pure CMS driven page. An item and standalone page for content only. Via Page Group can link to a Category Page, External Page or another Landing Page. Shows as a CMS Item on hover in the visualisation.

![alt text](../media/nav-landing-page.png)

- **Category Page** - Links directly to a commerce category and allows CMS content. An item & page linked to a Commerce category (PLP), to which Page Groups or further Category Pages can be added. Shows as a CMS Override Item on hover in the visualisation.

![alt text](../media/nav-category-page.png)

- **Ecommerce Container** - Allows to you to draw all Ecommerce Categories into a single node - via Show All switch. Alternatively, select and reorder multiple Ecommerce Categories so you can control the order in which they appear in that existing node. Furthermore, you can use multiple Ecommerce Containers to distribute Ecommerce Categories amongst the CMS items. Shows as a Commerce Item on hover in the visualisation.

![alt text](../media/nav-ecommerce-container.png)

Show All above, below is selected Ecommerce Categories:

![alt text](../media/nav-ecommerce-categories.png)

- **External Page** - Menu item that links to an external URL. As this links to an External site, there are no further items that can be added. Displays as CMS Item on hover in the visualisation.

![alt text](../media/nav-external-page.png)

- **Page Group** - A grouping for sub nodes of any type with the exception of External Pages and Ecommerce Containers.

![alt text](../media/nav-page-group.png)

### Standalone:

- **Content Page** - A page which can be used by itself without being in the menu.

## Ordering in Navigation

Each item in the navigation has a `Priority` attribute. The number set in here is the order in which the navigation item is rendered.
Each of the navigation items mentioned above can be arranged by dragging and dropping in the left-hand-side hierarchy menu. This provides a powerful and flexible way to arrange items in the menu according to preference.

![alt text](../media/nav-ordering.png)

Example: 0 will be first
Existing drag-and-drop functionality, eg dragging a Page Group from a Landing Page to a Category Page continues to be available.

The priority is in relation to other priorities set at the same at the same level in the hierarchy. So for example if you have 2 nodes at the same level
When creating / adding an Ecommerce Container, you have two options:

- MyItemA [Priority set to 50]
- MyItemB [Priority set to 10]
1. When the 'Show All' toggle switch is checked (default option), this will pull in all the Ecommerce Categories in the order they are obtained from the CMS.

Will display as `MyItemB,MyItemA` in that order
![alt text](../media/nav-show-all.png)

> Note: When categories are set to automatically draw from commerce, they are given their priority with increments of 10 so that you can mix and max dynamic and curated navigation.
2. When it is unchecked you will be able to manually select and arrange the eCommerce categories via drag-and-drop inside of the Ecommerce Container. In addition to the drag-and-drop re-ording function, here are a number of other functions available to enhance the user experience such as Move to top, Add below, Move to top etc

> Additional node: If items have the same priority, they will display in order of which they are returned from the API.
> Note: A Page Group can only be added as a child of a Category Page or Landing Page.

## Hiding a page

Each of these content types has a flag in the content form called `is Active` which defaults to true.

![alt text](../media/nav-is-active.png)

If you disable this, then the page is no longer visible if attempting to visit it directly or in the menu navigation.

## Archiving a page & delivery keys
Expand Down
40 changes: 40 additions & 0 deletions docs/v5.0.0-upgrade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# V5.0.0 Upgrade

## ⚠️ Breaking change v5.0.0 (after v4.3.0) ⚠️

A breaking change was introduced _after_ version `v4.3.0` of this demostore FE due to depencies on the latest version of [dc-demostore-automation](https://github.com/amplience/dc-demostore-automation) `v5.0.0`

In order for your demostore to function, you need the following:

1. Automation should use latest automation `v5.0.0` from [dc-demostore-automation](https://github.com/amplience/dc-demostore-automation) using the lastest version of [dc-demostore-cli](https://github.com/amplience/dc-demostore-cli)
2. Latest version of the dc-demostore-core FE from [dc-demostore-core](https://github.com/amplience/dc-demostore-core)

### Recommended Upgrade path

This path assumes that you already have an Amplience Dynamic Content account with content and a deployed URL in Vercel.

1. Get latest version of dc-demostore-cli from npm

`npm update @amplience/dc-demostore-cli` or if you installed globally `npm update @amplience/dc-demostore-cli -g`

Once updated you can validate you are on the latest version by running the following command and checking that it matches the latest release on this github page:

```
demostore --version
```

2. Clean your Amplience Dynamic Content account to start from a blank canvas

`demostore cleanup -c -a`

3. Import from latest automation set

`demostore import -l`

See [import](../README.md#import) for details needed to update your front end

4. Update your front end [dc-demostore-core](https://github.com/amplience/dc-demostore-core) to the latest version and deploy using the right environment variables

### Staying on an older version

Deployed versions will continue to work if you are not changing anything.
Binary file modified media/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-category-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-categoryPage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-ecommContainer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-ecommerce-categories.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-ecommerce-container.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-external-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-is-active.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-landing-page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-ordering.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-page-group.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-show-all.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/nav-sitePagesNew.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading