Skip to main content
A product doesn’t have to run commands on a game server. In any shop — including general shops (general, e.g. licenses, Discord bots, FiveM resources, courses) — you can sell digital content that ItemShop delivers itself, right after the order is paid. No plugin is involved, and orders with digital content never enter its queue.

Four delivery kinds

In the product form you pick a delivery kind: The note for keys or a file is attached to the delivered content — a good place for activation instructions. Message and note text is stored encrypted.
You add the keys, file and message after you save the product for the first time. Fulfilment commands are optional for the digital kinds.

License keys

The key pool belongs to the product — or to a variant if you sell variants (a variant without its own pool uses the shared one). You add keys by:
  • pasting a list — one line = one key,
  • uploading a CSV — a column named key, klucz or code (or the first column if there’s none).
Duplicates are skipped. The key list in the panel is masked and shows pool counters: available and issued. Keys that haven’t been issued can be deleted one by one or in bulk; issued keys can’t be deleted. You can export the full pool to CSV (needs the permission to manage products, and the export is logged). One order can contain up to 100 keys.

When keys run out

If a buyer pays and the pool is empty, the order gets the awaiting stock state (awaiting_stock). You get a single alert. When you add keys, the missing units are sent automatically in order (FIFO), and the buyer gets them on the order page and by e-mail. The low-stock threshold warns you before the pool runs dry.

File download

The file goes to private storage — never to a public CDN. The buyer gets a signed link that:
  • expires after the lifetime you set,
  • has a download limit — every opening of the link uses one download,
  • answers 410 once it has expired or the limit is used up.
You upload the file in the panel (up to 25 MB). For larger material, put a link to your own hosting in the file and use the Message kind.

What the buyer sees

  1. At checkout they enter an e-mail — it’s required for digital products (also in a game shop).
  2. After payment the order moves to completed right away, and the order page shows the keys, the download link or the message. Collecting the content needs the order number and the status key from the order page address — the number alone isn’t enough.
  3. A separate e-mail with the content (independent of the order confirmation) goes to that address. The content is rendered only when the e-mail is sent.
An order with several lines (digital and regular) behaves as usual: each line is fulfilled separately — see Orders.

Refunds, disputes and cancellation

A refund, a dispute (chargeback) or a cancellation revokes the issued keys (they don’t return to the pool) and the download link. A buyer who tries to collect gets a message that the delivery was revoked.

Order actions

In the details of an order with digital content (permission to manage orders) you see the issued content and the e-mail and download status — every such view is logged. You can also:
  • resend the content (up to 5 times per hour per order),
  • resend it with a new download link — the previous link stops working.

For developers

Your site reads delivery data from the Storefront API: a product has a deliveryKind field, the order status contains delivery, and the content is collected from the delivery endpoint. Render “message” content as plain text, not HTML. The panel and server integrations manage the key pool and the file through the shop API (the Digital delivery section of the reference).

Products

Prices, variants and fulfilment commands.

Orders

Statuses, payment groups and manual actions.