How sd2389/devjewels-channels works
DevJewels Channels is a multi-platform commerce synchronization service, with Shopify implemented first and WooCommerce still a webhook stub. The principal flow ingests Django catalog and inventory events, deduplicates and fans them out to queued jobs, then workers synchronize Shopify products and inventory; order webhooks are normalized and reserved through Django. The graph also includes Shopify installation, connection administration, and the shared channels-schema state. The README documents several capabilities whose implementations were not sampled, so those links are shown only where its workflow explicitly supports them.
Main entry points: handlers.ts Worker dispatch · productSyncService.ts Product sync · queue.ts Job queues · client.ts Django API client
Components 24
Dashboard and connections
- Dashboard
apps/core/src/app/(dashboard)/ConnectDashboard.tsx - Admin routes
apps/core/src/http/routes/admin.ts - Shopify connect
apps/core/src/http/routes/shopifyConnect.ts - Connection service
apps/core/src/services/connectShopifyService.ts
Events and queues
- Event ingest
apps/core/src/http/routes/internalEvents.ts - Event processing
apps/core/src/services/events.ts - Event fan-out
apps/core/src/services/inventoryFanOut.ts - Job queues
apps/core/src/services/queue.ts
Sync workers
- Worker dispatch
apps/core/src/workers/handlers.ts - Inventory sync
apps/core/src/services/inventorySyncService.ts - Product sync
apps/core/src/services/productSyncService.ts - Catalog import
apps/core/src/services/catalogImportService.ts - Order processing
apps/core/src/services/orderProcessingService.ts
Platform integrations
- OAuth flow
apps/core/src/http/routes/shopifyAuth.ts - Shopify webhooks
apps/core/src/http/routes/shopifyWebhooks.ts - Shopify adapter
apps/shopify/src/adapter.ts - WooCommerce webhook stub
apps/woocommerce/app/api/woocommerce/webhooks/route.ts - Django API client
apps/core/src/integrations/deverp/client.ts
Shared state
- Channels schema
apps/core/src/db/shared/client.ts - Connection records
apps/core/src/services/connections.ts - Ingest and webhook state
apps/core/src/services/eventIdempotency.ts
Other components
- Operator
- DevJewels Django
- Shopify
Connections 37
- Operator → Dashboard: uses
- Dashboard → Admin routes: requests
- Admin routes → Connection records: manages
- Admin routes → Django API client: looks up customers
- Operator → Shopify connect: starts install
- Shopify connect → Connection service: initiates
- Connection service → Connection records: stores connection
- Connection service → Shopify: creates Shopify install
- Operator → OAuth flow: approves install
- OAuth flow → Shopify: exchanges OAuth
- OAuth flow → Connection records: persists credentials
- DevJewels Django → Event ingest: posts events
- Event ingest → Event processing: validates and processes
- Event processing → Ingest and webhook state: claims event ID
- Event processing → Event fan-out: dispatches event
- Event fan-out → Channels schema: reads mappings
- Event fan-out → Job queues: enqueues jobs
- Job queues → Worker dispatch: dispatches jobs
- Worker dispatch → Inventory sync: runs inventory jobs
- Worker dispatch → Product sync: runs product jobs
- Worker dispatch → Catalog import: runs imports
- Inventory sync → Django API client: reads inventory
- Inventory sync → Shopify adapter: sets quantities
- Product sync → Django API client: reads catalog and prices
- Product sync → Shopify adapter: creates or updates
- Product sync → Job queues: enqueues inventory
- Product sync → Channels schema: updates mappings
- Catalog import → Django API client: loads catalog
- Catalog import → Job queues: enqueues product jobs
- Shopify → Shopify webhooks: sends webhooks
- Shopify webhooks → Shopify adapter: verifies webhook
- Shopify webhooks → Ingest and webhook state: claims webhook
- Shopify webhooks → Job queues: enqueues order job
- Worker dispatch → Order processing: runs order jobs
- Order processing → Django API client: reserves order
- Order processing → Shopify adapter: normalizes order
- WooCommerce webhook stub → Shopify