---
id: ADR-COM-ORD-009
title: Selling applications plug in through a versioned contract
product_area: commerce
module: orders
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Integrate sellers through deployment declarations, versioned synchronous envelopes and application-owned
  claim functions instead of importing seller implementation.
constrains:
  - DOM-COM-ORD-003
  - SVC-COM-ORD-participants
  - WF-COM-ORD-014
  - WF-COM-ORD-001
  - WF-COM-ORD-002
origin: >-
  services-platform docs/proposals/commerce-orders/03-purchase-preparation-and-reservation-contract.md, as
  cited by the code and the contract package (FND-COM-ORD-048)
alternatives:
  - option: Have sellers directly manage the Commerce purchase
    why_not: Independent seller writes would make consistent cart and resource coordination harder.
  - option: Deliver assessment requests through asynchronous messaging
    why_not: >-
      The buyer-facing assessment needs an immediate answer; delivery already has a delegated asynchronous
      boundary.
consequences:
  - Strict request and response shapes require coordinated protocol evolution.
  - The supported current major and predecessor can coexist.
  - Missing seller answers do not silently make an item eligible.
supersedes: []
evidence:
  - 'macroservice-libraries at 54536a44: packages/commerce-contracts/README.md and src/*.ts.'
  - 'services-commerce at c8b66a98: modules/participants/**; modules/orders/services/persistence/claims.ts.'
---

# Selling applications plug in through a versioned contract

## Context

Specialized applications own their availability and delivery while contributing to a shared purchase.

## Decision

Use a versioned envelope and registration manifest to route timed seller calls, with database claim contracts at commit boundaries.

## Alternatives Considered

Direct seller-owned checkout writes would complicate consistent coordination. Asynchronous advice would require a different buyer waiting experience.

## Consequences

Wire schema changes need coordinated version support. Sellers retain domain meaning and claim rows, while Commerce coordinates requests and response validation.
