Skip to main content
Every product has a fulfillment mode that decides what the buyer receives the moment their payment clears. Pick the mode that matches what you are selling. Shoppex handles delivery automatically for every mode except Service. Shoppex has six fulfillment modes:
  • File — upload once. Shoppex delivers the same download link to every buyer.
  • Serials — upload a pool of codes. Each buyer gets a unique one.
  • Subscription — charge on a recurring schedule, with auto-renewal.
  • Service — manual fulfillment. You get notified, then you deliver the order yourself.
  • Dynamic — your own webhook returns the delivery payload for each order.
  • Info card — information-only. Use it for listings, ads, or “request a quote” placeholders that need no automated delivery.
Discord roles are not a separate mode. You add them to a product that already uses one of the six modes, most often a Subscription product. Licenses work the same way. See Serials and licenses. A Subscription product picks its delivery from Service, File, or Dynamic. Keys are not one of the choices: a subscription can never hold a key pool, so sell keys as a Serials product instead.

How stock works

Every mode except Serials uses the single Stock number on the product’s Delivery & Stock tab. The Unlimited switch sets that number to -1, which is what a new product starts with and which means the product never sells out. Set any other number and Shoppex counts it. Each completed payment decrements it by the quantity ordered, and when it reaches zero the next paid order gets nothing. What happens then depends on the payment method:
  • If the payment can be refunded automatically, Shoppex refunds it and the order goes to VOIDED.
  • If it cannot (native crypto, manual gateways), the order is held at AWAITING_STOCK with the buyer’s money in place. Restock and it delivers on its own.
So “not inventoried” is a choice, not a property of the mode. A Service, Dynamic, Subscription, or File product with Stock 5 runs out after five sales exactly like anything else. Serials products do not use that field. Their stock is the number of unsold keys in the pool.

File

The File fulfillment mode delivers a download link to every buyer immediately after payment. The buyer reaches it from their order page and from the delivery email, and it keeps working until the order runs out of downloads.

Uploading

Open your product, go to the Delivery & Stock tab, and add files under Product Files. If you want buyers to receive a bundle (for example, a ZIP, a PDF, and a license file), attach multiple files to the same product.

File size

Three limits apply, and a save has to clear all three:
  • 50 MB per file.
  • 50 MB for the files in one save, added together.
  • 100 MB for the whole save, files plus product images.
Split a larger delivery across several saves, or ship the assets inside one archive that fits.
The File mode delivers files you upload to Shoppex. There is no field for pointing a product at a URL on your own storage. If you need to hand out a link, put it in the delivery instructions, or use Dynamic and return the URL from your own endpoint.

Updating the file

Go back to Delivery & Stock. Each saved file has a Replace button that swaps in a new one, and a delete button that removes it. Both take effect when you save the product.

Download protection

A download link carries the order id and a secret unique to that order. It is not tied to a login, so anyone the buyer forwards the link to can use it. What limits the damage is the download counter: Shoppex records each delivery against the order and stops serving once the order hits your shop’s download limit.
There is no revoke action. Nothing in the dashboard takes a delivered file back from a buyer, and refunding does not do it either.The two controls you do have:
  • Reset Downloads on the order clears its download records, which lets the buyer download again. It is the opposite of a revoke, and it is there for a buyer who ran out of attempts.
  • Cancel Order stops an order that has not delivered yet.
For a buyer who is abusing a link, the lever is Blacklist Customer against future purchases, plus a new file on the product so the old link stops being worth sharing.

Stock behavior

A new File product starts at unlimited, so the same file goes to every buyer and the listing never sells out. Set a number on Delivery & Stock and it is counted like any other product. See How stock works.

Serials

Shoppex delivers a unique code from a pool you upload, one per buyer. See Serials and licenses for setup, hardware-locked licenses, and the event audit trail.

Stock behavior

Serials are inventoried. Shoppex tracks how many codes remain in your pool, and the listing automatically becomes “out of stock” when the pool hits zero.

Subscription

Subscription mode charges the buyer on a recurring schedule, with auto-renewal. See Subscriptions for billing cycles, retries, and cancellation.

Stock behavior

A new Subscription product starts at unlimited. The Stock field is still there, and a number in it caps how many subscriptions you sell. See How stock works.

Service

Use Service mode when you deliver the product yourself, for example design work, game-boosting, account services, or custom orders. Shoppex collects payment and notifies you. The actual delivery happens off-platform.

How an order moves

  1. Buyer pays. The order is marked Paid but pending fulfillment.
  2. You receive an email and a dashboard notification.
  3. You do the work, outside Shoppex, on your own schedule.
  4. Mark the order fulfilled from its detail page, optionally attaching a note or file for the buyer.
  5. The buyer is emailed your completion message.

Custom fields

Service products almost always need information from the buyer, for example a username, target server, game tag, or Discord ID. Add custom fields to the product, and Shoppex prompts the buyer at checkout. The submitted values appear on the order page when you open it. Field types are text, textarea, number, checkbox, or hidden. Each field can be required or optional. You can also attach an optional regex pattern for client-side validation, for example to check emails, URL formats, or any custom shape you need.

Communicating with the buyer

The order page has a built-in conversation thread between you and the buyer. Use it instead of moving the conversation to Discord or email. Every message stays attached to the order, and that message history becomes useful evidence if the buyer later disputes the charge.

Dispute risk

Service products are the most dispute-prone category on Shoppex, because there is no automatic proof of delivery. To stay safe:
  • Keep the conversation in the Shoppex order thread.
  • Attach screenshots, videos, or logs of completed work to the order.
  • Mark the order fulfilled only after the buyer has confirmed receipt.
When a dispute comes, Stripe and PayPal accept the full Shoppex order page as evidence. This includes buyer chat history, custom field values, and your fulfillment attachments.

Stock behavior

A new Service product starts at unlimited. Set a number on Delivery & Stock to cap how many jobs you take on, and the listing sells out when it runs down. See How stock works.

Dynamic

Dynamic fulfillment lets you generate each buyer’s delivery payload at order time, instead of pre-uploading a pool of files or codes. Use it when:
  • The product is generated per-buyer (rendered PDFs, signed binaries, account credentials).
  • You are sourcing from an external system you control (your own license server, a third-party API, a database of generated codes).
  • Stock is effectively infinite, but you do not 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 sends a request to that endpoint with the order details.
  3. Your endpoint returns the delivery payload, for example text, a code, or a URL.
  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 and 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, and you get a dashboard notification. Once you have fixed your endpoint, you can retry the delivery from the order detail page. Dynamic delivery does not retry automatically. Shoppex cannot tell whether a 500 response from your endpoint is a temporary error or a sign that you are rate-limiting requests. You decide how to handle retries.

When not to use Dynamic

If the same file or code works for every buyer, use File or Serials instead. Use Dynamic fulfillment only when the payload is different for each buyer.

Stock behavior

A new Dynamic product starts at unlimited, which is usually what you want: your endpoint decides what exists. Set a number on Delivery & Stock if you want Shoppex to cap sales before it ever calls your endpoint. See How stock works.

Info card

Info card mode is information-only. Use it for listings, ads, or “request a quote” placeholders that need no automated delivery. There is no download, code, or manual step attached to the order.

Stock behavior

Info card products have no Delivery & Stock tab, so there is no stock number to set and they never sell out.

Variants and pricing

A product can have variants, such as sizes, tiers, or region-specific versions. Each variant has its own price, stock, and fulfillment payload. Set one price for the whole product, or set a separate price for each variant.

Bundles, addons, and quantity deals

On top of base products, you can configure:
  • Bundles — sell multiple products as a single SKU at a bundle price.
  • Addons — optional upsells shown on the checkout page.
  • Quantity deals — automatic discount tiers. For example, set 10% off at 5 units and 20% off at 10 units.
Configure these from each product’s detail page.

Licenses (advanced)

If you sell software, the Licenses system goes further than serials. License objects have a status (active, suspended, revoked, or expired), HWID binding to prevent key sharing, IP locks, and a full event audit trail.