From c71917d0ecbc67cc1304fb185fecd591dfc8e62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gosta=C5=84ski?= <67002661+grixu@users.noreply.github.com> Date: Tue, 4 Feb 2025 17:43:12 +0100 Subject: [PATCH 01/22] feat: lay foundation (#7381) --- docs/content/guides/6.multistore/1.index.md | 32 +++++++++++++++++++ .../6.multistore/1.introduction/1.index.md | 20 ++++++++++++ .../2.alokai-solve-this-problem.md | 20 ++++++++++++ .../1.introduction/3.use-cases.md | 20 ++++++++++++ .../6.multistore/1.introduction/_dir.yml | 4 +++ .../2.tooling-and-concepts/1.index.md | 18 +++++++++++ .../2.file-based-inheritance.md | 20 ++++++++++++ .../3.development/3.managing-the-stores.md | 20 ++++++++++++ .../3.development/4.local-environment.md | 20 ++++++++++++ .../3.development/5.integration-tests.md | 20 ++++++++++++ .../3.development/_dir.yml | 3 ++ .../4.deployment/6.deployment.md | 20 ++++++++++++ .../4.deployment/7.configuration.md | 20 ++++++++++++ .../4.deployment/8.ci-cd.md | 20 ++++++++++++ .../4.deployment/_dir.yml | 3 ++ .../2.tooling-and-concepts/5.cli-reference.md | 20 ++++++++++++ .../2.tooling-and-concepts/_dir.yml | 4 +++ .../guides/6.multistore/3.patterns/1.index.md | 20 ++++++++++++ .../2.design/1.global-styles-per-store.md | 8 +++++ .../2.design/2.controlling-layout-with-cms.md | 8 +++++ .../3.different-styles-per-component.md | 8 +++++ .../2.design/4.different-code-per-store.md | 8 +++++ .../6.multistore/3.patterns/2.design/_dir.yml | 3 ++ .../1.different-config-same-integration.md | 8 +++++ .../2.different-integrations-per-store.md | 8 +++++ .../6.multistore/3.patterns/3.data/_dir.yml | 3 ++ .../4.testing/1.override-playwright-config.md | 8 +++++ .../3.patterns/4.testing/2.replace-mocks.md | 8 +++++ .../4.testing/3.skip-modify-tests.md | 8 +++++ .../3.patterns/4.testing/4.tests-debugging.md | 8 +++++ .../3.patterns/4.testing/_dir.yml | 3 ++ .../3.patterns/5.subpath/1.subpath-next.md | 8 +++++ .../3.patterns/5.subpath/2.subpath-nuxt.md | 8 +++++ .../5.subpath/3.subpath-middleware.md | 8 +++++ .../3.patterns/5.subpath/4.subpath-mixed.md | 8 +++++ .../3.patterns/5.subpath/_dir.yml | 3 ++ .../guides/6.multistore/3.patterns/_dir.yml | 4 +++ docs/content/guides/6.multistore/_dir.yml | 4 +++ 38 files changed, 436 insertions(+) create mode 100644 docs/content/guides/6.multistore/1.index.md create mode 100644 docs/content/guides/6.multistore/1.introduction/1.index.md create mode 100644 docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md create mode 100644 docs/content/guides/6.multistore/1.introduction/3.use-cases.md create mode 100644 docs/content/guides/6.multistore/1.introduction/_dir.yml create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml create mode 100644 docs/content/guides/6.multistore/3.patterns/1.index.md create mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md create mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md create mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md create mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md create mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml create mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md create mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md create mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml create mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md create mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md create mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md create mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md create mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml create mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md create mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md create mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md create mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md create mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml create mode 100644 docs/content/guides/6.multistore/3.patterns/_dir.yml create mode 100644 docs/content/guides/6.multistore/_dir.yml diff --git a/docs/content/guides/6.multistore/1.index.md b/docs/content/guides/6.multistore/1.index.md new file mode 100644 index 0000000000..bdce90b365 --- /dev/null +++ b/docs/content/guides/6.multistore/1.index.md @@ -0,0 +1,32 @@ +--- +title: +layout: default +--- + +# Multistore + +On this page you'll find a set of guides that will help you to understand the fundamentals of Alokai and how different parts of our stack will help you to build your Alokai application. + +Below you will find a list of guides to help you get started with Alokai. + +::card{title="Introduction" icon="tabler:brand-nextjs" to="/guides/multistore/introduction" } + +#description +Learn +:: + +
+ +::card{title="Tooling and concepts" icon="tabler:brand-react" to="/guides/multistore/tooling-and-concepts" } + +#description +Learn +:: + +
+ +::card{title="Patterns" icon="tabler:brand-nuxt" to="/guides/multistore/patterns" } + +#description +Learn +:: diff --git a/docs/content/guides/6.multistore/1.introduction/1.index.md b/docs/content/guides/6.multistore/1.introduction/1.index.md new file mode 100644 index 0000000000..813ddce2d1 --- /dev/null +++ b/docs/content/guides/6.multistore/1.introduction/1.index.md @@ -0,0 +1,20 @@ +--- +title: Challenges with multistore setups +layout: default +--- + +# Challenges with multistore setups + +Let's get started! + +::card{title="Next: How Alokai is uniquely positioned to solve this problem better than others" icon="tabler:number-1-small" } + +#description + +TODO + +#cta +:::docs-button{to="/guides/multistore/introduction/alokai-solve-this-problem"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md b/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md new file mode 100644 index 0000000000..c055ebcb14 --- /dev/null +++ b/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md @@ -0,0 +1,20 @@ +--- +title: How Alokai is uniquely positioned to solve this problem better than others +layout: default +navigation: + icon: tabler:number-1-small +--- + +# How Alokai is uniquely positioned to solve this problem better than others + + +::card{title="Next: Use cases" icon="tabler:number-2-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/introduction/use-cases"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/1.introduction/3.use-cases.md b/docs/content/guides/6.multistore/1.introduction/3.use-cases.md new file mode 100644 index 0000000000..b218461dab --- /dev/null +++ b/docs/content/guides/6.multistore/1.introduction/3.use-cases.md @@ -0,0 +1,20 @@ +--- +title: Use cases +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Use cases + + +::card{title="Next: Tooling and concepts" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/1.introduction/_dir.yml b/docs/content/guides/6.multistore/1.introduction/_dir.yml new file mode 100644 index 0000000000..4c60ff0303 --- /dev/null +++ b/docs/content/guides/6.multistore/1.introduction/_dir.yml @@ -0,0 +1,4 @@ +title: Introduction +sidebarRoot: true +navigation: + icon: tabler:brand-nextjs diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md new file mode 100644 index 0000000000..f5c1060794 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md @@ -0,0 +1,18 @@ +--- +title: Tooling and Concepts +layout: default +--- + +# Tooling and concepts + + +::card{title="Next: File-based inheritance" icon="tabler:number-1-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/file-based-inheritance"} +Start building +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md new file mode 100644 index 0000000000..267d19df9f --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md @@ -0,0 +1,20 @@ +--- +title: File-based inheritance +layout: default +navigation: + icon: tabler:number-1-small +--- + +# File-based inheritance + + +::card{title="Next: Development - Managing the stores" icon="tabler:number-2-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/managing-the-stores"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md new file mode 100644 index 0000000000..7adbb143d0 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md @@ -0,0 +1,20 @@ +--- +title: Managing the stores +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Development - Managing the stores + + +::card{title="Next: Development - Using a local environment" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/local-environment"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md new file mode 100644 index 0000000000..13047cb5cf --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md @@ -0,0 +1,20 @@ +--- +title: Using a local environment +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Development - Using a local environment + + +::card{title="Next: Development - Writing an integration tests with Playwright" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/integration-tests"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md new file mode 100644 index 0000000000..c6e906e8b8 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md @@ -0,0 +1,20 @@ +--- +title: Writing an integration tests with Playwright +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Development - Writing an integration tests with Playwright + + +::card{title="Next: Deployment - How it works?" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/deployment"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml new file mode 100644 index 0000000000..9288da640d --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml @@ -0,0 +1,3 @@ +title: Development +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md new file mode 100644 index 0000000000..c1fe18a703 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md @@ -0,0 +1,20 @@ +--- +title: How it works? +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Deployment - How it works? + + +::card{title="Next: Deployment - Configuration" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/configuration"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md new file mode 100644 index 0000000000..00e5d1b241 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md @@ -0,0 +1,20 @@ +--- +title: Configuration +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Deployment - Configuration + + +::card{title="Next: Deployment - CI/CD" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/ci-cd"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md new file mode 100644 index 0000000000..1af60c6540 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md @@ -0,0 +1,20 @@ +--- +title: CI/CD +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Deployment - CI/CD + + +::card{title="Next: CLI Reference" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/tooling-and-concepts/cli-reference"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml new file mode 100644 index 0000000000..f7d92d9d9e --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml @@ -0,0 +1,3 @@ +title: Deployment +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md new file mode 100644 index 0000000000..13ab6fe8df --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md @@ -0,0 +1,20 @@ +--- +title: CLI Reference +layout: default +navigation: + icon: tabler:number-2-small +--- + +# CLI Reference + + +::card{title="Next: Patterns" icon="tabler:number-3-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/patterns"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml new file mode 100644 index 0000000000..47138f2ac0 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml @@ -0,0 +1,4 @@ +title: Tooling and concepts +sidebarRoot: true +navigation: + icon: tabler:brand-react-native diff --git a/docs/content/guides/6.multistore/3.patterns/1.index.md b/docs/content/guides/6.multistore/3.patterns/1.index.md new file mode 100644 index 0000000000..78402c6217 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/1.index.md @@ -0,0 +1,20 @@ +--- +title: Patterns +layout: default +--- + +# Patterns + + +Let's get started! + +::card{title="Next: Design - Global styles per store" icon="tabler:number-1-small" } + +#description +TODO + +#cta +:::docs-button{to="/guides/multistore/patterns/global-styles-per-store"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md b/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md new file mode 100644 index 0000000000..535f73fbb2 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md @@ -0,0 +1,8 @@ +--- +title: Global styles per store +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Global styles per store. diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md b/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md new file mode 100644 index 0000000000..17e112628b --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md @@ -0,0 +1,8 @@ +--- +title: Controlling layout with CMS +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Controlling layout with CMS diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md b/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md new file mode 100644 index 0000000000..3225c1eb1b --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md @@ -0,0 +1,8 @@ +--- +title: Different styles for individual components +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Different styles for individual components diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md b/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md new file mode 100644 index 0000000000..09a21d458f --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md @@ -0,0 +1,8 @@ +--- +title: Different markups for individual components +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Different markups for individual components diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml b/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml new file mode 100644 index 0000000000..439d3defcc --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml @@ -0,0 +1,3 @@ +title: Design +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md b/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md new file mode 100644 index 0000000000..6de0d10665 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md @@ -0,0 +1,8 @@ +--- +title: Different configurations for the same integration +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Different configurations for the same integration diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md b/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md new file mode 100644 index 0000000000..12d8bdff14 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md @@ -0,0 +1,8 @@ +--- +title: Different integrations in each store +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Different integrations in each store diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml b/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml new file mode 100644 index 0000000000..9b4bf97ddc --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml @@ -0,0 +1,3 @@ +title: Data +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md b/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md new file mode 100644 index 0000000000..5310351668 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md @@ -0,0 +1,8 @@ +--- +title: Override Playwright configurations for individual stores +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Override Playwright configurations for individual stores diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md b/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md new file mode 100644 index 0000000000..430554a809 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md @@ -0,0 +1,8 @@ +--- +title: Replace or extend mocked endpoints +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Replace or extend mocked endpoints diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md b/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md new file mode 100644 index 0000000000..de83fc6875 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md @@ -0,0 +1,8 @@ +--- +title: Skip specific tests or add new ones to the suite +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Skip specific tests or add new ones to the suite diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md b/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md new file mode 100644 index 0000000000..646cf76a52 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md @@ -0,0 +1,8 @@ +--- +title: Debugging issues during test execution +layout: default +navigation: + icon: tabler:number-1-small +--- + +# Debugging issues during test execution diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml b/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml new file mode 100644 index 0000000000..df7b4dd76a --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml @@ -0,0 +1,3 @@ +title: Testing +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md new file mode 100644 index 0000000000..409b22eec4 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md @@ -0,0 +1,8 @@ +--- +title: How to make sub-path routing on Next +layout: default +navigation: + icon: tabler:number-1-small +--- + +# How to make sub-path routing on Next diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md new file mode 100644 index 0000000000..2c864d8c6b --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md @@ -0,0 +1,8 @@ +--- +title: How to make sub-path routing on Nuxt +layout: default +navigation: + icon: tabler:number-1-small +--- + +# How to make sub-path routing on Nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md new file mode 100644 index 0000000000..ee0e896ef3 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md @@ -0,0 +1,8 @@ +--- +title: How to make sub-path routing on Middleware +layout: default +navigation: + icon: tabler:number-1-small +--- + +# How to make sub-path routing on Middleware diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md new file mode 100644 index 0000000000..003313dad1 --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md @@ -0,0 +1,8 @@ +--- +title: How to make mixed solution with domain and sub-path routing +layout: default +navigation: + icon: tabler:number-1-small +--- + +# How to make mixed solution with domain and sub-path routing diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml b/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml new file mode 100644 index 0000000000..de2b8bd3cf --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml @@ -0,0 +1,3 @@ +title: Subpath Routing +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/_dir.yml b/docs/content/guides/6.multistore/3.patterns/_dir.yml new file mode 100644 index 0000000000..cfc737505a --- /dev/null +++ b/docs/content/guides/6.multistore/3.patterns/_dir.yml @@ -0,0 +1,4 @@ +title: Patterns +sidebarRoot: true +navigation: + icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/_dir.yml b/docs/content/guides/6.multistore/_dir.yml new file mode 100644 index 0000000000..f14d6b3436 --- /dev/null +++ b/docs/content/guides/6.multistore/_dir.yml @@ -0,0 +1,4 @@ +title: Multistore +sidebarRoot: true +navigation: + icon: tabler:123 From c435c0dbd957c99512123bc689aa4a24944a5c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Mon, 17 Feb 2025 10:14:35 +0700 Subject: [PATCH 02/22] docs(TF-404): file based inheritance (#7389) * docs(TF-404): file based inheritance * fix: title case * docs: describe base apps * docs: story telling * docs: describe project name and cloud region * docs: include esling config, prettier and tailwind * docs: concise moving stores * docs: remove storefront-cli fragments * docs: file basde inheritance update * docs: mark direct and inheritance stores * docs: move and expand the file resolution process * docs: update file override system example * Update docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md Co-authored-by: Filip Rakowski * Update docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md Co-authored-by: Filip Rakowski * docs: change store type namings * docs: change order of what you'll learn * docs: add diagram --------- Co-authored-by: Filip Rakowski --- .../2.file-based-inheritance.md | 376 ++++++++++++++++++ .../img/file-based-inheritance.svg | 73 ++++ 2 files changed, 449 insertions(+) create mode 100644 docs/content/guides/6.multistore/img/file-based-inheritance.svg diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md index 267d19df9f..6cbf6b1cd4 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md @@ -7,6 +7,382 @@ navigation: # File-based inheritance +File-based inheritance is a powerful feature in Alokai that enables efficient code sharing and customization across multiple stores. It allows you to maintain a consistent functionality across multiple stores while customizing specific parts of the codebase for different brands or regions. + +Imagine you're managing multiple online stores: +- A luxury fashion brand with a minimalist design +- A sports equipment store with dynamic, high-energy UI + +While each brand needs its unique look and feel, you don't want to build everything from scratch every time. You also want to share common functionality like shopping carts and checkout flows between stores, while keeping brand-specific customizations separate. + +This is where Alokai's file-based inheritance comes in. It lets you: +- Share common code between all your stores +- Customize specific components for each brand +- Create new stores quickly by inheriting existing functionality +- Maintain all stores efficiently from a single codebase + +For example, your luxury brand and sports store could share the same checkout flow code, while having completely different product displays and navigation. + +**What You'll Learn** + +::list{type="success"} +- Understanding file-based inheritance and its core concepts +- Different types of stores and when to use them +- How to create and manage stores using the CLI +- How store hierarchy and file overrides work +- How stores are composed and built +- Best practices and common pitfalls to avoid +:: + +## Core Concepts + +### What is File-Based Inheritance? + +File-based inheritance allows you to reuse common code across stores while enabling the customization of specific parts. + +1. **Code Reuse** + - Stores inherit all files from base applications by default + - Common functionality is maintained in one place + - Changes in base code automatically propagate to all stores + +2. **Selective Customization** + - Stores can override specific files when needed + - Only override what's different, inherit everything else + - Maintain the same file path structure for overrides + +3. **Hierarchical Inheritance** + - Stores can inherit from other stores + - Multiple levels of inheritance are supported + - More specific overrides take precedence over general ones + +### Project Structure + +Every project starts with a single store called `default`. + +:::tip +There is nothing special within the `default` store, it is treated just like any other store. You can rename it to whatever you want. +::: + +Every store inherits from these base applications: +```bash +apps/storefront-unified-nextjs/ # Next.js Storefront +apps/storefront-unified-nuxt/ # Nuxt Storefront +apps/storefront-middleware/ # Middleware +apps/playwright/ # E2E tests +``` + +These base applications contain the default implementation of all features. When you create a new store, it automatically inherits all files from these base applications. You only need to override files when you want to customize specific functionality for your store. + +### Store Types + +Alokai supports two types of stores to accommodate different business needs: + +#### Deployable Stores +- Stores that are meant to be deployed and run +- Have their own build output in `.out/` +- Can override files from ancestor stores +- Can add store-specific files +- Example: An actual online store for a specific brand or region + +#### Template Stores +- Stores that are never deployed +- Act as shared configuration/code providers for their descendant stores +- Used to group common overrides for a set of related stores +- No build output in `.out` directory +- Example: A regional configuration store containing shared theme and regulations for all stores in that region + +## Creating New Stores + +To create a new store, use the `store add` command: + +```bash +yarn store add +``` + +:::warning +Although you can use `npx @alokai/cli store`, we recommend using `yarn store` as it will use the correct version of the CLI installed in your project. +::: + +The CLI will guide you through the process and allow you to: +- Choose the store id +- Choose the parent store - you can decide if the new store should be a child of another store +- Choose the store type (template or deployable) +- Choose the console project name and cloud region + +:::info CLI Reference +For more information on the CLI and its available commands, please refer to the [CLI reference](/guides/multistore/tooling-and-concepts/cli-reference). +::: + +:::tip Deployment +Console project name and cloud region are used when deploying the store. You can read more about it in the [Deployment](/guides/multistore/tooling-and-concepts/deployment/deployment) guide. +::: + +## Managing Store Hierarchy + +### Store Structure + +Simple hierarchy example with deployable stores only: +```bash +apps/ +├── storefront-unified-nextjs/ # Base shared code +└── stores/ + ├── brand-a/ # Deployable store + │ └── storefront-unified-nextjs/ + └── brand-b/ # Deployable store + └── storefront-unified-nextjs/ +``` + +Complex hierarchy example with both deployable and template stores: +```bash +apps/ +├── storefront-unified-nextjs/ # Base shared code +└── stores/ + ├── fashion-brand/ # Template store + │ ├── storefront-unified-nextjs/ # Shared fashion brand customizations + │ └── stores/ + │ ├── us-store/ # Deployable store + │ └── eu-store/ # Deployable store + └── sports-brand/ # Template store + ├── storefront-unified-nextjs/ # Shared sports brand customizations + └── stores/ + ├── us-store/ # Deployable store + └── eu-store/ # Deployable store +``` + +:::tip Template vs Deployable Stores +Template stores (`fashion-brand` and `sports-brand`) are used to share code between their child stores, while deployable stores (`us-store` and `eu-store`) are the ones that get deployed and run. Template stores can define completely different UI components and styling, customer journey flows, product presentation, and regional adaptations that will be inherited by their deployable children. +::: + +#### When to use complex hierarchies +Complex hierarchies make sense when you have multiple brands or store families that need different: +- Visual themes +- Features and functionality +- Business logic +- Regional customizations + +![Composing pages](/guides/6.multistore/img/file-based-inheritance.svg) + +In the example above, a single page is composed of: +- `navbar` component from the base app +- `body` from the `fashion-brand` store, as it overrides the base app's `body` +- `footer` from the `us-store` store, as it overrides the base app's `footer` and the `fashion-brand` store's `footer` + +:::warning Keep it Simple +Only create inheritance levels when you need to share code between multiple stores. If you have just one brand or store family, keep everything in the base shared code (`apps/storefront-unified-nextjs/`). +::: + +### Moving Stores + +You can reorganize your store hierarchy using the `store move` command: + +```bash +yarn store move +``` + +This command allows you to move stores between different parents and restructure your store hierarchy. For detailed information about managing stores, including moving, renaming, and organizing them, see the [Managing the stores](/guides/multistore/tooling-and-concepts/development/managing-the-stores) guide. + +### File Override System + +Example: Let's say you want to customize the header component for your `brand-a` store. + +1. Copy the original header from the base app: +```bash +# Original header +apps/storefront-unified-nextjs/components/header.tsx + +# Copy it to your store's directory +apps/stores/brand-a/storefront-unified-nextjs/components/header.tsx +``` + +2. Modify the copied file to match your brand's needs. + +Now `brand-a` will use its own version of `header.tsx`, while inheriting all other files from the base application. + +:::warning +Always maintain the same file path structure when overriding files. For example, if you're overriding a component from `apps/storefront-unified-nextjs/components/header.tsx`, place it in `apps/stores/brand-a/storefront-unified-nextjs/components/header.tsx` in your store's directory. +::: + +#### File Resolution Process + +When the CLI needs to compose the stores (during development or build), it follows a specific inheritance chain: + +1. First, it looks in the current store's directory + ```bash + # For example, for us-store looking for header.tsx: + apps/stores/fashion-brand/stores/us-store/storefront-unified-nextjs/components/header.tsx + ``` + +2. If not found, it checks ancestor stores in reverse order (closest parent first) + ```bash + # First checks immediate parent (fashion-brand): + apps/stores/fashion-brand/storefront-unified-nextjs/components/header.tsx + ``` + +3. Finally, it looks in the base applications + ```bash + # Base app is the last resort: + apps/storefront-unified-nextjs/components/header.tsx + ``` + +The first matching file found is used. This allows stores to: +- Override specific files while inheriting others +- Share common customizations through parent stores +- Fall back to base functionality when no override exists + +:::tip +This resolution process applies to all file types: components, styles, configurations, etc. Understanding this helps you organize your overrides effectively. +::: + +## Technical Implementation + +### TypeScript Configuration + +The CLI automatically generates a `tsconfig.json` for each store. It's worth noting that the following configuration ensures the store can import files from the base storefront, ancestor stores, and the store itself: + +```json +{ + "compilerOptions": { + "paths": { + "@/*": ["./*", "../../../storefront-unified-nextjs/*"], + "@sf-modules/*": ["./sf-modules/*", "../../../storefront-unified-nextjs/sf-modules/*"] + }, + "rootDirs": ["./", "../../../storefront-unified-nextjs"] + } +} +``` + +:::warning Do not modify tsconfig.json +The system automatically manages TypeScript configuration. Manual changes may break inheritance. +::: + +### Change Detection + +During the development process, the CLI: +- Automatically detects file changes in parent stores +- Propagates changes down the inheritance chain +- Respects overrides in child stores + +:::tip +You can read more about the change detection in the [Using a local environment](/guides/multistore/tooling-and-concepts/development/local-environment) guide. +::: + +## Store Composition and Build Output + +### How Stores are Composed + +When building stores, the system: +1. Collects all files from the base apps (`apps/storefront-unified-nextjs/`, etc.) +2. Applies overrides from parent stores in order +3. Finally applies the store's own overrides +4. Outputs the composed store to `.out//` + +For example, with this hierarchy: +```bash +apps/ +├── storefront-unified-nextjs/ # Base shared code +│ ├── components/ +│ │ └── ProductCard.tsx # Original component +└── stores/ + └── fashion-brand/ + ├── storefront-unified-nextjs/ + │ └── components/ + │ └── ProductCard.tsx # Override 1 + └── stores/ + └── us-store/ + └── storefront-unified-nextjs/ + └── components/ + └── ProductCard.tsx # Override 2 +``` + +The build process for `us-store` would: +1. Start with base files from `apps/storefront-unified-nextjs/` +2. Apply overrides from `fashion-brand` +3. Apply overrides from `us-store` +4. Output to `.out/us-store/` + +### Build Output Structure + +Each deployable store is built into its own directory: +```bash +.out/ +├── fashion-brand/ +│ ├── storefront-unified-nextjs/ # Composed Next.js app +│ ├── storefront-middleware/ # Composed middleware +│ └── playwright/ # Composed tests +└── us-store/ + ├── storefront-unified-nextjs/ # Composed Next.js app + ├── storefront-middleware/ # Composed middleware + └── playwright/ # Composed tests +``` + +#### Template Stores +Template stores are not built into the `.out` directory because: +- They are used only for sharing code with descendant stores +- They don't have their own deployment or runtime +- They serve as configuration templates for their descendant stores + +For example, if `eu-region` is a template store with descendant stores `fr-store` and `de-store`, only `fr-store` and `de-store` will appear in the `.out` directory. Any code or configuration in `eu-region` will be inherited by its descendants but `eu-region` itself won't be built. + +:::info File Selection +The system always selects the most specific override in the inheritance chain. If a file is overridden at multiple levels, the closest override to the current store takes precedence. +::: + +### Special Files + +Some files receive special treatment during composition: + +- `package.json`: Cannot be overridden by the store. It is copied from the root apps with updated store-specific name. +- `tsconfig.json`: Automatically generated for each store, based on the `tsconfig.json` in the root apps. + +## Best Practices + +1. **Minimize Overrides** +- Only override files when necessary +- Consider creating shared components in parent stores +- Use configuration files for simple customizations + +2. **Maintain Clear Structure** +- Follow consistent directory organization +- Document store relationships +- Keep inheritance chains shallow when possible + +3. **Testing** +- Test changes across the entire inheritance chain +- Verify overrides don't break parent functionality +- Include tests for store-specific features + +## Common Pitfalls + +1. **Incorrect File Placement** + - Always place files within app-specific directories + - Maintain consistent paths across stores + +2. **Breaking Changes** + - Consider the impact on child stores when modifying shared code + - Test changes thoroughly across the inheritance chain + +3. **Deep Inheritance** + - Avoid deep inheritance chains (more than 3 levels) + - Consider flattening the structure if maintenance becomes difficult + +4. **Special File Handling** + - `package.json`: + - Do not create this file within store directories + - The CLI automatically generates it in `.out` directory during build + - Add all dependencies to the root app's `package.json` (e.g., `apps/storefront-unified-nextjs/package.json`) + - `tsconfig.json`: + - Do not modify this file within store directories + - The CLI automatically generates and manages it + - Manual changes may break the inheritance system + - `eslint.config.mjs`: + - Every app in every store has its own ESLint config file + - By default, it uses the shared ESLint config rules present in the `packages/eslint-config` + - It is recommended to use the shared ESLint config to avoid duplication and ensure consistency across the project + - `prettier.config.mjs`: + - Same as ESLint config + - `tailwind.config.ts`: + - Same as ESLint config + ::card{title="Next: Development - Managing the stores" icon="tabler:number-2-small" } diff --git a/docs/content/guides/6.multistore/img/file-based-inheritance.svg b/docs/content/guides/6.multistore/img/file-based-inheritance.svg new file mode 100644 index 0000000000..041883968d --- /dev/null +++ b/docs/content/guides/6.multistore/img/file-based-inheritance.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 7bc5bbf6048637a70beeab4e696defba8a3e605e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Mon, 17 Feb 2025 21:28:05 +0700 Subject: [PATCH 03/22] docs(TF-407): adding integration tests (#7393) * docs(TF-407): adding integration tests * chore: add missing img * fix: overriding base test * chore: turn file names into comments * docs: expand on overriding the file * docs: move integration tests explanation to the beginning --- .../3.development/5.integration-tests.md | 263 +++++++++++++++++- .../img/running-test-in-ui-mode.png | Bin 0 -> 294610 bytes 2 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 docs/content/guides/6.multistore/img/running-test-in-ui-mode.png diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md index c6e906e8b8..50260ebd8f 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md @@ -7,14 +7,273 @@ navigation: # Development - Writing an integration tests with Playwright +This guide explains how to create and run integration tests using Playwright in your Alokai multistore project. Integration tests verify that different parts of your store work together correctly by: +- Running against composed stores (respecting inheritance) +- Using mocked API responses to test user flows without external services +- Verifying UI components and page behavior +- Running in the Playwright test runner + +**What You'll Learn** + +::list{type="success"} +- Understanding integration tests in multistore setup +- Creating and configuring test mocks +- Writing your first Playwright test +- Running tests locally +:: + +## Prerequisites + +Before writing integration tests, make sure you understand: +- [File-based inheritance](/guides/multistore/tooling-and-concepts/file-based-inheritance) - Tests follow the same inheritance rules as your stores +- Familiarity with [managing the stores](/guides/multistore/tooling-and-concepts/development/managing-the-stores) +- Basic knowledge of [Playwright](https://playwright.dev/) + +## Adding Integration Tests - Real-World Example + +Let's walk through adding integration tests to a `fashion-brand` store that uses an LLM-based recommendations system to suggest products based on user behavior and preferences. + +Here's our project structure: + +```bash +apps/ +├── storefront-unified-nextjs/ # Base shared code +└── stores/ + ├── fashion-brand/ + │ ├── playwright/ + │ ├── storefront-middleware/ # Middleware customizations + │ │ └── integrations/ + │ │ └── / + │ │ └── extensions/ + │ │ └── recommendations.ts # LLM recommendations logic + │ └── storefront-unified-nextjs/ # Frontend customizations + │ └── app/ + │ └── [locale]/ + │ └── (default)/ + │ └── recommendations/ + │ └── page.tsx # Recommendations page + └── sports-brand/ # Another store +``` + +In this example: +1. The `fashion-brand` store has a custom recommendations extension in the middleware +2. The extension adds a new `getRecommendations` method to the eCommerce API +3. A new `/recommendations` page displays personalized product recommendations +4. We would like to test that the recommendations are displayed correctly + +::tip Adding features for all stores +If you want to add a new feature for all stores, you can add them to the base apps within the `apps/storefront-unified-nextjs`, `apps/storefront-unified-nuxt` and `apps/storefront-middleware` folders. Similarly, tests that should run for all stores can be added to the `apps/playwright` folder. +:: + +::steps + +#step-1 +### Creating Test Mocks + +Mocks simulate API responses during testing, making tests reliable and fast. Let's create the necessary mocks for our recommendations feature. + +::info +Mocks are set up with the [h3](https://h3.unjs.io/) package. This is a lightweight HTTP server library that is used to create mock APIs for your tests. +:: + +#### 1. Create Mock Endpoint +First, create a mock handler for your API endpoint: + +```ts +// apps/stores/fashion-brand/playwright/mocks/recommendations/endpoints/getRecommendations.ts +import type { MockFactoryContext } from '@core'; +import { defineEventHandler } from 'h3'; + +export default function ({ router }: MockFactoryContext) { + return router.post( + `/getRecommendations`, + defineEventHandler(async (event) => { + return Promise.resolve([ + // Mock data for recommendations + ]) + }), + ); +} +``` + +#### 2. Create Mock Server Factory +Next, create a server factory to organize your mock endpoints: + +```ts +// apps/stores/fashion-brand/playwright/mocks/recommendations/server.ts +import type { MockFactoryContext } from '@core'; +import { getRecommendations } from './endpoints'; + +export const serverFactory = [(ctx: MockFactoryContext) => getRecommendations(ctx)]; +``` + +#### 3. Register Mock Server +Finally, register your mock server by overriding the `mainRouterFactory`: + +1. Copy the `apps/playwright/mocks/init.ts` file to your store +2. Then, add your new mock server to the `mainRouterFactory` + +```ts +// apps/stores/fashion-brand/playwright/mocks/init.ts +import { pipe } from '@core'; +import { createRouter, defineEventHandler, sendNoContent, useBase } from 'h3'; + +import { serverFactory as cmsEndpoints } from './cms/server'; +import { serverFactory as unifiedEndpoints } from './unified/server'; +import { serverFactory as recommendationsEndpoints } from './recommendations/server'; + +export const mainRouterFactory = () => { + const mainRouter = createRouter(); + + // ... existing router setup ... + + // Add your new mock router + const recommendationsRouter = pipe(recommendationsEndpoints, createRouter()); + mainRouter.use( + '/commerce/recommendations/**', + useBase('/commerce/recommendations', recommendationsRouter.handler) + ); + + return mainRouter; +}; +``` + +#step-2 +### Creating Page Objects + +#### 1. Create Page Object Class + +```ts +// apps/stores/fashion-brand/playwright/setup/pageObjects/recommendations.page.ts +import { BasePage } from '@core'; + +export class RecommendationsPage extends BasePage { + // Define page elements + public readonly recommendationsGrid = this.page.getByTestId('recommendations-grid'); + + override async prepare() { + // Add custom preparation logic if needed. For example, you + // can set up the mock database here. + return this; + } +} +``` + +::tip Learn more about Page Objects Models +Page Object Models are a common pattern in test automation that can significantly improve test maintenance and readability. To learn more about implementing effective Page Objects, check out the [Playwright Page Object Models documentation](https://playwright.dev/docs/pom). +:: + +#### 2. Register Page Object + +Playwright Test uses fixtures to establish isolated test environments. Fixtures provide tests with all necessary dependencies and are automatically cleaned up between test runs. Let's register our page object as a fixture. For this, we need to create a new test setup file that will extend the base test setup and add our page object as a fixture. + +```ts +// apps/stores/fashion-brand/playwright/setup/fashion-brand-test.ts +import { RecommendationsPage } from '@setup/pageObjects/recommendations.page'; +import { test as baseTest } from '@setup/test'; + +// Define the types for our fixtures +interface FashionBrandTestFixtures { + recommendationsPage: RecommendationsPage; +} + +// Extend the base test with our fixtures +export const test = baseTest.extend({ + // Each fixture is defined as an async function + recommendationsPage: async ({ dataFactory, db, framework, frontendUrl, page, utils }, use) => { + // Setup: Create and prepare the page object + const recommendationsPage = new RecommendationsPage({ dataFactory, db, framework, frontendUrl, page, utils }); + await use(await recommendationsPage.prepare()); + }, +}); +``` + +This setup: +1. Defines TypeScript types for all our fixtures +2. Creates page objects that are isolated between tests +3. Handles automatic setup and cleanup +4. Makes page objects available in test functions + +:::info Test Setup Inheritance +`fashion-brand-test.ts` extends the base test setup with store-specific fixtures. This allows you to reuse base fixtures while adding store-specific test configurations. Instead of overriding `apps/playwright/setup/test.ts`, you should extend it with your store-specific test setup. +::: + +You can now use the `recommendationsPage` fixture in your tests: + +```ts +import { test } from '@setup/fashion-brand-test'; + +test('should show recommendations', async ({ recommendationsPage }) => { + await recommendationsPage.navigate(); + // ... rest of the test +}); +``` + +::tip Learn more about Fixtures +Fixtures are a powerful concept in Playwright Test that enable isolated test environments, shared setup code, automatic cleanup, and composition of complex test dependencies. To learn more about how fixtures can improve your testing workflow, check out the [Playwright Test Fixtures documentation](https://playwright.dev/docs/test-fixtures). +:: + +#step-3 +### Writing Tests + +Now you can write your test using the page object and mocks you've created: + +```ts +// apps/stores/fashion-brand/playwright/tests/recommendations.test.ts +import { expect } from '@playwright/test'; +import { test } from '@setup/fashion-brand-test'; + +test.describe('Recommendations page', () => { + test('should show recommendations', async ({ recommendationsPage }) => { + // Navigate to the page + await recommendationsPage.navigate(); + + // Verify recommendations are visible + await expect(recommendationsPage.recommendationsGrid).toBeVisible(); + + // Add more assertions as needed + }); +}); +``` + +#step-4 +### Running Tests + +You can run tests in two modes: + +#### Standard Mode +```bash +# Run all tests for a specific store +yarn store test --store-id=fashion-brand +``` + +#### UI Mode (for debugging) +```bash +# Open Playwright UI for interactive debugging +yarn store test --store-id=fashion-brand --ui +``` + +::tip +UI mode is great for debugging as it shows test execution step by step and lets you inspect the page state. +:: + +![Playwright UI](/guides/6.multistore/img/running-test-in-ui-mode.png) + +:: + +## Advanced Topics + +This guide covered the basics of writing integration tests. For more advanced topics, see: +- [Overriding Playwright Configuration](/guides/multistore/patterns/testing/override-playwright-config) +- [Debugging Test Issues](/guides/multistore/patterns/testing/tests-debugging) ::card{title="Next: Deployment - How it works?" icon="tabler:number-3-small" } #description -TODO +Learn how Alokai handles store deployment and what happens behind the scenes. #cta :::docs-button{to="/guides/multistore/tooling-and-concepts/deployment"} Next ::: -:: +:: \ No newline at end of file diff --git a/docs/content/guides/6.multistore/img/running-test-in-ui-mode.png b/docs/content/guides/6.multistore/img/running-test-in-ui-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a5ecec5fe5405bceba22c372d7a830abaa79ac GIT binary patch literal 294610 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 l+U-Z4{}0T3AVdHF literal 0 HcmV?d00001 From 683b5c583a0e231916acc1b620aa86bcbb306499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Tue, 18 Feb 2025 17:23:46 +0700 Subject: [PATCH 04/22] fix: syntax error --- .../3.development/5.integration-tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md index 50260ebd8f..04b3c25b36 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md @@ -194,9 +194,9 @@ This setup: 3. Handles automatic setup and cleanup 4. Makes page objects available in test functions -:::info Test Setup Inheritance +::info Test Setup Inheritance `fashion-brand-test.ts` extends the base test setup with store-specific fixtures. This allows you to reuse base fixtures while adding store-specific test configurations. Instead of overriding `apps/playwright/setup/test.ts`, you should extend it with your store-specific test setup. -::: +:: You can now use the `recommendationsPage` fixture in your tests: From e524220cb66ac0e15ff90dcf24ca71b63fff4384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Wed, 19 Feb 2025 15:01:15 +0700 Subject: [PATCH 05/22] docs(TF-405): managing the stores (#7391) --- .../2.file-based-inheritance.md | 39 +-- .../3.development/3.managing-the-stores.md | 272 +++++++++++++++++- .../6.multistore/img/store-add-command.png | Bin 0 -> 107260 bytes 3 files changed, 283 insertions(+), 28 deletions(-) create mode 100644 docs/content/guides/6.multistore/img/store-add-command.png diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md index 6cbf6b1cd4..03fc746e2b 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md @@ -99,22 +99,13 @@ To create a new store, use the `store add` command: yarn store add ``` -:::warning -Although you can use `npx @alokai/cli store`, we recommend using `yarn store` as it will use the correct version of the CLI installed in your project. -::: - -The CLI will guide you through the process and allow you to: -- Choose the store id -- Choose the parent store - you can decide if the new store should be a child of another store -- Choose the store type (template or deployable) -- Choose the console project name and cloud region +The CLI will guide you through configuring your store, including: +- Setting a unique store ID +- Choosing a parent store (or inheriting from base apps) +- Selecting the store type (template or deployable) -:::info CLI Reference -For more information on the CLI and its available commands, please refer to the [CLI reference](/guides/multistore/tooling-and-concepts/cli-reference). -::: - -:::tip Deployment -Console project name and cloud region are used when deploying the store. You can read more about it in the [Deployment](/guides/multistore/tooling-and-concepts/deployment/deployment) guide. +:::tip +For detailed information about creating and managing stores, including configuration options and best practices, see the [Managing the stores](/guides/multistore/tooling-and-concepts/development/managing-the-stores) guide. ::: ## Managing Store Hierarchy @@ -150,10 +141,10 @@ apps/ ``` :::tip Template vs Deployable Stores -Template stores (`fashion-brand` and `sports-brand`) are used to share code between their child stores, while deployable stores (`us-store` and `eu-store`) are the ones that get deployed and run. Template stores can define completely different UI components and styling, customer journey flows, product presentation, and regional adaptations that will be inherited by their deployable children. +Template stores (eg. `fashion-brand` and `sports-brand`) are used to share code between their child stores, while deployable stores (eg. `us-store` and `eu-store`) are the ones that get deployed and run. Template stores can define completely different UI components and styling, customer journey flows, product presentation, and regional adaptations that will be inherited by their deployable children. ::: -#### When to use complex hierarchies +#### When to Use Complex Hierarchies Complex hierarchies make sense when you have multiple brands or store families that need different: - Visual themes - Features and functionality @@ -171,15 +162,9 @@ In the example above, a single page is composed of: Only create inheritance levels when you need to share code between multiple stores. If you have just one brand or store family, keep everything in the base shared code (`apps/storefront-unified-nextjs/`). ::: -### Moving Stores - -You can reorganize your store hierarchy using the `store move` command: - -```bash -yarn store move -``` - -This command allows you to move stores between different parents and restructure your store hierarchy. For detailed information about managing stores, including moving, renaming, and organizing them, see the [Managing the stores](/guides/multistore/tooling-and-concepts/development/managing-the-stores) guide. +:::tip Moving Stores +For information about moving stores between parents, see the [Managing the stores](/guides/multistore/tooling-and-concepts/development/managing-the-stores) guide. +::: ### File Override System @@ -387,7 +372,7 @@ Some files receive special treatment during composition: ::card{title="Next: Development - Managing the stores" icon="tabler:number-2-small" } #description -TODO +Learn how to create and manage stores using the CLI. #cta :::docs-button{to="/guides/multistore/tooling-and-concepts/managing-the-stores"} diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md index 7adbb143d0..d8e5989613 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md @@ -7,11 +7,281 @@ navigation: # Development - Managing the stores +This guide covers the core operations for managing stores in Alokai multistore projects through the Alokai CLI. + +**What You'll Learn** + +::list{type="success"} +- How to create new stores using the CLI +- Understanding and modifying store configurations +- Moving stores within your project hierarchy +- Safely removing stores and handling cleanup +:: + +**Why This Matters** + +When working with multiple brands and regions, keeping clean and maintainable repository is one of the most important characteristics that ensure you can keep releasing fast and with a high confidence. The Alokai CLI provides the tools you need to create, configure, and manage stores while keeping your codebase clean and structured. + +Let's explore how to manage your stores effectively. + +## Adding a New Store + +The `store add` command guides you through creating a new store and sets up all necessary configurations: + +```bash +yarn store add +``` + +### Store Creation Flow + +The CLI will ask several questions to configure your store: + +1. **Store ID** + - Unique identifier for your store + - Used in `alokai.config.json`, `turbo.json`, and store directory + - Example: `my-brand-us` + +2. **Parent Store** + - Choose if this store inherits from existing store + - Or choose root to inherit from base apps + +3. **Store Type** + - Choose if store should be deployable or not. Template stores are not deployable. + +4. **Console Project** (for deployable stores only) + - The project name in Alokai Console + - If you're not sure, just skip it for now + - Can be updated later in `alokai.config.json` + +5. **Cloud Region** (for deployable stores only) + - Deployment region for your store + - If you're not sure, just skip it for now + - Can be updated later in `alokai.config.json` + +![CLI Store Creation](/guides/6.multistore/img/store-add-command.png) + +### What the Command Does + +When you create a new store, the CLI: + +1. **Updates Configuration Files** + - Creates app-specific config files (`.prettierrc.mjs`, `eslint.config.mjs`, etc.) + - For deployable stores: + - Adds store entry to `alokai.config.json` + - Updates `turbo.json` with build tasks and dependencies + +2. **Creates Store Directory Structure** + - Sets up store directory with all required apps + +#### `alokai.config.json` Updates + +For deployable stores, the CLI adds a new entry with default settings. All of these settings can be modified at any time: + +```json +{ + "$schema": "./.alokai/alokaiConfigSchema.json", + "stores": { + "my-brand-us": { + "deployment": { + "framework": "nextjs", // Which frontend framework to deploy + "projectName": "my-project", // Your project in Alokai Console + "cloudRegion": "europe-west1" // Where to deploy + }, + "localPorts": { + "middleware": 4001, // Port for local middleware + "nextjs": 3001, // Port for Next.js development + "nuxt": 3334 // Port for Nuxt development + }, + "localDomain": "my-brand-us.local" // Domain for local development, when using `with-local-domains` flag + } + } +} +``` + +**Important Things to Know:** +- Template stores are not added to `alokai.config.json` as they're not meant to be deployed +- All settings can be modified later by editing this file +- Remember to restart your development server after making changes + +#### `turbo.json` Updates + +The CLI adds build tasks and dependencies to `turbo.json`. These tasks ensure proper build order and caching: + +```json +{ + "tasks": { + "storefront-middleware-my-brand-us#build": { + "dependsOn": ["^build"], + "inputs": ["**"], + "outputs": ["lib/**"] + }, + "storefront-unified-nextjs-my-brand-us#build": { + "dependsOn": ["^build", "storefront-middleware-my-brand-us#build"], + "inputs": ["**"], + "outputs": [".next/**", "!.next/cache/**"] + }, + "playwright-my-brand-us#test:integration:ui": { + "dependsOn": [], + "cache": false + } + } +} +``` + +Each task is named using the pattern `{app-name}-{store-id}#{task-name}`. The tasks ensure: + +1. **Middleware Build** (`storefront-middleware-my-brand-us#build`) + - Builds the middleware application first + - Generates TypeScript types needed by the frontend + - Caches the compiled output in `lib/` + +2. **Frontend Build** (`storefront-unified-nextjs-my-brand-us#build`) + - Waits for middleware to build (needs its types) + - Builds the Next.js application + - Caches the `.next` output (except cache directory) + +3. **Integration Tests** (`playwright-my-brand-us#test:integration:ui`) + - Not cached as tests should run fresh each time + +:::tip +You can find more information about the tasks in the [Turbo documentation](https://turbo.build/repo/docs/crafting-your-repository/configuring-tasks#getting-started). +::: + +### Generated Store Structure + +The CLI creates this directory structure for your store: +```bash +apps/stores/my-brand-us/ +├── storefront-unified-nextjs/ # Next.js app overrides +├── storefront-unified-nuxt/ # Nuxt app overrides +└── storefront-middleware/ # Middleware overrides +└── playwright/ # Playwright tests +``` + +## Moving Stores + +The `store move` command helps reorganize your store hierarchy: + +```bash +yarn store move +``` + +### Move Process + +1. **Select the store to move** + +2. **Choose the new parent:** +- Choose one of the existing stores as the new parent +- Or choose root to inherit from base apps + +:::warning Don't move stores manually +Always use the `store move` command instead of manually moving store directories. The CLI command handles several critical tasks: it updates all necessary configuration files, regenerates TypeScript configurations, and ensures proper inheritance chains. + +Moving stores manually can break the build process, TypeScript configurations, and inheritance relationships in ways that are difficult to debug. +::: + +### What Happens During a Move + +When moving a store: +1. Store configuration is updated in `alokai.config.json` +2. `tsconfig.json` is regenerated to inherit from the new parent +3. Store directory structure remains unchanged + +:::warning Moving stores might not work out-of-the-box +Test your store thoroughly after moving it, as inheritance changes might affect its behavior. For example: + +If your store uses a component from its parent: +```tsx +// apps/stores/my-brand-us/storefront-unified-nextjs/app/page.tsx +import CustomHeader from '@/components/custom-header' +``` + +And this component was available in the old parent but doesn't exist in the new parent: +```bash +# Old parent had the component +apps/stores/fashion-brand/storefront-unified-nextjs/components/custom-header.tsx + +# But new parent doesn't have it +apps/stores/sports-brand/storefront-unified-nextjs/components/custom-header.tsx # Missing! +``` + +Your store will fail to build after the move. To fix this, you can copy the component to your store directly, copy it to the new parent store, or refactor your store code to use a different component that exists in the new parent. +::: + +### Best Practices for Moving Stores + +1. **Plan the Move** + - Figure out current store dependencies + - Plan testing strategy for affected stores + +2. **Testing After Move** + - Build and test the moved store + - Test stores that inherited from the moved store + - Verify all customizations still work + +## Removing Stores + +Before removing a store, consider these alternatives: +- Could the store be moved to a different parent instead? +- Are there any dependent stores that need to be moved first? + +To remove a store, you need to manually clean up several files: + +1. **Remove Configuration Files** + + a. Delete the store's entry from `alokai.config.json`: + ```json + { + "stores": { + "my-brand-us": { // <- Remove this entire object + "deployment": { + "framework": "nextjs", + "projectName": "my-project", + "cloudRegion": "europe-west1" + }, + "localPorts": { + "middleware": 4001, + "nextjs": 3001, + "nuxt": 3334 + } + } + } + } + ``` + + b. Remove tasks from `turbo.json`: + ```json + { + "tasks": { + // Remove all tasks for the store + "storefront-middleware-my-brand-us#build": { ... }, + "storefront-unified-nextjs-my-brand-us#build": { ... }, + "playwright-my-brand-us#test:integration:ui": { ... } + } + } + ``` + +2. **Delete Store Files** +```bash +# Remove the store directory +rm -rf apps/stores/my-brand-us +``` + +3. **Clean Build Cache** +```bash +# Remove Turbo cache +rm -rf .turbo +``` + +**Make Sure To:** +1. Move any dependent stores to new parents before removal +2. Update any cross-store references in your codebase +3. Remove store dependencies from `package.json` ::card{title="Next: Development - Using a local environment" icon="tabler:number-3-small" } #description -TODO +Learn how to set up and use your local development environment effectively. #cta :::docs-button{to="/guides/multistore/tooling-and-concepts/local-environment"} diff --git a/docs/content/guides/6.multistore/img/store-add-command.png b/docs/content/guides/6.multistore/img/store-add-command.png new file mode 100644 index 0000000000000000000000000000000000000000..e13d0becdd621be410c33e81bd8023cdf2345d3c GIT binary patch literal 107260 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≻+%($RKz8{8Ulcc zT3P!vc|_!Hddcq{hIl_!43+&zQ%r=mA5BN15P{dW-dN9Vyp^+c3;&eg{pkFz`Di4% z*VX%HVko{4UG@xJ#6r-Cf|MU1HOA@`Y!4X$b^+ImLPqp_i**JEM68I^Qhp)6Y;(V? z9$Pp7cbE@FLCm|#rgqC$Sd;yE@a0Q>P56#g2(j^q0(Xf&xEeQ{4PF@wSA$H%Df_|i z-ECE@s0pv9?EIhMcgqwGmfs#L(r+NW<1abiaU6winQOj%W6g>WalzT(+Fso06Q*g# zEr*FsgK7|V9#S&HAJ-rfi8|JqGgEFCT^Oyzgxn8Efj6!8o2hO^?2*5j*thzc&&sQB z!P7T>YTouS(Wv&$$K06jW9KVq$n1(;1}`%4aeFy~H8u{OnrGB2A#Sk>LP~4N&ay>6 zqY?ZK+us}*!xw9U17O98-Tigf?y$-MPILC!6vF4+wYBW<)`k#~GsjtyqR2{jl zi32c`69p-CfBXCWfZbKJ!4=fwy5iE);k8(V9ypcTN z&Xyw&PN-C43S1M~QOHz2!qoBX2O(

}VWxbDyT)etgBi6EC;7kL&uk+X2}nJi$Ce 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 dgZGKaW_V)!!E@TOB=aT-#q6>Br{{uS5i7)^F literal 0 HcmV?d00001 From 408cc7186ec92a85cf447cfa290fb324f5399ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Wed, 19 Feb 2025 15:02:30 +0700 Subject: [PATCH 06/22] docs(TF-406): local development (#7390) --- .../3.development/4.local-environment.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md index 13047cb5cf..0e7f881e64 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md @@ -7,6 +7,190 @@ navigation: # Development - Using a local environment +This guide explains how to set up and run your local development environment for Alokai multistore projects, building on the concepts of file-based inheritance. + +## Root Scripts + +Let's start with the foundation of your development workflow. Alokai provides essential scripts that will help you develop, test, and deploy your stores efficiently. These scripts are available in your project root's `package.json` and form the basis of your daily development tasks: + +- `dev`: Your go-to command for development - starts all your stores in development mode with hot-reload +- `build`: Prepares your stores for production with optimized builds +- `start`: Runs your production build locally to verify everything works as expected +- `test:integration:pw`: Ensures your stores work correctly by running integration tests +- `store`: An alias for the `./node_modules/.bin/alokai-cli store`. You can use it to run any `alokai-cli store` command. + +:::info Scripts are shortcuts for `alokai-cli` commands +All of these commands use the `@alokai/cli` underneath. For instance, the `dev` command is just a shortcut for `./node_modules/.bin/alokai-cli store dev --all --verbose`. +::: + +:::warning Using Alokai CLI +All store management operations must be performed through the Alokai CLI. Native Next.js/Nuxt commands will not work correctly with the multistore setup, as they don't handle the inheritance and configuration requirements of Alokai stores. +::: + +## Starting Local Development + +The most common way to start development is using the yarn scripts from the root level: + +```bash +# Start development mode for all stores +yarn dev + +# Start development for a specific store +yarn store dev --store-id=my-store +# Alternatively, you may use: ./node_modules/.bin/alokai-cli store dev --store-id=my-store +``` + +The `dev` command watches for changes in: +- The current store's files +- Parent stores in the inheritance chain +- Base applications (`apps/storefront-unified-nextjs`, etc.) + +When a file changes, the CLI automatically: +1. Detects which stores are affected by the change +2. Moves the affected files to the `.out` directory, so the app's framework can hot-reload the changes + +::alert{type="info"} +The applications will run on ports specified in the `alokai.config.json` file. For example: + +```json +{ + "stores": { + "default": { + "localPorts": { + "middleware": 4000, + "nextjs": 3000, + "nuxt": 3333 + } + } + } +} +``` + +Each store can have its own port configuration to avoid conflicts when running multiple stores simultaneously. +:: + +### Using Local Domains + +Alokai uses Caddy as a reverse proxy to handle local domains. The Caddyfile is automatically generated based on the `alokai.config.json` file and the `localDomain` property for each store. + +#### Prerequisites + +- [Caddy server installed](https://caddyserver.com/docs/install) +- Local domains configured in your hosts file. For example: + - If you have a store with `localDomain` set to `default.local`, add `127.0.0.1 default.local` to your hosts file + +#### Starting with local domains + +Start all stores with their local domains: + +```bash +yarn store dev --all --with-local-domains +``` + +:::tip HTTPS +Caddy automatically generates self-signed SSL certificates for local domains. You +can read more about it in the [Caddy documentation](https://caddyserver.com/docs/automatic-https). +::: + +## Building for Production + +To test the production build locally: + +1. Build all deployable stores: +```bash +yarn build +``` + +2. Start the production server: +```bash +yarn start +``` + +Note that template stores are not built into the `.out` directory, as they only serve as templates for their descendant stores. + +## Running Integration Tests + +Integration tests run against the composed stores, respecting the file inheritance chain: + +```bash +yarn test:integration:pw +``` + +You can also run tests in Playwright's UI mode for better debugging experience: + +```bash +yarn store test --store-id=my-store --ui +``` + +:::warning +The `--ui` flag only works when testing a single store. Make sure to specify the store using the `--store-id` flag. +::: + +For more information on integration tests, refer to the [Integration Tests](/guides/multistore/tooling-and-concepts/development/integration-tests) guide. + +## Common Issues and Solutions + +### Cache Problems + +If you experience unexpected behavior with file inheritance or turbo cache. For example: +- You modify a component in your store, but the changes are not reflected in the browser +- The `.out` directory still contains old versions of your files after making changes + +Here's how to fix it: + +```bash +# Clear Turbo cache +rm -rf .turbo/cache + +# Clear composed store outputs +rm -rf .out/* + +# Rebuild all stores +yarn build +``` + +::alert{type="warning"} +The `.out` directory contains the composed stores and is in `.gitignore`. If you experience inheritance issues, try clearing this directory and rebuilding. +:: + +## Development Best Practices + +1. **Use Store-Specific Development** +When working on a single store, use the `--store-id` flag to improve build times: +```bash +yarn store dev --store-id=my-store +``` + +2. **Test Inheritance Chain** +When modifying shared code, test all affected stores: +```bash +# See which stores are affected by current changes +yarn store changed + +# Build and test affected stores +yarn store build --store-id=affected-store-id-1,affected-store-id-2 +``` + +:::tip +In the Continuous Integration pipeline, the affected stores are built and tested automatically. You can read more about it in the [Continuous Integration](/guides/multistore/tooling-and-concepts/deployment/ci-cd) guide. +::: + +3. **Debugging Inheritance** +Use the `--verbose` flag to see detailed file resolution: +```bash +yarn store build --store-id=my-store --verbose +``` +You can also use the `DEBUG=*` environment variable to get even more logs: +```bash +DEBUG=* yarn store build --store-id=my-store +``` + +4. **Inspect Store Composition** +Examine how stores are composed in the `.out` directory: +```bash +yarn store build --store-id=my-store --compose-only +``` +This will skip the build and only compose the store into the `.out` directory. ::card{title="Next: Development - Writing an integration tests with Playwright" icon="tabler:number-3-small" } From 53fe252f5f9c5c01c2ac056019d661bacf3f941f Mon Sep 17 00:00:00 2001 From: Filip Rakowski Date: Wed, 19 Feb 2025 09:02:46 +0100 Subject: [PATCH 07/22] docs: Introduction to multibrand (#7382) * new homepage for guides * rewritten home page * hide sidebar as its unnecessary * phase 1 for introduction docs * use cases pt2 * formatting improvements * add "next" btn * updated use cases section * updated the use cases story with solutionsupdated use cases * even more content yay * more content * almost final intro * images * images adjusted * done! * update main page * update cookbook * update home * update home * subtle improvements to visual interlinking * feat: improve Multistore guide * feat: improve Multistore guide2 * Add TL;DR (#7397) Add tldr at the beginning of the guide so that developers can jump straight into the practical part if they want to. * Update docs/content/guides/6.multistore/1.introduction/1.index.md --------- Co-authored-by: rohrig Co-authored-by: Mateusz Ostafil --- docs/content/1.index.md | 26 ++-- docs/content/cookbook/1.index.md | 8 +- docs/content/guides/1.index.md | 45 ++++-- docs/content/guides/3.performance/_dir.yml | 2 +- .../6.multistore/1.introduction/1.index.md | 67 +++++++- .../2.alokai-solve-this-problem.md | 20 --- .../1.introduction/2.use-cases.md | 76 ++++++++++ .../1.introduction/3.use-cases.md | 20 --- .../6.multistore/1.introduction/_dir.yml | 2 +- .../3.development/3.managing-the-stores.md | 2 +- .../3.development/4.local-environment.md | 2 +- .../3.development/5.integration-tests.md | 2 +- .../4.deployment/6.deployment.md | 2 +- .../4.deployment/7.configuration.md | 2 +- .../4.deployment/8.ci-cd.md | 2 +- .../2.tooling-and-concepts/_dir.yml | 2 +- .../guides/6.multistore/3.patterns/_dir.yml | 2 +- .../6.multistore/img/end-to-end-solution.svg | 143 ++++++++++++++++++ .../img/inheritance-simplified.png | Bin 0 -> 66443 bytes .../guides/6.multistore/img/reusable-core.png | Bin 0 -> 162454 bytes docs/content/guides/_dir.yml | 2 +- 21 files changed, 343 insertions(+), 84 deletions(-) delete mode 100644 docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md create mode 100644 docs/content/guides/6.multistore/1.introduction/2.use-cases.md delete mode 100644 docs/content/guides/6.multistore/1.introduction/3.use-cases.md create mode 100644 docs/content/guides/6.multistore/img/end-to-end-solution.svg create mode 100644 docs/content/guides/6.multistore/img/inheritance-simplified.png create mode 100644 docs/content/guides/6.multistore/img/reusable-core.png diff --git a/docs/content/1.index.md b/docs/content/1.index.md index e75e2f82f9..4af8440382 100644 --- a/docs/content/1.index.md +++ b/docs/content/1.index.md @@ -3,22 +3,17 @@ layout: fullscreen hideFromSiteSearch: true --- -::info -#title -Looking for v2 docs? -#default -These docs are for projects using the Alokai SDK, if you're looking for our Nuxt 2 based solutions, please visit our [v2 docs](https://docs.alokai.com/v2). -:: - # [Alokai Docs]{.text-4xl.mt-8.block} Alokai is a Frontend-as-a-Service that provides several tools to help you build performant, scalable, and customizable eCommerce storefronts. From UI libraries and integrations, to deployment and monitoring, we can help you build the ideal headless commerce experience. -::card{title="Getting Started" icon="IconVsf" iconClass="text-primary-500" :coloredIcon="false" } +::grid{:columns='2'} +#section-1 +::card{title="Learn the concepts" icon="IconVsf" iconClass="text-primary-500" :coloredIcon="false" class="mb-5"} #description -Set up a new Alokai project or learn more about our architecture, project principles, and all of the ways that the Alokai ecosystem can help you build better storefronts. +Learn more about our architecture, project principles, and all of the ways that the Alokai ecosystem can help you build better storefronts. #cta :::docs-arrow-link{to="/general"} @@ -26,6 +21,19 @@ Learn more ::: :: +#section-2 +::card{title="Learn the tools" icon="IconVsf" iconClass="text-primary-500" :coloredIcon="false" } + +#description +Learn how to use Alokai hands on from our guides. This is the best place to start if you want to skip the theory and make yoru hands dirty. + +#cta +:::docs-arrow-link{to="/guides"} +Learn more +::: +:: + +:: ## Products and Features diff --git a/docs/content/cookbook/1.index.md b/docs/content/cookbook/1.index.md index 3750b27bf9..d2751f4cf6 100644 --- a/docs/content/cookbook/1.index.md +++ b/docs/content/cookbook/1.index.md @@ -6,9 +6,5 @@ navigation: # Cookbook -::grid{:columns="3"} -#section-1 -:card{to="/cookbook/oss-deployment-guide" title="OSS Deployments" description="Deploy to a linux server" icon="typcn:arrow-up-outline"} - - -:: +:card{to="/cookbook/handling-custom-occ-endpoint" title="Handling Custom OCC Endpoints" description="It is a common task to add support for a custom (non-standard) SAP OCC API endpoint not covered by the Alokai intergration. +This guide will show you how can do it using Alokai." icon="typcn:arrow-up-outline"} diff --git a/docs/content/guides/1.index.md b/docs/content/guides/1.index.md index 2cd63c2199..39cb86aab7 100644 --- a/docs/content/guides/1.index.md +++ b/docs/content/guides/1.index.md @@ -9,26 +9,49 @@ Welcome to the guides section of the documentation. Here you will find a collect At **Alokai**, we are committed to providing the best possible experience for our users. We are constantly working on improving our documentation and adding new guides to help you get the most out of the platform. -## Getting Help -If you have any questions or need help with anything, please don't hesitate to get in touch with us in our [Discord](https://discord.vuestorefront.io/). We are always happy to help. -## Alokai Guides +## Learn Alokai -::grid{:columns='3'} +Follow this path to understand how to use Alokai and start building your Alokai application following performance best practices. +::steps -#section-1 -:card{to="/guides/alokai-essentials" title="Alokai Essentials" description="Learn how to build Alokai Application: From 0 to Hero. Understand how different parts of our stack will help you to build your Alokai application." icon="tabler:123"} +#step-1 +::card{title="Alokai Essentials" to="/guides/alokai-essentials" class="mb-5 !h-auto"} +#description +Learn how to build Alokai Application: From 0 to Hero. Understand how different parts of our stack will help you to build your Alokai application. +:: -#section-2 -:card{to="/guides/performance" title="Performance" description="Improve your website's user experience and increase conversions by optimizing your website's performance." icon="gg:performance"} +#step-2 +::card{title="Customization" to="/guides/customization-next-js" class="mb-5 !h-auto"} +#description +Alokai is not a cookie-cutter solution, it is meant to be able to handle even the most complex use cases. This guide will take you through the most common customization scenarios. +:: -#section-3 -:card{to="/guides/customization-next-js" title="Customization" description="Alokai is not a cookie-cutter solution, it is meant to be able to handle even the most complex use cases. This guide will take you through the most common customization scenarios." icon="tabler:tool"} +#step-3 +::card{title="Multistore" to="/guides/multistore" class="mb-5 !h-auto"} +#description +Learn how to create efficient and unified multigeo/multibrand/multivendor setups with Alokai. +:: :: +## Advanced + +::card{title="Kubernetes Probes" to="/guides/kubernetes-probe" class="mb-5"} +#description +Learn how to implement health check endpoints for your Alokai Cloud applications running on Kubernetes. This guide covers liveness and readiness probes implementation to ensure proper application monitoring and reliability. +:: + +## Best Practices + +::card{title="Performance" to="/guides/performance" class="mb-5"} +#description +Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poor performance to ruin your sales. Learn how to optimize your store for speed. +:: + ::info Can't find what you're looking for? Check out our [cookbook](/cookbook) for more guides and tutorials. -:: \ No newline at end of file +:: + diff --git a/docs/content/guides/3.performance/_dir.yml b/docs/content/guides/3.performance/_dir.yml index bb05458aca..a0dc5464f0 100644 --- a/docs/content/guides/3.performance/_dir.yml +++ b/docs/content/guides/3.performance/_dir.yml @@ -1,4 +1,4 @@ -title: Performance Guide +title: Performance sidebarRoot: true navigation: icon: gg:performance diff --git a/docs/content/guides/6.multistore/1.introduction/1.index.md b/docs/content/guides/6.multistore/1.introduction/1.index.md index 813ddce2d1..b552baf80c 100644 --- a/docs/content/guides/6.multistore/1.introduction/1.index.md +++ b/docs/content/guides/6.multistore/1.introduction/1.index.md @@ -1,20 +1,73 @@ --- -title: Challenges with multistore setups +title: The Multistore Problem and Alokai's Solution layout: default --- -# Challenges with multistore setups +# The Multistore Problem and Alokai's Solution -Let's get started! +## TL;DR +Multistore commerce brings a huge maintenance burden for merchants. Alokai solves this problem by allowing you to reuse the common parts between stores. You only need to write and maintain the distinct parts of the stores. This is achieved by the file inheritance mechanism. It works similar to CSS cascading, each layer can override any file from your source code or previous layers while keeping the rest intact. +Alokai Multistore's Inheritance Mechanism -::card{title="Next: How Alokai is uniquely positioned to solve this problem better than others" icon="tabler:number-1-small" } +Read on to learn more about the multistore problem and Alokai solution or [jump straight to the practical part](/guides/multistore/tooling-and-concepts). -#description +## Challenges of Scaling eCommerce Setups + +**Expanding an eCommerce business across multiple brands, geographies, and touchpoints is a logistical and technical minefield. As companies grow, agility often takes a hit—slowing down innovation, increasing overhead, and complicating operations.** + +Businesses often start with a single eCommerce platform, designed for a specific market and use case. Growth then happens through expansion into new touchpoints (mobile apps, marketplaces, social commerce), new geographies, or acquiring brands with their own tech stacks. **Over time, what was once a streamlined setup becomes fragmented, introducing complexity that makes agility and scalability difficult.** + +How do you maintain speed and adaptability while managing multiple storefronts, integrating new acquisitions, and expanding into new markets? + +## How Alokai Solves the Multistore Problem + +**Most eCommerce applications share 60-80% of their functionality, regardless of geography, touchpoint, or brand.** The foundation for every eCommerce store is always the same - product catalog, cart, checkout, user profile. Alokai provides an efficient setup that prioritizes reuse of common components and ease of maintainability. + +From multiple repositories into a unified codebase with reusable code + +At Alokai, we've been building universal eCommerce applications that cover different use cases around B2B and B2C since 2017. We've put all of our knowledge about reusability and configurability of eCommerce storefronts into our Multistore product so you can leverage it without years of discovering solutions to different problems and their edge cases. + +We guarantee that it is the most optimal way to run complex eCommerce setups. + +As a rule of thumb, **the more complex your setup is, the more value we can bring to your business**. Multiple vendors, technologies, geographies, touchpoints, brands, catalogs... - the more complexity you struggle with now, the more you can gain! + +Let's see how, on a high level, Alokai addresses different components of the Multistore problem. + +### End-to-End Solution for an End-to-End Problem + +**Multistore is not a single problem to solve.** It is a set of challenges that must be solved individually, and making those solutions work well together is another problem to solve. There is a lot of complexity in it that spreads across all the application layers - UI, frontend logic, data, vendors, and infrastructure. It's not easy to find a solution that works for every use case. It's hard to combine them to fulfill the ones you want to cover, and it's almost impossible to pick ones that will work for multiple projects, often with different goals. + +End-to-end solution for ecommerce and multistore -TODO +For that, you need an end-to-end solution. A platform that covers all the layers and is specifically built to solve end-to-end problems rather than one from a specific domain. This is where Alokai comes in. + +We provide an end-to-end solution that goes through all the layers of an eCommerce project from design to deployment. You can read more about Alokai products and stacks [here](/general#our-products). + +### Inheritance Ensures Maximum Reusability Without Limiting Customization + +The key pattern behind Alokai's Multistore solution is the file inheritance mechanism. Think of it like CSS cascading - each layer can override any file from your source code or previous layers while keeping the rest intact. This includes pages, components, layouts, styles, public assets, and any other project files. + +Alokai Multistore's Inheritance Mechanism + +This approach ensures maximum reusability of common parts while leaving full freedom to customize per store. + +### Unified Data Layer + +The [Unified Data Layer](/unified-data-layer) allows you to keep the same data model used across all stores even if the underlying technologies are different. This way, you don't need to build alternative versions of the UI and business logic for each vendor. Even if your API stack is not consistent across brands or regions, you can still have a single, unified core UI and logic shared across all of them. + +### Freedom in How You Build and Deploy + +The solution is flexible and allows you to optimize the ways you want to develop and deploy the application separately. + +This means that you can deploy completely separate storefronts or a single store with multiple variations from the same repository. One does not influence the other, so you can optimize the workflow and deployment to fit your needs without tradeoffs. + +::card{title="Next: Use Cases" to="/guides/multistore/use-cases"} + +#description +Learn the most common use cases that Alokai Multistore was built for. #cta -:::docs-button{to="/guides/multistore/introduction/alokai-solve-this-problem"} +:::docs-arrow-link{to="/guides/multistore/use-cases"} Next ::: :: diff --git a/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md b/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md deleted file mode 100644 index c055ebcb14..0000000000 --- a/docs/content/guides/6.multistore/1.introduction/2.alokai-solve-this-problem.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: How Alokai is uniquely positioned to solve this problem better than others -layout: default -navigation: - icon: tabler:number-1-small ---- - -# How Alokai is uniquely positioned to solve this problem better than others - - -::card{title="Next: Use cases" icon="tabler:number-2-small" } - -#description -TODO - -#cta -:::docs-button{to="/guides/multistore/introduction/use-cases"} -Next -::: -:: diff --git a/docs/content/guides/6.multistore/1.introduction/2.use-cases.md b/docs/content/guides/6.multistore/1.introduction/2.use-cases.md new file mode 100644 index 0000000000..ecc1938626 --- /dev/null +++ b/docs/content/guides/6.multistore/1.introduction/2.use-cases.md @@ -0,0 +1,76 @@ +--- +title: Use Cases +layout: default +--- + +# Use Cases + +While this reusability mechanism is universal, we describe some of the most common cases where an efficient eCommerce setup can provide transformative value for your business. + +## Scaling to New Touchpoints + +Expanding to new touchpoints—mobile apps, marketplaces, in-store kiosks—introduces unexpected complexities that can slow down innovation and increase operational burdens. + +- **Inconsistent Feature Rollouts** – Each touchpoint often requires separate development, meaning that new features must be built and deployed multiple times. A product recommendation engine, for example, might launch on the website first, take weeks to arrive on mobile, and never make it to in-store kiosks due to technical constraints. +- **Fragmented Development and Maintenance** – Every platform comes with its own technical stack, integration requirements, and release cycles. Maintaining consistency across them requires redundant effort, slowing down iteration and increasing costs. +- **Difficult Debugging and Troubleshooting** – Bugs behave differently across touchpoints. A checkout issue might occur only in the mobile app but not on the website, forcing teams to debug and fix problems separately rather than solving them in one place. +- **Performance and Data Synchronization Issues** – Real-time inventory updates, pricing changes, and user sessions need to be in sync across all touchpoints. Without a centralized approach, discrepancies arise, leading to poor customer experiences. + +Without a unified system, businesses struggle with inefficiencies, delayed feature releases, and higher maintenance costs. **Instead of focusing on growth and innovation, they get bogged down in managing a fragmented ecosystem of loosely connected storefronts.** + +### How Alokai Solves It + +- **Unified tech stack and single codebase** allow you to **write the business logic and major parts of the UI logic once, and use it for every touchpoint without repeating the code**. All touchpoints are maintained by one team. +- **Rolling out a new touchpoint can now be done within days.** Simply create a new directory, inherit all the functionalities, and customize the parts of the UI that differ. For mobile apps, you can leverage hybrid solutions like React Native and reuse most of the web storefront code. +- **Roll out new features to all touchpoints simultaneously** by sharing the business logic between them. +- **Forget about API orchestration and federation madness.** Alokai Connect will serve as a central source of data shared across all your frontends - whether it's a web storefront, mobile app, kiosk, or anything else. It unifies the data of all systems into a common format to maximize reusability. + +## Expanding into New Geographies + +Expanding into new geographies introduces additional layers of complexity that often lead businesses to launch separate storefronts per region. These challenges arise from the need to accommodate region-specific requirements and operational differences: + +- **Localized Vendor and Payment Providers** – Different regions require different payment gateways, logistics partners, and tax compliance setups. Integrating each separately leads to redundant systems and inefficiencies. +- **Localized UI and UX Adjustments** – Languages, currencies, date formats, and even browsing behaviors differ across geographies. Without a flexible system, businesses are forced to create region-specific versions of their applications. +- **Infrastructure and Performance Issues** – Serving customers in different regions from a single data center leads to slow load times. Without a distributed hosting strategy, performance degrades significantly. + +Due to these challenges, many businesses resort to launching separate eCommerce platforms for each region, leading to a fragmented ecosystem that is hard to maintain. Over time, this lack of centralization makes rolling out global updates slow and expensive, ultimately limiting scalability and agility. + +### How Alokai Solves It + +- **Global distribution** allows you to **serve customers from multiple locations simultaneously**. +- **Easily configurable translations, currencies, and store-specific logic** ensure that you will never have to create a separate version of your application for a specific language or region. Simply override what differs and inherit the rest. We have proven patterns for dealing with UI, logic, data, and vendor differences between different regions. + +## Launching New Brands + +As companies grow, they often expand their brand portfolio through acquisitions. While this can drive business growth, it also introduces significant technical and operational challenges that impact scalability and efficiency. + +- **Diverse eCommerce Setups** – Each acquired brand often comes with its own eCommerce platform, vendor relationships, and technology stack. Managing multiple independent systems creates redundancies and makes maintenance cumbersome. +- **Inconsistent Vendor and Payment Systems** – Different brands may use different payment gateways, logistics providers, and tax compliance tools, leading to operational inefficiencies and increased costs. +- **Fragmented Teams and Workflows** – Acquired brands often retain their own development teams, workflows, and release cycles. Without a unified strategy, collaboration becomes difficult, slowing down feature development and increasing technical debt. +- **Higher Infrastructure and Maintenance Costs** – Running multiple separate platforms instead of a centralized system results in duplicated costs for hosting, integrations, and support. + +Over time, managing multiple standalone eCommerce platforms reduces business agility and makes global scaling inefficient. Instead of leveraging shared resources and streamlined workflows, companies end up managing disconnected systems that hinder innovation and increase operational complexity. + +### How Alokai Solves It + +- **Unified tech stack and single codebase** allow you to **write the business logic and UI once, and use it for every brand without repeating the code**. For each brand, only maintain the files that distinguish it. Our setup is optimized for maximum reusability, drastically reducing maintenance effort and allowing you to roll out new features simultaneously to all brands. +- **Unified Data Model** ensures that every brand consumes the same data model, allowing the use of the same reusable base logic and components. + +## Simplifying Complex Setups Stage-by-Stage + +Scaling in any of the above dimensions is not easy and usually results in a lot of technical debt. + +Many companies decide to start from scratch at some point because it's really hard to get out of technical debt when it reaches a certain scale. A high number of technologies and variations makes it almost impossible. At Alokai, we're experts in breaking complex cases down into simpler, easily achievable steps. This way, you can focus on solving the most pressing problems that will provide the highest ROI first and see tangible results within the shortest possible timeframe. For tech teams, this is incredibly important as it allows them to win the trust of business stakeholders and get a green light for further changes. + +Every project is unique and has its own challenges. We've seen enough of them to know what works and what doesn't, so we can tailor the strategy specifically to your needs. + +::card{title="Next: Tooling and Concepts"} + +#description +Learn the concepts behind Alokai Multistore and what tools we give you to build efficient and scalable eCommerce setups. + +#cta +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts"} +Next +::: +:: diff --git a/docs/content/guides/6.multistore/1.introduction/3.use-cases.md b/docs/content/guides/6.multistore/1.introduction/3.use-cases.md deleted file mode 100644 index b218461dab..0000000000 --- a/docs/content/guides/6.multistore/1.introduction/3.use-cases.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Use cases -layout: default -navigation: - icon: tabler:number-2-small ---- - -# Use cases - - -::card{title="Next: Tooling and concepts" icon="tabler:number-3-small" } - -#description -TODO - -#cta -:::docs-button{to="/guides/multistore/tooling-and-concepts"} -Next -::: -:: diff --git a/docs/content/guides/6.multistore/1.introduction/_dir.yml b/docs/content/guides/6.multistore/1.introduction/_dir.yml index 4c60ff0303..fa930cc9ae 100644 --- a/docs/content/guides/6.multistore/1.introduction/_dir.yml +++ b/docs/content/guides/6.multistore/1.introduction/_dir.yml @@ -1,4 +1,4 @@ title: Introduction sidebarRoot: true navigation: - icon: tabler:brand-nextjs + icon: tabler:number-1-small diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md index d8e5989613..b3dc8992d3 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md @@ -284,7 +284,7 @@ rm -rf .turbo Learn how to set up and use your local development environment effectively. #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/local-environment"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/local-environment"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md index 0e7f881e64..d70bb50d84 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md @@ -198,7 +198,7 @@ This will skip the build and only compose the store into the `.out` directory. TODO #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/integration-tests"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/integration-tests"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md index 04b3c25b36..f7934cacea 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md @@ -273,7 +273,7 @@ This guide covered the basics of writing integration tests. For more advanced to Learn how Alokai handles store deployment and what happens behind the scenes. #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/deployment"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/deployment"} Next ::: :: \ No newline at end of file diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md index c1fe18a703..2c6a727872 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md @@ -14,7 +14,7 @@ navigation: TODO #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/configuration"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/configuration"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md index 00e5d1b241..b19af0516d 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md @@ -14,7 +14,7 @@ navigation: TODO #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/ci-cd"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/ci-cd"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md index 1af60c6540..c7f538d4e4 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md @@ -14,7 +14,7 @@ navigation: TODO #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/cli-reference"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/cli-reference"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml index 47138f2ac0..7ad860a917 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml @@ -1,4 +1,4 @@ title: Tooling and concepts sidebarRoot: true navigation: - icon: tabler:brand-react-native + icon: tabler:number-2-small diff --git a/docs/content/guides/6.multistore/3.patterns/_dir.yml b/docs/content/guides/6.multistore/3.patterns/_dir.yml index cfc737505a..07c2e55b7c 100644 --- a/docs/content/guides/6.multistore/3.patterns/_dir.yml +++ b/docs/content/guides/6.multistore/3.patterns/_dir.yml @@ -1,4 +1,4 @@ title: Patterns sidebarRoot: true navigation: - icon: tabler:brand-nuxt + icon: tabler:number-3-small diff --git a/docs/content/guides/6.multistore/img/end-to-end-solution.svg b/docs/content/guides/6.multistore/img/end-to-end-solution.svg new file mode 100644 index 0000000000..b53499d8c7 --- /dev/null +++ b/docs/content/guides/6.multistore/img/end-to-end-solution.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/content/guides/6.multistore/img/inheritance-simplified.png b/docs/content/guides/6.multistore/img/inheritance-simplified.png new file mode 100644 index 0000000000000000000000000000000000000000..e750bfb3eb5284422eb1a4aae30e5985e4457dec GIT binary patch literal 66443 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 O&*m!ZO4()a`2Pb-NFOf% literal 0 HcmV?d00001 diff --git a/docs/content/guides/6.multistore/img/reusable-core.png b/docs/content/guides/6.multistore/img/reusable-core.png new file mode 100644 index 0000000000000000000000000000000000000000..a18187f1f6922930c755c68effdf5713b7692974 GIT binary patch literal 162454 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 Date: Tue, 25 Feb 2025 10:17:20 +0700 Subject: [PATCH 08/22] docs(TF-408): how deployment works (#7400) * docs(TF-408): how deployment works * chore: add link to file-based inheritance * docs: maximum compatibility * chore: elaborate more on independent versions --- .../4.deployment/6.deployment.md | 137 +++++++++++++++++- 1 file changed, 135 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md index 2c6a727872..a76ab39d3f 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md @@ -7,14 +7,147 @@ navigation: # Deployment - How it works? +Ever wondered how Alokai transforms your codebase into a live, running application? This guide takes you behind the scenes of the deployment process, showing you exactly how your code goes from development to production. + +## Deployment Process Overview + +Ready to deploy your store? It all starts with a single command: + +```bash +yarn store deploy +``` + +While this command is typically executed in your [continuous delivery pipeline](/guides/multistore/tooling-and-concepts/deployment/ci-cd), you can also run the deployment locally on your machine. + +::tip Getting Started with Deployment +Learn how to configure your stores and run your deployment locally in the [Deployment - Configuration](/guides/multistore/tooling-and-concepts/deployment/configuration) guide. For more details about the `store deploy` command, see the [CLI reference](/guides/multistore/tooling-and-concepts/cli-reference). +:: + +The command performs a deployment of chosen stores. The deployment process consists of six main stages that transform your source code into running applications: + +1. Store Composition +2. Build Process +3. Docker Image Preparation +4. Docker Image Building +5. Image Registry Push +6. Deployment Trigger + +Let's explore each stage in detail. + +### 1. Store Composition + +The journey begins with store composition. The CLI uses the [file-based inheritance](/guides/multistore/tooling-and-concepts/file-based-inheritance) rules to compose the stores by: +- Collecting files from base applications +- Applying overrides from parent stores, based on the file-based inheritance +- Adding store-specific customizations + +Everything comes together in the temporary `.out/` directory (which is git-ignored), ready for the next stage. + +::info Independent Files in `.out` Directory +Unlike in the `apps` directory where files are shared between stores through inheritance, each store in the `.out` directory has its own independent copy of all files. Let's take a look at the following example: + +```bash +apps/ +├── storefront-unified-nextjs/ # Base shared code + ├── tailwind.config.ts + ├── ... +└── stores/ + ├── fashion-brand/ + │ ├── storefront-unified-nextjs/ + │ │ ├── components/ + │ │ │ ├── header.tsx + │ ├── stores/ + │ │ ├── us/ + │ │ ├── eu/ +``` + +The CLI copies files to their respective store directories, creating separate Next.js/Nuxt, Middleware and Playwright projects with their own complete source code for each store: + +```bash +.out/ +├── us/ +│ ├── storefront-unified-nextjs/ +│ │ ├── tailwind.config.ts # a copy from base +│ │ ├── ... +│ │ ├── components/ +│ │ │ ├── header.tsx # a copy from fashion-brand +└── eu/ + ├── storefront-unified-nextjs/ + │ ├── tailwind.config.ts # a copy from base + │ ├── ... + │ ├── components/ + │ │ ├── header.tsx # a copy from fashion-brand +``` +:: + +::tip Learn more about composition +For detailed information about how stores are composed, see the [File-based inheritance](/guides/multistore/tooling-and-concepts/file-based-inheritance) guide. +:: + +### 2. Build Process + +With the stores composed, the build phase begins. The CLI executes the `build` script defined in each application's `package.json` file to create production-ready builds. + +### 3. Docker Image Preparation + +Now comes the optimization phase. The CLI prepares standalone applications in `.out///.deploy` directories, carefully selecting only the essential files needed for production. This process significantly reduces image sizes and speeds up deployments. + +::tip `.deploy` Directory +Curious about what goes into the production build? You can explore the `.deploy` directory at `.out///.deploy` after running the `store deploy` command. +:: + +### 4. Docker Image Building + +With the `.deploy` directories ready, the CLI builds Docker images for each application (Middleware and Frontend). All applications use a similar Dockerfile. A simplified version of the Dockerfile looks like this: + +```dockerfile +# Use lightweight Node.js alpine as the base image +FROM node:18-alpine + +# Set the working directory +WORKDIR /var/www + +# Copy the optimized .deploy directory +COPY ./.deploy/ ./ + +# Configure the entrypoint for running the production app +ENTRYPOINT ["node", "server.js"] +``` + +This simple and efficient Dockerfile structure ensures: +- Small image sizes through the use of Alpine base image +- Only production files are included via the `.deploy` directory +- Proper entrypoint for running the production app +- Maximum compatibility with CI/CD providers by using basic Docker features only (no buildx or other modern Docker features required) + +### 5. Image Registry Push + +With our optimized applications ready, the CLI: +1. Tags images with the latest commit SHA +2. Authenticates with the Alokai Cloud registry +3. Pushes images to the container repository + +::tip Why commit SHA? +Using commit SHAs for tagging provides unique identification of each deployment, enabling easy rollbacks and ensuring clear tracking of deployed code. Remember to always commit your changes before deploying, even for local deployments, as the SHA is used for tagging. +:: + +### 6. Deployment Trigger + +In the final stage: +1. CLI sends request to the Alokai Console API +2. Console orchestrates the deployment across the cloud infrastructure + +## Result + +Once the `store deploy` command completes its work, you can check the Alokai Console to monitor the deployment status and see your store transition from code to a live, running application. ::card{title="Next: Deployment - Configuration" icon="tabler:number-3-small" } #description -TODO +Learn how to configure your stores for deployment using `alokai.config.json`. #cta -:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/configuration"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/deployment/configuration"} Next ::: :: From fc16790165318252d4e4c97f362eec63b33b3d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Tue, 25 Feb 2025 19:33:50 +0700 Subject: [PATCH 09/22] docs(TF-410): multibrand ci/cd (#7401) * docs(TF-410): ci/cd draft * docs: complete docs * chore: which stores have changed * docs: improve introduction * docs: describe a setup action on a higher level * Update docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md Co-authored-by: Mateusz Ostafil * chore: remove ci part --------- Co-authored-by: Mateusz Ostafil --- .../3.development/4.local-environment.md | 6 +- .../4.deployment/7.configuration.md | 2 +- .../4.deployment/8.cd.md | 236 ++++++++++++++++++ .../4.deployment/8.ci-cd.md | 20 -- 4 files changed, 240 insertions(+), 24 deletions(-) create mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md delete mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md index d70bb50d84..43673b6811 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md @@ -172,10 +172,10 @@ yarn store build --store-id=affected-store-id-1,affected-store-id-2 ``` :::tip -In the Continuous Integration pipeline, the affected stores are built and tested automatically. You can read more about it in the [Continuous Integration](/guides/multistore/tooling-and-concepts/deployment/ci-cd) guide. +In the Continuous Integration and Continuous Deployment pipelines, the affected stores are built and tested automatically. You can read more about it in the [CD Pipeline](/guides/multistore/tooling-and-concepts/deployment/cd) guide. ::: -3. **Debugging Inheritance** +1. **Debugging Inheritance** Use the `--verbose` flag to see detailed file resolution: ```bash yarn store build --store-id=my-store --verbose @@ -185,7 +185,7 @@ You can also use the `DEBUG=*` environment variable to get even more logs: DEBUG=* yarn store build --store-id=my-store ``` -4. **Inspect Store Composition** +1. **Inspect Store Composition** Examine how stores are composed in the `.out` directory: ```bash yarn store build --store-id=my-store --compose-only diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md index b19af0516d..580854b474 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md @@ -14,7 +14,7 @@ navigation: TODO #cta -:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/ci-cd"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/cd"} Next ::: :: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md new file mode 100644 index 0000000000..8d8ac69f14 --- /dev/null +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md @@ -0,0 +1,236 @@ +--- +title: CD Pipeline +layout: default +navigation: + icon: tabler:number-2-small +--- + +# Deployment - CD Pipeline + +Running deployments on your local machine works great during development, but let's be honest - what we really want is for these processes to happen automatically when we push our code. This guide explains how Continuous Deployment (CD) works in a multistore setup, helping you create an efficient and reliable deployment process that runs without manual intervention. + +**What You'll Learn** + +::list{type="success"} +- How to set up CD pipeline using GitHub Actions +- How to detect and process only changed stores +- How to efficiently deploy multiple stores in parallel +- Advanced topics like change detection mechanism and CLI-driven approach +:: + +## Core Concepts + +### What is CD in Multistore? + +In a multistore setup, CD is designed to: +1. Automatically detect which stores have changed +2. Build and deploy only the changed stores + +This targeted approach ensures: +- Faster deployments +- Efficient resource usage +- Less redundancy (unchanged stores are skipped in CD pipeline) + +## Continuous Deployment (CD) + +::tip +To learn how deployment works in detail, check out the [Deployment](/guides/multistore/tooling-and-concepts/deployment/deployment) guide. +:: + +The continuous deployment process ensures that your stores are built and deployed efficiently. Here's how it works: + +### Deployment Triggers + +There are several ways to configure when your stores get deployed: + +#### Automatic Deployment +Deploy automatically whenever code is pushed to the main branch: +```yaml +on: + push: + branches: [main] # Deploy on every push to main +``` + +#### Manual Deployment +Allow manual deployments with optional store selection: +```yaml +on: + workflow_dispatch: + inputs: + store_ids: + description: 'Space separated list of store IDs to deploy' + required: false # When not provided, detect changed stores +``` + +You can use the automatic deployment for staging and manual deployment for production environment. + +::tip Deployment Protection +For Github Actions, you can use deployment protection rules to require manual approval before deployments. Check out the Github [docs](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments) for more details. +:: + +### 1. Building and Deploying Stores + +The `store deploy` command handles both building and deploying your stores. There's no need to run a separate build step: + +```yaml +steps: + - name: Deploy stores + run: | + yarn store deploy \ + --cloud-username ${{ vars.CLOUD_USERNAME }} \ + --cloud-password ${{ secrets.CLOUD_PASSWORD }} \ + $storeIdsFlag \ + --verbose +``` + +### 2. Parallel Deployment + +For efficient deployment of multiple stores, use a matrix strategy: + +```yaml +jobs: + deploy: + strategy: + matrix: + store_id: ${{ fromJson(storeIds) }} + steps: + - name: Deploy store + run: | + yarn store deploy \ + --cloud-username ${{ vars.CLOUD_USERNAME }} \ + --cloud-password ${{ secrets.CLOUD_PASSWORD }} \ + --store-id ${{ matrix.store_id }} \ + --verbose +``` + +## Advanced Topics + +### Understanding Change Detection + +The change detection system is a core part of our CI/CD pipeline, implemented in the CLI, with `yarn store changed` command, to ensure consistent behavior across different CI platforms. Here's how it works: + +The change detection system analyzes git differences and determines which stores are affected based on several rules: + +1. **Root Changes** + When files in the base applications change (e.g., `/apps/storefront-middleware/src/index.ts`), all stores inheriting from that application are affected, unless they override the changed file. + + Example: A change in base middleware: + - Changed file: `/apps/storefront-middleware/src/index.ts` + - Affected stores: All stores which don't have their own version of the file + +2. **Parent Store Changes** + When a parent store changes, all its child stores are affected, unless they override the changed file. + + Example: A change in parent store: + - Changed file: `/apps/stores/fashion-brand/middleware/index.ts` + - Affected stores: All stores which don't have their own version of the file + +3. **Direct Store Changes** + When files within a store directory change, only that store is affected. + + Example: A change in specific store: + - Changed file: `/apps/stores/sports-brand/middleware/index.ts` + - Affected store: only `sports-brand` + +4. **Dependency Changes** + Changes to dependency files (e.g., `yarn.lock`) affect all stores. + + Example: A change in dependencies: + - Changed file: `yarn.lock` + - Affected: All stores + +5. **Global Dependencies** + Changes to globally configured paths (e.g., shared packages) affect all stores. You can mark global dependencies for the `yarn store changed` command by adding the `--global-dependencies` flag. For example: + ```bash + # Mark all packages in the packages directory as global dependencies + yarn store changed --global-dependencies="packages/**" + ``` + +6. **File Overrides** + If a store overrides a file from its parent or base application, changes to the original file won't affect that store. + + Example: A file override: + - Changed file: `/apps/stores/fashion-brand/middleware/index.ts` + - Skipped: `fashion-brand-us` (has its own version of the file) + - Affected: Other child stores without overrides + +The system provides detailed information about why each store was affected: +- `STORE_CHANGED`: Direct changes to the store +- `ANCESTOR_CHANGED`: Changes in parent store or base application +- `PACKAGE_LOCK_CHANGED`: Dependency file changes +- `GLOBAL_DEPENDENCIES_CHANGED`: Changes in globally configured paths + +::tip +When debugging why a particular store was affected, run the `yarn store changed` command without the `--condensed` flag to see the detailed change report. You can also run the command locally to debug the changes. +:: + +::info Why not use Turbo for change detection? +While Turborepo is great for monorepo task orchestration, it can't handle our dynamic store composition. Our stores are composed into the `.out` directory, which is git-ignored. Turbo relies on git history for change detection, but it can't track how these dynamically composed stores in `.out` directory change. That's why we've implemented our own change detection system that understands store inheritance and file overrides. +:: + +### Why Parallel Store Deployments? + +We recommend running deployments in parallel (one job per store) for several reasons: + +1. **Isolation** + - Each store deployment runs in its own environment + - Failures in one store don't affect others + - Resource limits are per-store, preventing one store from consuming all resources + +2. **Performance** + - Multiple stores deploy simultaneously + - Overall deployment time is significantly reduced + +3. **Maintainability** + - Easy to retry failed deployments + - Clear logs per store + - Simpler debugging and monitoring + +### CLI-Driven Approach + +Our CI/CD heavily relies on the CLI for several important reasons: + +1. **Platform Independence** + - The same commands work across all platforms + - No need to rewrite logic for different platforms + - Consistent behavior everywhere + +2. **Local Build and Development Parity** + - Developers can run the same commands locally + - Easy to debug CI/CD issues + - No surprises between local and CI environments + +3. **Encapsulated Logic** + - Complex operations are packaged in simple commands + - CI configuration focuses on workflow, not implementation + - Updates to deployment logic don't require CI changes + +For example, instead of implementing store change detection in CI: +```yaml +# Don't do this +- name: Detect changes + run: | + # Complex git diff logic + # Parse file paths + # Check store inheritance + # Handle overrides +``` + +We use a single CLI command: +```yaml +# Do this instead +- name: Detect changes + run: yarn store changed --since $SINCE_SHA --to $TO_SHA +``` + +This approach makes it easy to implement our CI/CD pipeline in any CI system that can run shell commands. + +::card{title="Next: CLI Reference" icon="tabler:number-3-small" } +#description +Learn more about the CLI commands used in CI/CD pipelines. + +#cta +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/cli-reference"} +Next +::: +:: \ No newline at end of file diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md deleted file mode 100644 index c7f538d4e4..0000000000 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.ci-cd.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: CI/CD -layout: default -navigation: - icon: tabler:number-2-small ---- - -# Deployment - CI/CD - - -::card{title="Next: CLI Reference" icon="tabler:number-3-small" } - -#description -TODO - -#cta -:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/cli-reference"} -Next -::: -:: From d3b7ca08f30c77a7bdfd285fdb15e987759b38ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3ral?= Date: Tue, 25 Feb 2025 19:34:03 +0700 Subject: [PATCH 10/22] docs(TF-409): deployment configuration (#7398) * docs(TF-409): deployment * docs: update security parts * fix: nextjs instead of next * chore: docker registry url * chore: refactor what you'll learn * docs: framework auto-detection * docs: mention .env file * docs: decouple from a ci provider * docs: region warning * docs: deployment variables reference * docs: move prerequisites at the beginning of the section * Update docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md Co-authored-by: Mateusz Ostafil * chore: staging env * chore: local testing -> triggering local deployment * docs: change introduction --------- Co-authored-by: Mateusz Ostafil --- .../4.deployment/6.deployment.md | 2 +- .../4.deployment/7.configuration.md | 221 +++++++++++++++++- 2 files changed, 221 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md index a76ab39d3f..a058f0df6e 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md @@ -150,4 +150,4 @@ Learn how to configure your stores for deployment using `alokai.config.json`. :::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/deployment/configuration"} Next ::: -:: +:: \ No newline at end of file diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md index 580854b474..1841976bc3 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md +++ b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md @@ -7,11 +7,230 @@ navigation: # Deployment - Configuration +Deploying your Alokai stores is incredibly simple! With our powerful deployment system, you can go from development to production in just a few minutes. + +A single CLI command takes care of everything – it builds the store, optimizes it for deployment, creates a Docker image, pushes it to our repository, and initiates the deployment process on the cluster. + +Whether you’re managing a single store or orchestrating multiple brands, Alokai’s configuration system makes deployment effortless. This guide will show you how to leverage these capabilities and get your stores up and running with minimal effort. + +**What You'll Learn** + +::list{type="success"} +- Configuring your `alokai.config.json` for successful deployments +- Choosing and configuring frameworks for your stores +- Managing multiple store deployments efficiently +- Running and testing deployments locally +:: + +## Core Concepts + +### The `alokai.config.json` File + +The `alokai.config.json` file is the central configuration file that controls how your stores are deployed. It contains essential settings for: +- Project identification +- Deployment regions +- Framework selection +- Store-specific configurations + +Example configuration: +```json +{ + "stores": { + "fashion-brand": { + "deployment": { + "projectName": "fashion-brand-prod", + "region": "us-east-1", + "framework": "nextjs" + } + }, + "sports-brand": { + "deployment": { + "projectName": "sports-brand-prod", + "region": "eu-west-1", + "framework": "nuxt" + } + } + } +} +``` + +::warning Configuration Required +Each deployable store must have a valid configuration in `alokai.config.json`. Template stores shouldn't be placed in the `alokai.config.json` file as they are not deployed. +:: + +## Configuration Parameters + +### `projectName` + +The `projectName` parameter is a crucial identifier that links your store to Alokai Console. + +::tip Finding Your Project Name +You can find your project name in the [Deployment Variables](/console/instance/settings/deployment-variables) section of the Alokai Console. +:: + +Example configuration: +```json +{ + "stores": { + "fashion-brand": { + "deployment": { + "projectName": "fashion-brand-prod", // Must match Alokai Console project name + // ... other parameters + } + } + } +} +``` + +### `region` + +The `region` parameter determines where your store will be deployed. + +::warning `region` Required +Deployment cannot be triggered without a valid region configuration. The `region` value can be found in the [Deployment Variables](/console/instance/settings/deployment-variables) section of the Alokai Console. Ensure the value in `alokai.config.json` matches the region selected for your project. +:: + +Example region configuration: +```json +{ + "stores": { + "fashion-brand": { + "deployment": { + "region": "us-east-1", // AWS region identifier + // ... other parameters + } + } + } +} +``` + +### `framework` + +::info Auto-detection +The `framework` parameter is optional when your project uses only one frontend framework (Next.js or Nuxt). In this case, Alokai CLI will automatically detect and use the correct framework. +:: + +The `framework` parameter defines whether a store uses Next.js or Nuxt. Alokai supports both frameworks out of the box through two base applications: +- `apps/storefront-unified-nextjs` for Next.js stores +- `apps/storefront-unified-nuxt` for Nuxt stores + +Each store in `alokai.config.json` may specify which framework it will use for deployment: + +```json +{ + "stores": { + "fashion-brand": { + "deployment": { + "framework": "nextjs", // This store will deploy using Next.js + // ... other parameters + } + }, + "sports-brand": { + "deployment": { + "framework": "nuxt", // This store will deploy using Nuxt + // ... other parameters + } + } + } +} +``` + +Your project structure can support both frameworks simultaneously. For example: +```bash +apps/ +├── storefront-unified-nextjs/ # Base Next.js implementation +├── storefront-unified-nuxt/ # Base Nuxt implementation +└── stores/ + ├── fashion-brand/ + │ ├── storefront-unified-nextjs/ # Next.js Storefront + └── sports-brand/ + └── storefront-unified-nuxt/ # Nuxt Storefront +``` + +This dual-framework support is particularly beneficial when: +- Different teams specialize in different frameworks +- You're migrating from one framework to another +- Specific stores have requirements better suited to a particular framework + +## Local Build & Deployment via CLI + +::warning Development Environment Only +Triggering deployments locally should only be used for development and testing purposes. For production deployments, we recommend using CI/CD pipelines (like GitHub Actions, GitLab CI, or Bitbucket Pipelines) as they provide better credentials' security, a controlled deployment environment, version control integration, and automated validation checks. You can read more about it in the [CI/CD guide](/guides/multistore/tooling-and-concepts/ci-cd). +:: + +### Prerequisites + +1. **Docker** + - Docker must be installed and running on your machine + +2. **Cloud Credentials** + - Find your credentials in the [Alokai Console](/console/instance/settings/deployment-variables) + - Use staging/dev environment for triggering deployments locally + - Set up environment variables or provide them via CLI flags: + - `CLI_CLOUD_USERNAME` or `--cloud-username` + - `CLI_CLOUD_PASSWORD` or `--cloud-password` + +3. **Docker Registry** + - Default registry: `registry.vuestorefront.cloud` + - Can be customized using `--docker-registry-url` flag or `CLI_DOCKER_REGISTRY_URL` environment variable + +4. **Configuration Verification** + - Double-check `alokai.config.json` configuration + - Verify `projectName` matches intended deployment target + - Confirm `region` selection is appropriate for testing + +### Deployment Command + +One of the great things about Alokai is how simple it makes deployments! The basic deployment command is: + +```bash +yarn store deploy --store-id=fashion-brand \ + --cloud-username=your_username \ + --cloud-password=your_password +``` + +::tip Environment Variables +You can simplify the command by using environment variables. The Alokai CLI automatically loads variables from the `.env` file in your project root, which is the recommended approach: + +```bash +# .env file in your project root +CLI_CLOUD_USERNAME=your_username +CLI_CLOUD_PASSWORD=your_password +``` + +Alternatively, you can set them manually in your terminal: +```bash +export CLI_CLOUD_USERNAME=your_username +export CLI_CLOUD_PASSWORD=your_password +``` + +With either approach, you'll only need to specify the store-id: +```bash +yarn store deploy --store-id=fashion-brand +``` +:: + +That's it! The CLI handles all the complexity of building, packaging, and deploying your store. You can also add `--verbose` flag to see detailed logs: + +```bash +yarn store deploy --store-id=fashion-brand \ + --verbose # Optional: see detailed deployment logs +``` + +You can also use the `--all` flag to deploy all deployable stores. + +::tip Easy Development +The ability to deploy locally makes development and testing much faster! You can quickly test your changes in a production-like environment without waiting for CI/CD pipelines. If you want to deploy to a different project in console, you can temporarily change the `projectName` in `alokai.config.json`. +:: + +::danger Credential Security +For security reasons, you must never commit credentials to version control, share credentials with unauthorized team members or use production credentials for triggering deployments locally. Always prefer using environment variables. +:: ::card{title="Next: Deployment - CI/CD" icon="tabler:number-3-small" } #description -TODO +Learn how to set up automated deployments using CI/CD pipelines, ensuring consistent and reliable deployments across your stores. #cta :::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/cd"} From 09d8b85e421d6a1cec0bb3e22e898e033c529719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gosta=C5=84ski?= Date: Tue, 25 Feb 2025 15:22:29 +0100 Subject: [PATCH 11/22] chore: clean up --- .../2.tooling-and-concepts/1.index.md | 18 ---------------- .../3.development/_dir.yml | 3 --- .../4.deployment/_dir.yml | 3 --- .../guides/6.multistore/3.patterns/1.index.md | 20 ------------------ .../2.design/1.global-styles-per-store.md | 8 ------- .../2.design/2.controlling-layout-with-cms.md | 8 ------- .../3.different-styles-per-component.md | 8 ------- .../2.design/4.different-code-per-store.md | 8 ------- .../6.multistore/3.patterns/2.design/_dir.yml | 3 --- .../1.different-config-same-integration.md | 8 ------- .../2.different-integrations-per-store.md | 8 ------- .../6.multistore/3.patterns/3.data/_dir.yml | 3 --- .../4.testing/1.override-playwright-config.md | 8 ------- .../3.patterns/4.testing/2.replace-mocks.md | 8 ------- .../4.testing/3.skip-modify-tests.md | 8 ------- .../3.patterns/4.testing/4.tests-debugging.md | 8 ------- .../3.patterns/4.testing/_dir.yml | 3 --- .../3.patterns/5.subpath/1.subpath-next.md | 8 ------- .../3.patterns/5.subpath/2.subpath-nuxt.md | 8 ------- .../5.subpath/3.subpath-middleware.md | 8 ------- .../3.patterns/5.subpath/4.subpath-mixed.md | 8 ------- .../3.patterns/5.subpath/_dir.yml | 3 --- .../guides/6.multistore/3.patterns/_dir.yml | 4 ---- .../{6.multistore => 7.multistore}/1.index.md | 12 ++--------- .../1.introduction/1.index.md | 0 .../1.introduction/2.use-cases.md | 0 .../1.introduction/_dir.yml | 2 +- .../2.tooling-and-concepts/1.index.md} | 8 +++---- .../2.development}/3.managing-the-stores.md | 0 .../2.development}/4.local-environment.md | 0 .../2.development}/5.integration-tests.md | 0 .../2.development/_dir.yml | 1 + .../3.deployment}/6.deployment.md | 0 .../3.deployment}/7.configuration.md | 0 .../3.deployment}/8.cd.md | 0 .../3.deployment/_dir.yml | 1 + .../2.tooling-and-concepts/5.cli-reference.md | 2 +- .../2.tooling-and-concepts/_dir.yml | 2 +- .../{6.multistore => 7.multistore}/_dir.yml | 2 +- .../img/end-to-end-solution.svg | 0 .../img/file-based-inheritance.svg | 0 .../img/inheritance-simplified.png | Bin .../img/reusable-core.png | Bin .../img/running-test-in-ui-mode.png | Bin .../img/store-add-command.png | Bin 45 files changed, 12 insertions(+), 190 deletions(-) delete mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md delete mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml delete mode 100644 docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml delete mode 100644 docs/content/guides/6.multistore/3.patterns/1.index.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml delete mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml delete mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml delete mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md delete mode 100644 docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml delete mode 100644 docs/content/guides/6.multistore/3.patterns/_dir.yml rename docs/content/guides/{6.multistore => 7.multistore}/1.index.md (52%) rename docs/content/guides/{6.multistore => 7.multistore}/1.introduction/1.index.md (100%) rename docs/content/guides/{6.multistore => 7.multistore}/1.introduction/2.use-cases.md (100%) rename docs/content/guides/{6.multistore => 7.multistore}/1.introduction/_dir.yml (56%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md => 7.multistore/2.tooling-and-concepts/1.index.md} (99%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/3.development => 7.multistore/2.tooling-and-concepts/2.development}/3.managing-the-stores.md (100%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/3.development => 7.multistore/2.tooling-and-concepts/2.development}/4.local-environment.md (100%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/3.development => 7.multistore/2.tooling-and-concepts/2.development}/5.integration-tests.md (100%) create mode 100644 docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/_dir.yml rename docs/content/guides/{6.multistore/2.tooling-and-concepts/4.deployment => 7.multistore/2.tooling-and-concepts/3.deployment}/6.deployment.md (100%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/4.deployment => 7.multistore/2.tooling-and-concepts/3.deployment}/7.configuration.md (100%) rename docs/content/guides/{6.multistore/2.tooling-and-concepts/4.deployment => 7.multistore/2.tooling-and-concepts/3.deployment}/8.cd.md (100%) create mode 100644 docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/_dir.yml rename docs/content/guides/{6.multistore => 7.multistore}/2.tooling-and-concepts/5.cli-reference.md (88%) rename docs/content/guides/{6.multistore => 7.multistore}/2.tooling-and-concepts/_dir.yml (65%) rename docs/content/guides/{6.multistore => 7.multistore}/_dir.yml (57%) rename docs/content/guides/{6.multistore => 7.multistore}/img/end-to-end-solution.svg (100%) rename docs/content/guides/{6.multistore => 7.multistore}/img/file-based-inheritance.svg (100%) rename docs/content/guides/{6.multistore => 7.multistore}/img/inheritance-simplified.png (100%) rename docs/content/guides/{6.multistore => 7.multistore}/img/reusable-core.png (100%) rename docs/content/guides/{6.multistore => 7.multistore}/img/running-test-in-ui-mode.png (100%) rename docs/content/guides/{6.multistore => 7.multistore}/img/store-add-command.png (100%) diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md b/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md deleted file mode 100644 index f5c1060794..0000000000 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/1.index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Tooling and Concepts -layout: default ---- - -# Tooling and concepts - - -::card{title="Next: File-based inheritance" icon="tabler:number-1-small" } - -#description -TODO - -#cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/file-based-inheritance"} -Start building -::: -:: diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml deleted file mode 100644 index 9288da640d..0000000000 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Development -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml b/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml deleted file mode 100644 index f7d92d9d9e..0000000000 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Deployment -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/1.index.md b/docs/content/guides/6.multistore/3.patterns/1.index.md deleted file mode 100644 index 78402c6217..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/1.index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Patterns -layout: default ---- - -# Patterns - - -Let's get started! - -::card{title="Next: Design - Global styles per store" icon="tabler:number-1-small" } - -#description -TODO - -#cta -:::docs-button{to="/guides/multistore/patterns/global-styles-per-store"} -Next -::: -:: diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md b/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md deleted file mode 100644 index 535f73fbb2..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/2.design/1.global-styles-per-store.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Global styles per store -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Global styles per store. diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md b/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md deleted file mode 100644 index 17e112628b..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/2.design/2.controlling-layout-with-cms.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Controlling layout with CMS -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Controlling layout with CMS diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md b/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md deleted file mode 100644 index 3225c1eb1b..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/2.design/3.different-styles-per-component.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Different styles for individual components -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Different styles for individual components diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md b/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md deleted file mode 100644 index 09a21d458f..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/2.design/4.different-code-per-store.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Different markups for individual components -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Different markups for individual components diff --git a/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml b/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml deleted file mode 100644 index 439d3defcc..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/2.design/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Design -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md b/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md deleted file mode 100644 index 6de0d10665..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/3.data/1.different-config-same-integration.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Different configurations for the same integration -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Different configurations for the same integration diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md b/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md deleted file mode 100644 index 12d8bdff14..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/3.data/2.different-integrations-per-store.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Different integrations in each store -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Different integrations in each store diff --git a/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml b/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml deleted file mode 100644 index 9b4bf97ddc..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/3.data/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Data -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md b/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md deleted file mode 100644 index 5310351668..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/4.testing/1.override-playwright-config.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Override Playwright configurations for individual stores -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Override Playwright configurations for individual stores diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md b/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md deleted file mode 100644 index 430554a809..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/4.testing/2.replace-mocks.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Replace or extend mocked endpoints -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Replace or extend mocked endpoints diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md b/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md deleted file mode 100644 index de83fc6875..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/4.testing/3.skip-modify-tests.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Skip specific tests or add new ones to the suite -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Skip specific tests or add new ones to the suite diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md b/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md deleted file mode 100644 index 646cf76a52..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/4.testing/4.tests-debugging.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Debugging issues during test execution -layout: default -navigation: - icon: tabler:number-1-small ---- - -# Debugging issues during test execution diff --git a/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml b/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml deleted file mode 100644 index df7b4dd76a..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/4.testing/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Testing -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md deleted file mode 100644 index 409b22eec4..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/5.subpath/1.subpath-next.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: How to make sub-path routing on Next -layout: default -navigation: - icon: tabler:number-1-small ---- - -# How to make sub-path routing on Next diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md deleted file mode 100644 index 2c864d8c6b..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/5.subpath/2.subpath-nuxt.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: How to make sub-path routing on Nuxt -layout: default -navigation: - icon: tabler:number-1-small ---- - -# How to make sub-path routing on Nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md deleted file mode 100644 index ee0e896ef3..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/5.subpath/3.subpath-middleware.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: How to make sub-path routing on Middleware -layout: default -navigation: - icon: tabler:number-1-small ---- - -# How to make sub-path routing on Middleware diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md b/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md deleted file mode 100644 index 003313dad1..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/5.subpath/4.subpath-mixed.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: How to make mixed solution with domain and sub-path routing -layout: default -navigation: - icon: tabler:number-1-small ---- - -# How to make mixed solution with domain and sub-path routing diff --git a/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml b/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml deleted file mode 100644 index de2b8bd3cf..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/5.subpath/_dir.yml +++ /dev/null @@ -1,3 +0,0 @@ -title: Subpath Routing -navigation: - icon: tabler:brand-nuxt diff --git a/docs/content/guides/6.multistore/3.patterns/_dir.yml b/docs/content/guides/6.multistore/3.patterns/_dir.yml deleted file mode 100644 index 07c2e55b7c..0000000000 --- a/docs/content/guides/6.multistore/3.patterns/_dir.yml +++ /dev/null @@ -1,4 +0,0 @@ -title: Patterns -sidebarRoot: true -navigation: - icon: tabler:number-3-small diff --git a/docs/content/guides/6.multistore/1.index.md b/docs/content/guides/7.multistore/1.index.md similarity index 52% rename from docs/content/guides/6.multistore/1.index.md rename to docs/content/guides/7.multistore/1.index.md index bdce90b365..2371bd40cb 100644 --- a/docs/content/guides/6.multistore/1.index.md +++ b/docs/content/guides/7.multistore/1.index.md @@ -9,24 +9,16 @@ On this page you'll find a set of guides that will help you to understand the fu Below you will find a list of guides to help you get started with Alokai. -::card{title="Introduction" icon="tabler:brand-nextjs" to="/guides/multistore/introduction" } +::card{title="Introduction" icon="tabler:align-box-center-middle" to="/guides/multistore/introduction" } #description -Learn ::
-::card{title="Tooling and concepts" icon="tabler:brand-react" to="/guides/multistore/tooling-and-concepts" } +::card{title="Tooling and concepts" icon="tabler:tools" to="/guides/multistore/tooling-and-concepts" } #description -Learn ::
- -::card{title="Patterns" icon="tabler:brand-nuxt" to="/guides/multistore/patterns" } - -#description -Learn -:: diff --git a/docs/content/guides/6.multistore/1.introduction/1.index.md b/docs/content/guides/7.multistore/1.introduction/1.index.md similarity index 100% rename from docs/content/guides/6.multistore/1.introduction/1.index.md rename to docs/content/guides/7.multistore/1.introduction/1.index.md diff --git a/docs/content/guides/6.multistore/1.introduction/2.use-cases.md b/docs/content/guides/7.multistore/1.introduction/2.use-cases.md similarity index 100% rename from docs/content/guides/6.multistore/1.introduction/2.use-cases.md rename to docs/content/guides/7.multistore/1.introduction/2.use-cases.md diff --git a/docs/content/guides/6.multistore/1.introduction/_dir.yml b/docs/content/guides/7.multistore/1.introduction/_dir.yml similarity index 56% rename from docs/content/guides/6.multistore/1.introduction/_dir.yml rename to docs/content/guides/7.multistore/1.introduction/_dir.yml index fa930cc9ae..427f0471d6 100644 --- a/docs/content/guides/6.multistore/1.introduction/_dir.yml +++ b/docs/content/guides/7.multistore/1.introduction/_dir.yml @@ -1,4 +1,4 @@ title: Introduction sidebarRoot: true navigation: - icon: tabler:number-1-small + icon: tabler:align-box-center-middle diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md similarity index 99% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md index 03fc746e2b..663f3d5865 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/2.file-based-inheritance.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md @@ -2,7 +2,7 @@ title: File-based inheritance layout: default navigation: - icon: tabler:number-1-small + icon: garden:file-zip-26 --- # File-based inheritance @@ -57,7 +57,7 @@ File-based inheritance allows you to reuse common code across stores while enabl ### Project Structure -Every project starts with a single store called `default`. +Every project starts with a single store called `default`. :::tip There is nothing special within the `default` store, it is treated just like any other store. You can rename it to whatever you want. @@ -351,7 +351,7 @@ Some files receive special treatment during composition: - Consider flattening the structure if maintenance becomes difficult 4. **Special File Handling** - - `package.json`: + - `package.json`: - Do not create this file within store directories - The CLI automatically generates it in `.out` directory during build - Add all dependencies to the root app's `package.json` (e.g., `apps/storefront-unified-nextjs/package.json`) @@ -367,7 +367,7 @@ Some files receive special treatment during composition: - Same as ESLint config - `tailwind.config.ts`: - Same as ESLint config - + ::card{title="Next: Development - Managing the stores" icon="tabler:number-2-small" } diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/3.managing-the-stores.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/4.local-environment.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/3.development/5.integration-tests.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/_dir.yml b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/_dir.yml new file mode 100644 index 0000000000..a4ffc334a1 --- /dev/null +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/_dir.yml @@ -0,0 +1 @@ +title: Development diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/6.deployment.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/7.configuration.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md similarity index 100% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/4.deployment/8.cd.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/_dir.yml b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/_dir.yml new file mode 100644 index 0000000000..ffcae26ca7 --- /dev/null +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/_dir.yml @@ -0,0 +1 @@ +title: Deployment diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md similarity index 88% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md rename to docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md index 13ab6fe8df..040dcb8c14 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/5.cli-reference.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md @@ -2,7 +2,7 @@ title: CLI Reference layout: default navigation: - icon: tabler:number-2-small + icon: ooui:references-ltr --- # CLI Reference diff --git a/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml b/docs/content/guides/7.multistore/2.tooling-and-concepts/_dir.yml similarity index 65% rename from docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml rename to docs/content/guides/7.multistore/2.tooling-and-concepts/_dir.yml index 7ad860a917..bb154bed3d 100644 --- a/docs/content/guides/6.multistore/2.tooling-and-concepts/_dir.yml +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/_dir.yml @@ -1,4 +1,4 @@ title: Tooling and concepts sidebarRoot: true navigation: - icon: tabler:number-2-small + icon: tabler:tools diff --git a/docs/content/guides/6.multistore/_dir.yml b/docs/content/guides/7.multistore/_dir.yml similarity index 57% rename from docs/content/guides/6.multistore/_dir.yml rename to docs/content/guides/7.multistore/_dir.yml index f14d6b3436..3186e10da3 100644 --- a/docs/content/guides/6.multistore/_dir.yml +++ b/docs/content/guides/7.multistore/_dir.yml @@ -1,4 +1,4 @@ title: Multistore sidebarRoot: true navigation: - icon: tabler:123 + icon: tabler:box-multiple-filled diff --git a/docs/content/guides/6.multistore/img/end-to-end-solution.svg b/docs/content/guides/7.multistore/img/end-to-end-solution.svg similarity index 100% rename from docs/content/guides/6.multistore/img/end-to-end-solution.svg rename to docs/content/guides/7.multistore/img/end-to-end-solution.svg diff --git a/docs/content/guides/6.multistore/img/file-based-inheritance.svg b/docs/content/guides/7.multistore/img/file-based-inheritance.svg similarity index 100% rename from docs/content/guides/6.multistore/img/file-based-inheritance.svg rename to docs/content/guides/7.multistore/img/file-based-inheritance.svg diff --git a/docs/content/guides/6.multistore/img/inheritance-simplified.png b/docs/content/guides/7.multistore/img/inheritance-simplified.png similarity index 100% rename from docs/content/guides/6.multistore/img/inheritance-simplified.png rename to docs/content/guides/7.multistore/img/inheritance-simplified.png diff --git a/docs/content/guides/6.multistore/img/reusable-core.png b/docs/content/guides/7.multistore/img/reusable-core.png similarity index 100% rename from docs/content/guides/6.multistore/img/reusable-core.png rename to docs/content/guides/7.multistore/img/reusable-core.png diff --git a/docs/content/guides/6.multistore/img/running-test-in-ui-mode.png b/docs/content/guides/7.multistore/img/running-test-in-ui-mode.png similarity index 100% rename from docs/content/guides/6.multistore/img/running-test-in-ui-mode.png rename to docs/content/guides/7.multistore/img/running-test-in-ui-mode.png diff --git a/docs/content/guides/6.multistore/img/store-add-command.png b/docs/content/guides/7.multistore/img/store-add-command.png similarity index 100% rename from docs/content/guides/6.multistore/img/store-add-command.png rename to docs/content/guides/7.multistore/img/store-add-command.png From 5e1d75095ae233ee4c936c145010deef03304fbc Mon Sep 17 00:00:00 2001 From: Mateusz Ostafil Date: Tue, 25 Feb 2025 11:05:52 +0100 Subject: [PATCH 12/22] Comment out CDN in data fetching guide (#7404) * docs: add best practices collection and data fetching guide * docs: add data fetching examples * docs: explain why not to fetch lazy loaded data server side * docs: comment out info about CDN --- .../guides/6.best-practices/2.data-fetching.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/content/guides/6.best-practices/2.data-fetching.md b/docs/content/guides/6.best-practices/2.data-fetching.md index e02816d2f6..d4416b5fb7 100644 --- a/docs/content/guides/6.best-practices/2.data-fetching.md +++ b/docs/content/guides/6.best-practices/2.data-fetching.md @@ -42,7 +42,8 @@ The rule of thumb is: _always use server-side fetching except for_: Alokai architecture introduces the Middleware in between the front-end application and the APIs. This adds two additional possible routes to our diagram, but most of the traffic should go through the middleware, because: -- it is cached on the CDN + + - it keeps your architecture simple - you can easily monitor middleware traffic in the console - enables [data federation](/middleware/guides/federation) @@ -58,13 +59,17 @@ Fortunately, we can reject the route between the server and the API, because: The direct route between the browser and API should be avoided, because it: - tightly couples storefront with the API, -- reduces performance by bypasses CDN cache. + + Use direct direct browser to API calls only when communicating via middleware is not possible or requires unnecessary effort. Sample scenarios when it might be valid to communicate directly between client and API: - the communication requires extremely low latency - e.g. voice or video stream - communication with API is done via some SDK that requires direct client (browser) interaction - e.g. analytics or authentication services + + + ## Examples From 0a6375f660286c2d78fd40cdaa558d61607c6a24 Mon Sep 17 00:00:00 2001 From: Mateusz Ostafil Date: Tue, 25 Feb 2025 13:30:32 +0100 Subject: [PATCH 13/22] docs: update handling custom occ endpoints recipe (#7405) --- .../cookbook/handling-custom-occ-endpoint.md | 169 ++++++++++-------- 1 file changed, 90 insertions(+), 79 deletions(-) diff --git a/docs/content/cookbook/handling-custom-occ-endpoint.md b/docs/content/cookbook/handling-custom-occ-endpoint.md index 720e5621a2..cc4739e475 100644 --- a/docs/content/cookbook/handling-custom-occ-endpoint.md +++ b/docs/content/cookbook/handling-custom-occ-endpoint.md @@ -1,15 +1,36 @@ # Handling custom OCC endpoints It is a common task to add support for a custom (non-standard) SAP OCC API endpoint not covered by the Alokai intergration. -This guide will show you how can do it using Alokai. +There are two ways how you can do it: -## Prerequisites +1. Generate new API client based on OpenAPI (swagger) specification. +2. Add support for a custom endpoint manually. -Before we start make sure that you are familiar with [Adding New API Methods](https://docs.alokai.com/storefront/integration-and-setup/storefront-extension#adding-new-api-methods) guide. With that guide, you would be able to +## Generating new API client + +Generation of new API client allows you to add support for all custom endpoints at once. You just run a script and all the endpoints will be added to the integration. + +How to do this is described in the [Generated API guide](/integrations/sapcc/features/generated-api). + +This should be your default approach, because it is the most scalable and maintainable way. + +## Adding support for a custom endpoint manually + +If you don't want or cannot generate a new API client, you can add support for a custom endpoint manually. +It boils down to adding a new API method to the middleware that calls the custom endpoint. This guide shows how to do it efficiently. + +When to use this approach? + +- When for some reason you cannot generate a new API client, e.g. OpenAPI specification is not available. +- When you are iterating fast both on the API and the front-end and you don't want to regenerate the API client for each change. + +### Prerequisites + +Before we start make sure that you are familiar with [Adding New API Methods](/unified-data-layer/integration-and-setup/creating-new-api-methods) guide. With that guide, you would be able to communicate with OCC API but it would require manual retrieval of context parameters (baseSiteId, userId, language, and currency) and preparation of authorization headers. Read on to see how to streamline that process. -## Communicating with OCC API effectively +### Communicating with OCC API effectively OCC endpoints have a given structure @@ -35,74 +56,69 @@ Here's where to find the parameters: - `baseUrl` - is configured in .env file as `SAPCC_API_URI`. The api client already knows it and prepends each URL with it. - `baseSiteId` - is defined in the middleware configuration. That configuration is exposed to api method via context. -- `userId` - can be found in the request cookies under [`AUTH_USER_COOKIE_NAME`](https://docs.alokai.com/integrations/sapcc/api/sapcc-api/AUTH_USER_COOKIE_NAME). -- `language` - can be found in the request cookies under [`VSF_LOCALE_COOKIE`](https://docs.alokai.com/storefront/features/internationalization/internatialization-support). -- `currency` - can be found in the request cookies under [`VSF_CURRENCY_COOKIE`](https://docs.alokai.com/storefront/features/internationalization/currency-switching). -- authorization token - can be found in the request cookies under [`AUTH_USER_TOKEN_COOKIE_NAME`](https://docs.alokai.com/integrations/sapcc/api/sapcc-api/AUTH_USER_TOKEN_COOKIE_NAME) +- `userId` - can be found in the request cookies under [`AUTH_USER_COOKIE_NAME`](/integrations/sapcc/api/sapcc-api/AUTH_USER_COOKIE_NAME). +- `language` - can be found in the request cookies under [`VSF_LOCALE_COOKIE`](/storefront/features/internationalization/internatialization-support). +- `currency` - can be found in the request cookies under [`VSF_CURRENCY_COOKIE`](/storefront/features/internationalization/currency-switching). +- authorization token - can be found in the request cookies under [`AUTH_USER_TOKEN_COOKIE_NAME`](/integrations/sapcc/api/sapcc-api/AUTH_USER_TOKEN_COOKIE_NAME) You don't have to parse the cookies yourself. Alokai provides helper methods for that. Here’s a code example of how to do it: -```typescript -import { - SapccIntegrationContext, - TokenModes, - createRequestOptions, - getUserIdFromRequest, -} from "@vsf-enterprise/sapcc-api"; -import { BaseProps, BaseUserId } from "@vsf-enterprise/sapcc-types"; +```typescript [apps/storefront-middleware/api/custom-methods/types.ts] +import { BaseProps, BaseUserId } from '@vsf-enterprise/sapcc-types'; -export interface CustomEndpointProps extends BaseProps, BaseUserId { +export interface CustomMethodArgs extends BaseProps, BaseUserId { customField: any; } -export interface CustomResponse { +export interface CustomMethodResponse { whatever: any; } +``` + +```typescript [apps/storefront-middleware/api/custom-methods/custom.ts] +import { createRequestOptions, getUserIdFromRequest, TokenModes } from '@vsf-enterprise/sapcc-api'; +import { type IntegrationContext } from '../../types'; +import type { CustomMethodArgs, CustomMethodResponse } from './types'; -const callCustomEndpoint = async ( - context: SapccIntegrationContext, - props: CustomEndpointProps -): Promise => { +export async function exampleCustomMethod( + context: IntegrationContext, + args: CustomMethodArgs, +): Promise { const { config, req, client } = context; - const userId = getUserIdFromRequest({ req, props } as any); // retrieves userID from props or cookies + const userId = getUserIdFromRequest({ context, props: args }); // retrieves userID from props or cookies const res = await client.get( - `/${config.api.baseSiteId}/users/${userId}/customEndpoint/${props.customField}`, + `/${config.api.baseSiteId}/users/${userId}/customEndpoint/${args.customField}`, createRequestOptions({ // adds authorization headers and language & currency parameters context, - props, + props: args, tokenMode: TokenModes.CUSTOMERORAPPLICATION, - }) + }), ); return res.data; -}; +} + ``` Read more about the helper methods: -- [getUserIdFromRequest](https://docs.alokai.com/integrations/sapcc/api/sapcc-api/getUserIdFromRequest) -- [createRequestOptions](https://docs.alokai.com/integrations/sapcc/api/sapcc-api/createRequestOptions) +- [getUserIdFromRequest](/integrations/sapcc/api/sapcc-api/getUserIdFromRequest) +- [createRequestOptions](/integrations/sapcc/api/sapcc-api/createRequestOptions) -## Real life example +### Real life example -Here's an example implementation of the product interest feature. This feature is available in OCC API, but not in the middleware and SDK integration. +Here's an example implementation of the product interest feature. Let's add support for it. -First, you need to add a new API method in the middleware. (For simplicity, this guide shows how to do it in one file, but we recommend splitting it into multiple files to maintain cleaner code.) +First, you need to add a new API method in the middleware. -```typescript [storefront-middleware/middleware.config.ts] -import { - SapccIntegrationContext, - TokenModes, - createRequestOptions, - getUserIdFromRequest, -} from "@vsf-enterprise/sapcc-api"; -import { BaseProps, BaseUserId, Product } from "@vsf-enterprise/sapcc-types"; +```typescript [apps/storefront-middleware/api/custom-methods/types.ts] +import { BaseProps, BaseUserId, Product } from '@vsf-enterprise/sapcc-types'; -export interface GetProductInterestsProps extends BaseProps, BaseUserId { +export interface GetProductInterestsArgs extends BaseProps, BaseUserId { productCode?: string; } export interface ProductInterestEntry { @@ -118,66 +134,61 @@ export interface UserInterestsResponse { results: Array; } -const getProductInterests = async ( - context: SapccIntegrationContext, - props: GetProductInterestsProps -): Promise => { - const { config, req, client } = context; +``` - const userId = getUserIdFromRequest({ req, props } as any); +```typescript [apps/storefront-middleware/api/custom-methods/custom.ts] +import { createRequestOptions, getUserIdFromRequest, TokenModes } from '@vsf-enterprise/sapcc-api'; +import { type IntegrationContext } from '../../types'; +import type { GetProductInterestsArgs, UserInterestsResponse } from './types'; + +export async function getProductInterests( + context: IntegrationContext, + args: GetProductInterestsArgs, +): Promise { + const { config, client } = context; + + const userId = getUserIdFromRequest({ context, props: args }); const requestOptions = createRequestOptions({ context, - props, + props: args, tokenMode: TokenModes.CUSTOMERORAPPLICATION, }); - const res = await client.get( - `/${config.api.baseSiteId}/users/${userId}/productinterests`, - { - ...requestOptions, - params: { - ...requestOptions.params, - productCode: props.productCode, - }, - } - ); + const res = await client.get(`/${config.api.baseSiteId}/users/${userId}/productinterests`, { + ...requestOptions, + params: { + ...requestOptions.params, + productCode: args.productCode, + }, + }); return res.data; -}; - -const apiMethods = methods(); -const unifiedApiExtension = createUnifiedExtension()({ - normalizers, - apiMethods: { - ...apiMethods, - getProductInterests, - }, - config: { - /* ... */ - }, -}); +} +``` + +```typescript [apps/storefront-middleware/api/custom-methods/index.ts] +export { getProductInterests } from './custom'; +export * from './types'; ``` Then, in your frontend application, you need to add a custom hook to retrieve the product interests on the front end. ```typescript [storefront-unified-nextjs/hooks/useProductInterests/useProductInterests.ts] -import { useQuery } from "@tanstack/react-query"; -import { InferSdkArgs, useSdk } from "~/sdk"; +import { useQuery } from '@tanstack/react-query'; -export type GetProductInterestsArgs = InferSdkArgs<"getProductInterests">; +import { useSdk } from '@/sdk/alokai-context'; -export function useProductInterests({ productCode }: GetProductInterestsArgs) { +export function useProductInterests({ productCode }: { productCode: string }) { const sdk = useSdk(); return useQuery({ - queryKey: ["product interests", productCode], queryFn: () => - sdk.unified.getProductInterests({ + sdk.customExtension.getProductInterests({ productCode, }), - refetchOnMount: false, - refetchOnWindowFocus: false, + queryKey: ['product interests', productCode], }); } + ``` From bb4489c17d93a9df635b461c69b83e286abf0730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gosta=C5=84ski?= Date: Tue, 25 Feb 2025 15:25:54 +0100 Subject: [PATCH 14/22] fix: guides --- docs/content/guides/1.index.md | 13 ++----------- docs/content/guides/_dir.yml | 2 +- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/docs/content/guides/1.index.md b/docs/content/guides/1.index.md index 52d7b81b80..0f588c75c5 100644 --- a/docs/content/guides/1.index.md +++ b/docs/content/guides/1.index.md @@ -34,26 +34,18 @@ Alokai is not a cookie-cutter solution, it is meant to be able to handle even th Learn how to create efficient and unified multigeo/multibrand/multivendor setups with Alokai. :: -#section-4 -:card{to="/guides/kubernetes-probe" title="Kubernetes Probes" description="Alokai Cloud customers' middleware and frontend apps are deployed in Kubernetes. Check how Kubernetes mechanisms are used by Alokai Cloud" icon="tabler:heart-rate-monitor"} - -#section-5 -:card{to="/guides/best-practices" title="Best Practices" description="Check what to follow to keep your storefront in the best possible shape" icon="tabler:rosette-discount-check"} - - :: - ## Advanced -::card{title="Kubernetes Probes" to="/guides/kubernetes-probe" class="mb-5"} +::card{title="Kubernetes Probes" to="/guides/kubernetes-probe" class="mb-5" icon="tabler:heart-rate-monitor"} #description Learn how to implement health check endpoints for your Alokai Cloud applications running on Kubernetes. This guide covers liveness and readiness probes implementation to ensure proper application monitoring and reliability. :: ## Best Practices -::card{title="Performance" to="/guides/performance" class="mb-5"} +::card{title="Performance" to="/guides/performance" class="mb-5" icon="tabler:rosette-discount-check"} #description Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poor performance to ruin your sales. Learn how to optimize your store for speed. :: @@ -61,4 +53,3 @@ Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poo ::info Can't find what you're looking for? Check out our [cookbook](/cookbook) for more guides and tutorials. :: - diff --git a/docs/content/guides/_dir.yml b/docs/content/guides/_dir.yml index cf618366c1..79a1e9c3aa 100644 --- a/docs/content/guides/_dir.yml +++ b/docs/content/guides/_dir.yml @@ -1,4 +1,4 @@ title: Guides -sidebarRoot: false +sidebarRoot: true navigation: icon: ri:code-s-slash-fill From 2f1b9cb9cc4fdf38439bc38680198152d322d485 Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 15:51:31 +0100 Subject: [PATCH 15/22] remove icons and add descriptions --- docs/content/guides/7.multistore/1.index.md | 2 ++ .../guides/7.multistore/2.tooling-and-concepts/1.index.md | 2 -- .../2.development/3.managing-the-stores.md | 2 -- .../2.development/4.local-environment.md | 2 -- .../2.development/5.integration-tests.md | 2 -- .../2.tooling-and-concepts/3.deployment/6.deployment.md | 3 +-- .../2.tooling-and-concepts/3.deployment/7.configuration.md | 2 -- .../7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md | 2 -- .../7.multistore/2.tooling-and-concepts/5.cli-reference.md | 2 -- 9 files changed, 3 insertions(+), 16 deletions(-) diff --git a/docs/content/guides/7.multistore/1.index.md b/docs/content/guides/7.multistore/1.index.md index 2371bd40cb..2f965c1430 100644 --- a/docs/content/guides/7.multistore/1.index.md +++ b/docs/content/guides/7.multistore/1.index.md @@ -12,6 +12,7 @@ Below you will find a list of guides to help you get started with Alokai. ::card{title="Introduction" icon="tabler:align-box-center-middle" to="/guides/multistore/introduction" } #description +Learn what challenges the Alokai Multistore solution addresses and how it can help you solve them. ::
@@ -19,6 +20,7 @@ Below you will find a list of guides to help you get started with Alokai. ::card{title="Tooling and concepts" icon="tabler:tools" to="/guides/multistore/tooling-and-concepts" } #description +Learn the concepts and tools behind the Alokai Multistore solution. ::
diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md index 663f3d5865..97bbcb3ca5 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md @@ -1,8 +1,6 @@ --- title: File-based inheritance layout: default -navigation: - icon: garden:file-zip-26 --- # File-based inheritance diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md index b3dc8992d3..0ca448b003 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/3.managing-the-stores.md @@ -1,8 +1,6 @@ --- title: Managing the stores layout: default -navigation: - icon: tabler:number-2-small --- # Development - Managing the stores diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md index 43673b6811..07bce8acee 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md @@ -1,8 +1,6 @@ --- title: Using a local environment layout: default -navigation: - icon: tabler:number-2-small --- # Development - Using a local environment diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md index f7934cacea..2ef6eb4928 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md @@ -1,8 +1,6 @@ --- title: Writing an integration tests with Playwright layout: default -navigation: - icon: tabler:number-2-small --- # Development - Writing an integration tests with Playwright diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md index a058f0df6e..629431b439 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/6.deployment.md @@ -1,8 +1,7 @@ --- title: How it works? layout: default -navigation: - icon: tabler:number-2-small + --- # Deployment - How it works? diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md index 1841976bc3..809e4b185f 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/7.configuration.md @@ -1,8 +1,6 @@ --- title: Configuration layout: default -navigation: - icon: tabler:number-2-small --- # Deployment - Configuration diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md index 8d8ac69f14..8dda7a2d97 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/3.deployment/8.cd.md @@ -1,8 +1,6 @@ --- title: CD Pipeline layout: default -navigation: - icon: tabler:number-2-small --- # Deployment - CD Pipeline diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md index 040dcb8c14..7a73767676 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md @@ -1,8 +1,6 @@ --- title: CLI Reference layout: default -navigation: - icon: ooui:references-ltr --- # CLI Reference From a4cfb9de13f56a22d18c63c9784c02b13d105c07 Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 15:54:10 +0100 Subject: [PATCH 16/22] remove link to patterns from cli reference --- .../2.tooling-and-concepts/5.cli-reference.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md index 7a73767676..377befbd78 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/5.cli-reference.md @@ -5,14 +5,3 @@ layout: default # CLI Reference - -::card{title="Next: Patterns" icon="tabler:number-3-small" } - -#description -TODO - -#cta -:::docs-button{to="/guides/multistore/patterns"} -Next -::: -:: From c4c5fab88d26bb24e3d7f70daaf08f6a63147f94 Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 16:03:34 +0100 Subject: [PATCH 17/22] move performance to best practices --- docs/content/guides/1.index.md | 7 ++++++- docs/content/guides/6.best-practices/1.index.md | 5 +++++ .../guides/{ => 6.best-practices}/3.performance/1.index.md | 0 .../3.performance/2.core-web-vitals.md | 0 .../guides/{ => 6.best-practices}/3.performance/_dir.yml | 2 -- 5 files changed, 11 insertions(+), 3 deletions(-) rename docs/content/guides/{ => 6.best-practices}/3.performance/1.index.md (100%) rename docs/content/guides/{ => 6.best-practices}/3.performance/2.core-web-vitals.md (100%) rename docs/content/guides/{ => 6.best-practices}/3.performance/_dir.yml (52%) diff --git a/docs/content/guides/1.index.md b/docs/content/guides/1.index.md index 0f588c75c5..e041e6d113 100644 --- a/docs/content/guides/1.index.md +++ b/docs/content/guides/1.index.md @@ -45,11 +45,16 @@ Learn how to implement health check endpoints for your Alokai Cloud applications ## Best Practices -::card{title="Performance" to="/guides/performance" class="mb-5" icon="tabler:rosette-discount-check"} +::card{title="Performance" to="/guides/best-practices/performance" class="mb-5" icon="tabler:rosette-discount-check"} #description Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poor performance to ruin your sales. Learn how to optimize your store for speed. :: +::card{title="Data Fetching" icon="tabler:mobiledata" to="/guides/best-practices/data-fetching" } +#description +Learn how to optimize your data fetching strategy to improve performance and reduce the amount of data that needs to be fetched on the client side. +:: + ::info Can't find what you're looking for? Check out our [cookbook](/cookbook) for more guides and tutorials. :: diff --git a/docs/content/guides/6.best-practices/1.index.md b/docs/content/guides/6.best-practices/1.index.md index dc126d5959..44a1dd0ff1 100644 --- a/docs/content/guides/6.best-practices/1.index.md +++ b/docs/content/guides/6.best-practices/1.index.md @@ -1,3 +1,8 @@ +--- +title: Guides +layout: default +--- + # Best Practices In this guide, we have compiled a collection of best practices to help you optimize your development workflow, improve code quality, and ensure maintainability. diff --git a/docs/content/guides/3.performance/1.index.md b/docs/content/guides/6.best-practices/3.performance/1.index.md similarity index 100% rename from docs/content/guides/3.performance/1.index.md rename to docs/content/guides/6.best-practices/3.performance/1.index.md diff --git a/docs/content/guides/3.performance/2.core-web-vitals.md b/docs/content/guides/6.best-practices/3.performance/2.core-web-vitals.md similarity index 100% rename from docs/content/guides/3.performance/2.core-web-vitals.md rename to docs/content/guides/6.best-practices/3.performance/2.core-web-vitals.md diff --git a/docs/content/guides/3.performance/_dir.yml b/docs/content/guides/6.best-practices/3.performance/_dir.yml similarity index 52% rename from docs/content/guides/3.performance/_dir.yml rename to docs/content/guides/6.best-practices/3.performance/_dir.yml index a0dc5464f0..5b858af8d0 100644 --- a/docs/content/guides/3.performance/_dir.yml +++ b/docs/content/guides/6.best-practices/3.performance/_dir.yml @@ -1,5 +1,3 @@ title: Performance sidebarRoot: true -navigation: - icon: gg:performance From 5d2bd38e9d167db7463e63421d7a472bbfac98ef Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 16:05:13 +0100 Subject: [PATCH 18/22] Imp. descriptions in best practices --- docs/content/guides/1.index.md | 2 +- docs/content/guides/6.best-practices/1.index.md | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/1.index.md b/docs/content/guides/1.index.md index e041e6d113..a3956bea3a 100644 --- a/docs/content/guides/1.index.md +++ b/docs/content/guides/1.index.md @@ -52,7 +52,7 @@ Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poo ::card{title="Data Fetching" icon="tabler:mobiledata" to="/guides/best-practices/data-fetching" } #description -Learn how to optimize your data fetching strategy to improve performance and reduce the amount of data that needs to be fetched on the client side. +Learn how to optimize your data fetching strategy to improve performance and avoid caching errors. :: ::info diff --git a/docs/content/guides/6.best-practices/1.index.md b/docs/content/guides/6.best-practices/1.index.md index 44a1dd0ff1..56a43f7a89 100644 --- a/docs/content/guides/6.best-practices/1.index.md +++ b/docs/content/guides/6.best-practices/1.index.md @@ -7,4 +7,12 @@ layout: default In this guide, we have compiled a collection of best practices to help you optimize your development workflow, improve code quality, and ensure maintainability. -::card{title="Data Fetching" icon="tabler:mobiledata" to="/guides/best-practices/data-fetching" } \ No newline at end of file +::card{title="Performance" to="/guides/best-practices/performance" class="mb-5" icon="tabler:rosette-discount-check"} +#description +Every 100ms added to loading time costed Amazon 1% less sales. Don't let the poor performance to ruin your sales. Learn how to optimize your store for speed. +:: + +::card{title="Data Fetching" icon="tabler:mobiledata" to="/guides/best-practices/data-fetching" } +#description +Learn how to optimize your data fetching strategy to improve performance and avoid caching errors. +:: From 81b553567a2764765da69c692ec2aae8187e486a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gosta=C5=84ski?= Date: Tue, 25 Feb 2025 16:42:15 +0100 Subject: [PATCH 19/22] fix: missing description --- .../2.development/4.local-environment.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md index 07bce8acee..d8288ccc50 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md @@ -34,7 +34,7 @@ The most common way to start development is using the yarn scripts from the root yarn dev # Start development for a specific store -yarn store dev --store-id=my-store +yarn store dev --store-id=my-store # Alternatively, you may use: ./node_modules/.bin/alokai-cli store dev --store-id=my-store ``` @@ -86,7 +86,7 @@ yarn store dev --all --with-local-domains ``` :::tip HTTPS -Caddy automatically generates self-signed SSL certificates for local domains. You +Caddy automatically generates self-signed SSL certificates for local domains. You can read more about it in the [Caddy documentation](https://caddyserver.com/docs/automatic-https). ::: @@ -117,7 +117,7 @@ yarn test:integration:pw You can also run tests in Playwright's UI mode for better debugging experience: ```bash -yarn store test --store-id=my-store --ui +yarn store test --store-id=my-store --ui ``` :::warning @@ -193,7 +193,7 @@ This will skip the build and only compose the store into the `.out` directory. ::card{title="Next: Development - Writing an integration tests with Playwright" icon="tabler:number-3-small" } #description -TODO +Learn how to write integration tests and run them in a multi-store environment. #cta :::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/integration-tests"} From c4ef3394935b2c0f69e821fb6724f4f7fb1c54ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gosta=C5=84ski?= Date: Tue, 25 Feb 2025 16:42:26 +0100 Subject: [PATCH 20/22] fix: not working image --- .../2.development/5.integration-tests.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md index 2ef6eb4928..4bd85fcd8a 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md @@ -37,7 +37,7 @@ Here's our project structure: apps/ ├── storefront-unified-nextjs/ # Base shared code └── stores/ - ├── fashion-brand/ + ├── fashion-brand/ │ ├── playwright/ │ ├── storefront-middleware/ # Middleware customizations │ │ └── integrations/ @@ -122,13 +122,13 @@ import { serverFactory as recommendationsEndpoints } from './recommendations/ser export const mainRouterFactory = () => { const mainRouter = createRouter(); - + // ... existing router setup ... // Add your new mock router const recommendationsRouter = pipe(recommendationsEndpoints, createRouter()); mainRouter.use( - '/commerce/recommendations/**', + '/commerce/recommendations/**', useBase('/commerce/recommendations', recommendationsRouter.handler) ); @@ -228,7 +228,7 @@ test.describe('Recommendations page', () => { // Verify recommendations are visible await expect(recommendationsPage.recommendationsGrid).toBeVisible(); - + // Add more assertions as needed }); }); @@ -255,7 +255,7 @@ yarn store test --store-id=fashion-brand --ui UI mode is great for debugging as it shows test execution step by step and lets you inspect the page state. :: -![Playwright UI](/guides/6.multistore/img/running-test-in-ui-mode.png) +![Playwright UI](/guides/7.multistore/img/running-test-in-ui-mode.png) :: @@ -274,4 +274,4 @@ Learn how Alokai handles store deployment and what happens behind the scenes. :::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/deployment"} Next ::: -:: \ No newline at end of file +:: From b2125f80a89ba0fa16769728995a3a5c61aa420d Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 17:27:21 +0100 Subject: [PATCH 21/22] fixes for image and missing next step --- .../2.tooling-and-concepts/2.development/4.local-environment.md | 2 +- .../2.tooling-and-concepts/2.development/5.integration-tests.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md index 07bce8acee..6d8994e73d 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/4.local-environment.md @@ -193,7 +193,7 @@ This will skip the build and only compose the store into the `.out` directory. ::card{title="Next: Development - Writing an integration tests with Playwright" icon="tabler:number-3-small" } #description -TODO +Learn how to create and run integration tests using Playwright in your Alokai multistore project. #cta :::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/integration-tests"} diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md index 2ef6eb4928..238173d2f1 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/2.development/5.integration-tests.md @@ -255,7 +255,7 @@ yarn store test --store-id=fashion-brand --ui UI mode is great for debugging as it shows test execution step by step and lets you inspect the page state. :: -![Playwright UI](/guides/6.multistore/img/running-test-in-ui-mode.png) +![Playwright UI](/guides/multistore/img/running-test-in-ui-mode.png) :: From 8c81d3565f920d2382f7c40c91dd7fac46f5fa9b Mon Sep 17 00:00:00 2001 From: Filip Date: Tue, 25 Feb 2025 17:34:54 +0100 Subject: [PATCH 22/22] change button to arrow link in file inheritance doc --- .../guides/7.multistore/2.tooling-and-concepts/1.index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md index 97bbcb3ca5..9dce99cc66 100644 --- a/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md +++ b/docs/content/guides/7.multistore/2.tooling-and-concepts/1.index.md @@ -373,7 +373,7 @@ Some files receive special treatment during composition: Learn how to create and manage stores using the CLI. #cta -:::docs-button{to="/guides/multistore/tooling-and-concepts/managing-the-stores"} +:::docs-arrow-link{to="/guides/multistore/tooling-and-concepts/managing-the-stores"} Next ::: ::