Rithum · Capability

Rithum Commerce Operations

Unified workflow capability for commerce operations on the Rithum / Dsco platform. Combines supplier and retailer workflows for order management, catalog synchronization, inventory updates, shipment tracking, invoice processing, and event streaming. Designed for commerce operations teams managing dropship and private marketplace integrations.

Run with Naftiko CommerceDropshipMarketplaceEcommerceRithumSupply Chain

What You Can Do

GET
List orders — List supplier orders available for fulfillment
/v1/orders
POST
Create order — Submit a consumer order to the Dsco platform
/v1/orders
GET
Get order — Get a specific order by ID
/v1/orders/{orderId}
POST
Acknowledge order — Acknowledge receipt of an order
/v1/orders/{orderId}/acknowledge
POST
Cancel order — Cancel an order item
/v1/orders/{orderId}/cancel
POST
Update catalog — Update supplier product catalog items
/v1/catalog
POST
Update inventory — Update supplier inventory quantities
/v1/inventory
POST
Create shipment — Create a shipment record for a fulfilled order
/v1/shipments
POST
Create invoice — Submit an invoice for a fulfilled order
/v1/invoices
GET
List streams — List all event streams
/v1/streams
POST
Create stream — Create a new event stream
/v1/streams
GET
Get stream events — Retrieve events from a stream
/v1/streams/{streamId}/events

MCP Tools

list-orders

List orders available for supplier fulfillment

read-only
get-order

Get a specific order by ID

read-only
create-retailer-order

Submit a consumer dropship or marketplace order

acknowledge-order

Acknowledge receipt of a supplier order

cancel-order-item

Cancel an order item (supplier or retailer)

idempotent
update-catalog

Update supplier product catalog with new or changed items

update-inventory

Update supplier inventory quantities for catalog items

create-shipment

Create a shipment record for a fulfilled order with tracking

create-invoice

Submit an invoice for a fulfilled supplier order

list-streams

List all event stream definitions for real-time data consumption

read-only
create-stream

Create a new event stream for order, inventory, or catalog events

get-stream-events

Retrieve events from a stream starting at a checkpoint position

read-only

APIs Used

dsco

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Rithum Commerce Operations"
  description: >-
    Unified workflow capability for commerce operations on the Rithum / Dsco
    platform. Combines supplier and retailer workflows for order management,
    catalog synchronization, inventory updates, shipment tracking, invoice
    processing, and event streaming. Designed for commerce operations teams
    managing dropship and private marketplace integrations.
  tags:
    - Commerce
    - Dropship
    - Marketplace
    - Ecommerce
    - Rithum
    - Supply Chain
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      DSCO_CLIENT_ID: DSCO_CLIENT_ID
      DSCO_CLIENT_SECRET: DSCO_CLIENT_SECRET

capability:
  consumes:
    - import: dsco
      location: ./shared/dsco-platform.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: rithum-commerce-api
      description: "Unified REST API for Rithum commerce operations including orders, catalog, inventory, and shipments."
      resources:
        - path: /v1/orders
          name: orders
          description: "Order management for retailers and suppliers"
          operations:
            - method: GET
              name: list-orders
              description: "List supplier orders available for fulfillment"
              call: "dsco.supplier-list-orders"
              with:
                status: "rest.status"
                limit: "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-order
              description: "Submit a consumer order to the Dsco platform"
              call: "dsco.retailer-create-order"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/orders/{orderId}
          name: order-detail
          description: "Individual order detail"
          operations:
            - method: GET
              name: get-order
              description: "Get a specific order by ID"
              call: "dsco.supplier-get-order"
              with:
                orderId: "rest.orderId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/orders/{orderId}/acknowledge
          name: order-acknowledge
          description: "Order acknowledgment"
          operations:
            - method: POST
              name: acknowledge-order
              description: "Acknowledge receipt of an order"
              call: "dsco.supplier-acknowledge-order"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/orders/{orderId}/cancel
          name: order-cancel
          description: "Order cancellation"
          operations:
            - method: POST
              name: cancel-order
              description: "Cancel an order item"
              call: "dsco.supplier-cancel-order-item"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/catalog
          name: catalog
          description: "Product catalog synchronization"
          operations:
            - method: POST
              name: update-catalog
              description: "Update supplier product catalog items"
              call: "dsco.supplier-update-catalog"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/inventory
          name: inventory
          description: "Inventory level management"
          operations:
            - method: POST
              name: update-inventory
              description: "Update supplier inventory quantities"
              call: "dsco.supplier-update-inventory"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/shipments
          name: shipments
          description: "Shipment management"
          operations:
            - method: POST
              name: create-shipment
              description: "Create a shipment record for a fulfilled order"
              call: "dsco.supplier-create-shipment"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/invoices
          name: invoices
          description: "Invoice processing"
          operations:
            - method: POST
              name: create-invoice
              description: "Submit an invoice for a fulfilled order"
              call: "dsco.supplier-create-invoice"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/streams
          name: streams
          description: "Event stream management for real-time data"
          operations:
            - method: GET
              name: list-streams
              description: "List all event streams"
              call: "dsco.list-streams"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-stream
              description: "Create a new event stream"
              call: "dsco.create-stream"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/streams/{streamId}/events
          name: stream-events
          description: "Stream event consumption"
          operations:
            - method: GET
              name: get-stream-events
              description: "Retrieve events from a stream"
              call: "dsco.get-stream-events"
              with:
                streamId: "rest.streamId"
                position: "rest.position"
                limit: "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: rithum-commerce-mcp
      transport: http
      description: "MCP server for AI-assisted Rithum commerce operations."
      tools:
        - name: list-orders
          description: "List orders available for supplier fulfillment"
          hints:
            readOnly: true
            openWorld: false
          call: "dsco.supplier-list-orders"
          with:
            status: "tools.status"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-order
          description: "Get a specific order by ID"
          hints:
            readOnly: true
            openWorld: false
          call: "dsco.supplier-get-order"
          with:
            orderId: "tools.orderId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-retailer-order
          description: "Submit a consumer dropship or marketplace order"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.retailer-create-order"
          outputParameters:
            - type: object
              mapping: "$."

        - name: acknowledge-order
          description: "Acknowledge receipt of a supplier order"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.supplier-acknowledge-order"
          outputParameters:
            - type: object
              mapping: "$."

        - name: cancel-order-item
          description: "Cancel an order item (supplier or retailer)"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "dsco.supplier-cancel-order-item"
          outputParameters:
            - type: object
              mapping: "$."

        - name: update-catalog
          description: "Update supplier product catalog with new or changed items"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.supplier-update-catalog"
          outputParameters:
            - type: object
              mapping: "$."

        - name: update-inventory
          description: "Update supplier inventory quantities for catalog items"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.supplier-update-inventory"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-shipment
          description: "Create a shipment record for a fulfilled order with tracking"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.supplier-create-shipment"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-invoice
          description: "Submit an invoice for a fulfilled supplier order"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.supplier-create-invoice"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-streams
          description: "List all event stream definitions for real-time data consumption"
          hints:
            readOnly: true
            openWorld: false
          call: "dsco.list-streams"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-stream
          description: "Create a new event stream for order, inventory, or catalog events"
          hints:
            readOnly: false
            destructive: false
          call: "dsco.create-stream"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-stream-events
          description: "Retrieve events from a stream starting at a checkpoint position"
          hints:
            readOnly: true
            openWorld: false
          call: "dsco.get-stream-events"
          with:
            streamId: "tools.streamId"
            position: "tools.position"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."