Alcrro Shop
1 / 4Features
Shipped18
- Auth — register, login, JWT cookie, roluri
- Catalog produse cu 8+ filtre URL-persistente
- Multi-vendor — apply/approve, seller picker
- Vendor dashboard — 6 secțiuni
- Coș de cumpărături
- Checkout multi-pas (coș → detalii → confirmare)
- Plăți Stripe — PaymentIntents, carduri salvate, CVV-only
- Stripe Webhooks — sync automat comandă
- Comenzi — timeline, inline payment, anulare
- AlcrroCard — puncte, niveluri, credite, referral
- Sistem vouchere — vendor, global, reward automat
- Calculator rate bancare (BT, ING, Raiffeisen, BCR)
- Profil utilizator — adrese, carduri, avatar crop
- Admin panel — aprobare vendori, management comenzi
- Recenzii & rating cu recalcul automat
- Dark mode cu CSS custom properties
- Newsletter cu Resend
- Upload imagini Cloudinary (produse + avatar)
Planned6
- Email notificări comenzi (confirmare, expediere)
- Integrare curier AWB real (Fan Courier / DPD)
- Full-text search cu MongoDB Atlas Search
- Vendor analytics — grafice vânzări, top produse
- Recomandări produse AI
- PWA + notificări push
Database schema
Colecție unificată pentru toți utilizatorii. Rolul determină accesul la rute și dashboard-uri. stripeCustomerId creat lazy la prima operație Stripe.
Profilul business al unui vendor. Creat la aprobare de admin. Conține date firmă (CUI, tip entitate), locații cu program și politica de retur.
Mongoose discriminator pattern — o singură colecție, câmpuri specifice per categorie. Variantele conțin preț, stoc și imagini. Rating recalculat automat la save/delete review.
Adresele de livrare ale unui user. Maximum 5 per cont. Pre-save hook dezactivează celelalte adrese default la setarea uneia noi.
Index unic (product, user) — un review per produs per user. Post-save hook recalculează rating.average și rating.count pe produs prin aggregation.
items și deliveryAddress sunt snapshot-uri — prețul și adresa rămân fixe chiar dacă produsul/adresa user-ului se modifică ulterior.
Un card per user, creat automat la înregistrare. Tier recalculat via pre-save: standard (<500 pts), silver (≥500), gold (≥2000). Multiplicatori: 1.0× / 1.1× / 1.25×.
Log imutabil al tuturor mișcărilor de puncte și credite. Folosit pentru istoricul din profil și reconcilierea Stripe.
Trei tipuri: global (admin), vendor (creat de vendor, max 10), reward (emis automat după livrare). Validare și discount calculate server-side la createOrder.
Un singur document per vendor (upsert). Dacă enabled=true, sistemul emite automat un voucher reward cumpărătorului după livrarea comenzii.