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 and Physical. Shoppex has seven 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.
  • Physical — an item you ship. The buyer enters a shipping address at checkout and pays the shipping price of their zone. You mark the order shipped and delivered.
  • 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 other 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 drop files on Files (or click to choose them). 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. An upload starts as soon as you drop the file and goes straight to storage, with a progress bar on each file:
  • Two files upload at a time. The rest wait in line.
  • If your connection drops, the upload pauses and continues on its own when you are back online. Pause and Resume do the same by hand.
  • If you close the tab, the editor offers to continue next time. Pick the same file again and the upload continues where it stopped. Unfinished uploads are removed after 24 hours.
Save Product adds the finished uploads to the product. While an upload is still running, the save bar says so and offers Save When Upload Ends.

File size

  • 100 MB per file, any file type, on every plan.
  • Your plan’s storage is the other limit. The editor checks both before anything uploads, so a file that is too large, or one that does not fit in the storage you have left, is refused before it goes over the wire.
Split a larger delivery into several files, or ship a smaller build.
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 rules

The Downloads block under the files sets how often and how long buyers can download them. It appears once the product has a file.
  • Download Limit: Store Default, Custom (a number per file), or Unlimited. The limit counts for each file on each order. A buyer who buys twice gets two sets.
  • Access Ends: Store Default, After (a number of days after payment), or Never. The days count from the moment the order was paid, in your shop’s time zone.
A download counts when the buyer starts it. Starting the same file again within 10 minutes does not count, so a broken download can be retried. Orders keep the rules they were bought with. A change on the product applies to new orders only. To change one order, use the actions on the order page (see Orders). The store default lives in Settings › Checkout › File Downloads. A new shop starts with unlimited downloads and no end date. Products set to Store Default follow it.

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 limit and the access period on each file. Each download is a short-lived file address that expires after 60 seconds, so a copied address stops working quickly. When a buyer runs out, the order page and the customer portal tell them why: “You’ve used all 3 downloads of this file.”, “Downloads ended on .”, or “Downloads were turned off for this order.” They can contact you from there. To take files back from a buyer, open the order and use Revoke under Delivered goods. To end downloads on refunds and chargebacks by themselves, turn on End Access on Refund or Chargeback in Settings › Checkout › File Downloads (see Refunds).

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, select (dropdown), 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. A select field gives the buyer a fixed list to pick exactly one answer from, for example a region or a platform. Add 2 to 20 options, each up to 100 characters and different from the others. A select has no default, placeholder, or regex: the buyer always makes the choice. The order keeps the option the buyer picked as text, so renaming or removing an option later changes only new orders.

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.

Physical

Use Physical mode for goods you pack and send yourself. Hosted checkout asks the buyer for a shipping address and adds the flat price of the shipping zone their country is in, once per order. After payment, the physical items wait for you: mark the order shipped, optionally with a tracking code and link, and then delivered. Physical products need at least one shipping zone before buyers can order them, and they sell through hosted checkout only. See Physical products for zones, the buyer’s checkout, shipping, and the limits.

Stock behavior

A new Physical product starts at unlimited. Set a number on Delivery & Stock to match what you have on the shelf, 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.