@company-manager/docs

E-Commerce Domain

UML diagrams for orders, products, payments, shipping, and inventory management

E-Commerce Domain

The E-Commerce domain encompasses order management, product catalog, payment processing, shipping fulfillment, and inventory tracking.

Domain Overview

graph TB
    subgraph "E-Commerce Domain"
        subgraph "Order Management"
            ORDER[Order]
            ITEM[Order Item]
            FULFILL[Fulfillment]
        end

        subgraph "Product Catalog"
            PROD[Product]
            VAR[Variation]
            CAT[Category]
            ATTR[Attributes]
        end

        subgraph "Payment Processing"
            PAY[Payment Transaction]
            REFUND[Refund]
            BNPL[Buy Now Pay Later]
        end

        subgraph "Shipping"
            SHIP[Shipment]
            TRACK[Tracking]
            LABEL[Labels]
        end

        subgraph "Inventory"
            STOCK[Stock]
            ACTION[Stock Actions]
            TRANSFER[Transfers]
        end

        subgraph "Suppliers"
            VENDOR[Vendor]
            SUPORDER[Supplier Order]
        end
    end

    ORDER --> ITEM
    ITEM --> PROD
    ORDER --> PAY
    ORDER --> FULFILL
    FULFILL --> SHIP
    SHIP --> TRACK

    PROD --> VAR
    PROD --> CAT
    VAR --> ATTR
    PROD --> STOCK

    ORDER --> REFUND
    PAY --> BNPL

    STOCK --> ACTION
    STOCK --> TRANSFER
    STOCK --> SUPORDER
    SUPORDER --> VENDOR

    style ORDER fill:#e1f5fe
    style PROD fill:#f3e5f5
    style PAY fill:#fff3e0
    style SHIP fill:#e8f5e9

Entity Relationship Diagram

erDiagram
    TENANT ||--o{ ORDER : has
    TENANT ||--o{ PRODUCT : has
    TENANT ||--o{ VENDOR : has

    ORDER ||--o{ ORDER_ITEM : contains
    ORDER ||--o{ PAYMENT_TRANSACTION : has
    ORDER ||--o{ SHIPMENT : generates
    ORDER ||--o{ ORDER_FULFILLMENT : tracks
    ORDER }o--|| CONTACT : placed_by
    ORDER }o--o| VOUCHER : uses

    ORDER_ITEM }o--|| PRODUCT : references
    ORDER_ITEM }o--o| PRODUCT_VARIATION : specifies

    PRODUCT ||--o{ PRODUCT_VARIATION : has
    PRODUCT ||--o{ PRODUCT_IMAGE : has
    PRODUCT }o--|| PRODUCT_MAIN_CATEGORY : belongs_to
    PRODUCT }o--o{ PRODUCT_SUB_CATEGORY : assigned_to
    PRODUCT }o--o| VENDOR : supplied_by
    PRODUCT ||--o{ PRODUCT_STOCK_AVAILABLE : tracked_in

    PRODUCT_VARIATION ||--o{ VARIATION_ATTRIBUTE_VALUE : has

    SHIPMENT ||--o{ TRACKING_EVENT : logs
    SHIPMENT }o--|| SHIPPING_CARRIER : uses
    SHIPMENT }o--|| SHIPPING_SERVICE : uses
    SHIPMENT ||--o| SHIPPING_LABEL : generates

    PAYMENT_TRANSACTION }o--|| PAYMENT_METHOD : uses
    PAYMENT_TRANSACTION ||--o{ PAYMENT_REFUND : may_have

    VENDOR ||--o{ SUPPLIER_ORDER : receives
    SUPPLIER_ORDER ||--o{ SUPPLIER_ORDER_ITEM : contains

    STOCK_ACTION }o--|| PRODUCT : affects
    INVENTORY_TRANSFER ||--o{ INVENTORY_TRANSFER_ITEM : contains

    ORDER {
        string id PK
        string tenantId FK
        string siteId FK
        string contactId FK
        string invoiceNumber
        enum invoiceStatus
        enum orderType
        decimal totalAmount
        string currency
        timestamp invoiceDate
        timestamp deliveryDate
        string paymentIntentId
    }

    ORDER_ITEM {
        string id PK
        string orderId FK
        string productId FK
        string variationId FK
        int quantity
        decimal unitPrice
        decimal totalPrice
        decimal taxRate
    }

    PRODUCT {
        string id PK
        string tenantId FK
        string name
        string reference
        decimal price
        decimal salePrice
        int stock
        enum productType
        boolean manageStock
        int lowStockThreshold
    }

    SHIPMENT {
        string id PK
        string orderId FK
        string carrierId FK
        string trackingNumber
        enum status
        decimal weight
        string labelUrl
        timestamp shippedDate
        timestamp deliveredDate
    }

    PAYMENT_TRANSACTION {
        string id PK
        string orderId FK
        string paymentMethodId FK
        decimal amount
        string currency
        enum status
        string externalId
        timestamp processedAt
    }

Key Business Processes

Order Lifecycle

The complete flow from order creation to completion. View Order Lifecycle Details

Payment Processing

Payment capture, verification, and refund flows. View Payment Flow Details

Shipping & Fulfillment

From order fulfillment to delivery confirmation. View Shipping Details

Inventory Management

Stock tracking, reservations, and adjustments. View Inventory Details

Supplier Ordering

Procurement workflow and vendor management. View Supplier Details

Domain Statistics

EntityApproximate FieldsKey Relationships
Order40+Contact, Items, Payments, Shipments
Product50+Categories, Variations, Stock, Vendor
Payment Transaction25+Order, Method, Refunds
Shipment30+Order, Carrier, Tracking Events
Supplier Order20+Vendor, Items

Integration Points

flowchart LR
    subgraph "E-Commerce Domain"
        ORDER[Orders]
        PROD[Products]
        PAY[Payments]
        SHIP[Shipping]
    end

    subgraph "External Systems"
        STRIPE[Stripe]
        PS[PrestaShop]
        CARRIERS[Shipping Carriers]
    end

    subgraph "Internal Domains"
        CRM[CRM]
        INV[Inventory]
        ACC[Accounting]
    end

    PAY <--> STRIPE
    PROD <--> PS
    ORDER <--> PS
    SHIP <--> CARRIERS

    ORDER --> CRM
    ORDER --> INV
    PAY --> ACC

    style STRIPE fill:#635bff,color:#fff
    style PS fill:#df0067,color:#fff