{"id":94434,"plugin_id":"plugin_asdk_app_6a91e4895594819184be7d56ec39bd54","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-13T06:08:53.264Z","digest":"136d4fa6a68c3151aafbd0371b6171e9a75d9b7774cb43bf4bb11b8d719a0b23","against":null,"payload":{"description":"Build an order form, booking page, appointment or reservation form, waitlist or RSVP on Tessryx, with Stripe Payment Links for payment, one booking per slot, spam protection and an email to the owner for each new order. Use when the user asks for bookings, appointments, reservations, an order form, taking payments or selling something on their site.","included_files":[],"name":"orders-and-bookings","skill_md_contents":"---\nname: orders-and-bookings\ndescription: Build an order form, booking page, appointment or reservation form, waitlist or RSVP on Tessryx, with Stripe Payment Links for payment, one booking per slot, spam protection and an email to the owner for each new order. Use when the user asks for bookings, appointments, reservations, an order form, taking payments or selling something on their site.\n---\n\n# Orders and bookings\n\nA booking or order page on Tessryx is a form page plus a POST route that saves each submission as a record. Payments go through the owner's own Stripe Payment Links, confirmed by a verified Stripe webhook. Follow `build-small-first` for the build order; this skill adds the order-specific parts.\n\nThe user's explicit instructions always take priority over this skill.\n\n## Read first (only these)\n\n- `whoami`, then the `build-a-page` guide.\n- The `workflows` guide, sections \"Claiming a unique key: `create`\" (one booking per slot) and \"Email\".\n- The `endpoints` guide, section \"Webhooks from another service\" (the Stripe part, \"Taking payments\"), and \"Stop form spam with Turnstile\" if the form is public.\n\n## First version (one sitting)\n\n1. A **schema** for an order or booking, and a datafile the owner edits for what's offered (services, times, products).\n2. The **form page**, and a **POST route** that validates and saves each submission. For a slot that only one person may take, write it with `operation: \"create\"` keyed on the slot, so two people can't both get it.\n3. An **email** to the owner's team for each new order or booking.\n4. Preview, publish, give the link.\n\n## Taking payment (when asked)\n\n- There's no checkout built in. The owner makes a Stripe Payment Link per product in their Stripe dashboard; the page links to it with `?client_reference_id=<order id>`.\n- A POST route with `verify: { \"provider\": \"stripe\", \"secret\": \"<slug>\" }` receives `checkout.session.completed` and marks the order paid. The user stores the Stripe signing secret at https://tessryx.io/dashboard/secrets.\n- Skip an event id already handled.\n\n## Keep in mind\n\n- **Look:** match the business (a salon, a food truck, a tutor) and keep the form short and obvious: what's offered, pick a time, pay, done. Show a clear confirmation.\n- The owner's own Stripe account takes the money; Tessryx doesn't.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}