Skip to content

Commit 730ed48

Browse files
authored
Merge branch 'main' into add-faqs
2 parents 78e131a + af5a54f commit 730ed48

54 files changed

Lines changed: 2523 additions & 1190 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitbook.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ redirects:
9393
products/cli/project-commands/project-config-sync.html: guides/development/tooling/fixture-bundle.html
9494
products/sales-agent/deployment.html: products/sales-agent/best-practices/app-deployment/hosted-with-ubuntu-server.html
9595
guides/installation/requirements.html: guides/installation/system-requirements.html
96-
guides/installation/setups/docker.html: guides/installation/docker-setup.html
96+
guides/installation/setups/docker.html: guides/installation/legacy-setups/docker-setup.html
9797
guides/installation/template.html: guides/installation/project-overview.html
9898
guides/installation/setups/docker-options.html: guides/installation/advanced-options.html
9999
guides/installation/setups/devenv.html: guides/installation/legacy-setups/devenv-setup.html
@@ -181,3 +181,5 @@ redirects:
181181
resources/references/core-reference/flow-reference.html: guides/development/troubleshooting/flow-reference.html
182182
resources/references/core-reference/rules-reference.html: guides/development/troubleshooting/rules-reference.html
183183
guides/hosting/installation-updates/extension-managment.html: guides/hosting/installation-updates/extension-management.html
184+
guides/installation/start-developing.html: guides/development/start-developing.html
185+

.github/workflows/validate-external-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: lycheeverse/lychee-action@v2
1919
with:
2020
fail: false
21-
args: --retry-wait-time 10 --max-retries 3 --timeout 30 --accept=200,403,429,408 -s "https" "**/*.html" "**/*.md" "**/*.txt" "**/*.json" --exclude "https://github.com/\[your*" --exclude "https://localhost:9200" --base-url https://developer.shopware.com
21+
args: --retry-wait-time 10 --max-retries 3 --timeout 30 --accept=200,403,429,408 -s "https" "**/*.html" "**/*.md" "**/*.txt" "**/*.json" --exclude "https://github.com/\[your*" --exclude "https://localhost:9200"
2222

2323
- name: Find Link Checker Issue
2424
uses: micalevisk/last-issue-action@v2

.wordlist.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,6 +1277,7 @@ control
12771277
copyToClipboard
12781278
copyable
12791279
cors
1280+
countryId
12801281
createActionResponse
12811282
createCategoryFixture
12821283
createCmsFixture
@@ -1687,6 +1688,7 @@ opcache
16871688
openInitialPage
16881689
openSUSE
16891690
openUserActionMenu
1691+
openapi
16901692
opensearch
16911693
openssl
16921694
orchestrator
@@ -1843,6 +1845,7 @@ salesChannelId
18431845
salesChannelLoaded
18441846
saleschannel
18451847
saleschannelrepositoryfacade
1848+
salutationId
18461849
sandboxed
18471850
sarven
18481851
scalability

concepts/extensions/apps-concept.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,51 @@ nav:
77

88
# Apps
99

10-
The app system allows you to extend and modify the functionality and appearance of Shopware. It leverages well defined extension points you can hook into to implement your specific use case.
10+
The app system allows you to extend and modify the functionality and appearance of Shopware. It leverages well-defined extension points you can hook into to implement your specific use case.
1111

1212
The app system is designed to be decoupled from Shopware itself. This has two great advantages:
1313

1414
1. **Freedom of choice:** You need to understand only the interface between Shopware and your app to get started with developing your own app. You don't need special knowledge of the inner workings and internal structure of Shopware itself. Additionally, you have the freedom to choose a programming language or framework of your choice to implement your app. This is achieved by decoupling the deployment of Shopware itself and your app and by using the Admin API and webhooks to communicate between Shopware and your app instead of using programming language constructs directly.
15-
2. **Fully cloud compatible:** By decoupling Shopware and your app, your app is automatically compatible for use in a multi-tenant cloud system. Therefore your app can be used within self-hosted shops and shops on [Shopware SaaS](../../products/saas).
15+
2. **Fully cloud compatible:** By decoupling Shopware and your app, your app is automatically compatible with multi-tenant cloud systems. Therefore, your app can be used within self-hosted shops and shops on [Shopware SaaS](../../products/saas.md).
1616

17-
The central interface between your app and Shopware is defined by a dedicated manifest file. The manifest is what glues Shopware and your app together. It defines your app's features and how Shopware can connect to it. You can find more information about how to use the manifest file in the [App base Guide](../../guides/plugins/apps/app-base-guide).
17+
The central interface between your app and Shopware is defined by a dedicated manifest file. The manifest is what glues Shopware and your app together. It defines your app's features and how Shopware can connect to it. You can find more information about how to use the manifest file in the [App base Guide](../../guides/plugins/apps/app-base-guide.md).
1818

1919
## Communication between Shopware and your app
2020

21-
Shopware communicates with your app only exclusively via HTTP-Requests. Therefore you are free to choose a tech stack for your app, as long as you can serve HTTP-Requests. Shopware will notify you of events happening in the shop that your app is interested in by posting to HTTP-Endpoints that you define in the manifest file. While processing these events, your app can use the Shopware API to get additional data that your app needs. A schematic overview of the communication may look like this:
21+
Shopware communicates with your app exclusively via HTTP requests. Therefore, you are free to choose a tech stack for your app, as long as you can serve HTTP requests. Shopware will notify you of events happening in the shop that your app is interested in by posting to HTTP endpoints that you define in the manifest file. While processing these events, your app can use the Shopware API to get additional data that your app needs. A schematic overview of the communication may look like this:
2222

2323
![Communication between Shopware and your app](../../assets/extensions-apps-shopwareCommunication.svg)
2424

25-
To secure this communication, a registration handshake is performed during the installation of your app. During this registration, it is verified that Shopware talks to the right app backend server, and your app gets credentials used to authenticate against the API. You can read more on the registration workflow in the [App base guide](../../guides/plugins/apps/app-base-guide).
25+
To secure this communication, a registration handshake is performed during the installation of your app. During this registration, it is verified that Shopware talks to the right app backend server, and your app gets credentials used to authenticate against the API. See [App registration & backend setup](../../guides/plugins/apps/app-registration-setup.md).
2626

2727
::: info
28-
Notice that this is optional if Shopware and your app don't need to communicate, e.g., because your app provides a [Theme](apps-concept).
28+
Note that this is optional if Shopware and your app don't need to communicate, e.g., because your app provides a [Theme](../../guides/plugins/themes/index.md).
2929
:::
3030

3131
## Modify the appearance of the Storefront
3232

33-
Your app can modify the Storefront's appearance by shipping your Storefront assets \(template files, javascript sources, SCSS sources, snippet files\) alongside your manifest file. You don't need to serve those assets from your external server, as Shopware will rebuild the Storefront upon the installation of your app and will consider your modifications in that process. Find out more about modifying the appearance of the Storefront in the [App Storefront guide](../../guides/plugins/apps/storefront/)
33+
Your app can modify the Storefront's appearance by shipping your Storefront assets \(template files, JavaScript sources, SCSS sources, snippet files\) alongside your manifest file. You don't need to serve those assets from your external server, as Shopware will rebuild the Storefront upon the installation of your app and will consider your modifications in that process. Find out more about modifying the appearance of the Storefront in the [App Storefront guide](../../guides/plugins/apps/storefront/index.md).
3434

3535
## Integrate payment providers
3636

3737
::: info
3838
This functionality is available starting with Shopware 6.4.1.0.
3939
:::
4040

41-
Shopware provides functionality for your app to be able to integrate payment providers. You can use the synchronous payment to provide payment with a provider that does not require any user interaction, for which you can choose a simple request for approval in the background. You can use an asynchronous payment if you would like to redirect a user to a payment provider. Your app, therefore, provides a URL for redirection. After the user returns to the shop, Shopware will verify the payment status with your app. Find out more about providing payment endpoints in the [App payment guide](../../guides/plugins/apps/payment).
41+
Shopware provides functionality that allows your app to integrate payment providers. You can use synchronous payments with providers that do not require user interaction; in that case, approval can be requested with a simple background request. You can use asynchronous payments if you want to redirect the user to a payment provider. Your app then provides a URL for redirection. After the user returns to the shop, Shopware will verify the payment status with your app. Find out more about providing payment endpoints in the [App payment guide](../../guides/plugins/apps/payment.md).
4242

4343
## Execute business logic inside Shopware with App Scripts
4444

4545
::: info
4646
This functionality is available starting with Shopware 6.4.8.0.
4747
:::
4848

49-
[App scripts](../../guides/plugins/apps/app-scripts/) allow your app to execute custom business logic inside the Shopware execution stack. This allows for new use cases, e.g., if you need to load additional data that should be rendered in the Storefront or need to manipulate the cart.
49+
[App scripts](../../guides/plugins/apps/app-scripts/index.md) allow your app to execute custom business logic inside the Shopware execution stack. This allows for new use cases, e.g., if you need to load additional data that should be rendered in the Storefront or need to manipulate the cart.
5050

5151
## Add conditions to the Rule Builder
5252

5353
::: info
5454
This functionality is available starting with Shopware 6.4.12.0.
5555
:::
5656

57-
Your app may introduce custom conditions for use in the [Rule builder](../framework/rules). For additional information refer to [Add custom rule conditions](../../guides/plugins/apps/rule-builder/add-custom-rule-conditions) from the guides.
57+
Your app may introduce custom conditions for use in the [Rule builder](../framework/rule-system/index.md). For more information, refer to [Add custom rule conditions](../../guides/plugins/apps/rule-builder/add-custom-rule-conditions.md) in the guides.

guides/development/extensions/architecture/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
nav:
33
title: Extension Architecture
4-
position: 1
4+
position: 10
55
---
66

77
# Extension Architecture
@@ -35,8 +35,8 @@ Extensions must respect these principles to avoid:
3535

3636
When extending Shopware, it is critical to understand what is part of the stable Public API and what is not:
3737

38-
* [Public API and internal Annotation](internal.md)
39-
* [Final and internal Annotations](final-and-internal.md)
38+
* [Public API and Internal Annotation](internal.md)
39+
* [Final and Internal Annotation](final-and-internal.md)
4040

4141
These guides define what extension developers can rely on and what may change without notice.
4242

guides/development/extensions/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ Plugins and apps are installed and activated for the whole Shopware instance.
2020
Before choosing an extension type, review the recommended [Code structure](code-structure.md). Following the standard structure reduces upgrade friction and prevents long-term maintenance issues.
2121
:::
2222

23-
A storefront theme is *not* a separate extension type, but a stripped-down plugin consisting of a customized storefront UI. In cloud environments, storefront themes are delivered via apps.
23+
A storefront theme is *not* a separate extension type, but a stripped-down plugin consisting of a customized storefront UI. In Cloud environments, storefront themes are delivered via apps.
2424

2525
## Monetization
2626

27-
To sell an extension or offer paid features, see the [Monetization guide](../../development/monetization/) for available models such as paid extensions, In-App Purchases, and commission-based integrations.
27+
To sell an extension or offer paid features, see the [Monetization guide](../../development/monetization/index.md) for available models such as paid extensions, In-App Purchases, and commission-based integrations.
2828

2929
## Which type to build?
3030

@@ -40,7 +40,7 @@ This comparison table helps you decide which Shopware extension type best fits y
4040
| Integrate payment providers ||||
4141
| Publish in the Shopware Store ||||
4242
| Install in Shopware 6 Cloud shops ||| Plugins (including theme plugins) cannot run in Cloud. |
43-
| Install in Shopware 6 self-hosted shops ||| Apps can be installed and used since Shopware 6.4.0.0. |
43+
| Install in Shopware 6 self-hosted shops ||| Since Shopware 6.4.0.0, apps can be installed and used in self-hosted shops. |
4444
| Add custom logic/routes/commands || ⚠️ | Apps implement logic externally via services and webhooks; they cannot add internal Symfony routes or CLI commands. |
4545
| Control style/template inheritance ||| This capability is specific to theme plugins. |
4646

guides/development/index.md

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
---
22
nav:
33
title: Development
4-
position: 30
4+
position: 1
55
---
66

77
# Development
88

9-
This guide covers post-installation information for building, extending, and debugging Shopware during development. The development path depends on what is being built:
9+
After [installation](../../guides/installation/index.md), use this guide for building, extending, and debugging Shopware during development. The development path depends on what is being built:
1010

11-
* Custom project
12-
* Extension: apps, plugins, or plugin-based themes
13-
* Storefront customization
14-
* Administration extension
15-
* Headless integration
11+
* [Build an Extension](../../guides/development/extensions/index.md): Plugins, apps, themes, and Admin or Storefront extensions.
12+
* [Work with APIs](./integrations-api/index.md): Making API requests, integrating ERP and external systems, and building headless storefronts.
1613

1714
All development scenarios share common foundations:
1815

@@ -23,17 +20,19 @@ All development scenarios share common foundations:
2320
* Configuration
2421
* Debugging
2522

26-
To build a custom Shopware project without creating an extension for distribution, start here.
23+
Before starting new development, review the recommended [Code structure](extensions/code-structure.md) guide. A consistent architecture prevents long-term maintenance issues and reduces upgrade friction.
24+
25+
Also review the [Upgrades and Migrations](../upgrades-migrations/index.md) section to avoid patterns that are deprecated or scheduled for removal.
2726

2827
## Extension development
2928

30-
To build an [Extensions](extensions/index.md), first choose the correct type:
29+
To build an [Extension](extensions/index.md), first choose the correct type:
3130

3231
* Plugin
3332
* App
3433
* Plugin-based theme
3534

36-
Each extension guide walks you through the full development flow: creation → lifecycle → implementation → testing.
35+
Each extension guide walks you through the full development flow: `creation → lifecycle → implementation → testing`.
3736

3837
To sell an extension or offer paid features, see the [Monetization guide](monetization/index.md) for available models such as paid extensions, In-App Purchases, and commission-based integrations.
3938

@@ -49,10 +48,6 @@ Most development follows this sequence:
4948
* Add configuration or database changes (if required)
5049
* Test and debug
5150

52-
Before beginning implementation, review the recommended [Code structure](extensions/code-structure.md) guide. A consistent architecture prevents long-term maintenance issues and reduces upgrade friction.
53-
54-
Before starting new development, review the [Upgrades and Migrations](../upgrades-migrations/index.md) section to avoid patterns that are deprecated or scheduled for removal.
55-
5651
:::info Upgrade impact in real projects
5752
Upgrade complexity depends on the installation:
5853

@@ -69,7 +64,7 @@ Set up automated testing and [Continuous Integration (CI)](testing/ci.md) early.
6964

7065
### Administration
7166

72-
To begin any development, first access the Administration by opening [http://localhost/admin](http://localhost/admin).
67+
Development requires access to the Administration at [http://localhost/admin](http://localhost/admin).
7368

7469
Use the Administration to:
7570

@@ -80,13 +75,17 @@ Use the Administration to:
8075

8176
The Administration is part of the runtime environment and will be used throughout development.
8277

83-
### Development tooling
78+
## Development tooling
8479

8580
* `bin/console`: Shopware's built-in CLI, used for installing and activating plugins, running database migrations, clearing caches, executing scheduled tasks, and inspecting system state. See [command reference guide](../../resources/references/core-reference/commands-reference.md).
8681
* The standalone [Shopware CLI](../../products/cli/installation.md) supports project scaffolding, CI/CD workflows, automation tasks, and more. See the [helper commands guide](../../products/cli/project-commands/helper-commands.md).
8782
* IDE support: Shopware provides a [PHPStorm plugin](tooling/shopware-toolbox.md) and [VS Code extension](https://marketplace.visualstudio.com/items?itemName=shopware.shopware-lsp).
88-
* [Deployment Helper](../hosting/installation-updates/deployments/deployment-helper.md): Supports database and maintenance operations for deployments (e.g., migrations, cache handling).
83+
* [Deployment Helper](../hosting/installation-updates/deployments/deployment-helper.md): Supports database and maintenance operations for deployments (e.g., migrations, cache handling).
8984

90-
### Troubleshooting
85+
## Troubleshooting
9186

9287
The [troubleshooting](troubleshooting/index.md) guides provide reference information about the data abstraction layer (DAL), flow, and rules.
88+
89+
## Next steps
90+
91+
Move on to the [Start Developing guide](start-developing.md).

0 commit comments

Comments
 (0)