Skip to main content

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

1

Browse the Plugin Catalog

Visit the Available Plugins page on the wiki to see what’s available.
2

Review Plugin Documentation

Each plugin should have documentation describing:
  • What functionality it provides
  • Installation requirements
  • Configuration steps
  • Compatibility information
3

Check Compatibility

Verify the plugin is compatible with your iDempiere version before installation.
4

Test in Development

Always test plugins in a development environment before deploying to production.

Installing Plugins

Plugin installation typically involves:
  1. Download the plugin JAR file(s)
  2. Deploy to your iDempiere plugins directory
  3. Install via the Plugin Manager in iDempiere
  4. Configure according to plugin documentation
  5. Test functionality in your environment
Always backup your system before installing new plugins, and test thoroughly in a non-production environment first.

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

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
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
Maintain high code quality standards:
  • Follow iDempiere coding conventions
  • Include comprehensive testing
  • Document your code thoroughly
  • Handle errors gracefully
Provide complete documentation:
  • Installation instructions
  • Configuration guide
  • User manual for functionality
  • API documentation if applicable
  • Troubleshooting tips
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

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
Integration Points
  • 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:
  1. Create a plugin page with comprehensive information
  2. Add to the category Available Plugins
  3. Include all required sections:
    • Description and purpose
    • Features and capabilities
    • Installation instructions
    • Configuration guide
    • Version compatibility
    • License information
    • Support contact
    • Download links
  4. 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

Evaluation: Core vs Plugin

When deciding whether functionality should be in core or a plugin:
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
When in doubt, discuss your idea in the forums or Mattermost. The community can provide guidance on whether core contribution or plugin development is more appropriate.

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
Together, we make iDempiere more powerful and flexible for everyone.