Adding an integration
- Create
src/integrations/<provider>. Keep the SDK import inside that folder. - Marketplace classes must match the auto-registration regex. You need
{Provider}OrderServiceand{Provider}CatalogServiceor the provider will not register. Optional capabilities use the same prefix:Customer,Settlement,OutboundOrder,Inventory,WebhookHealth. The provider token must be one of Shopify, WooCommerce, Amazon, Flipkart, BigCommerce, Meesho. A new marketplace name will not match until that regex is updated. - A courier class must expose
integrationCode,ship,cancel, andtrack. - Add a registry seed entry if the connection hub should list it.
- Store secrets on
IntegrationConnectionthrough the vault, not onChannel.config. - Webhooks are
@PublicRoute. Verify a signature in the controller. Do not accept unsigned bodies because another provider does. WhatsApp fails closed whenMETA_APP_SECRETis unset. Follow that unless you have a reason not to. - Long work goes to
webhook_queueor a dedicated queue. Do not hold the HTTP request for a full catalog import. - If you publish inventory, decide whether you need a
flush-channel:<CODE>job orDEFAULT. - If sync should participate in the circuit breaker, go through
SyncJobProcessorWorkerrather than a private loop.
CUSTOM is not a pattern to copy for a real channel. The scheduler skips unknown types.