Skip to main content

Integrations overview

Provider code lives in src/integrations. Feature modules must not import provider SDKs. The architecture check enforces that.

Registration​

KindHow it is discovered
MarketplaceClass names {Provider}OrderService and {Provider}CatalogService. Optional: Customer, Settlement, OutboundOrder, Inventory, WebhookHealth. Prefix must be Shopify, WooCommerce, Amazon, Flipkart, BigCommerce, or Meesho
CourierDuck typing: integrationCode, ship, cancel, track
WhatsAppNot this regex. Agent module plus meta-commerce
CUSTOMSeed only. Scheduler skips it

Registry seed: src/migrations/seed/integration-registry.seed.ts. Runtime: IntegrationAutoRegistrationService.

Direction​

FlowDirection
Order, product, customer, settlement pullChannel → PointNXT on the scheduler
Inventory publishPointNXT → channel
Order status pushPointNXT → channel when Channel.manageState is true (schema comment)
Price pushchannel-price-push.adapter.ts exists. Call sites were not fully traced
Labels and trackingPointNXT → courier, then courier → PointNXT by webhook or poll

Shared failure behavior​

sync_queue attempts 3, exponential backoff 5 seconds. Circuit breaker writes SUSPENDED, not INACTIVE. Outbox retries then DEAD, with no replay API identified. Inventory feed poll reaper runs every 10 minutes. Stale outbox PROCESSING locks return to PENDING after 5 minutes.

Credentials​

Encrypted on IntegrationConnection with CREDENTIAL_VAULT_KEY_V1. Not stored in Channel.config.

Pages​

Shopify, WooCommerce, Amazon, Flipkart, BigCommerce, Meesho, WhatsApp, Couriers, Payments, Platform services.