Skip to main content

Original Discord Bot Requirements (Source Spec)

This document outlines the original functional requirements for the Discord bot and admin system as provided by SecRes. These requirements represent the desired end-state capabilities and may be implemented incrementally.


Core Principles

  • Discord-first experience
  • Admin-controlled via dashboard (not purely chat commands)
  • Minimal manual handling once orders are paid
  • Inventory-aware ordering
  • Role-based access to products and features

Ordering & Customer Interaction

Order Placement

  • Users can place orders in a designated server channel
  • Bot responses should be private to the ordering user
    • Either via ephemeral responses
    • Or via DMs with the bot
  • Users may also DM the bot directly to place orders

Order Flow

  1. Users select products
  2. Users provide shipping information
  3. Users select payment method
  4. Order is recorded and tracked

Inventory Management

  • Centralized inventory tracking
  • Inventory decreases automatically when orders are placed/confirmed
  • Low-inventory alerts:
    • Visible in admin dashboard
    • Optional announcement to @everyone in Discord
  • Inventory tied directly to products
  • Ability to adjust inventory manually via admin

Admin Dashboard (Primary Control Plane)

Dashboard-controlled, not bot-command-only.

Admins must be able to:

  • View all orders
  • Update order status
  • Refund orders
  • Manage inventory
  • View customer information
  • Configure products
  • See alerts and warnings (inventory, failed payments, etc.)

Order Management

  • View orders by status
  • Update order state (pending → paid → shipped → refunded)
  • Issue refunds
  • Track fulfillment progress
  • See full order history

Shipping & Fulfillment

  • Customer shipping info integrated into shipping platform
  • Automatic creation of shipping labels (does not necessarily auto-print)
  • Shipping platform: PirateShip
  • Store tracking numbers and shipment details
  • Associate shipment with order

Customer Data

Store customer information:

  • Discord username
  • Shipping details
  • Order history

Additional requirements:

  • Persist customer/order relationships
  • Admins can look up customers and past orders

Discounts & Promotions

  • Ability to configure discounts:
    • Percentage-based discounts
    • Customer-specific discount codes
    • “Across-the-board” discounts
  • Discounts configurable via admin dashboard
  • Discounts applied at checkout

Payments

Supported Payment Methods (Initial List):

  • BTC

  • Invoicing (TBD)

  • Venmo

  • Cash App

  • Payment confirmations tracked in the dashboard

  • Confirmation sent to customer after payment is received


Role-Based Access

  • Role-based access to products
  • Certain products only available to specific Discord roles (e.g. "Resurrected")
  • Automatic role assignment upon purchase:
    • Grant Discord roles after successful payment

Digital perks:

  • Custom emojis
  • Private channel access
  • Other Discord privileges

Digital Entitlements

  • Auto-assign Discord roles after purchase
  • Unlock digital-only perks without shipping
  • Tie entitlements to completed orders

Notifications & Alerts

Admin alerts for:

  • Low inventory
  • New orders
  • Payment issues

Other notifications:

  • Optional server-wide announcements

Customer notifications on:

  • Order received
  • Payment confirmed
  • Order shipped

Summary (Original Intent)

The bot is intended to function as:

  • A storefront
  • An order management system
  • An inventory system
  • A shipping coordinator
  • A role/entitlement engine

All primarily controlled through a central admin dashboard, with Discord acting as the customer interface.


Notes (Context for Current Architecture)

  • This spec includes both manual and automated workflows
  • Some payment methods are inherently manual (P2P)
  • Automation is layered where APIs/webhooks permit
  • The current Ledgerline architecture intentionally supports this spec incrementally, not all at once

Some payment methods are inherently manual (P2P)

Automation is layered where APIs/webhooks permit

The current Ledgerline architecture intentionally supports this spec incrementally, not all at once