A Discord product catalog bot turns a channel into a browsable storefront: categories in a dropdown, each one opening a list of products with prices, descriptions and stock, refreshed automatically whenever you edit anything. Noxyr builds this from three pieces (categories, products, the posted catalog message) with no code and no paid tier. This guide covers every field the catalog supports and how to set it up in your server.

A shopper adds an item to their cart, the cart count rises, and checkout produces a paid invoice. Wireless Mouse $29 Add to cart 1 2 3 Invoice #1042 Paid

What a Discord product catalog bot actually does

Without a catalog bot, a Discord shop is a pinned message someone edits by hand, or a wall of embeds that go stale the moment a price changes. A catalog bot instead stores your products in a database and renders one message from that data. Update a price on the dashboard and the posted message updates itself; nobody has to remember to re-post it.

In Noxyr, that message lives inside /catalog: a dropdown listing your categories, and inside each category the products with prices and a Check Prices button. Everything is set up with slash commands or the web dashboard, both writing to the same database.

Step 1: Create categories

Products need a category to belong to, so start there. Use /addcategory or the Products page of the dashboard.

  • Name: shown in the dropdown, up to 100 characters (Ranks, Boosting, Graphic Design, and so on).
  • Description: a short line under the name in the dropdown, up to 100 characters.
  • Emoji: a Unicode or custom Discord emoji next to the category.
  • Thumbnail: an optional image URL shown when a member opens that category.
  • Position: lower numbers sort first, so you control the dropdown order without renaming anything.
  • Visible: hide a category from the public catalog while you stock it, without deleting it.

Category names must be unique per server; running /addcategory with a name you already used returns an error instead of creating a duplicate.

Step 2: Add products and set the fields that matter

Once a category exists, add products to it with /addproduct (or the dashboard). Every field is optional except the category and the name, so a product with no price at all is valid, useful for "contact for quote" listings.

FieldWhat it controls
NameProduct title, up to 100 characters.
Price (USD / EUR / INR)Up to three currency prices per product. Leave all three empty for a no-price listing.
Auto currencyFills the other currencies from your primary price using live exchange rates, so you only type one number.
DescriptionShort blurb, up to 500 characters.
FeaturesA pipe-separated list ("Fast delivery | 24/7 support | Lifetime access"), rendered as bullet points, up to 20 items.
Price displayA custom price line for products that don't fit the currency fields, like "Starting at $10/mo".
StockA number, or -1 for unlimited. Shown to buyers if you turn on stock display in the cart.
PositionLower numbers appear first within the category.
AvailableWhether the product shows in the public catalog. Turn it off to pause a product without deleting its record.

The server's primary currency comes from /catalog currency; the auto-currency conversion always fills in from that one. If you leave price fields at zero and don't set a price display, the product still posts, just with no price line.

Step 3: Set the dropdown, colors and Check Prices button

/catalogsetup controls how the catalog embed itself looks, separately from any individual category or product: which channel it posts in, the embed title, description, footer, accent color, a banner image and a thumbnail, the dropdown placeholder text, and whether a Check Prices button appears. Run it with no options to see the current settings without changing anything, or pass just the fields you want to change; it only writes what you actually pass, so you can tweak one field at a time.

Step 4: Post the catalog into a channel

Categories and products exist in the database as soon as you add them, but nothing appears in Discord until you post the catalog message. Run /postcatalog once, in the channel set with /catalogsetup (or pick the channel there first). That posts a single message with the category dropdown and the Check Prices button.

Members open it with the public /catalog command too, which shows the same embed and dropdown as an ephemeral reply, useful for a quick look without scrolling to the channel.

Updating the catalog without reposting it

This is the part a manual price list can't do: every command that changes a category, a product, or the catalog's own styling calls the same update routine that redraws the posted message in place. Add a product, change a price, rename a category, or run /catalogsetup again, and the live message in the channel updates itself. You never run /postcatalog twice unless the original message got deleted.

That single source of truth is also why a Discord product categories setup stays trustworthy: buyers who bookmark the catalog channel always see current prices, not a snapshot from whenever staff last remembered to update a pinned message.

Discord store channel setup: a few conventions that help

  • Make the channel read-only. Only the bot should post in it; give everyone else send-message permission off so the catalog message stays at the top.
  • Order categories by how often people buy them. Position numbers control the dropdown, so put your best sellers first.
  • Pair it with terms of service. The catalog's TOS button (set with /catalog tos) sits next to Check Prices, so refund and delivery rules are one click away from every product.
  • Turn on the cart if you sell more than one item at a time. The catalog itself only browses; adding items to an order needs checkout, covered in the Discord checkout bot guide.

How the custom bot posts your catalog under your own brand

If you're running Noxyr's Custom Bot feature, the catalog you set up doesn't need to be redone: it's the same categories, products and settings, read from the same database, just rendered by a bot with your name and avatar instead of Noxyr's. Whichever bot is present in a given server (Noxyr or your custom one) is the only one that posts and refreshes the catalog there, so members never see two versions or a duplicate message. Setting up a custom bot is a Top.gg vote and pasting a bot token on the dashboard; nothing about the catalog commands changes.

Common questions

Can a product have no price? Yes. Leave USD, EUR and INR all empty and don't set a price display, and the product still posts with no price line, useful for quote-only items.

How many products can I add? There's no hard cap in the commands; category and product lookups are limited to 25 results in dropdowns, so very large catalogs are better browsed through the dashboard.

Does the catalog update itself when I change a product from the dashboard? Yes, the dashboard writes to the same database and triggers the same catalog refresh as the slash commands.

Do I need to run /postcatalog again after adding a product? No. Only run it once to place the message; every later change updates it in place.

Ready to set one up? Add Noxyr free and start with /addcategory, or read the full catalog and products docs for every command. For the cart and order flow that turns browsing into a sale, see the Discord checkout bot guide and how to sell products on Discord.