Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions guides/development/monetization/not allowed features in the store
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Extended principle for security- and legally-critical extensions (Store QA)

Basic rule
----------

Extensions must not make any direct changes to the existing Shopware structure. This includes in particular:
Comment on lines +1 to +6
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new guide file doesn’t follow the existing documentation conventions in guides/development/monetization/: other pages use a .md filename (no spaces) and start with YAML front matter (nav: title/position) followed by an H1 heading (see guides/development/monetization/index.md:1-8). As-is, this page is likely not picked up by the docs navigation/build and also violates markdownlint MD041 (first line should be a top-level heading). Consider renaming the file to a kebab-case .md name, adding the front matter block, and starting the content with an # ... H1 heading so it integrates consistently with the rest of the docs.

Copilot uses AI. Check for mistakes.

- direct manipulation of the database (e.g. executing SQL queries from the admin area),

- changes to the core table structure,

- writing, overwriting or deleting files within the Shopware core or the existing directory structure,

- circumventing designated APIs, DAL, events or services.

**The following are permitted:**

- extending via the mechanisms provided by Shopware (DAL, migrations, events, decorator pattern, subscribers, services),

- copying existing structures (e.g. templates, configurations, assets) and adapting the copy without changing the original,

- creating your own tables, entities, configuration values or directories, provided these are clearly assigned to the extension.

Additional prohibitions (security & law)
----------------------------------------

In addition, extensions are not permitted that:

- undermine security-related protection mechanisms (e.g. rights and role concepts, CSRF protection, validations),

- enable uncontrolled system interventions by the shop operator or end customer (e.g. arbitrary SQL execution, file access or shell commands via the admin UI),

- circumvent or override legal requirements, such as:

- data protection and consent mechanisms,

- logging, documentation or verification obligations,

- mandatory information or legally prescribed processes.
Comment on lines +35 to +39
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nested list under “circumvent or override legal requirements” also uses the - ... spacing pattern and inconsistent indentation, which is likely to violate markdownlint’s list formatting rules (MD005/MD030). Reformat the nested bullets to use one space after - and consistent indentation for the sublist.

Suggested change
- data protection and consent mechanisms,
- logging, documentation or verification obligations,
- mandatory information or legally prescribed processes.
- data protection and consent mechanisms,
- logging, documentation or verification obligations,
- mandatory information or legally prescribed processes.

Copilot uses AI. Check for mistakes.

Explanation for developers (why this is the case)
-------------------------------------------------

Shopware is deliberately designed to ensure that extensions remain stable, update-proof and legally compliant. Direct interventions in the database or file system may seem pragmatic, but they pose a real risk:

- **Security risk:** Free SQL or file access opens the door to data leaks, manipulation or escalation of user rights.

- **Update failure:** Core structures are not a stable contract. What works today may cripple shops after the next update.

- **Liability risk:** Extensions that undermine legal protection mechanisms not only cause problems for merchants, but also for the ecosystem.

- **Quality standard:** The store stands for trust. Extensions must behave like good guests -- they are allowed to use the space, but not tear down the load-bearing walls.
Comment on lines +8 to +52
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

List items use multiple spaces after the - marker (e.g. - direct manipulation ...). With markdownlint MD030 enabled (see markdown-style-config.yml:78-80), this formatting can fail linting; use a single space after list markers (and keep indentation consistent for nested lists) throughout this page.

Suggested change
- direct manipulation of the database (e.g. executing SQL queries from the admin area),
- changes to the core table structure,
- writing, overwriting or deleting files within the Shopware core or the existing directory structure,
- circumventing designated APIs, DAL, events or services.
**The following are permitted:**
- extending via the mechanisms provided by Shopware (DAL, migrations, events, decorator pattern, subscribers, services),
- copying existing structures (e.g. templates, configurations, assets) and adapting the copy without changing the original,
- creating your own tables, entities, configuration values or directories, provided these are clearly assigned to the extension.
Additional prohibitions (security & law)
----------------------------------------
In addition, extensions are not permitted that:
- undermine security-related protection mechanisms (e.g. rights and role concepts, CSRF protection, validations),
- enable uncontrolled system interventions by the shop operator or end customer (e.g. arbitrary SQL execution, file access or shell commands via the admin UI),
- circumvent or override legal requirements, such as:
- data protection and consent mechanisms,
- logging, documentation or verification obligations,
- mandatory information or legally prescribed processes.
Explanation for developers (why this is the case)
-------------------------------------------------
Shopware is deliberately designed to ensure that extensions remain stable, update-proof and legally compliant. Direct interventions in the database or file system may seem pragmatic, but they pose a real risk:
- **Security risk:** Free SQL or file access opens the door to data leaks, manipulation or escalation of user rights.
- **Update failure:** Core structures are not a stable contract. What works today may cripple shops after the next update.
- **Liability risk:** Extensions that undermine legal protection mechanisms not only cause problems for merchants, but also for the ecosystem.
- **Quality standard:** The store stands for trust. Extensions must behave like good guests -- they are allowed to use the space, but not tear down the load-bearing walls.
- direct manipulation of the database (e.g. executing SQL queries from the admin area),
- changes to the core table structure,
- writing, overwriting or deleting files within the Shopware core or the existing directory structure,
- circumventing designated APIs, DAL, events or services.
**The following are permitted:**
- extending via the mechanisms provided by Shopware (DAL, migrations, events, decorator pattern, subscribers, services),
- copying existing structures (e.g. templates, configurations, assets) and adapting the copy without changing the original,
- creating your own tables, entities, configuration values or directories, provided these are clearly assigned to the extension.
Additional prohibitions (security & law)
----------------------------------------
In addition, extensions are not permitted that:
- undermine security-related protection mechanisms (e.g. rights and role concepts, CSRF protection, validations),
- enable uncontrolled system interventions by the shop operator or end customer (e.g. arbitrary SQL execution, file access or shell commands via the admin UI),
- circumvent or override legal requirements, such as:
- data protection and consent mechanisms,
- logging, documentation or verification obligations,
- mandatory information or legally prescribed processes.
Explanation for developers (why this is the case)
-------------------------------------------------
Shopware is deliberately designed to ensure that extensions remain stable, update-proof and legally compliant. Direct interventions in the database or file system may seem pragmatic, but they pose a real risk:
- **Security risk:** Free SQL or file access opens the door to data leaks, manipulation or escalation of user rights.
- **Update failure:** Core structures are not a stable contract. What works today may cripple shops after the next update.
- **Liability risk:** Extensions that undermine legal protection mechanisms not only cause problems for merchants, but also for the ecosystem.
- **Quality standard:** The store stands for trust. Extensions must behave like good guests -- they are allowed to use the space, but not tear down the load-bearing walls.

Copilot uses AI. Check for mistakes.

**In short:**

If a function is only possible through direct SQL queries, core file manipulation or bypassing intended interfaces, this is a clear sign that the approach might need to be changed -- not that the rules are too strict.
Loading