families for browsing and products for ordering. Every product has a
stable ID, immutable fulfillment revision, explicit physical output, quantity
meaning, options, and prepared-media contract. Fetch the catalog instead of
hardcoding a provider SKU, image shape, or product alias:
Start with the catalog
The catalog is the live authority for availability, lifecycle status, revisions, and option values. A family groups related immutable variants. Orders and quotes still use a concrete product ID and revision. If a page and the catalog disagree, use the catalog response.Prepared assets
Every order item has anassets array. Each asset has a semantic role and
exactly one source: an external HTTPS url or an authorized asset_id.
Creating a quote copies URL sources into private managed fulfillment storage;
an asset_id reuses already-managed bytes without another copy. Immutable
dimensions, size, format, and SHA-256 metadata are resolved from the stored
bytes rather than trusted from caller hints.
Examples of roles include artwork, background, individual, team,
logo, front, and back. The catalog is authoritative for which roles are
required, each role’s aspect ratio, and rotation_policy. A role appears
exactly once. A URL only needs to remain available through successful quote
creation; submission and fulfillment use the quote-owned managed snapshot.
The product examples below focus on the product-specific portion of an item.
An external URL source can be supplied as:
url with asset_id. URL-backed quote
requests require an Idempotency-Key; retries reuse the same immutable copy.
Compatibility checks remain read-only and use any supplied diagnostic metadata
without downloading the URL.
Orientation and provider placement
Every asset role defaults torotation_policy: "fixed": prepare the exact
orientation and ratio listed on its product page. Batch Relay rejects a wrong
canonical role or ratio; it never edits the image to make it fit.
Only a role published with rotation_policy: "allowed" accepts the reciprocal
ratio. Standard prints and active Memory Mates allow rotation.
When a template is used, its renderer produces a final ordinary print artifact
in the selected output geometry before the fulfillment step.
For the current WHCC adapter, native AutoRotate is enabled only for an
explicitly allowed role. It is disabled for fixed roles. The adapter preflights
placement against the verified provider node and rejects a fit that would
require more than a 1.25% center crop. This is provider-side placement
reconciliation, not an image transformation.
Prints
Keepsakes
Trader products
Designed output
template_requirement controls whether an order may use prepared artwork
directly:
optionalmeans the product can use prepared artwork directly or a succeeded Batch Relay render. Standard photographic prints use this policy.requiredmeans the product must use theasset_idfrom a succeeded Batch Relay render and the matchingtemplate_render_id. A raw URL or unrelated managed asset is rejected.unsupportedmeans the product has no supported template workflow.
template_requirement: "required". Their
rendered artwork remains attached to the Memory Mate or magazine-cover order
record, then fulfills through its pinned standard-print target. See Template
renders for the render workflow.
Digital delivery
Digital Download is a live catalog record, but the public print-order API does not create or deliver digital entitlements. Do not put it in a print-order request.Pricing and availability are explicit
Catalogunit_costs include every known option combination. unit_cost_cents
is null with pricing_status: "unverified" until Batch Relay establishes a
provider PPU; zero is reserved for a real zero price. A measured amount is
marked sandbox_quote or production_verified. These are provider costs per
physical unit, not studio retail prices.
Catalog support means Batch Relay recognizes and validates the canonical
contract. Provider compatibility and hosted quote availability are separate
decisions. Check the catalog and the quote/compatibility response for the
environment in which you will order; do not infer paid-production readiness
from the existence of a product page.