Worker Plugins
Worker plugins handle background tasks like notifications, data processing, and scheduled jobs.
Base Preset Workers
These workers are registered by registerBasePlugins() (from @unchainedshop/plugins/presets/base) and are strongly recommended for proper system operation:
| Adapter Key | Type | Description | When to Use |
|---|---|---|---|
shop.unchained.worker-plugin.message | MESSAGE | Routes messages through templates to delivery workers | Always — central message routing for all notifications |
shop.unchained.worker-plugin.email | EMAIL | Email notifications via Nodemailer | When sending transactional emails (order confirmations, etc.) |
shop.unchained.worker-plugin.http-request | HTTP_REQUEST | Outbound HTTP webhooks | When integrating with external services via webhooks |
shop.unchained.worker-plugin.bulk-import | BULK_IMPORT | Bulk data import from JSON streams | When importing products, prices, or media in bulk |
shop.unchained.worker-plugin.bulk-export | BULK_EXPORT | Export shop entities as CSV files | When exporting catalog or user data |
shop.unchained.worker-plugin.external | EXTERNAL | Placeholder for external workers | When delegating work to external systems (e.g. ERP) |
shop.unchained.worker-plugin.heartbeat | HEARTBEAT | Test worker | When checking queue processing or simulating delays and failures |
shop.unchained.worker-plugin.zombie-killer | ZOMBIE_KILLER | Cleanup orphaned database records | Always — prevents stale data buildup |
shop.unchained.worker-plugin.gc-guests | GC_GUESTS | Delete inactive guest accounts and their open carts | When expiring abandoned guest sessions |
shop.unchained.worker-plugin.invalidate-carts | INVALIDATE_CARTS | Recalculate recently updated open carts | When refreshing cart pricing after tax or catalog changes |
shop.unchained.worker.error-notifications | ERROR_NOTIFICATIONS | Daily error reports | When you want daily summaries of worker failures |
SMS Workers
Registered by registerAllPlugins() (from @unchainedshop/plugins/presets/all):
| Adapter Key | Type | Description |
|---|---|---|
shop.unchained.worker-plugin.twilio | TWILIO | SMS via Twilio |
shop.unchained.worker-plugin.bulkgate | BULKGATE | SMS via BulkGate |
shop.unchained.worker-plugin.budgetsms | BUDGETSMS | SMS via BudgetSMS |
Push Notifications
Registered by registerAllPlugins():
| Adapter Key | Type | Description |
|---|---|---|
shop.unchained.worker-plugin.push-notification | PUSH | W3C Web Push notifications |
Currency Rate Workers
Registered by registerCryptoPlugins() (from @unchainedshop/plugins/presets/crypto) and registerAllPlugins():
| Adapter Key | Type | Description |
|---|---|---|
shop.unchained.worker.update-ecb-rates | UPDATE_ECB_RATES | EUR exchange rates from ECB |
shop.unchained.worker.update-coinbase-rates | UPDATE_COINBASE_RATES | Crypto/fiat rates from Coinbase |
Enrollment Workers
Registered by registerAllPlugins():
| Adapter Key | Type | Description |
|---|---|---|
shop.unchained.worker-plugin.generate-enrollment-orders | ENROLLMENT_ORDER_GENERATOR | Generate orders from subscriptions |
Token/NFT Workers
Registered by registerCryptoPlugins() (from @unchainedshop/plugins/presets/crypto) and registerAllPlugins():
| Adapter Key | Type | Description |
|---|---|---|
shop.unchained.worker-plugin.export-token | EXPORT_TOKEN | Token minting/export process |
shop.unchained.worker-plugin.refresh-tokens | REFRESH_TOKENS | Refresh token ownership data |
shop.unchained.worker-plugin.update-token-ownership | UPDATE_TOKEN_OWNERSHIP | External token ownership verification |
Creating Custom Worker Plugins
See Custom Worker Plugins for creating your own worker adapters.