Delivery method types
Configured per product (and optionally per variant) in the dashboard. Canonical values inlib/domains/products/delivery.ts:
A product can enable more than one method. License-key products need unused stock before they can complete automatically.
Lifecycle
- Buyer pays through a gateway (or test payment).
- Webhook / verify path calls
completeOrderFromGateway. - Order status moves to
paid(and oftencompletedonce fulfillment finishes). - If keys are required and available,
fulfillOrderWithKeyassigns the next unused key and links it to the order. - If key assignment fails, the order can remain
paidwithoutcompleted— buyer still sees a paid invoice; seller restocks and retries.
Buyer retrieval
Access is gated by checkout token, matching customer email, or staff
viewOrders — not a public anonymous dump.
Legacy storefront path /receive-items?orderId= redirects into unified checkout.
What integrators should know
- Embed and checkout start create draft / processing orders; delivery content appears only after settlement.
- Do not scrape keys from dashboard HTML. Use the delivery endpoints with a valid checkout session.
- Manual delivery and custom fields are first-class — do not assume every paid order yields a license key string.