Ghiduri

Cum să construiești o aplicație de abonamente pentru sală: planuri, facturare, rezervări de clase și check-in

O aplicație pentru abonamente la sală le permite oamenilor să se înscrie, să plătească în fiecare lună, să rezerve clase și să facă check-in, în timp ce personalul vede cine este activ, cine a plătit și cine a venit. Pentru a construi una ai nevoie de conturi de membru, de planuri de abonament legate de abonamentele unui furnizor de plăți, de un orar de clase cu capacitate și liste de așteptare, de o metodă de check-in la intrare și de un tablou de bord pentru personal. Un constructor de aplicații cu AI poate produce rapid partea de bază. Partea grea sunt regulile banilor (înghețări, plăți eșuate, anulări, proratare) și asigurarea că accesul la intrare corespunde a ceea ce membrul a plătit efectiv.

Pornește de la modelul tău de abonament

Sălile și studiourile diferă mult. Notează:

  • Tipuri de planuri. Nelimitat lunar, în afara orelor de vârf, pachete de clase (10 clase), intrări ocazionale, plată anuală în avans, planuri pentru familie sau studenți.
  • Termenii contractului. Lunar cu reînnoire, perioadă minimă, perioadă de preaviz pentru anulare. Verifică regulile locale de protecție a consumatorilor privind contractele și anulările.
  • Ce include fiecare plan. Doar sala, doar clasele, ambele, locații specifice.
  • Înghețări. Pot membrii să facă pauză pentru călătorie sau accidentare? Pentru cât timp și există o taxă?
  • Taxă de înscriere, dacă există.
  • Clase. Program fix, capacitate pe clasă, liste de așteptare, reguli pentru anulări târzii și neprezentări.

O aplicație pentru un studio mic de yoga sau box, care vinde pachete de clase, este foarte diferită de una pentru o sală deschisă 24 de ore cu acces prin ușă. Construiește-o pentru a ta.

Ce are nevoie aplicația

Date

TabelCâmpuri-cheie
Membrinume, e-mail, telefon, persoană de contact în caz de urgență, declarație semnată la, token QR, stare
Planurinume, preț, perioadă de facturare, clase incluse (nelimitate sau un număr), ore de acces, activ da/nu
Abonamentemembru, plan, stare (activ, înghețat, întârziat la plată, anulat), data de început, data de sfârșit sau de reînnoire, ID-ul abonamentului de la furnizorul de plăți
Tipuri de clase și sesiuninume, antrenor, sală, ora de început, durata, capacitate
Rezervărisesiune, membru, stare (rezervat, pe listă de așteptare, anulat, prezent, neprezentat), creat la
Check-in-urimembru, oră, locație, metodă
Plățimembru, sumă, stare, dată, referința de la furnizor — oglindite din furnizorul de plăți

Menține starea abonamentului sincronizată cu furnizorul de plăți. Furnizorul este sursa de adevăr pentru faptul că o plată a reușit; aplicația ta își actualizează propria stare când furnizorul o notifică.

Pagini

  • Publice: planuri și prețuri, orarul, fluxul de înscriere (alegi planul, creezi contul, semnezi declarația, plătești).
  • Zona membrului: abonamentul meu, rezervările viitoare, rezervarea sau anularea unei clase, codul QR pentru check-in, istoricul plăților, cereri de înghețare sau de anulare.
  • Recepție: scanner pentru check-in, căutare de membri, clasele de azi cu listele de prezență.
  • Administrare pentru personal: membri, planuri, orar, plăți eșuate, rapoarte despre membrii activi, prezență și gradul de ocupare al claselor.

Permisiuni

Membrii văd doar propriile date. Antrenorii își văd listele de clase. Recepția poate face check-in și caută membri. Managerii se ocupă de planuri, rambursări și rapoarte. Notele despre sănătate și accidentări, colectate în formularele de înscriere, sunt sensibile; colectează doar ce ai nevoie și restricționează cine le poate vedea.

Părțile grele

Facturarea recurentă

Folosește funcția de abonamente a unui furnizor de plăți, în loc să-ți construiești propria facturare. Membrul introduce datele cardului pe pagina găzduită a furnizorului; furnizorul îl taxează la fiecare perioadă, reîncearcă plățile eșuate și trimite aplicației tale evenimente prin webhook (plată reușită, plată eșuată, abonament anulat). Aplicația ta schimbă starea abonamentului ca răspuns. Ghidul nostru despre adăugarea abonamentelor cu Stripe acoperă asta, iar adăugarea plăților acoperă noțiunile de bază.

Decide ce se întâmplă când o plată eșuează: o perioadă de grație de câteva zile, apoi „întârziat la plată” și fără check-in până se rezolvă, este o regulă frecventă.

Înghețări, upgrade-uri și anulări

O înghețare oprește de obicei facturarea și accesul pentru o perioadă stabilită. Schimbarea planului în mijlocul lunii ridică întrebarea prorătării (plata pentru o parte din perioadă). Majoritatea furnizorilor de plăți pot calcula prorata pentru tine. Anularea cu perioadă de preaviz înseamnă că abonamentul rămâne activ până la o dată viitoare. Scrie fiecare regulă și testeaz-o.

Capacitatea claselor și listele de așteptare

Aceeași problemă de dublă rezervare ca la orice aplicație de rezervări: verifică capacitatea pe server în momentul salvării rezervării, nu doar când se încarcă pagina. Când cineva anulează, oferă locul primei persoane de pe lista de așteptare. Decide fereastra pentru anulări târzii și dacă neprezentările pierd un credit de clasă.

Check-in și accesul prin ușă

Un cod QR din zona membrului, scanat la recepție, funcționează bine în sălile cu personal. Sălile fără personal sau cele deschise 24 de ore au de obicei nevoie de echipamente pentru uși, controlate de propriul sistem al echipamentului; o aplicație personalizată poate să le controleze doar dacă echipamentul are un API. Acesta este adesea factorul decisiv între a construi și a cumpăra.

Declarațiile

Multe săli cer noilor membri să accepte o declarație de răspundere sau un chestionar medical. Stochează cine a acceptat ce versiune și când. Formularea este un document juridic; ia-o de la un profesionist, nu de la un AI.

Un prim prompt care funcționează

Construiește o aplicație de abonamente pentru Ironside, o sală de forță cu o singură locație. Planuri: Nelimitat lunar (60 $/lună), În afara orelor de vârf (40 $/lună, în zilele lucrătoare între 9:00 și 16:00) și Pachet de 10 clase (120 $, o singură dată). Pagini publice: planuri, orarul săptămânal al claselor și un flux de înscriere în care oamenii aleg un plan, își creează un cont, acceptă o declarație și plătesc prin Stripe (abonamente pentru planurile lunare). Membrii au o zonă cu starea abonamentului, un cod QR pentru check-in, rezervarea claselor cu limite de capacitate și o listă de așteptare, plus un buton de cerere de înghețare. Personalul de la recepție se autentifică pe o pagină de scanare care verifică codul QR, arată dacă abonamentul este activ (și dacă este în intervalul din afara orelor de vârf pentru planul respectiv) și înregistrează check-in-ul. Managerii văd membrii, plățile eșuate, prezența și gradul de ocupare al claselor. Starea abonamentului se actualizează din webhook-urile Stripe. Salvează totul într-o bază de date. Design sobru și simplu; optimizat pentru telefon pentru membri și pentru tabletă la recepție.

Pași de construcție

  1. Planuri, orar și conturi de membru.
  2. Rezervarea claselor cu verificări ale capacității pe server și o listă de așteptare.
  3. Plăți în modul test: mai întâi pachetele de clase, o singură dată, apoi abonamentele și webhook-urile.
  4. Regulile stării abonamentului: activ, întârziat la plată, înghețat, anulat și ce permite fiecare.
  5. Scanerul de check-in care aplică aceste reguli.
  6. Vederile pentru personal și manageri, cu roluri.
  7. Acceptarea declarației cu versiune și marcaj de timp.
  8. Testează căile cu bani: plată eșuată, actualizare a cardului, înghețare, schimbare de plan, anulare cu preaviz, rambursare.
  9. Importă cu grijă membrii existenți; abonamentele cu card existente se mută de obicei prin procesul de migrare al furnizorului de plăți, nu prin aplicația ta.

Greșeli frecvente

  • Să ai încredere în indicatorul „plătit” al aplicației în loc de evenimentele furnizorului de plăți.
  • Verificarea capacității claselor doar în browser.
  • Lipsa unei perioade de grație pentru plățile eșuate; membrii sunt refuzați la intrare pentru că un card a expirat ieri.
  • Stocarea datelor cardului. Lasă furnizorul de plăți să le păstreze.
  • Colectarea unor informații medicale detaliate de care nu ai nevoie și lăsarea lor vizibile pentru tot personalul.
  • Promiterea accesului prin ușă înainte de a confirma că echipamentul tău poate fi controlat de aplicație.

Când software-ul de management pentru sală este alegerea mai bună

Software-ul dedicat pentru săli și studiouri se ocupă deja de facturare, înghețări, rezervarea claselor, check-in, integrarea accesului prin ușă, aplicații de membru cu brandul sălii și rapoarte. Pentru majoritatea sălilor, mai ales cele cu echipamente pentru uși sau cu mai multe locații, aceasta este alegerea mai bună. Compară câteva variante după funcțiile de care ai nevoie și după modul în care gestionează plecarea (exportul membrilor și al abonamentelor de plată).

Construiește-l pe al tău când administrezi un studio mic cu reguli simple și software-ul costă mai mult decât merită pentru tine, când modelul tău nu se potrivește (de exemplu, un hibrid de coaching, programe și clase) sau când vrei să construiești software pentru săli ca afacere. Dacă antrenezi clienți, mai degrabă decât să administrezi o facilitate, vezi cum începi o afacere de antrenor personal, iar pentru conținut online plătit, vezi cum construiești un site cu membri.

Construit cu Mythex

În Mythex descrii aplicația pentru sală în chat și o verifici în previzualizarea live, la dimensiunea telefonului și a tabletei. Agentul adaugă o bază de date Postgres dedicată atunci când membrii și rezervările trebuie salvate (sau scrie /database). Mythex nu include autentificare sau plăți integrate pentru aplicațiile tale: îți conectezi propriul cont și propriile chei Stripe, păstrate ca secrete ale proiectului (rețeta Stripe), și adaugi autentificarea membrilor cu o abordare proprie. Webhook-urile Stripe au nevoie de URL-ul public al aplicației, așa că publică înainte să le testezi cap-coadă. Pe Pro, Mythex poate împacheta și aplicația ca aplicație Android și iPhone, pentru testare internă pe Google Play și TestFlight.

Ca punct de plecare pentru design, șablonul pentru site-ul de studio de yoga are profiluri de antrenori și layouturi editoriale.

Întrebări

Ce are nevoie o aplicație de abonamente pentru sală?

Conturi de membru, planuri de abonament cu facturare recurentă, un program de clase pe care membrii îl pot rezerva cu limite de capacitate, check-in la intrare și o vedere pentru personal asupra membrilor, plăților și prezenței. Înghețările, pachetele de clase și declarațiile urmează de obicei.

Cum ar trebui o sală să perceapă plăți recurente?

Prin funcția de abonamente a unui furnizor de plăți, cum este Stripe Billing, unde membrul salvează un card, iar furnizorul îl taxează la fiecare perioadă, reîncearcă plățile eșuate și notifică aplicația ta. Nu stoca niciodată singur numerele cardurilor.

Cum fac membrii check-in?

De obicei arătând un cod QR din contul lor, pe care personalul sau o tabletă de la intrare îl scanează. Aplicația verifică dacă abonamentul este activ și înregistrează vizita.

Ar trebui să construiesc software pentru sală sau să cumpăr unul?

Majoritatea sălilor sunt mai bine servite de software-ul existent de management pentru săli, care se ocupă de facturare, de echipamentele de control al accesului și de aplicații. Construirea are sens pentru modele neobișnuite, pentru studiouri mici cu nevoi simple sau ca produs pe care intenționezi să-l vinzi altor săli.

Mythex · Pricing · Construiește orice cu AI · Șabloane pentru site-uri și aplicații · Mythex comparat · Glosar pentru crearea de aplicații cu AI · Instrumente gratuite pentru crearea de aplicații cu AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)