Sortable by status and orders. Row actions: Edit, Pause (hides from search, keeps URL), Duplicate, Delete (drafts only).2
1 Overview2 Packages3 Description and FAQ4 Gallery5 Publish
Overview3
I will bring a high-energy street dance party to your child's birthday
Start with "I will" to read like the service marketplace style. 68 / 80
Children's birthday parties
Street dance
4 to 7, 8 to 12
kids party ×street dance ×Leeds ×hip hop ×
I travel to the customer
At least 7 days notice
Instant book (if dates free)
Packages4
BasicRequired
Mini Pop
45 minute routine party
120
45 minutes
Up to 12 children
Within 10 miles
Learn one routine
Music and speaker
Warm-up games
Certificates for guests
Extra revision / reshoot
StandardRecommended
Party Star
90 minute dance party with games
180
90 minutes
Up to 20 children
Within 15 miles
Learn one routine
Music and speaker
Warm-up games
Certificates for guests
Freeze dance competition
PremiumOptional
Superstar
2 hour show-stopper with video
260
2 hours
Up to 30 children
Within 25 miles
Learn one routine
Music and speaker
Warm-up games
Certificates for guests
Filmed routine for parents
Prices above are examples. Rows are the same across columns so customers can compare. Basic is required; Standard and Premium can be switched off with a toggle.5
Page header. Lists service count against the plan limit (see 41-membership-pricing.html). At the limit the create button is disabled with "Upgrade to add more services" linking to 53-membership-billing.html.
Service list. One row per service: title, category, starting price (lowest package), status (Draft, In review, Live, Paused, Rejected), orders count. Pause keeps URL but removes from search. New and edited services go through light moderation: auto-checks first, human review within 1 working day (example).
Overview. Title required, unique per teacher. Category from the experiences taxonomy. Delivery options: I travel, customers come to me, online. Booking type: Instant book (fixed package, uses availability) or Request only. Lead time blocks short-notice instant bookings.
Package columns. Basic, Standard, Premium use identical rows (name, short description, price, duration, group size, travel, includes). Price min GBP 10, max GBP 5,000 (example limits). Standard price must be at least Basic, Premium at least Standard, else "Premium should cost at least as much as Standard." Includes list is a controlled set plus custom items (max 10). Feeds the comparison table on 07-service-detail.html.
Package notes. All figures are examples. Prices are the total for the session, commission is deducted at payout and shown in the customer price breakdown on 22-checkout.html. Basic is mandatory; a toggle disables the other two.
Add-ons. Name, price, optional extra duration, price type (fixed or per child). Maximum 8. Add-ons appear in the booking form (20-booking-request.html) and in offers (49-request-detail-offer.html).
Custom quote. When on, service page shows "Request a custom quote" which sends a request instead of instant book. Message is shown verbatim.
Description, FAQ, gallery. Rich text limited to bold, lists and links to popdance.co.uk. Contact details blocked. Gallery images min 1200 x 800, first image is cover. FAQ output as FAQPage structured data.
Publish. Checklist must pass before Publish is enabled. Saving as draft needs only a title. Publishing creates /service/[slug]. Analytics: service_created, service_published, package_count.
Mobile
The service list becomes cards. The three package columns become a tabbed view (Basic | Standard | Premium) with a "Compare" summary at the end. Steps collapse to "Step 2 of 5". Save draft and Next are a sticky bottom bar.
States
Empty list: "Create your first service. Teachers with 3 services get 2x more views (example)" with a Duplicate from template option. Autosave of drafts every 30 seconds. Validation: field-level errors and a summary at the top. Publish blocked until the profile is approved: "Services go live once your profile is approved." Rejected: reason from moderator shown on the row. Upload error: retry. Unsaved changes prompt when leaving.