---
id: ADR-MBR-STR-007
title: Reference Commerce Ordering Profiles
product_area: membership
module: structure
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Programs and local financial settings reference Commerce ordering profiles instead of duplicating checkout
  and settlement configuration.
constrains:
  - DOM-MBR-STR-002
  - DOM-MBR-STR-003
  - SVC-MBR-STR-structure
  - SVC-MBR-STR-configuration
origin: >-
  Commerce's ordering-profiles decision approved by Andrew on 2026-10-18: services-
  membership:docs/migrations/packages-as-products/README.md#Ordering profiles (added the same day, from
  Commerce's decision Andrew approved at about 15:45 UTC)
alternatives:
  - option: Store merchant and business-unit checkout settings on units.
    why_not: The recorded ordering-profile decision assigns those settings to Commerce and replaces the local copies.
  - option: Require a catalogue existence check during every pointer save.
    why_not: >-
      The examined implementation validates pointer shape and delegates resolution; adding existence checks
      would be a new contract choice.
consequences:
  - Commerce resolves the sales context from pointers sent with purchase items.
  - Membership can store a well-formed pointer that Commerce later cannot resolve.
  - >-
    A unit profile supplies the local dues context when present; otherwise resolution inherits through program
    and defaults.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270: modules/structure/services/persistence/organizational-unit-financial-
    settings.ts; modules/configuration/db/programs.table.ts
---

# Reference Commerce Ordering Profiles

## Context

Local finance configuration previously copied checkout settings. The recorded Commerce decision supplies a shared ordering-profile mechanism and explicit inheritance.

## Decision

This record cites that ownership decision. Membership stores profile references and passes sales context, leaving checkout settings and settlement to Commerce.

## Alternatives Considered

Store merchant and business-unit checkout settings on units. The recorded ordering-profile decision assigns those settings to Commerce and replaces the local copies. Require a catalogue existence check during every pointer save. The examined implementation validates pointer shape and delegates resolution; adding existence checks would be a new contract choice.

## Consequences

Commerce resolves the sales context from pointers sent with purchase items. Membership can store a well-formed pointer that Commerce later cannot resolve. A unit profile supplies the local dues context when present; otherwise resolution inherits through program and defaults.
