Skip to main content

Cum funcționează wave pricing

Wave pricing (prețuri pe tranșe) permite vânzarea produselor la prețuri diferite în funcție de momentul înregistrării. Fiecare tranșă are un preț și un stoc propriu; când stocul unei tranșe se epuizează, următoarea tranșă devine automat activă, la un preț mai mare.

Sistemul este identic pe toate tipurile de produse: pass-uri, workshop-uri și add-on-uri.


Conceptul de bază

O tranșă (wave) este o etapă de vânzare definită prin trei câmpuri:

CâmpDescriereExemplu
EtichetăNumele tranșei, vizibil și în interfața de înregistrare„Early Bird"
Preț (RON)Prețul produsului în cadrul acestei tranșe350
CantitateNumărul de locuri disponibile la acest preț50

Sub tranșe există un rând fixprețul standard — care se activează automat când toate tranșele s-au epuizat. Acesta funcționează ca plasă de siguranță: vânzările continuă la acest preț folosind stocul rezidual.


Relația dintre stoc și tranșe

Aceasta este partea cea mai importantă de înțeles.

Stocul total al produsului (câmpul „Stoc" din cardul „Stoc & Wave Pricing") reprezintă numărul curent de locuri disponibile. Suma cantităților tuturor tranșelor nu poate depăși stocul total.

Formula

Stoc rezidual (preț standard) = Stoc total − Suma cantităților tranșelor

Exemplu concret:

ElementValoare
Stoc total200
Early Bird50 locuri
Standard100 locuri
Last Minute30 locuri
Stoc rezidual (preț standard)20 locuri

Cele 20 de locuri rămase sunt vândute automat la prețul standard, fără tranșă.

Stocul scade la fiecare vânzare

Cantitățile tranșelor reprezintă stocul curent, nu stocul inițial. Când un participant cumpără un loc din tranșa „Early Bird", cantitatea acelei tranșe scade cu 1. Când ajunge la 0, tranșa se marchează ca epuizată și următoarea devine activă.

Ce se întâmplă când suma depășește stocul

Dacă suma cantităților tranșelor depășește stocul total:

  1. Vizual — apare un mesaj de eroare roșu sub câmpul de stoc: „Suma cantităților tranșelor (X) depășește stocul total (Y). Salvarea nu este permisă."
  2. Salvare blocată — formularul nu poate fi trimis (butonul de salvare este dezactivat client-side)
  3. Server-side — chiar dacă se ocolește validarea client, serverul respinge salvarea cu aceeași eroare
Ajustare automată

Când modifici cantitatea unei tranșe, stocul rezidual din coloana „Cantitate" de pe rândul prețului standard se actualizează instant, fără a fi nevoie să salvezi.


Activarea automată a tranșelor

Tranșele sunt secvențiale — ordinea din tabel determină ordinea de activare:

  1. Prima tranșă (cea mai de sus) este activă de la început.
  2. Când stocul primei tranșe ajunge la 0, a doua tranșă devine activă automat.
  3. Procesul continuă până la ultima tranșă.
  4. Când toate tranșele s-au epuizat, prețul standard devine activ.

Nu este necesară nicio intervenție manuală — funcția dentisity_get_active_wave_price() determină automat prețul corect la fiecare afișare.

Indicatori vizuali

În tabelul de administrare, fiecare rând indică starea tranșei:

IndicatorStareDescriere
Bară verde pe stângaActivTranșa are stoc disponibil
Rând estompatEpuizatCantitatea a ajuns la 0
Rând galben (preț standard)RezidualLocurile rămase după epuizarea tuturor tranșelor
Tabelul wave cu o tranșă activă (bară verde), una epuizată (estompat) și rândul de preț standard (galben)

Structura cardului „Stoc & Wave Pricing"

Cardul apare identic în editorul de pass-uri, workshop-uri și add-on-uri:

┌─────────────────────────────────────────┐
│ Stoc & Wave Pricing │
│ Prețuri pe tranșe │
├─────────────────────────────────────────┤
│ │
│ Stoc [pass/workshop/add-on] │
│ ☐ Nelimitat │
│ [___] locuri disponibile acum │
│ │
│ ┌──┬──────────┬──────┬─────┬──┐ │
│ │⠿ │ Tranșă │ Preț │ Qty │✕ │ │
│ ├──┼──────────┼──────┼─────┼──┤ │
│ │⠿ │ Early B. │ 350 │ 50 │✕ │ ← activ│
│ │⠿ │ Standard │ 450 │ 100 │✕ │ │
│ ├──┼──────────┼──────┼─────┼──┤ │
│ │🔒│ Preț std │ 550 │ 50 │ │ ← fix │
│ └──┴──────────┴──────┴─────┴──┘ │
│ [+ Adaugă tranșă] │
│ │
└─────────────────────────────────────────┘

Elementele cardului

ElementFuncție
Stoc totalNumărul curent de locuri disponibile. Poate fi setat pe „Nelimitat".
Tranșe (rânduri albe)Fiecare tranșă are etichetă, preț și cantitate. Se pot adăuga, șterge și reordona.
Preț standard (rând galben)Rând fix, nu poate fi șters. Prețul la care se vinde când toate tranșele s-au epuizat. Coloana „Cantitate" arată stocul rezidual calculat automat.
Buton „+ Adaugă tranșă"Adaugă un rând nou gol sub ultima tranșă.

Configurare pas cu pas

1. Setează stocul total

Deschide editorul produsului (pass, workshop sau add-on) și în cardul Stoc & Wave Pricing:

  • Dacă produsul are locuri limitate: introdu numărul în câmpul de stoc (ex.: 200)
  • Dacă produsul nu are limită: bifează Nelimitat — în acest caz validarea cantitate-vs-stoc este dezactivată

2. Adaugă tranșele

Apasă + Adaugă tranșă pentru fiecare etapă de preț. Completează:

  • Etichetă: un nume clar (ex.: „Early Bird", „Standard", „Last Minute")
  • Preț (RON): prețul la care se vinde în această tranșă
  • Cantitate: câte locuri sunt disponibile la acest preț
Ordinea contează

Adaugă tranșele în ordinea în care vrei să se activeze — de obicei de la cel mai ieftin la cel mai scump. Poți reordona oricând prin drag and drop (trage de handlerul ⠿ din stânga).

3. Setează prețul standard

Pe rândul galben (ultimul rând din tabel), introdu prețul la care se vinde produsul după epuizarea tuturor tranșelor.

Coloana „Cantitate" de pe acest rând arată automat câte locuri rămân pentru prețul standard — nu trebuie completată manual.

4. Verifică validarea

Înainte de salvare, verifică:

  • Stocul rezidual (pe rândul galben) este un număr pozitiv sau zero
  • Nu apare mesajul roșu de eroare sub câmpul de stoc

5. Salvează

Apasă butonul de salvare din bara fixă de jos.


Exemple practice

Configurare tipică — pass de congres

TranșăPreț (RON)Cantitate
Early Bird35050
Înregistrare standard450150
Last Minute55050

Cu stoc total = 250, stocul rezidual (preț standard) = 0. Toate locurile sunt distribuite în tranșe.

Cronologie automată:

  1. Primii 50 de participanți plătesc 350 RON
  2. Următorii 150 plătesc 450 RON
  3. Ultimii 50 plătesc 550 RON
  4. Produsul devine indisponibil (stoc epuizat)

Configurare cu stoc rezidual — workshop

TranșăPreț (RON)Cantitate
Preînregistrare10020

Cu stoc total = 50 și preț standard = 150 RON:

  • Primii 20 de participanți plătesc 100 RON (tranșa „Preînregistrare")
  • Următorii 30 plătesc 150 RON (prețul standard, stoc rezidual = 30)

Configurare fără tranșe — preț fix

Dacă nu adaugi nicio tranșă, toți participanții plătesc prețul standard. Tabelul arată doar rândul galben cu prețul și stocul total.


Simulare interactivă

Componenta de mai jos reproduce fidel tabelul de wave pricing din admin. Modifică valorile pentru a vedea cum se calculează stocul rezidual și cum se comportă validarea:

Stoc & wave pricing

Prețuri pe tranșe

Când o tranșă se epuizează, se trece automat la tranșa următoare (mai scumpă), apoi la prețul standard.

Stoc totallocuri disponibile acum
TranșăPreț (RON)Cantitate
🔒Preț standard0
Val activ Epuizat Preț standard

Comportament pe stoc nelimitat

Dacă bifezi Nelimitat pe câmpul de stoc:

  • Validarea cantitate-vs-stoc este dezactivată
  • Rândul prețului standard arată „Nelimitat" în loc de un număr
  • Poți configura tranșe cu orice cantitate — nu există limită superioară
  • Tranșele funcționează la fel: se epuizează secvențial, apoi prețul standard preia

Întrebări frecvente

Pot modifica o tranșă după ce s-au vândut locuri din ea?

Da, dar cu atenție. Cantitatea reflectă stocul curent (nu cel inițial), deci dacă s-au vândut 30 din 50 de locuri Early Bird, cantitatea arată 20. Dacă reduci cantitatea sub 0, validarea blochează salvarea.

Ce se întâmplă dacă șterg o tranșă activă?

Următoarea tranșă devine activă automat. Dacă nu mai există tranșe, prețul standard preia.

Pot avea tranșe cu preț 0?

Nu. O tranșă fără preț (sau cu preț 0) nu se salvează — este ignorată la salvare.

Ordinea tranșelor contează?

Da. Ordinea din tabel = ordinea de activare. Prima tranșă (cea de sus) este activă prima. Reordonează prin drag and drop dacă vrei să schimbi succesiunea.