Hallo zusammen,
ich arbeite mit Shopware 6.6.10.3 und möchte ein eigenes Plugin erstellen, das im Backend unter „Marketing“ einen Menüpunkt „Statistik“ anzeigt. Dieser Menüpunkt soll später eine eigene Seite mit Statistikinformationen enthalten.
Wir haben bereits mehrere funktionierende Plugins für Shopware entwickelt. Doch bei einem so einfachen Ziel wie einem eigenen Menüpunkt mit Seite im Backend kommen wir bei Shopware 6.6.x aktuell nicht weiter – obwohl:
- das Plugin korrekt installiert und aktiviert wird
build-administration.sh
,assets:install
undcache:clear
ausgeführt wurden- kein Fehler im Plugin-Log oder in der Browser-Konsole erscheint
Ziel
Ein Plugin mit Menüpunkt im Bereich „Marketing“, der beim Klick eine einfache Backend-Seite mit Titel und Text anzeigt.
Verwendete Plugin-Struktur
StatisticPlugin/
├── composer.json
└── src
├── StatisticPlugin.php
└── Resources
└── app
└── administration
└── src
└── module
└── statistic
├── index.js
└── page
└── statistic
└── index.js
composer.json
{
"name": "statistic-plugin/statistic-plugin",
"description": "Statistik Plugin für Shopware 6.6.x",
"version": "1.0.0",
"type": "shopware-platform-plugin",
"license": "MIT",
"autoload": {
"psr-4": {
"StatisticPlugin\\": "src/"
}
},
"extra": {
"shopware-plugin-class": "StatisticPlugin\\StatisticPlugin",
"label": {
"de-DE": "Statistik Plugin",
"en-GB": "Statistic Plugin"
}
},
"require": {
"shopware/core": "^6.6"
}
}
src/StatisticPlugin.php
<?php declare(strict_types=1);
namespace StatisticPlugin;
use Shopware\Core\Framework\Plugin;
class StatisticPlugin extends Plugin
{
}
src/Resources/app/administration/src/module/statistic/index.js
import './page/statistic';
Shopware.Module.register('statistic', {
type: 'plugin',
name: 'statistic',
title: 'Statistik',
description: 'Statistikmodul für Marketing',
color: '#ff9900',
icon: 'regular-chart-bar',
routes: {
index: {
component: 'statistic-page',
path: 'index'
}
},
navigation: [{
id: 'statistic-menu',
label: 'Statistik',
color: '#ff9900',
path: 'statistic.index',
parent: 'sw-marketing',
position: 100
}]
});
src/Resources/app/administration/src/module/statistic/page/statistic/index.js
const { Component } = Shopware;
Component.register('statistic-page', {
template: `<sw-page>
<template #smart-bar-header>
<h2>Statistik Übersicht</h2>
</template>
<div class="sw-container">
Willkommen auf der Statistik-Seite!
</div>
</sw-page>`
});
Nach der Installation ausgeführte Befehle:
bin/console plugin:refresh
bin/console plugin:install --activate StatisticPlugin
bin/console assets:install
bin/build-administration.sh
bin/console cache:clear
Ergebnis
- Kein Menüpunkt sichtbar im Bereich „Marketing“
- Kein Fehler in der Konsole oder im Backend sichtbar
- Kein Eintrag unter „Erweiterungen“ (obwohl Plugin aktiv ist)
Fragen
- Gibt es in Shopware 6.6.x.x Besonderheiten beim Registrieren von eigenen Modulen?
- Muss man zusätzliche Schritte beachten, um den Menüpunkt erscheinen zu lassen?
- Gibt es eine funktionierende Minimalstruktur, an der man sich orientieren kann?
Vielen Dank für jede Unterstützung – wir drehen uns hier im Kreis, obwohl das Plugin technisch korrekt aufgebaut scheint.