Service

Sell your services right in Discord, with a price list, order panel, orders in tickets, automatic delivery, licenses, your own website and reviews.

In the panel under: Service, a separate area at the very top of the sidebar

A shop right in your Discord server, for everyone who sells services: designs and graphics, scripts and bots, commissions and other digital work. Customers see your products in a price list, put their order together in an order panel, and your team handles every order in its own ticket. At the end there is a review.

On top of that come tools for digital products and bigger shops: automatic delivery with license keys, updates to every buyer, resellers, webhooks, a Tebex connection and your own shop website.

The flow

Price list        your products by category, each with an "Order" button
  └─ Order panel   only the customer sees it: variant, extras, delivery, payment method
       └─ Ticket    one ticket per order with the order card, plus the confirmation by DM
            └─ Payment    the customer pays you directly, your team confirms
                 └─ Delivery  by hand in the ticket or automatically by DM, then the review

The Service area

The module has its own area in the panel with its own sidebar. You enter it through the Service entry at the very top of the sidebar and leave it again with Back to panel. The entry shows the number of open orders. As long as there is neither a trial nor a subscription, it says Try.

Group Pages
Shop Overview, Orders, Products, Discounts & Promotions
Workflow Delivery time, Payment methods, Messages
Insights Statistics & Customers
Extensions Tebex, Licenses, Webhooks
Website Editor, Settings, Statistics
Management Legal, Team & Permissions, Subscription & Tier

There is no switch to turn it on or off. The shop is open as long as the trial or a subscription is running.

Prices

The Service module costs money because your server earns money with it. It is independent of Premium: Premium unlocks nothing here, and the Service module does not give you Premium.

The price depends on the size of your server. Every tier has the full feature set, only the price differs.

Tier Members 1 month 3 months 6 months 12 months
S up to 250 members €1.99 €4.49 €8.49 €15.99
M 251 to 1,000 members €3.49 €7.99 €14.99 €27.99
L 1,001 to 5,000 members €5.99 €13.49 €25.49 €47.99
XL over 5,000 members €9.99 €22.49 €42.99 €79.99

All prices are final prices, no VAT is charged.

Which tier applies

What counts is the median of the daily member count over the last 30 days. Short spikes from giveaways or raids therefore do not change the tier, and neither does a quick clean-up right before purchase. If your server has less than 7 days of history, the current member count is used.

Under Subscription & Tier you see your member count, your tier and how many members the next tier starts at.

When the size changes

  • The tier is fixed at purchase. During a paid term the price never changes, even if your server grows.
  • If your server gets smaller, it automatically becomes cheaper from the next renewal.
  • If it gets bigger, we ask you first. The higher price only applies once you agree. Without your agreement, your subscription ends at the end of the period.
  • With prepaid, the tier applies to the whole purchased time. At the next purchase, the then current tier counts.

Trial

Every server can try the module once for 7 days for free, without payment details and with the full feature set. A server admin starts it with Try 7 days for free on the area's start page. In the Start the trial dialog you accept the terms of the Service module and the data processing agreement. The trial ends on its own and never turns into a subscription, and the remaining time is shown at the top of the area.

Subscription or prepaid

Subscription Prepaid
Term 1 month 1 to 36 months, for example 3, 6 or 12
Payment every month once, in advance
Renewal automatically every month, cancelable monthly none

The prices for 3, 6 and 12 months in the table above apply to prepaid. Other terms cost per month as much as the longest of these terms that you reach with them. So 24 months of prepaid in tier S cost €31.98, exactly twice as much as 12 months.

  1. Open the purchase

    Under Subscription & Tier, click Subscribe.

  2. Choose subscription or prepaid and the term

    The summary shows the tier, term and final price.

  3. Confirm the immediate start

    A mandatory checkbox, because the module starts right away. Next to it are the links to the terms of use and the withdrawal policy.

  4. Subscribe with obligation to pay

    For prepaid, the button is called Order with obligation to pay. Payment goes through Stripe, and access is unlocked right afterwards.

  • Only server admins can buy.
  • Next to a running subscription you cannot buy anything extra. If prepaid time is still running, further prepaid months are added at the end, and a subscription only starts after that.
  • Only the person who took out a subscription can manage and cancel it, via Manage subscription.

Quick start

  1. Start the trial

    A server admin clicks Try 7 days for free in the area.

  2. Under Legal, your details as the seller. They become the imprint, terms, withdrawal policy and privacy policy of your shop. If you sell commercially, ordering only works once all required details are there.

    Under Payment methods, at least one payment method, for example PayPal or bank transfer. Without a payment method nobody can order.

  3. Create products

    Under Products, with price, product type, images and, if needed, variants, extras and automatic delivery.

  4. Set channels

    Under Messages, the channel for the price list, the log channel and the ticket category for orders. Under Delivery time, the channel for the status message.

  5. Choose editor roles

    Under Team & Permissions, the roles that handle orders in Discord.

  6. Send the price list

    Under Messages, click Send price list now. From then on the bot keeps it up to date itself.

Products

Everything your server sells. You change the order by dragging, and the products appear in the price list in the same order. The Live preview in Discord shows you while editing what the product card looks like.

Field Meaning
Name What your product is called
Category Structures the price list. Products without a category appear there under "Other"
Price The base price. With variants, the variant's price applies, and the price list then shows "from" the cheapest
Description What the customer gets, with Discord formatting
Product type Service or Digital content. Decides the consent box in the order panel and which details customers see. Physical goods cannot be sold
Compatibility, Technical protection measures, Updates Only for digital content. Customers see them on the product card, in the order panel and in the confirmation. You owe updates for the stated period, security updates included
Rights of use Private or commercial use, Exclusive, Editing allowed, Source files included, Credit required, Artist may show it in their portfolio. Plus further terms as text
Images Up to 10 images as PNG, JPG, GIF or WebP, up to 8 MB each. The first is the cover image, and you change the order by dragging
Variants The customer chooses exactly one, for example "Basic" or "Pro", each with its own price
Extras The customer can add several, for example "Source file", each with its own price
Stock Optional. Every order deducts one, a cancellation gives it back. At 0, "Sold out" appears in Discord and ordering is no longer possible. Customers can sign up for a restock notification
Delivery Without a choice you deliver by hand in the ticket. Otherwise the bot delivers by itself after "Paid": roles, text, download link and license key, more under Delivery and licenses
Active Inactive products disappear from the price list

You create categories on the same page and rename them there. Their order also applies to the price list. The Restock notifications are on this page too, more on that below.

Delivery time

How fast you deliver and what faster delivery costs. Customers see this in the order panel and in the status message.

Delivery speeds

Delivery speed Default Adjustable
Normal always on Name and description. No surcharge, no limit
Prime off, +30%, at most 3 at the same time Name, description, surcharge, maximum open at the same time
Fast off, +50%, at most 2 at the same time Name, description, surcharge, maximum open at the same time
  • Delivery date: binding, in working days after payment is received (default 14, at most 90). Customers see it in the order panel, on the order card and in the confirmation as "at the latest 14 working days after payment is received". The delivery time display below is only an estimate on top.
  • Surcharge: in percent or as a fixed amount.
  • Maximum open at the same time: how many orders of this delivery speed may be open, paid or in progress at the same time, or No limit. Once the limit is reached, the delivery speed shows as "fully booked right now" in the order panel and cannot be chosen. The Now bar shows the current load.

Delivery time display

Display What customers see
Fixed text Your text per delivery speed, for example "3 to 5 days"
Automatically from the last 20 orders Calculated from the last 20 delivered orders, recalculated every night. Until there are enough orders, your text applies

Status message

A message in a channel of your choice that updates itself with every order. In it, customers see the delivery time per delivery speed, how busy it currently is (free, 2 of 3 taken, fully booked), the number of open orders and orders in progress, the length of the queue and the average rating.

You can also switch on extra blocks:

Block Content
Featured product The product ordered most often in the last 30 days
Running discount Running discounts with their end
Community goal Progress towards a goal, counted from paid orders and Tebex purchases, more on that below
Latest purchases (without names) Only product and time, purchases via Tebex included

On this page you also set the correction rounds and the upgrades, more on that below.

Payment methods

This is how your customers pay. You create up to 10 payment methods and sort them by dragging.

Field Meaning
Icon An emoji before the name
Name For example PayPal or bank transfer
Instructions for customers What the customer has to do. Shown in the order panel and on the order card in the ticket
Link Optional, appears as the Open payment link button below the instructions
Active Inactive payment methods cannot be chosen in the order panel

Reporting a payment

If Customers may click "I have paid" and attach a receipt is on (default), the customer reports their payment themselves. The order then gets the marker Customer says: paid. Your team still has to confirm.

Unpaid orders

Anyone who orders and does not pay blocks delivery time and stock. Under Cancel automatically after you choose Never (default), 1, 2, 3 or 7 days.

  • Before that, the customer gets a reminder in the ticket, one day before the cancellation (with 1 day, after half the time).
  • Orders with a reported payment and orders that have been taken over stay.
  • The cancellation frees up the slot in the delivery speed, the stock and a redeemed coupon.

Messages

Channels

Setting Meaning
Price list in Where the price list is posted
Log channel New, paid, delivered and cancelled orders, plus the approval of reviews, withdrawals, automatic deliveries and Tebex purchases
Ticket category for orders A category from the Ticket module, for example "Orders". None means: every order gets a private thread in the price list channel

With Send price list now you post the price list. Save first, otherwise sending does not work. After that the bot keeps it up to date itself: prices, discounts, stock and order follow on their own. If you change the channel, the bot deletes the old price list. The same applies to the status message.

Order panel

What the customer enters and confirms before submitting.

Setting Meaning
Customer wishes Off, Optional (default) or Required. A text field of up to 2,000 characters for everything your team needs to get started. Shown on the order card in the ticket
Your terms A text, for example on usage rights, corrections, refunds or confidentiality
Or a link to your terms A link to your terms instead of text

As soon as text or a link is set, the customer must accept your terms before submitting. The time and the version are stored with the order. They are your terms, AlphaCloud is not the seller.

In the Consumer law section you switch the withdrawal function and the consent boxes, more on that below under Withdrawal and required information in the order flow.

On the same page you also set up the reviews and give messages a custom design.

Under Legal in the Management group you enter your details as the seller. From them AlphaCloud creates four legal texts for your shop: Imprint, Terms, Withdrawal (the withdrawal policy with the model withdrawal form) and Privacy. They match your settings, for example your payment methods and delivery dates. When your details or the shop's settings change, a new version is created automatically.

Templates, not legal advice. The generator puts standard texts together from your answers and your shop's settings. It does not check your individual case. You are responsible for your details being correct. If in doubt, have a lawyer check the texts.

The questionnaire

Section Content
Seller You sell: Commercially or Privately. Who buys from you: Consumers too or Businesses only
Name and address Name or company, for companies the legal form and who represents it, plus the address
Contact Email and phone, optionally further details for the imprint and a data protection officer
Tax and register VAT (small business under Section 19 UStG, with or without VAT ID), register court and register number
Offer What you sell: services, digital content or both, plus the number of your employees
Consumer arbitration Whether you take part in arbitration: Not willing, Willing or Obliged
Language of the texts The language in which the website and order panel show the texts. The other language is created as well, the German version is binding

At the top the page shows whether All required details are there or Some details are missing. Under Does not match your settings yet it lists where shop and legal texts do not fit together, for example a switched off withdrawal function or no active payment method.

The seller line

The price list and the order panel always say who sells. Every product card names the seller briefly.

  • Commercially: "Seller: Name · commercial seller"
  • Privately: "Seller: Name · private seller (according to the seller)", plus the note that the special consumer protection rules such as the right of withdrawal do not apply.
  • Always added: "AlphaCloud only provides the technology and is not a party to the contract."

Without details, the name of your server appears there. Depending on VAT, the price list and order panel also show "Final prices, no VAT under § 19 UStG." or "Prices include VAT."

Commercial with gaps means: no sales. If a commercial seller is missing required details, the Order button is locked, and the price list and order panel show: "Orders are not possible right now: the seller has not given all required seller details yet." As soon as everything is filled in under Legal, it works again.

If you chose "Privately" and have 10 or more orders in a calendar month, the overview reminds you to check your answer. Selling regularly for money is usually commercial, and a wrong answer can be challenged.

  • In Discord, the Provider and legal button below the price list and in the order panel opens the seller details and the imprint. Terms, withdrawal policy and privacy policy are attached as files to keep.
  • Publicly and without login, the texts are in the panel at /shop-legal/SERVER_ID/impressum, as well as agb, widerruf and datenschutz. The English versions are imprint, terms, withdrawal and privacy. You copy the finished links under Public links.
  • With a published website, the texts are there as well, linked in the footer of every page.

Link your imprint wherever you sell or advertise, clearly labelled as "Imprint", also in the server description.

The order flow in Discord

Price list

The price list shows all active products by category: images as a gallery, price, description, product type and rights of use, variants and extras, the stock and a running discount with a crossed out price and its end. Below each product is the Order button, and Sold out for sold-out products. Products with stock also have the Restock notification button.

At the end come the seller line, the surcharges of the delivery speeds and the buttons Provider and legal and, once there are reviews, How we check reviews. If you connected Tebex, your Tebex packages follow after your own products. The bot spreads long lists over several messages instead of cutting anything off.

Order panel

A click on Order opens the order panel. Only the customer sees it. At the top are the seller and every payment method the shop accepts. Then the customer goes through it step by step:

  1. Product, with product type, details on digital content and rights of use
  2. Variant, if the product has any
  3. Extras, several possible
  4. Delivery, fully booked ones are locked
  5. Payment method
  6. Your wishes, if switched on
  7. Terms of the shop, if set
  8. Start before the withdrawal period ends, if a consent box is switched on

The summary shows all items, the coupon, the delivery surcharge, the payment method and the final price, plus the delivery date and the note on the statutory warranty. Order with obligation to pay places the order. If the order costs nothing, the button is called Place free order. Next to it are Enter coupon, if there is at least one valid code, and Provider and legal.

  • Prices are frozen on submit. Later changes to the product do not change this order.
  • If the price changed while the panel was open, the bot says so and shows the new final price.
  • An order panel is valid for 15 minutes. After that the customer simply clicks Order again.
  • A customer can have at most 3 open orders at the same time per server.

Ticket and order card

Every order gets its own number (for example #0042) and its own ticket:

  • With a ticket category, a normal ticket from the Ticket module is created. Its rules apply, so anyone blocked from tickets cannot order either.
  • Without a ticket category or with the Ticket module switched off, a private thread is created in the price list channel. The bot adds the customer and the members of the editor roles.

In the ticket, the order card is pinned: number, status, customer, editor, items, final price, delivery speed, payment method with instructions, the customer's wishes, their consents and the history. Below it are the buttons, split into For you (customer) and For the team. The card is updated with every change. Right after ordering, the customer also gets the order confirmation by DM, more on that below.

Buttons on the order card

For the team (editor roles or members with "Manage Server"):

Button Effect
Paid Confirms receipt of payment. The order goes into the queue, and an automatic delivery starts
Take over You handle the order, it is set to In progress and your name appears on the card
Delivered Completes the order. The customer gets a DM and is asked for a review
Cancel With an optional reason. The slot in the delivery speed, the stock and a redeemed coupon are freed again
Not received Rejects a reported payment. The customer checks it and can report it again

Orders from Tebex have no Paid button, they were already paid through Tebex.

For you (only the customer of this order):

Button Effect
I have paid Reports the payment, optionally with a receipt (image or PDF up to 8 MB) and a note. The receipt lands as a file in the ticket, and the editor roles are pinged
Withdraw order Cancels the order as long as it is unpaid and nobody has taken it over
Withdraw from contract here For 14 days, if your shop offers the withdrawal function. It then replaces Withdraw order
My place Shows the position in the queue
Ask for a correction After delivery, see below
Rate After delivery, if reviews are switched on
Upgrade After delivery, if upgrades are switched on and there is a dearer variant

Order status

Status Meaning
Open Ordered, payment not yet confirmed
Paid Payment confirmed, the order waits in the queue
In progress Someone from the team has taken over the order
Delivered Completed
Cancelled By the team, by the customer or automatically because the payment did not arrive in time

Queue

Paid orders that nobody has taken over yet are in the queue. Fast comes first, then Prime, then Normal, and within a delivery speed by the time of the payment confirmation.

With /order next, a team member takes over the next order, and the bot replies with the link to the ticket. Customers see their position via My place, and the status message shows the length of the queue.

Delivery and corrections

After Delivered, the customer gets a DM with the server name and order number and the To the ticket button.

Under Delivery time you set correction rounds: Corrections per order (default None, at most 5) and Possible until after delivery (3, 7, 14 or 30 days). Within this time the customer sees Ask for a correction on the order card with the number of remaining rounds. They describe what should be changed, the order goes back to In progress, and your team gets a notice in the ticket.

Withdrawal and required information in the order flow

If you sell to consumers, you have duties as the seller that only the order flow can fulfil. The module takes much of that off your hands. You stay the seller, AlphaCloud only provides the technology.

Withdrawal function

Under Messages, section Consumer law, you find Offer withdrawal function (on by default).

  • From the order on, customers see the Withdraw from contract here button for 14 days on the order card, in the order confirmation and in the delivery DM.
  • The customer enters their name, optionally another way to reach them and a statement. In the next step they check their details and click Confirm withdrawal.
  • They immediately get a confirmation of receipt by DM, with date and time and as a file to keep.
  • Your team sees the withdrawal on the order card, in the ticket, in the log channel and in the overview under Needs you.
  • Whether an order has the function is fixed when it is placed. If you switch it off later, running orders keep their button.

AlphaCloud refunds nothing. If the order is already paid or in progress, it keeps its status, and you refund the money yourself and complete the order. If nobody has paid or taken it over yet, it is cancelled automatically. If you sell commercially to consumers, you must offer the withdrawal function. If it is off, the Legal page warns you.

Consent for digital content and Consent for services are in the same section (both off by default). If either switch is on, the order panel gets the step Start before the withdrawal period ends. Which box appears follows the product type:

  • Digital content: The customer agrees that you start before the withdrawal period ends and knows that they lose their right of withdrawal with that.
  • Service: The customer requests that you start before the withdrawal period ends. Their right of withdrawal expires once the contract is fully performed, and if they withdraw, they owe compensation for the work done until then.

The boxes are never ticked in advance and never required, the customer can also order without consent. Every box shown is stored with its exact wording and the time on the order. The order card, panel and order confirmation show whether consent was given.

Order confirmation

Right after ordering, the customer gets a DM "Your order #0042 at Server has been received" with a file to keep. The bot posts the same file in the ticket, with closed DMs together with a request to keep it. The file contains:

  • the seller with address and contact
  • order number, items, final price and the VAT note
  • the payment method with instructions and the delivery date
  • product type, details on digital content and rights of use
  • the consents with wording and time, and the deadline for withdrawal
  • the accepted terms in the version of the order, your terms and, if you sell commercially to consumers, the withdrawal policy with the model withdrawal form

If you mark an order with digital content as delivered although the confirmation never reached the customer, the bot warns your team. Without a confirmation, the right of withdrawal for digital content does not expire.

Delivery date, product type and rights of use

  • You set the delivery date per delivery speed under Delivery time, in working days after payment is received. It appears in the order panel, on the order card and in the confirmation, the estimated delivery time only as an addition.
  • You set the product type, the details on digital content and the rights of use per product. Customers see them on the product card, in the order panel and in the confirmation. Without rights of use it says there that only what the purpose of the contract requires is granted.
  • Below every summary it says that the statutory warranty applies.

Crossed out prices

In Discord the crossed out price is always the lowest price of the last 30 days before the discount, never simply your normal price. For this AlphaCloud records the price of every product every day.

  • If the discounted price is not below this comparison price, Discord shows no discount.
  • Until there are 30 days of price history, Discord shows the discount without a crossed out price.
  • When you create a discount, the panel shows the comparison price and warns you if the price was lower in the last 30 days.

Countdowns

A discount with an end shows in Discord when it ends. To keep this countdown honest, fixed rules apply, the same for /discount, the discounts in the panel and the flash sale:

  • You can only move a running countdown earlier. If you extend it or remove the end, the countdown ends and the discount continues without an end date until you stop it.
  • After a countdown has ended, a new countdown at the same or a lower price for the same product, the same category or the whole shop is only possible after 7 days.

Reviews

Wherever reviews appear, it says how they are checked, and they may only be rejected for fixed reasons. More under Reviews.

Delivery and licenses

If you want, the bot delivers digital products by itself as soon as an order is paid. You set this up per product in the Delivery section.

Type What happens
Give roles Up to 5 roles. You can only pick roles below your own highest role, and the bot must be able to give them
Text, for example access details Up to 2,000 characters, stored encrypted and only shown to buyers. You do not see it either after saving
Download link A link with https:// to your own storage, for example a GitHub release. AlphaCloud does not store any files
License key A separate key per order, more on that below

You can combine all of them. With Then mark as delivered the bot completes the order afterwards. Leave the switch off if your team still delivers something by hand. Without a choice you deliver by hand in the ticket as before.

How the delivery runs

As soon as your team presses Paid, in Discord or in the panel:

  1. If the order confirmation is still missing, it goes out first. For digital content the DM counts as the delivery.
  2. The bot gives the roles.
  3. The buyer gets a DM with the name of your server and everything that belongs to it: access details, Download, license key and My purchases.
  4. A copy is posted in the ticket, license keys there only with the last four characters.
  5. The log channel gets an entry.

If the buyer's DMs are closed, the delivery is posted in the ticket, and they get their key with the Show license key button that only they can see. If a delivery still fails after several attempts, the log channel reports it and your team delivers by hand. If an order is cancelled, its delivery stops and its keys are blocked.

License keys

  • A key has 25 characters in five groups, for example XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.
  • AlphaCloud only stores a checksum. That is why you only see the last four characters in the panel, and the buyer is shown their key only once.
  • An upgrade keeps the key of the original order.

The Licenses page in the Extensions group lists all keys of your shop with the status Active, Blocked or Not picked up yet. You search by product, customer, Discord ID, order number or the last four characters.

Action Effect
New key The old key stops working immediately, and the owner gets the new one by DM
Block The key stops working until you click Unblock

Deliveries, new and blocked keys and the checks of the previous day are also posted in the log channel.

My purchases and /license

Buyers can find everything again:

  • In the My purchases customer area in the panel at /purchases: every purchase in shops with AlphaCloud, as soon as a shop has marked it as paid. There buyers see their deliveries again, create a new key or pick up one they have not picked up yet. They do not need any rights on the server for this.
  • With /license on your server: their licenses in this shop. Through the menu they create a new key or show one they have not picked up yet.

A new key makes the old one invalid immediately. A buyer can create at most 10 new keys per hour per shop.

License check API

Your scripts use a token to check whether a key is valid.

  1. Under Licenses, section License check API, click Create token. The token starts with acl_ and is shown only once.
  2. The product ID is in the product under Delivery as soon as the license key is switched on.
  3. Your script sends GET /api/service-licenses/check?key=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX&product=PRODUCT_ID with the header Authorization: Bearer acl_....

The answer is for example {"status": "valid"}:

Status Meaning
valid The key belongs to this product and is active
blocked Blocked or replaced by a new key
unknown Unknown or for another product. The API never gives out data about the owner

The Licenses page shows the full address with a curl example under Quick guide. Each token allows at most 600 checks per minute, so ideally ask once at start-up. Only daily totals are counted, no individual requests and no addresses. Create new makes the old token invalid immediately. The API keeps answering after your access ends, so buyers can keep using what they paid for.

Discounts & Promotions

All times on this page are in Berlin time.

Discounts

With Create discount you choose what the discount applies to and what it looks like:

Setting Options
Applies to Product, Category or Entire shop
Type New price (a fixed discounted price for a product) or Percent (up to 90%)
End (Berlin time) A point in time or No end date

The discount applies immediately. In Discord a crossed out price appears next to it, plus the end. Once the end is reached, the price goes back on its own. The crossed out price is always the lowest price of the last 30 days, and discounts with an end follow the rules for countdowns, both above under Withdrawal and required information in the order flow.

Flash Sale

The whole shop cheaper for a short time: percentage discount, Start and End. The flash sale starts and ends on its own, the panel shows a countdown, and in Discord it appears next to the prices. The rules for countdowns apply to it as well.

How discounts work together

  • Discounts do not add up. If several apply at once, the customer gets the best one.
  • Discounts apply to the price of the product or variant, not to extras.
  • The calculation order is: first the discount, then the coupon on the rest including extras, finally the surcharge of the delivery speed.

Discount by command

You can also set a discounted price directly in Discord, and it then appears in the panel as well:

  • /discount set with product (choose from the list), price (for example 9.99) and optionally duration (for example 12h or 3d, at most 90 days). Without a duration, the discount runs until you remove it.
  • /discount clear with product removes the discount again.

The command needs the "Manage Server" permission and only works for products without variants.

Coupon codes

Field Meaning
Code 3 to 24 characters from letters, numbers, underscore and hyphen. Upper and lower case do not matter
Discount In percent or as a fixed amount
Applies to All products or only selected ones
Max. redemptions A number or Unlimited
Expires Optionally an expiry date
Active For pausing

The list shows how often each code was redeemed and marks used-up and expired codes.

Creator codes

One code per creator, linked to a member of your server. Customers get a discount with it, and you see per code how much revenue it brought.

Redeeming

Customers enter coupons and creator codes in the order panel via Enter coupon, one code per order. The button only appears if there is at least one valid code. If the order is cancelled, the redemption no longer counts.

Reviews

Reviews are part of the Service module, you do not need the Voucher system for them. They are set up under Messages.

Setting Meaning
Collect reviews On by default. After Delivered, the bot asks for a review in the ticket and in the delivery DM
Publish reviews in The review channel. Without a channel, reviews only count towards the average in the price list and status message
Approve before publishing Off by default. New reviews first land as a card in the log channel (in the ticket if there is no log channel), and your team publishes or rejects them

This is how the customer reviews:

  • After delivery they click Rate in the ticket.
  • They give 1 to 5 stars, optionally write a text of up to 1,000 characters and can choose to review anonymously.
  • Only the buyer can review, and only once per order.

In the review channel the review appears as a Verified purchase. The average and count, for example "4.8 ★ from 23 reviews", appear in the price list and in the status message.

How we check reviews

Wherever reviews appear (price list, status message, review channel), a fixed line says how they are checked. The How we check reviews button shows the full rules: only buyers of a delivered order, one review per order, the average of all published reviews, nothing in return for reviews.

With Approve before publishing, your team may only reject a review for one of these reasons, never because it is negative:

  • Insult or abusive criticism
  • Personal data of third parties
  • No relation to the order
  • Spam or advertising
  • Otherwise unlawful

The reason is written to the log, and the customer learns it by DM. Without approval, reviews appear immediately and cannot be rejected.

Real reviews only: none of your own, bought or swapped, nothing in return for good reviews, and never push customers to change or withdraw a review.

Custom design

Under Messages, section Custom design, you design four messages in the Message Builder. Without a custom design, every message uses the default.

Message When it appears Required building blocks
Status message In the status message channel, updates itself Delivery speeds with load and numbers
Order card in the ticket In the ticket of every order, edited with every change Items, payment and history, plus the buttons
Delivery DM After Delivered, to the customer Server and order
Review An approved review in the review channel none

You can move required building blocks within the message, but not remove them. The status message, order card and delivery DM exist only as Components V2, the review also as an embed.

Variables

Status message: {openOrders}, {inProgress}, {queue}, {rating}, {guild}, {memberCount}

Order card in the ticket: {user}, {order}, {status}, {summary}, {total}, {lane}, {payment}, {guild}, {memberCount}

Delivery DM: {user}, {order}, {summary}, {total}, {ticketUrl}, {guild}, {memberCount}

Review: {stars}, {score}, {review}, {customer}, {product}, {guild}, {memberCount}

Which variables exist exactly and what they mean is shown by the editor itself.

Restock, upgrade and community goal

Restock notification

For products with stock, the price list shows the Restock notification button, whether sold out or not. Whoever clicks it gets a role that the bot creates per product (for example "Restock: Logo Pack"). After that they can sign up For every product or Unsubscribe again.

When a product is refilled from 0, the bot posts "Product is back in stock" once, with stock, price and the Order and Unsubscribe buttons. Only the role of this product and the role for every product are mentioned. Refilling works like this:

  • /restock with product and amount, for the editor roles or members with "Manage Server"
  • Refill on the Products page
  • raising the stock in the product from 0
  • through the restock webhook, see below

Units that come back through a cancellation do not ping.

On the Products page you set the Channel for restock pings under Restock notifications (empty means: the price list channel) and see how many customers are waiting for each product.

Members give restock roles to themselves. That is why the bot only hands out such a role as long as it has no permissions and opens no channels, otherwise it writes a notice to the log channel. For the ping, the bot needs the "Mention @everyone, @here, and All Roles" permission in the channel.

Upgrade

Under Delivery time, card Upgrades, you decide whether customers can move to a higher variant: Upgrade possible is Off or up to 7, 14, 30 (default), 60 or 90 days after the delivery.

  • On the delivered order card only the buyer sees the Upgrade button.
  • The order panel only offers dearer variants of the same product, without extras, without a coupon and in the normal delivery speed.
  • The customer pays the new variant at today's price, running discount included, minus what they paid for their old variant. Discount and coupon share are already deducted there, extras are never credited.
  • The upgrade is an order of its own with a ticket and is paid like every order. The order card, confirmation and panel show the amount as Already paid.
  • Every order can get an upgrade, an upgrade order too. If an upgrade is cancelled, the order is free again. An upgrade takes nothing from the stock, and a license key stays the same.

Community goal

An extra block of the status message, set up under Delivery time: Text of the goal, Goal (number of orders) and Period, that is Starts again every week (from Monday), Starts again every month (from the 1st, default) or Never starts again. Times are in Berlin time.

Only paid orders and paid Tebex purchases of the period count, cancelled ones do not. There is no number typed in by hand. The status message shows a progress bar, how many orders are still missing and when the goal starts again. Without a goal the block stays empty.

Orders and overview in the panel

Overview

Area Content
Key figures Open orders, In progress, revenue this week compared to last week, average delivery time over the last 30 days
Needs you Reported payments, requested corrections, orders shortly before automatic cancellation, declared withdrawals, reviews awaiting approval, sold-out products
Delivery time now The load of each delivery speed
Latest orders The newest orders with a jump to the list
Subscription Tier and price, next payment or end of the trial

Orders

Everything that was ordered in Discord. You search by number or customer, filter by delivery speed, payment method and period, and switch between the statuses via tabs.

A click on an order shows all details: history, items with discount, coupon and delivery speed, the customer with their previous orders, their wishes, the payment instructions they saw, an attached receipt, their consents, a withdrawal and their review. With Open ticket you jump straight into Discord.

From here you can run the same actions as with the buttons on the order card: Confirm payment, Reject report, Take over, Mark as delivered and Cancel. The bot updates the order card, ticket, log and DM.

Data of an order

With Data protection on a delivered or cancelled order you can Anonymise or Delete it, for example when a customer asks for it. Anonymising removes the name, Discord ID, wishes, receipt link, withdrawal details and the text of the review. Number, products, prices, status and times stay for your bookkeeping. Deleting removes the order and its review completely. Neither can be undone.

With CSV export and JSON export you download all orders with their reviews. Anonymising, deleting and exporting need the "Manage shop" permission.

Statistics & Customers

Under Statistics & Customers in the Insights group you see your shop in numbers, for the last 7, 30 or 90 days or for All time.

Area Content
Key figures Revenue, Paid orders, Avg. order value and Avg. delivery time, compared to the period before
Revenue and orders A chart Per day, Per week or Per month with revenue, new and cancelled orders
Top products Your products by revenue
Delivery lanes The share of each delivery speed
Coupons & Creator Codes How often which code was redeemed and how much discount it gave
Tebex purchases A series of its own if you connected Tebex. It does not count towards your shop's revenue
Customers Every customer since your shop started, sorted by revenue, with a search by name or Discord ID

Revenue counts orders your team marked as paid or delivered, never cancelled ones. All numbers come from your shop's own entries: AlphaCloud does not process payments and does not check any amounts. Anonymised orders are not in the customer list.

Anyone with "Handle orders" may view the page. Export CSV, the customer list with orders and totals as a file, needs the "Manage shop" permission.

Tebex

Do you already sell on Tebex, for example for a FiveM server? Then you show your Tebex packages in Discord and get every purchase in the log. Tebex stays your shop: Tebex takes the money, handles taxes, refunds and chargebacks and delivers in game. AlphaCloud does not accept any money.

Connecting

  1. On the Tebex page in the Extensions group, copy the Webhook address and enter it in Tebex under Developers > Webhooks > Endpoints. Select the payment webhooks there.
  2. Copy the Webhook secret from the same page in Tebex and the Public token under Developers > API Keys.
  3. Enter both and click Connect. Then click Validate next to the address in Tebex.

After that the page shows the connection status, the last sync and the last webhook. AlphaCloud syncs your packages every 30 minutes, and Sync now fetches them right away. Disconnect deletes token, secret and packages, and past purchases stay for the statistics.

Packages in the price list

Up to 250 packages are listed under Packages from Tebex. With Show in Discord you choose which ones appear in the price list. There they follow after your own products under "In-game packages via Tebex", each with the Buy in store button that opens the package in the Tebex store. You manage prices and sales in Tebex. Discord always shows the current price without a crossed out price.

Purchases

Tebex reports every purchase by webhook. The bot writes it to the log channel as "New purchase via Tebex", refunds and chargebacks as a warning. Purchases also appear under Recent purchases on the Tebex page, as a series of their own under Statistics & Customers and in the Latest purchases extra block of the status message. They do not count towards your shop's revenue, the seller here is Tebex.

From Tebex, AlphaCloud only stores package, amount, currency, transaction and the player name, never the buyer's name, email or IP. For the settings below, the buyer's Discord ID is added.

After purchase

Per package you decide under After purchase what the bot does in Discord after a paid purchase:

Setting Effect
Manual work: open an order ticket For packages with manual work, for example a custom car or clothing. The bot opens a ticket with an order card for the buyer, your team takes over and delivers, and afterwards the buyer can leave a review. The card has no payment buttons, and the order does not count towards your own revenue. If Tebex later reports a refund or chargeback, the bot pings the editor roles in the ticket
Discord role after purchase The buyer gets the role after the paid purchase. On a refund or a lost chargeback, the bot takes it away again

Both need the buyer's Discord ID. Tebex only asks for it at checkout if the package has a Discord action or a variable with the identifier discord_id. If no Discord ID comes along or the buyer is not on your server, the bot reports the purchase in the log channel so you can contact the buyer.

Tebex can also give roles itself. If you use that, leave Discord role after purchase off, otherwise two systems give the same role.

FiveM: Sell in-game perks only through Tebex, never through the normal order. How to connect your FiveM server itself to AlphaCloud is described on the page of the FiveM module.

Updates, resellers and webhooks

Updates

When a product has a new version, you send every owner a DM with the changelog. Owners are everyone with an active license or a delivered order of the product.

  • In the panel under Licenses, section Updates: Product, Version, Changelog and, if needed, New download link (optional), then Send to X owners.
  • In Discord with /product update: product, version (for example 1.2.0), changes (\n starts a new line) and optionally link. The bot first shows a preview with Send to X owners and Cancel.

The DMs go out two seconds apart and name your server. Sent DMs cannot be taken back. If the bot restarts while sending, it continues where it stopped. The History shows every update with its progress and how many owners were reached, and at the end the result is posted in the log channel.

A new download link also replaces the link of the product and of past orders in the customer area, but only if the product already delivers a download. Otherwise it is only in the DM.

Resellers

Resellers are members who may give out license keys of a product or use them themselves. Under Licenses, section Resellers, you give a member a quota per product with Add reseller:

Field Meaning
Total How many keys the member gets in total
Own use How many of them for themselves
Give away How many of them for other members

Quotas only exist for products that deliver license keys. The reseller then uses two commands:

  • /reseller give with product and user: The member gets a new key by DM. With closed DMs they get it with /license. If the reseller picks themselves, the key counts towards their own use and is shown right away.
  • /reseller keys: the quota and the keys given out most recently, only with the last four characters.

A key given out stays used, even if you block it later. In the list under Licenses, each of these keys shows "via reseller" and the name, and each one can be blocked on its own. Every key given out is posted in the log channel.

Webhooks

The Webhooks page in the Extensions group connects your shop with your own systems, for example your bookkeeping, a license database or your own dashboard.

Outgoing webhooks: Up to five addresses receive the selected events as a signed JSON request by POST.

Event When
order.created New order, as soon as its ticket is open
order.paid Order marked as paid
order.delivered Order delivered, by hand or automatically
order.cancelled Order cancelled, by the team, by the customer or because it stayed unpaid
order.withdrawn The customer declared the withdrawal
license.issued New license key, from an order, newly created or through a reseller
license.blocked License key blocked, by the team, replaced or because the order was cancelled
  • Only addresses with https on a public server. Redirects are not followed.
  • Every request carries the headers X-AlphaCloud-Signature, X-AlphaCloud-Event and X-AlphaCloud-Delivery. The signature is HMAC SHA256 over timestamp, dot and the unchanged body, with your secret as the key. The page itself shows an example for checking it in Node.js.
  • You see the secret only once. New secret replaces it, and a new address always gets a new one.
  • Answer within 10 seconds with a 2xx status. Otherwise we try six more times, after 1 minute, 5 minutes, 30 minutes, 2, 6 and 12 hours. After at least ten failures in a row over one day, the webhook switches itself off and the panel shows a notice.
  • An event can arrive twice. The id in the body stays the same on every attempt.
  • The only personal data in a request are the buyer's Discord ID and the order number. No name, no wishes, no payment details, never a full license key.
  • With Send test you send a test event to the address.

Restock webhook (incoming): Your external shop or a script raises the stock of a product here. If it is refilled from 0, the subscribers get their restock ping.

  • Create secret switches it on, without a secret it accepts no requests. The address is shown on the page.
  • Body: id (your unique event ID), productId or sku and amount (1 to 100,000 units added to the stock).
  • The signature is in the X-AlphaCloud-Signature header as above. Requests older than 5 minutes are rejected.
  • The same id is only booked once, a repeat gets 200 with duplicate: true.
  • Under SKUs you give products with stock an article number of your own that your shop can send instead of the product ID.

Website

Every shop can build its own website, from fixed building blocks and with the live data of your shop. Ordering still happens in Discord: the website sells nothing itself, its order button leads to your shop on the server. The website is included in every tier.

Not reachable yet. Websites only go live once their domain is switched on. Until then you can build and publish everything, but visitors cannot see the website yet.

Creating and editing

Under Website, Editor, click Create website. AlphaCloud builds a first draft from your server: name, icon, banner, products, reviews and delivery times. It only goes live with Publish.

In the editor you edit pages and building blocks with a preview for desktop, tablet and phone, light or dark. Changes are saved automatically as a draft, and Undo and Redo help you try things out.

Building block Content
Hero Title, text, up to two buttons and, if you like, the members online
Products All products, a category or your selection
Reviews Only approved reviews from real buyers
Delivery time Delivery speeds, delivery time and load
How to order The steps and your payment methods
Discord Server name, icon and members online
Text Your own text, with an image if you like
FAQ Questions and answers

Prices, discounts, "sold out", delivery times and reviews come live from your shop. Every building block has several variants. Images only come from your own uploads in the Service area, there is no custom HTML and no scripts.

Design

Under Design you choose the Style:

  • Studio: calm and bright, lots of white space. For designers and creatives.
  • Arcade: dark and bold, hard edges. For gaming and FiveM.

Plus Light or dark and the Accent colour, either From the server icon or an Own colour.

Product pages

Every active product automatically has its own page with images, description, price, variants, extras, delivery speeds, rights of use and reviews. You change the content in the product, colours and style come from the website's design. The Order in Discord button leads to the product in your price list.

Publishing and settings

  • Publish takes the draft live, Take offline hides the website. Every publish saves a version, the last 30 are kept, and Restore brings one of them back into the draft.
  • Under Settings you choose the Address (subdomain, 3 to 32 characters). You can change it once in 30 days, and an old name stays blocked for others for 90 days.
  • There you also find the Discord invite link for "Join server" and Let search engines find it.
  • The footer of every page holds your legal texts from Legal and a link to report content.

Statistics without cookies

Under Statistics you see visitors, views, clicks on "Order in Discord" and "Join server", the click rate, top pages, top products, referrers, countries and devices. Counting works without cookies and without access to the visitors' devices. AlphaCloud only stores daily totals, no IP addresses, for 13 months. That is why your website shows no cookie banner without Google Analytics.

Google Analytics

Optionally you enter a Google Analytics ID under Settings, for example G-AB12CD34EF. Your website then shows a cookie banner automatically, rejecting there is just as easy as accepting, and Google only loads after consent. You are responsible for this measurement. Accept the data processing terms in Google Analytics.

Permissions

In the panel

Under Team & Permissions you see who may do what. Permissions are granted per person in the panel permissions, as Service: Handle orders and Service: Manage shop.

Handle orders Manage shop
Can View orders, customers, overview and statistics. Confirm payment, take over, mark as delivered, cancel. Refill stock Everything from "Handle orders", plus products, discounts, delivery time, payment methods, messages, extensions (Tebex, licenses, webhooks), website, legal and team. Exports, anonymising or deleting orders
Cannot Change products, prices, discounts, payment methods, messages, extensions, website, legal, team and subscription. Exports Take out and cancel a subscription
  • Server admins (owner, administrator or "Manage Server") always have both permissions. Only they can start the trial and buy the module.
  • With only "Handle orders" you see the other pages in View only mode.
  • Without either of the two permissions, the area stays locked for you.

In Discord

The editor roles under Team & Permissions determine who may press the team buttons on the order card and use /order next and /restock. Members with "Manage Server" always may. The editor roles are pinged when a customer reports a payment and are added to the private threads of orders.

  • /discount and /product update always need the "Manage Server" permission.
  • /reseller is visible to every member, but only members with a reseller quota can use it.
  • /license can be used by every member for their own keys.

When access ends

When the trial, a cancelled subscription or the prepaid time ends, the shop closes for new orders:

  • The Order button replies that the shop is currently closed. The status message shows this as well.
  • You can still complete open orders. The buttons on the order cards keep working so your customers are not left hanging.
  • The module's commands (/discount, /order, /restock, /license, /product, /reseller) exist only while the shop is open.
  • The license check API keeps answering, so buyers can keep using what they paid for.
  • For 7 days your website shows the notice that the shop is not taking orders right now, without order buttons. After that it is offline.
  • Products, settings, orders and reviews are kept.

If you buy a subscription or prepaid again, the shop accepts orders again immediately. There is no second trial.

Limits

The limits are the same in all tiers.

Limit
Products 250
Categories 25
Images per product 10, up to 8 MB each
Variants and extras per product 25 each
Roles on delivery 5 per product
Text on delivery 2,000 characters
Payment methods 10
Percentage discounts 50
Coupons and creator codes 100 together
Open orders per customer 3
Percentage discount up to 90%
Duration with /discount up to 90 days
Delivery date 1 to 90 working days
Upgrade up to 90 days after the delivery
Refill at once up to 100,000 units
Restock sign-ups 25 per member, 20,000 per shop
Restock roles 25 products, plus one for every product
New license keys by buyers 10 per hour, per buyer and shop
License check API 600 checks per minute and token
Updates 3 per product in 24 hours, one at a time, up to 10,000 owners
Version and changelog of updates 32 and 1,500 characters
Reseller quotas 200 per shop
Keys via resellers 30 per hour and reseller
Outgoing webhooks 5
Tebex packages 250
Website 20 pages, 30 building blocks per page, 30 versions

Commands

Command Effect Who
/discount set Set a discounted price for a product, optionally with a duration "Manage Server"
/discount clear Remove a product's discount "Manage Server"
/order next Take over the next order from the queue Editor roles or "Manage Server"
/restock Refill the stock of a product, with product and amount Editor roles or "Manage Server"
/license View your own license keys in this shop, create a new one or show one not picked up yet All members
/product update Send an update of a product to all its owners, with product, version, changes and optionally link "Manage Server"
/reseller give Give a member a license key from your quota, with product and user Resellers with a quota
/reseller keys The keys you gave out and what is left of your quota Resellers with a quota

Required permissions

Send messages, embed links, attach files (for receipts and order confirmations), read message history, manage messages (to pin the order card). For orders without a ticket category, additionally in the price list channel: create private threads and send messages in threads. For orders in tickets, the permissions of the Ticket module apply.

For roles on delivery, restock roles and roles after Tebex purchases: manage roles, and the roles must be below the bot's highest role. In the channel of the restock pings: "Mention @everyone, @here, and All Roles".

TicketsThe complete ticket system with categories, questions, panels, ratings, AI support and transcripts.