actualizer / hide-shopware-payments-menu
Hides the Shopware Payments admin main menu entry
Package info
github.com/actualizer/ActHideShopwarePaymentsMenu
Language:JavaScript
Type:shopware-platform-plugin
pkg:composer/actualizer/hide-shopware-payments-menu
Requires
- php: >=8.4
- shopware/core: >=6.7 <6.8
README
This plugin removes the "Shopware Payments" entries from the administration navigation. Shopware adds this payment offering to the admin menu by default. Its primary purpose is to tidy up the main navigation for shops that do not use Shopware Payments. (Earlier Shopware versions also threw a "You do not have the required permissions" page when the entry was clicked — that bug is fixed in current Shopware, but the unused entries remain.)
Shopware surfaces "Shopware Payments" in two separate places in the navigation via two different mechanisms, so the plugin filters both.
Note: This is not a statement against Shopware Payments — it is a solid product and a great fit for many shops. This plugin simply addresses the menu clutter for the shops that don't use it: it only hides navigation entries and leaves the app, its payment methods and all functionality fully intact, so it can be enabled again at any time.
What it does
- Hides the main menu node with navigation id
sw-payments(registered by theSwagExtensionStoreplugin) and its child entries (Overview/Settings, theShopwarePaymentsservice app's manifest modules withparent === "sw-payments"). - Hides the second entry that appears under "Extensions" (
sw-extension). NewerShopwarePaymentsversions register it through the Meteor Admin SDK (menuItem.add) from inside their iframe; such entries get a random id and default toparent: "sw-extension", so they cannot be matched by id/parent. They are matched instead via their SDK module'sbaseUrl, which points at the app's service domain (shopware-payments.services.shopware.io). - It does this in the administration only, by overriding the
navigationEntriescomputed ofsw-admin-menuand filtering the entries out before the menu tree is built.
What it deliberately does NOT do
- It does not deactivate, uninstall or otherwise touch the
ShopwarePaymentsapp. The app must stay active — it is wired into the storefront cookie consent (custom field setshopware_payments_expressand storefront gateways). Deactivating it causes an endless loading spinner in the storefront cookie settings. - It does not touch
SwagExtensionStore, any core files, the globalcore.services.disabledswitch, ACL roles or payment methods. - It only removes the navigation entries — nothing else. The change is purely cosmetic and fully reversible: deactivate this plugin and the entries reappear. The goal is a tidy main menu, not making the app inaccessible.
Result: both navigation entries are gone, everything else (the app, its payment methods and the storefront integration) keeps working unchanged.
Requirements
- Shopware 6.7 (
>=6.7 <6.8) - PHP 8.4 or higher
Installation
Via Composer (recommended)
composer require actualizer/hide-shopware-payments-menu
Manual
Place the plugin in custom/plugins/ActHideShopwarePaymentsMenu (via Git clone,
ZIP upload in the plugin manager, or your deployment process).
Then, regardless of the install method, enable it:
bin/console plugin:refresh bin/console plugin:install --activate ActHideShopwarePaymentsMenu bin/console assets:install bin/console cache:clear
The compiled administration assets are shipped in
src/Resources/public/administration/, so no Node build is required on the target
system. After install, do a hard reload (Ctrl+Shift+R) of the admin.
Development
Build the administration assets after changing main.js:
./bin/build-administration.sh bin/console assets:install bin/console cache:clear
Support
For issues and feature requests, please use the GitHub issue tracker.
License
This plugin is licensed under the MIT License.
Credits
Developed by Actualize
Made with ❤️ for the Shopware Community