Product pipeline
Tracking something from an idea to a published listing, across nine stores, with a checklist that has to be complete before it ships.
Module: products, off until a bot owner runs /moduleadmin enable module: Products.
Locked, like diplomacy. Even once your server holds a valid access key,
products doesn't turn on by asking. It's tied closely enough to the
business side of Titanite that a bot owner has to grant it specifically to
your server's key. If you need it, say so when you request access.
Setting up a full pipeline, start to finish
-
Turn the module on. Bot owner only, and only after your server's key is granted
products:/moduleadmin enable module: Products guild_id: <your server ID> -
Point it at a forum and a staff-thread parent. Every product gets a public forum post and a private staff thread:
/config set key: product_forum_channel value: #product-showcase/config set key: product_thread_channel value: #product-staff-threadsproduct_forum_channelhas to be an actual forum channel. The bot tags threads in it automatically as a product moves stages (see below).product_thread_channeljust needs to allow private threads; the bot creates one per product there. -
Give each store an announcement channel. Publishing a product posts an announcement, and it needs to know where:
/storeconfig set store: TechHaven channel: #techhaven-releases/storeconfig set store: "M7 Studios" channel: #m7-releasesRun this once per store you sell through.
/storeconfig listshows what's configured. A store with nothing set here still publishes fine; it just skips the announcement. -
Optional: a pipeline log.
/config set key: product_log_channel value: #product-logEvery stage advance, assignment, and checklist completion gets recorded here.
That's the whole setup. Submitting the first product is where it gets used.
The nine stores
TechHaven, M7 Studios, Hen Development, ASELFUSION, Opulent Estates, Artix
Tactical, Historical Studios, Parabellum Systems, One Republic Containment.
Every /product command that takes a store offers these as a dropdown.
There's no free-text store name.
A worked example, start to finish
Submitting a real product and taking it all the way to published:
/product submit store: TechHaven
A modal opens: product name, a 1–3 sentence description, features (one per
line). Submitting it does three things at once: mints a product ID like
THU-AB1234, posts a draft thread in the product forum tagged
Awaiting Imagery and WIP for Sale and Unpriced, and opens a private
staff thread only staff can see.
Product name:
Skybound Racer· Description:A fast-paced hoverbike racing map with three tracks and a garage system.· Features:Three unique tracksCustomizable hoverbike garageLeaderboard and ghost replays
The staff thread is where the rest of this happens. Everything below posts there automatically as it's done, so nobody has to ask "did anyone add the price yet."
Moving through the pipeline
Stages only move forward, one step at a time:
draft → imagery → priced → described → payhip → external_stores → parcel → published
/product advance product_id: THU-AB1234 stage: Imagery refuses anything
that isn't the very next stage. Trying to jump from draft straight to
priced gets refused with the one stage that's actually valid next.
Add the pieces as you go:
/product links product_id: THU-AB1234
Opens a modal for the Roblox Hub, Payhip, ClearlyDev, BuiltByBit and Parcel links. Fill in whichever apply, leave the rest blank.
/product price product_id: THU-AB1234
Robux, USD, and GBP, independently. Leave any of them blank if you're not selling in that currency.
/product describe product_id: THU-AB1234
The same description and features fields from the submit form, editable any time.
Each of these also snapshots the product's previous state before saving. Not shown anywhere yet, but the history is there if something needs reverting by hand.
The checklist
/product checklist product_id: THU-AB1234
Eight items, each a toggle button: forum post created with the right tags, six-plus images attached, priced across all three currencies, description generated, Payhip page live, external store pages live, Parcel entry created, announcement posted. Press a button to flip it; the message updates in place rather than posting a new one each time.
Publishing
/product publish product_id: THU-AB1234
Refuses unless both are true: the product is at the Parcel stage, and every checklist item is ticked. Pass both and it:
- Moves the product to Published.
- Re-tags the forum thread from whatever it had to
Published. - Posts the announcement to that store's configured channel, with buttons for whichever store links were filled in.
Everyday commands
| Command | Who | What it does |
|---|---|---|
/product view <id> | Staff | The full card: stage, price, links, checklist progress, recent notes |
/product list [store] [stage] [page] | Staff | Every product, filterable, ten per page |
/product note <id> | Staff | Add a note. Posts to the staff thread and stays on the product's record |
/product assign <id> <member> | Staff | Hand it to someone; adds them to the staff thread automatically |
/product format <id> | Staff | Generates the ready-to-paste store listing text |
/product register <name> <store> | Admin | Manually register a product that already exists outside the pipeline, skipping straight past submission |
/product view also has four buttons on the card itself: Add Note,
Set Links, Checklist, Format Post. Staff working from the card
don't need to remember the matching slash command.
Troubleshooting
| What you see | Usually means |
|---|---|
| "This feature is not enabled in this server." | products is off, or your server's key doesn't have it granted. Ask Ben. |
| "Cannot move X → Y." | Stages only advance one at a time, in order. The message names the one stage that's actually valid next. |
| "Checklist is not complete." on publish | Run /product checklist and see which items are still unticked. |
| "Must be at Parcel stage." on publish | Advance it through the remaining stages first. Publish only works from Parcel. |
| The forum thread didn't get created | product_forum_channel isn't set, or isn't an actual forum channel. Check with /config set. |
| No announcement went out on publish | That store has no channel set. Run /storeconfig set for it. |
| The staff thread is missing | product_thread_channel wasn't set at submission time, or the bot couldn't create a thread there. Check its permissions in that channel. |