Documentation Index
Fetch the complete documentation index at: https://mintlify.com/idempiere/idempiere/llms.txt
Use this file to discover all available pages before exploring further.
iDempiere Plugin System
iDempiere’s modular OSGi-based architecture enables a powerful plugin system that allows you to extend and customize functionality without modifying the core codebase.Plugins are the recommended way to add custom functionality to iDempiere. They keep your customizations separate from core code, making upgrades easier and enabling community sharing.
Available Plugins
The iDempiere community maintains a catalog of available plugins for various purposes:Available Plugins
Browse the complete list of community plugins on the iDempiere Wiki
Plugin Categories
Plugins are available for many purposes:- Integration - Connect iDempiere with external systems (payment gateways, shipping, e-commerce)
- Industry-specific - Vertical solutions for specific business sectors
- Functional extensions - Enhanced reporting, workflows, and business processes
- Technical utilities - Development tools, performance monitoring, system utilities
- Localization - Country-specific requirements, tax systems, and regulations
- UI/UX enhancements - Custom interfaces and user experience improvements
Using Plugins
Finding Plugins
Browse the Plugin Catalog
Visit the Available Plugins page on the wiki to see what’s available.
Review Plugin Documentation
Each plugin should have documentation describing:
- What functionality it provides
- Installation requirements
- Configuration steps
- Compatibility information
Check Compatibility
Verify the plugin is compatible with your iDempiere version before installation.
Installing Plugins
Plugin installation typically involves:- Download the plugin JAR file(s)
- Deploy to your iDempiere plugins directory
- Install via the Plugin Manager in iDempiere
- Configure according to plugin documentation
- Test functionality in your environment
Developing Plugins
Why Create a Plugin?
Consider creating a plugin when:- Adding functionality not suitable for iDempiere core
- Building industry-specific or company-specific features
- Integrating with external systems or services
- Sharing reusable functionality with the community
- Maintaining customizations separate from core for easier upgrades
Plugin Development Guidelines
Before developing a plugin, familiarize yourself with the official guidelines:Plugin Guidelines
Read the complete plugin development guidelines on the iDempiere Wiki
Key Guidelines
Follow OSGi Standards
Follow OSGi Standards
iDempiere uses OSGi for its modular architecture. Your plugins should:
- Be packaged as proper OSGi bundles
- Declare dependencies correctly
- Use OSGi services for integration
- Follow lifecycle management practices
Maintain Compatibility
Maintain Compatibility
Design plugins to be upgrade-friendly:
- Use stable APIs where possible
- Minimize dependencies on internal implementation details
- Test against multiple iDempiere versions
- Document version compatibility clearly
Code Quality
Code Quality
Maintain high code quality standards:
- Follow iDempiere coding conventions
- Include comprehensive testing
- Document your code thoroughly
- Handle errors gracefully
Documentation
Documentation
Provide complete documentation:
- Installation instructions
- Configuration guide
- User manual for functionality
- API documentation if applicable
- Troubleshooting tips
Licensing
Licensing
Respect licensing requirements:
- Use compatible open-source licenses
- Clearly state your plugin’s license
- Respect third-party library licenses
- Follow GPL-2.0 guidelines for core integration
Development Best Practices
- Architecture
- Development
Design Principles
- Keep plugins focused and modular
- Use extension points provided by iDempiere
- Implement proper event handlers and callouts
- Follow model-view-controller patterns
- Design for configurability rather than hard-coding
- Model validators for business logic
- Event handlers for system events
- Callouts for UI behavior
- Processes for batch operations
- Forms for custom interfaces
Plugin Ecosystem Guidelines
Community Standards
The iDempiere community expects plugins to:Follow the official Plugin Guidelines
Provide value to the broader community, not just a single company
Include complete documentation and installation instructions
Be maintained and supported by the author
Work with standard iDempiere installations
Not require extensive custom support to use
Project leaders may remove plugins from the Available Plugins list if they:
- Don’t follow community guidelines
- Are disruptive or problematic
- Require specific implementing company support
- Are abandoned without maintenance
Contributing Plugin Documentation
When adding your plugin to the wiki:- Create a plugin page with comprehensive information
- Add to the category Available Plugins
- Include all required sections:
- Description and purpose
- Features and capabilities
- Installation instructions
- Configuration guide
- Version compatibility
- License information
- Support contact
- Download links
- Keep it updated as you release new versions
Getting Help with Plugin Development
Development Forum
Ask questions and share experiences in the community forum
Mattermost Developer Chat
Connect with developers in real-time chat
Contributing Guide
Learn about contributing code to iDempiere
Wiki Documentation
Access technical documentation and guides
Plugin Development Resources
Learning Resources
- Wiki Pages - Technical guides and tutorials on the iDempiere Wiki
- Existing Plugins - Study source code of available plugins
- Community Forums - Ask questions and learn from experienced developers
- Core Code - Review iDempiere core for patterns and best practices
Technical Resources
- Source Code - GitHub repository
- Build System - Jenkins CI at jenkins.idempiere.org
- Test Environments - Test sites for validation
- Issue Tracking - JIRA for bugs and features
Evaluation: Core vs Plugin
When deciding whether functionality should be in core or a plugin:- Core Criteria
- Plugin Criteria
Functionality belongs in iDempiere core when it:
- Benefits most iDempiere users
- Provides fundamental business functionality
- Requires deep integration with core systems
- Needs to be maintained as part of core
- Is industry-agnostic and broadly applicable
Join the Plugin Community
iDempiere’s plugin ecosystem thrives on community collaboration:- Share your plugins to help others solve similar problems
- Contribute to existing plugins with improvements and fixes
- Provide feedback on plugins you use
- Help with documentation for plugin developers
- Test plugins and report issues