Install, update and remove plugins
Use a development installation first. Plugin code executes on the server, so install packages from sources you trust.
Upload a ZIP
Section titled “Upload a ZIP”- Open Settings → Plugins with a role allowed to manage plugins.
- Upload the ZIP containing one plugin directory.
- Wait for the result. A successful upload installs and enables the package.
- Check its enabled status and any reported activation errors.
Activation applies pending migrations, imports translations, runs onPluginEnable(context) if present, registers permissions and marks the plugin enabled. The upload flow refreshes the application so the package can be loaded.
Install from a local directory
Section titled “Install from a local directory”The operator can place the package under the installation’s configured plugin root instead. Keep the plugin folder name identical to its manifest ID. Reinitialize the application after adding a package or changing registration code, then enable the plugin under Settings → Plugins.
Unlike a ZIP upload, copying a directory alone does not enable it. A locally managed package cannot be overwritten by a ZIP with the same ID.
Grant access
Section titled “Grant access”Activation registers permissions and grants them to the Super Admin role. Other roles need an administrator to assign the plugin’s permissions in the role editor under Settings → Users & permissions. Registration alone does not grant access to all users.
Menu visibility and route access are separate: a menu entry can be hidden by its permission requirements, while a route also enforces its middleware. Check both if a user cannot open the plugin.
Update
Section titled “Update”| Installation type | Procedure |
|---|---|
| Uploaded package | Upload the new ZIP with the same plugin ID. NetSeller replaces the uploaded package and runs activation again. |
| Locally managed package | Disable it, deploy the complete updated folder, reinitialize the application and enable it again. |
Keep the plugin ID stable, increase its release version and append new migration files. Never change migrations already applied to an installation.
Activation reimports translations and can overwrite administrator-edited catalog values. Preserve required custom wording before the update. See Translations.
If an uploaded upgrade fails during activation, NetSeller restores the previous package files. This does not guarantee reversal of database changes already made by migrations. Keep a compatible backup and investigate the error before retrying.
Disable or remove
Section titled “Disable or remove”| Action | Effect |
|---|---|
| Disable | Stops active plugin contributions; retains tables, translations and installation data. |
| Delete plugin data | Requires a disabled plugin. Deletes its prefixed tables, migration history, permissions, translations and installation state. |
| Remove package | Removes an uploaded package’s files after its data has been deleted. Locally managed files are removed by the operator. |
Do not delete plugin data to refresh routes or install an update.
Diagnose common problems
Section titled “Diagnose common problems”| Problem | Likely cause or next step |
|---|---|
| Invalid package | Check the top-level folder, manifest ID, required version, src/ and provider paths. |
| “Already exists on disk” during upload | A locally managed package already uses that ID. Update it through its existing deployment method. |
| Provider cannot load | Check its CFC mapping, method names and no-argument initialization. |
| Route does not appear | Confirm the plugin is enabled and reinitialize after registration changes. Check route name/path prefixes. |
| Permission denied | Assign the required permission to the user’s role; check the route middleware as well as menu visibility. |
| POST returns 403 | Submit the current session’s CSRF input/header and required permission. |
| Migration checksum error | Restore the original migration and add a new version for the change. |
| Activation fails after some schema changes | Inspect the reported migration and existing database state; do not assume automatic rollback. |
| Translation import fails | Check flat JSON, en.json, locale filenames and key ownership. |
The plugin management page shows validation/activation errors and plugin events. For an unhandled server error, ask the operator to inspect the application logs. Do not expose raw exceptions or credentials to users.