This project is not covered by Drupal’s security advisory policy.
Enterprise-grade integration module for Drupal 10/11 providing robust, asynchronous bi-directional API communication, HMAC webhooks, queue-based data processing, and Dead Letter Queue isolation.
Features
ERP Connect serves as a highly resilient, enterprise-grade integration framework designed to connect Drupal 10/11 applications with external Enterprise Resource Planning (ERP) systems (such as SAP, Odoo, Microsoft Dynamics, or custom REST/XML endpoints).
Key features include:
* **Direct Outbound API Client (`ErpApiClientService`):** Supports cascading HTTP headers (Base, Custom Endpoint-specific, and Method-level) with dynamic secret resolution via the Drupal key module or ENV_... variables.
* **Inbound Webhook Controller:** Exposes secure endpoints (/api/erp/v1/webhook/{endpoint_id}) with automated payload parsing for both **JSON** and **XML** (`LIBXML_NOCDATA`).
* **HMAC & Bearer Security:** Built-in Access Checker supporting multiple signature header formats (X-ERP-Signature, X-Hub-Signature-256, X-Sign-Auth, etc.) verified using timing-attack safe comparisons (`hash_equals`).
* **Asynchronous Queue & DLQ Isolation:** Bi-directional queue execution with built-in retry mechanisms (`RequeueException`) and automated Dead Letter Queue (DLQ) routing for corrupted or permanently failing payloads.
* **Entity Mapping Database:** Dedicated erp_connect_mapping lookup table linking external ERP identifiers to Drupal entity IDs (`nid`, `pid`, `uid`, etc.).
* **Git-Safe Configuration:** Zero hardcoded API keys—environment-driven key resolution allows full Git compliance.
Post-Installation
Once installed, configure the module as follows:
1. Navigate to **Administration > Configuration > Web services > ERP Connect** (/admin/config/services/erp-connect).
2. Configure your primary API Endpoints, HTTP methods, and dynamic custom headers.
3. Link your API authentication keys using either the Drupal Key module mapping or by specifying an environment variable key (e.g., ENV_ERP_API_KEY).
4. Configure Webhook Endpoint IDs and secret tokens for inbound HMAC validation.
5. Ensure your system Cron or external runner (e.g., Drush queue workers) is actively processing the erp_inbound_queue and erp_sync_queue_worker queues.
Additional Requirements
* **Drupal Core:** 10.2+ or 11.x.
* **PHP:** 8.2 or higher (strict typing required).
* **Key Module (Optional but Recommended):** Key for managing API keys through standard Drupal UI, if not using system environment variables (`ENV_...`).
Recommended modules/libraries
* **Ultimate Cron:** Provides fine-grained schedule management and execution logging for the inbound and outbound queue workers.
* **Drupal Commerce:** Ideal for syncing ERP product catalogs, stock levels, and order states with a Drupal e-commerce store.
Similar projects
* **Feeds:** Great for basic batch imports, but lacks native bi-directional HMAC webhooks, Dead Letter Queue isolation, and custom cascading header strategies.
* **Webform / REST UI:** Focuses on standard CRUD API endpoints rather than enterprise-ready, transactional ERP integration patterns with retry handling.
Supporting this Module
If you use **ERP Connect** in mission-critical corporate environments, consider contributing back:
* Submit improvements, edge-case fixes, or feature requests directly to the **Issue Queue**.
* Merge requests adhering to PHP 8.2+ strict typing and Drupal Coding Standards are always welcome!
Community Documentation
Detailed technical documentation, architectural diagrams, and service usage examples (e.g., injecting `ErpApiClientService` or subscribing to sync events) can be found in the module's README.md file.
Project information
Minimally maintained
Maintainers monitor issues, but fast responses are not guaranteed.- Project categories: E-commerce, Import and export, Integrations
- Created by nowaypg on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.