Module logic
Zonely modules are uploaded as ZIP packages. The panel validates the package and applies it to the selected domain if valid. General flow:- Prepare the module as a ZIP file.
- The panel validates ZIP content.
- The module is applied to the selected domain.
- Template changes are activated when needed.
- If
Publicis enabled, the module appears in the community list.
Update logic
To update an existing module, the module identifier (id) must remain the same.
- If the same
idis uploaded, the panel processes it as an update. - Increase
versionfor release tracking. - Author, description, and version data are read from the package config.
ZIP structure
At least one config file must exist in the ZIP:Template rules
- Use
.tplformat for templates. - Keep theme paths correct and consistent.
- If you add new templates, place them under theme-compatible paths.
Route mapping
A newly added template is not auto-routed. It must be called by route. Example frontend route:Existing file change strategy
For stable module updates:- Include the target file with the same relative path in your module.
- Change only the required parts.
- Avoid wide, unnecessary edits.
API rules (general)
Module API files must be defined inside the module package and used through action names. Core principles:- Every action must be explicitly defined.
- Allowed methods (GET/POST, etc.) must be clear.
- Responses should follow a consistent JSON format.
- Errors should return clear and consistent messages.
Requirements for API calls
For a module action request:module_idandactionmust be sent.- The action must be defined in module config.
- The module must be active for the current domain.
- Request method must match the allowed methods.
- Private actions require an authenticated session.
Example module layout
Example config.json
Example widget file
Example API file
Frontend API call example
Error response fields
Panel errors during upload or runtime usually include:Quick checklist
Before release:- Config file exists.
- Module ID and version are correct.
- Template paths match theme structure.
- API action definitions are complete.
- JSON response format is valid.
- Module is tested on the correct domain and theme.
