Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.shoppex.io/llms.txt

Use this file to discover all available pages before exploring further.

Dynamic fulfillment lets you generate each buyer’s delivery payload at order time, instead of pre-uploading a pool of files or codes. Useful when:
  • The product is generated per-buyer (rendered PDFs, signed binaries, account credentials).
  • You’re sourcing from an external system you control (your own license server, a 3rd-party API, a database of generated codes).
  • Stock is effectively infinite but you don’t want to pre-upload anything.

How it works

  1. You configure a dynamic delivery URL on the product — an endpoint on your own backend.
  2. When a buyer pays, Shoppex hits that endpoint with the order details.
  3. Your endpoint returns the delivery payload (text, code, URL, whatever).
  4. Shoppex stores that payload against the order and shows it to the buyer.

Setting up the endpoint

You provide an HTTPS URL on your own infrastructure. Shoppex sends a signed POST request with the order data; you respond with the payload. The full request/response contract is documented in the Dynamic delivery reference.

Failures

If your endpoint is down or returns an error, the order moves to a failed-fulfillment state. The buyer sees a “delivery pending” message, you get a dashboard notification, and you can retry the delivery from the order detail page once you’ve fixed your endpoint. Dynamic delivery doesn’t retry automatically — there’s no way for Shoppex to know whether a 500 from your endpoint means “transient” or “you’re rate-limited, don’t hammer me.” You decide.

When not to use Dynamic

If the same file or code works for every buyer, use File or Serials instead. Dynamic only earns its complexity when the payload is per-buyer different.