---
id: CON-COM-ORD-003
name: Selling Application
feature: FEAT-COM-ORD-04
product_area: commerce
module: orders
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: observed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
definition: >-
  A selling application owns the product-specific work needed to sell and deliver its product types through
  the shared Commerce contract.
owned_by: MOD-COM-ORD
synonyms:
  - participant
  - commerce participant
not_to_be_confused_with:
  - Product — the item offered for sale
  - Product type — the classification owned by a selling application
  - Store — the purchasing presentation
facets:
  - name: Registered declaration
    meaning: >-
      The deploy-time declaration of product types, resource and delivery behavior, item details and supported
      contract versions.
    used_for: Integrate an application with the common sale workflow.
  - name: Owned product types
    meaning: The active application owner of each declared type and the retirement of omitted types.
    used_for: Route item work to its responsible application.
  - name: Required item details
    meaning: The versioned schema for the details required by a product type.
    used_for: Reject incomplete purchase inputs.
  - name: Resource claim strategy
    meaning: 'Early holds, placement claims, leases or no resource claim, including the associated database functions.'
    used_for: Secure limited availability.
  - name: Declared delivery work
    meaning: The planned work units and delivery kinds for a purchased item.
    used_for: Build the fulfilment work register.
  - name: Pricing effects and classification
    meaning: Pricing benefits contributed by the line and the order kind it implies.
    used_for: Support same-purchase member pricing and order classification.
  - name: Commerce-owned participants
    meaning: >-
      The Merchandise participant and the plain-product participant for products requiring no additional
      delivery work.
    used_for: Use the same contract for built-in sales.
relationships:
  - to: CON-COM-ORD-001
    statement: During checkout the application evaluates its items and can reserve their limited units.
    provenance: observed
    source: 'services-commerce:modules/checkout/services/checkout/participant-calls.ts'
  - to: CON-COM-ORD-002
    statement: 'Placement asks the application to prepare its items, and acceptance enables their delivery.'
    provenance: documented
    source: >-
      services-commerce:docs/migrations/order-domain/README.md#Placement, TX-P (02 §5.2;
      `modules/orders/services/placement/place-order.ts`)
  - to: CON-COM-ORD-004
    statement: Commerce creates a grant when the application’s item details declare an entitlement specification.
    provenance: observed
    source: 'services-commerce:modules/entitlements/services/register/grant-specification.ts'
lifecycle:
  - state: Registered
    meaning: The declaration makes its active product types available for sale.
    how_it_changes: Deployment registers the declaration and subsequent deployments reconcile it.
  - state: Retired type
    meaning: An omitted product type is unavailable for new sales.
    how_it_changes: Omission retires the type; declaring it again reactivates it.
acted_on_by:
  - CAP-COM-ORD-003
  - CAP-COM-ORD-005
  - CAP-COM-ORD-012
  - CAP-COM-ORD-013
  - CAP-COM-ORD-014
  - CAP-COM-ORD-015
visible_to:
  - ACT-COM-018
  - ACT-COM-015
  - ACT-COM-016
evidence:
  - >-
    Examined reference: services-commerce:docs/migrations/order-domain/README.md#Placement, TX-P (02 §5.2;
    `modules/orders/services/placement/place-order.ts`)
  - 'Examined reference: services-commerce:modules/checkout/services/checkout/participant-calls.ts'
  - 'Examined reference: services-commerce:modules/entitlements/services/register/grant-specification.ts'
supersedes: []
---
# Selling Application

## What It Is

A selling application contributes the knowledge Commerce needs about a particular kind of product. Commerce coordinates the purchase, but another application may know whether its item is complete, which scarce resource it needs and what delivery means. This division allows a shared cart to contain different product types while preserving responsibility for each purchased line.

The registered declaration describes the product types the application sells and the contract it supports. It connects the item details to the checks and work that can be performed for them. The declaration also tells Commerce how limited units are secured and how delivery work is planned. Registration makes these responsibilities discoverable without making the application itself a product.

## What It Is Not

A product is what the customer selects. A product type identifies the kind of item whose behavior an application owns. A store provides a place to present items for purchase. The selling application is the participant responsible for its side of the purchasing contract; its declaration should not be read as a staff role or a storefront configuration.

## How It Is Used

During checkout, Commerce asks the application to advise on its items. At placement, preparation provides the accepted purchase details and the resources needed to complete the sale. After acceptance, delivery work follows the resulting plan. Cancellation and amendment can call back to that same owner because changing a purchase may require changing something outside the order record.

This responsibility includes built-in Commerce applications as well as applications owned elsewhere. Merchandise and plain products use the shared structure, even though their delivery needs differ. When an application supplies an entitlement specification, Commerce performs the grant work described by that specification. The participant therefore declares the purchased promise while the appropriate product area carries out each part of it.

## Its Facets

**Registered declaration.** The deploy-time declaration of product types, resource and delivery behavior, item details and supported contract versions. Integrate an application with the common sale workflow.

**Owned product types.** The active application owner of each declared type and the retirement of omitted types. Route item work to its responsible application.

**Required item details.** The versioned schema for the details required by a product type. Reject incomplete purchase inputs.

**Resource claim strategy.** Early holds, placement claims, leases or no resource claim, including the associated database functions. Secure limited availability.

**Declared delivery work.** The planned work units and delivery kinds for a purchased item. Build the fulfilment work register.

**Pricing effects and classification.** Pricing benefits contributed by the line and the order kind it implies. Support same-purchase member pricing and order classification.

**Commerce-owned participants.** The Merchandise participant and the plain-product participant for products requiring no additional delivery work. Use the same contract for built-in sales.

## How It Relates

During checkout the application evaluates its items and can reserve their limited units. Placement asks the application to prepare its items, and acceptance enables their delivery. Commerce creates a grant when the application’s item details declare an entitlement specification. The capability references identify where the detailed behavior is defined; this concept supplies the vocabulary used across those outcomes.

## What It Could Become

The product should maintain a clear contract for application owners, including recovery when advice, preparation or delivery cannot complete. The product should distinguish currently registered types from future integrations in planning material. A future application should demonstrate its purchase, delivery and reversal behavior through the contract before its customer journey is treated as ready for design.
