Skip to main content

/catalog — Product Catalog

Type: Customer slash command
Scope: All guild members

Description

Displays a paginated list of all active, published products available for the tenant. Each product card shows the product name, description, price, and stock availability (visibility controlled by qtyVisibility / defaultQtyVisibility). Buttons allow pagination and ordering (ordering flow coming soon).

Usage

/catalog

Optional pagination via the Previous / Next buttons embedded in the response.

Behavior

  • Filters products by isActive = true AND isPublished = true.
  • Applies role-gating: products with requiredRoleIds are hidden from users who lack those roles (stub — always shows products with no required roles).
  • Shows up to 10 products per page. Navigation buttons appear when more than 10 products exist.
  • Each product embed includes:
    • Name and description
    • Formatted price (e.g. $9.99)
    • Stock level (public: numeric qty; private: "In stock" / "Out of stock")
    • Product image (resolved from product.imageUrlbotConfig.defaultProductImageUrl → placeholder)
    • Active global discount promo line (e.g. 🎁 Use code **SAVE10** for 10% off!) when at least one active global discount applies
  • Order button per product fires catalog:order:<productId> which enters the rich order flow.

Pagination

Custom IDs used: catalog:page:<n> (0-indexed).

Permissions

None — available to all guild members.

  • /stock — check a single product's stock level
  • /add-item — admin: create a draft product