reorder_plans
Pin the order a project's plans appear in on the portal and in the project's bot, or reset it to the built-in order. Emits plan.order_changed.
Purpose
Arrange the storefront. Buyers see plans in the order you pass; anything you leave out keeps the built-in order (passes, then seasons, then subscriptions, cheapest first) after the pinned plans. An empty list clears every pin. This is the same write the dashboard's Arrange Storefront Order drag-and-drop performs.
Inactive plans may be pinned
Only active plans are shown to buyers, but you may include an inactive plan so it takes its place the moment it is published. The response lists active plans only, in the order buyers see them.
Required ability
project-subscription-plan:update
Input schema
{
"type": "object",
"required": ["project_id", "plan_ids"],
"properties": {
"project_id": {
"type": "string",
"description": "UUID of the project whose storefront is arranged."
},
"plan_ids": {
"type": "array",
"items": { "type": "string" },
"description": "Plan UUIDs in the order buyers should see them. Empty clears every pin and restores the built-in order."
}
}
}Output shape
{
"data": {
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"plan_ids": [
"c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",
"b1a7c3d5-2e48-4f60-9a1b-7c5d3e820f94"
],
"plans": [
{
"id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",
"name": "Weekly Football Pass",
"kind": "pass_series",
"active": true,
"position": 0
}
]
}
}Each entry in plans is the same row shape list_plans and get_plan return.
Errors
| Code | When |
|---|---|
VALIDATION_FAILED | An id in plan_ids is not a plan of this project. |
RESOURCE_NOT_FOUND | The project does not exist or the token cannot see it. |
Example prompts
"Show the Weekly Football Pass first on the storefront, then the four daily passes."
"Reset the plan order for project
7f3d1c92-…to the default."
How is this guide?
remind_pass_window_queue
Nudge everyone who bought a window but has not come through their grant yet, re-sending it. Messages real people.
start_next_season
Duplicate a finished pass series into its next season — a new inactive pass_series plan with the same settings, an empty slate, and the old season linked to it. Not idempotent.