Data Sources → Business Systems

Commerce (Shopify)

Order, product, and cart data synced from the commerce platform — completes the picture of what a customer actually bought.

High-Level Design

Shopify → .NET Core Connector on Azure → downstream activation.

Business System
Commerce (Shopify)
Orders, products, carts, refunds
→
Ingestion
.NET Core Shopify Connector
Admin API webhook → Cxos.Ingestion.Client
→
Processing
.NET Core Stream Worker
Order/line-item normalization via Event Hubs
→
Foundation
Data Lakehouse
Order history in ADLS Gen2
→
Intelligence
.NET Core Analytics API
LTV, purchase frequency, RFM
→
Activation
.NET Core Activation API
Personalization, reorder reminders

💼 Business Context

  • Purchase data is the strongest behavioral signal in the platform — every other channel's activation ultimately optimizes toward it
  • Connects marketing/on-site behavior to actual revenue outcomes, closing the attribution loop
  • Owned by the E-commerce / Digital Commerce team

🔌 Technical Overview

Shopify pushes order lifecycle events (orders/create, orders/paid, orders/fulfilled, refunds/create) to a .NET Core Azure Function webhook endpoint registered via the Shopify Admin API. The function validates the HMAC signature, normalizes the payload through Cxos.Ingestion.Client, and forwards it to the Ingestion API. A nightly Bulk Operations job reconciles any missed webhook deliveries.

Synced Events

order_created order_paid order_fulfilled refund_created cart_updated

💾 Sample Order Payload

{
  "event": "order_paid",
  "event_id": "c2a9f1e0-8b3d-4e7a-9c1f-2d6a8e0b4c73",
  "timestamp": "2026-08-01T12:40:05Z",
  "user_id": "cust_004821",
  "context": { "channel": "commerce", "platform": "shopify", "store": "acme-retail" },
  "properties": {
    "order_id": "ord_55123",
    "total": 3499,
    "currency": "INR",
    "line_items": 4
  }
}

🔗 Integration Points

  • Azure Function webhook receiver (.NET Core) registered against Shopify Admin API webhooks
  • Cxos.Ingestion.Client NuGet package — shared contract
  • Shopify Bulk Operations API — nightly reconciliation job (.NET Core, Azure Functions Timer)
  • Analytics API — LTV/RFM computation for downstream personalization

🧰 Services Consumed

  • Owning microservice — Cxos.Connectors.Shopify (see the Full Application Service Map)
  • No dedicated database — stateless connector (see Platform Connectors above)

⚠️ Non-Functional Considerations

  • Scale: webhook volume spikes during flash sales — Azure Functions consumption plan scales automatically
  • Latency: order events typically land in the profile within seconds of checkout
  • Reliability: HMAC signature verification + idempotent event_id handling; nightly reconciliation catches missed webhooks
  • Security/Privacy: payment details are never stored — only order/line-item metadata passes the webhook boundary

🎯 Enterprise Example

A DTC brand connects Shopify order webhooks to CXOS. A customer who abandons a cart, then completes the purchase via an email nudge, has both events stitched to one profile — letting the Analytics API correctly attribute the sale to the email campaign instead of double-counting it as organic, improving campaign ROI reporting accuracy.

← Back to Business Systems