> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Product composition

> Products assembled to a buyer's brief on demand by the Merchandising Agent, instead of hand-authored one at a time.

<Note title="Beta">
  Product composition is in beta. The behavior below is live for storefronts with
  the capability enabled; the surface may evolve before general availability.
</Note>

**Product composition** lets your storefront assemble buyer-ready products on
demand instead of returning a fixed catalog to everyone. When a buyer sends a
brief, the [Merchandising Agent](/v2/concepts/merchandising-agent) builds products
for it — selecting from your inventory building blocks, applying your
[operating instructions](/v2/storefront/operating-instructions/overview), pricing
them against your [selling terms](/v2/storefront/selling-terms/overview), and
returning products shaped for the brief in front of it.

A composed product is indistinguishable from a hand-authored one to the buyer — it
carries a name, description, targeting, creative formats, and pricing. The
difference is that you never had to author it: the agent built it from your rules.

Composition is deterministic where it matters — the same brief against the same
inventory and rules returns products with stable ids, so a buyer who discovers
again sees the same products rather than a fresh set each time.

## Turning it on

For a complete third-party sales agent, passthrough is the default: the agent
already owns its products, pricing, and media-buy behavior. Product composition
is an optional paid Interchange add-on. Contact your Scope3 representative to
add it to the storefront before enabling the capability.

In passthrough, Interchange sends the buyer's brief to the external agent's
`get_products` tool and returns the finished products it supplies. No ingredient
catalog is required. If paid composition is enabled, Interchange can instead
consume that agent's wholesale products as composition inputs, but only when
the source advertises and implements the AdCP 3.1+ wholesale product contract.
Ordinary buyer-facing products are not treated as ingredients.

Composition needs two things in place:

1. **Enable the paid capability.** Contact your Scope3 representative. Source
   Diagnostics identifies composition as a paid add-on and does not expose a
   self-service enable action. Once Scope3 provisions it, the storefront
   advertises to buyers that it surfaces composed products.
2. **Author operating instructions.** Composition can't run without rules — an
   active [operating-instructions](/v2/storefront/operating-instructions/overview)
   ruleset tells the agent what to build and how. If composition is enabled but no
   active ruleset exists, the storefront auto-pauses and notifies you rather than
   composing blindly.

For an external sales-agent source, the source must also expose AdCP 3.1+
wholesale products before Interchange can use it as a composition input. If it
does not, keep the storefront in passthrough; a successful ordinary
`get_products` response can still be completely healthy.

Optionally, set [selling terms](/v2/storefront/selling-terms/overview) so composed
products are anchored to your rate card's floors, targets, and ceilings.

<Note>
  If your storefront has an [ad-server-backed source](/v2/storefront/inventory-sources/overview),
  composition is **always on and can't be turned off**. An ad server exposes raw
  inventory — ad units and placements — which must be composed into buyer-ready
  products before it can be sold.
</Note>

## What a buyer sees

Composed products are returned in ordinary product discovery. The buyer submits a
brief; the agent returns products (and, where configured, multi-product
**proposals** with budget allocations across them). Each product is priced
server-side and clamped to the `[wholesale floor, seller ceiling]` range, so a
composed price is never below your cost.

## Watching it work

Every composition run is observable. Use
[intelligence runs](/v2/storefront/intelligence-runs/overview) to see what the
agent composed for a given brief and why — the inventory it drew on, the rules it
applied, and the rationale behind each product.

## Related

<CardGroup cols={2}>
  <Card title="Operating instructions" href="/v2/storefront/operating-instructions/overview" icon="list-ol">
    The rules the agent follows when composing products — required for composition.
  </Card>

  <Card title="Selling terms" href="/v2/storefront/selling-terms/overview" icon="tags">
    The pricing facts composed products are anchored to.
  </Card>

  <Card title="Intelligence runs" href="/v2/storefront/intelligence-runs/overview" icon="magnifying-glass-chart">
    See what the agent composed for a brief, and why.
  </Card>

  <Card title="Merchandising agent" href="/v2/concepts/merchandising-agent" icon="wand-magic-sparkles">
    How the agent turns inventory + rules into a proposal.
  </Card>
</CardGroup>
