Vision & Philosophy
ERPax is built on a simple but powerful philosophy: unify, automate, integrate.
The Unified Document Model
At the heart of ERPax is a radical simplification: instead of separate models for invoices, purchase orders, quotations, and other documents, ERPax uses a single, unified model - the Invoice model - that adapts to represent any business document type.
Why Unified?
Traditional ERP systems create separate models for each document type:
- Invoice model
- PurchaseOrder model
- Quotation model
- CreditNote model
- And so on... This approach leads to:
- Duplication - Same fields, same logic, repeated across models
- Complexity - Multiple systems to understand, multiple APIs to integrate
- Inconsistency - Different behaviors, different workflows, different rules
- Maintenance Burden - Changes must be made in multiple places ERPax takes a different approach: One model, configured by type. The foundation of ERPax's approach differs radically from traditional ERP systems. Instead of maintaining separate data models for quotations, invoices, purchase orders, and credit notes, ERPax uses one powerful, extensible Invoice model that serves all document types seamlessly. This architectural decision eliminates substantial complexity and creates a coherent system where all business documents operate under the same logic and rules. See Platform Overview for a comprehensive explanation of the unified document model and its benefits.
How It Works
The Invoice model adapts based on the invoice_type field, providing type-specific behavior while maintaining a unified foundation. API Usage:
# All document types use the same endpoint
POST /admin/invoices.json
{ "invoice": { "invoice_type": "quotation", ... } }
POST /admin/invoices.json
{ "invoice": { "invoice_type": "invoice", ... } }
POST /admin/invoices.json
{ "invoice": { "invoice_type": "purchase_order", ... } }This means:
- One API - Same endpoints for all document types
- One Workflow - Consistent lifecycle management
- One Data Model - Unified database schema
- One Codebase - Shared logic, shared improvements
Benefits
For Developers:
- Less code to write and maintain
- Consistent API and data model
- Easier to extend and customize
- Single source of truth For Users:
- Consistent interface across all documents
- Same workflows, same logic, same power
- Easier to learn and use
- Fewer bugs and inconsistencies For Businesses:
- Faster implementation - One system to set up, not multiple
- Lower maintenance costs - One codebase, shared improvements
- Easier integration - One API, one data model, infinite possibilities
- More reliable system - Single source of truth, consistent behavior The unified approach means mastering one system, understanding one data model, and gaining the ability to handle virtually all business document types and workflows. Rather than fragmented complexity, ERPax offers coherent simplicity at enterprise scale. See Platform Overview for a comprehensive explanation of the unified document model benefits.
Automatic Workflows
ERPax believes in automation. Business processes should flow automatically, not require manual intervention at every step.
Document Lifecycle Automation
When you create a quotation and confirm it, ERPax automatically:
- Transitions it to a proforma invoice
- Generates the invoice number
- Sets the date and timestamps
- Assigns payment methods
- Sets up accounting accounts When you confirm the proforma invoice:
- Transitions it to a final invoice
- Generates accounting equations
- Creates debit and credit entries
- Tracks payment dates
- Sends email notifications (if configured) All of this happens automatically through the lifecycle concern's TYPE_HANDLERS and GROUP_HANDLERS. Workflow automation is fundamental to ERPax's design, not an afterthought or premium feature. The system automates entire business processes, transforming manual document handling into flowing, intelligent workflows. See Platform Overview for detailed information about workflow automation capabilities.
Automatic Accounting Integration
Perhaps the most powerful automation is accounting integration. When you confirm an invoice:
- Seller Equation Created - Debit entry for seller's account
- Buyer Equation Created - Credit entry for buyer's account
- Line Item Entries - Entries for each invoice line's accounts
- Tax Entries - Separate entries for tax accounts No manual journal entries. No accounting errors. No reconciliation needed. This is possible because:
- Documents contain all the information needed for accounting
- Accounting accounts are assigned automatically from addresses/items
- The system knows the accounting rules
- Everything is validated and balanced automatically See Platform Overview and Accounting Documentation for detailed information about automatic accounting integration.
Multi-Tenant by Design
Multi-tenancy isn't an afterthought in ERPax - it's fundamental to the architecture. ERPax was designed as multi-tenant from its initial architecture, rather than adding multi-tenancy as an afterthought. This foundational design decision has profound implications for scalability, customization, and cost efficiency. See Platform Overview for detailed architecture information.
EU-First Compliance
ERPax is built with European businesses in mind, but this doesn't limit its global applicability. ERPax was built specifically with European businesses in mind, incorporating comprehensive compliance features as core functionality rather than optional add-ons. This EU-first approach is increasingly critical as regulatory requirements become more stringent across Europe. This means compliant from day one, no plugins, no extra costs, no compliance headaches. See Platform Overview and Features for detailed compliance capabilities.
Concern-Based Architecture
ERPax uses Rails concerns extensively to create modular, maintainable code. The Invoice model includes 42 concerns, each handling a specific aspect:
- InvoiceLifecycleConcern - Lifecycle management
- InvoiceFinancialConcern - Financial calculations
- InvoiceAccountingConcern - Accounting integration
- InvoicePaymentConcern - Payment tracking
- InvoiceTypeConcern - Type system
- And 37 more... This approach means:
- Modularity - Each concern is independent and testable
- Reusability - Concerns can be shared across models
- Maintainability - Changes are localized to specific concerns
- Extensibility - Easy to add new concerns
The Philosophy in Practice
When you use ERPax, you're not just using software - you're adopting a philosophy:
- Simplify - One model, not many
- Automate - Let the system handle the workflow
- Integrate - Accounting, payments, everything connected
- Scale - Multi-tenant from day one
- Comply - Built-in compliance, not bolted-on This philosophy results in:
- Less code to write
- Fewer bugs to fix
- Faster development
- Easier maintenance
- Better user experience
- Lower costs
Comparison with Traditional Approaches
Traditional ERP
Quotation → Manual → Invoice → Manual → Accounting Entry → Manual → PaymentEach step requires manual intervention. Each system is separate. Errors are common. See Platform Overview for a detailed comparison with traditional ERP systems and the benefits of ERPax's architectural redesign.
Conclusion
ERPax's philosophy is simple: unify what's similar, automate what's repetitive, integrate what's connected. The unified document model isn't just a technical choice - it's a philosophy that simplifies everything: development, usage, maintenance, and business operations. When you choose ERPax, you're choosing simplicity, automation, and integration over complexity, manual processes, and disconnected systems.
Learn More:
- Platform Overview - Comprehensive overview of ERPax
- Why ERPax? - Business value and use cases
- Design Principles - Technical design decisions
- Unified Document Model Guide - Detailed technical guide