Plugin Overview
How plugins work in ThreeU — remote HTTP integrations, manifests, providers, and the plugin lifecycle.
Plugin Architecture
Plugins are the primary mechanism for third-party service integration in ThreeU. They enable external providers (shipping companies, payment gateways, analytics tools, etc.) to integrate with ThreeU merchants.
The key architectural principle: ThreeU never runs third-party code in-process. Plugin developers host their own services, and ThreeU communicates with them through signed HTTPS calls.
Core Platform Principle
ThreeU never runs third-party code in-process. All plugin logic executes on developer-hosted infrastructure, communicated via signed HTTPS calls through the RemoteHttpProvider.
Plugin Communication Flows
Your service notifies ThreeU of events. Signed with per-install webhook secret.
Dashboard or POS triggers an action. ThreeU validates permissions, then forwards to your endpoint.
ThreeU calls your manifest-defined endpoint directly. Uses RemoteHttpProvider with configurable timeout.
Plugin Lifecycle
- Development — Build and test your plugin locally
- Registration — Create a plugin entry in the Developer Console
- Manifest — Define the plugin manifest with actions, permissions, and endpoints
- Health Check — ThreeU verifies your service is reachable
- Review — Submit for marketplace review (public plugins)
- Installation — Merchants install and configure your plugin
- Operation — ThreeU calls your endpoints when actions are triggered
- Monitoring — Track webhook delivery, errors, and usage
Provider Types
| Provider | Description | Who Uses It |
|---|---|---|
remote_http | Signed HTTPS calls to developer-hosted service | Third-party developers (default) |
native | Internal ThreeU module | ThreeU only |
iframe_app | Embedded UI in admin panel | App developers |
theme_extension | Theme component extension | Theme developers |
webhook_only | Inbound webhooks only | Event receivers |
manual_gateway | User-triggered actions | Manual integrations |
For third-party developers, remote_http is the default and recommended provider type.