SmartCart SaaS Base v1
Socle stable de la plateforme multi-tenant SmartCart, figé avant les prochaines fonctionnalités IA. Landing, auth, dashboard marchand, Super Admin, MCP server et infrastructure Supabase sont opérationnels.
Journal des versions — fonctionnalités livrées
Page d'accueil marketing avec CTAs vers démo, login, signup, super admin.
Email/password et Google OAuth, messages d'erreur traduits en français, redirections next=.
Instance de démonstration publique accessible sans compte, fallback localStorage.
Vue d'ensemble : KPI produits, images, recommandations, plan actif.
CRUD complet avec édition (/app/products/$id/edit), import CSV, upload images vers bucket product-images.
Logo, couleurs primaire/secondaire par marchand, sauvegarde en base.
Plans Starter/Pro/Business/Enterprise, historique factures mocké, hooks Stripe préparés.
Table usage_events + UsageService (produits, images, calendrier, imports).
RLS active sur toutes les tables, GRANTs explicites, bucket product-images créé.
Espace plateforme séparé : marchands, abonnements, monitoring, checklist, release notes.
4 outils exposés (list_products, create_product, list_calendar_events, get_branding) via OAuth Supabase, consent page dédiée, RLS appliquée.
Bloc d'intégration MCP visible dans /app/integrations.
Fonction get_storefront(slug) scoppée remplaçant les lectures publiques (branding, merchants, products, images) — pas de fuite email/plan, pas d'énumération.
Page /super-admin/checklist : auth, RLS, storage, MCP, diagnostics.
Fusion Planner + Calendrier dans /app/calendar : vues Jour / Semaine / Mois / Agenda, création d'événements merchandising intégrée.
39 événements e-commerce système importables (soldes, fêtes, temps forts), récurrence annuelle via recurrence_rule.
Moteur d'association produit/événement (src/lib/merchandising/matching.ts) pour suggestions merchandising.
Storefront public unique par marchand, reflétant instantanément le branding (logo, couleurs, style UI).
Pages /s/{slug}/produit/{id} avec fiche complète et ajout au panier.
Panier persistant (localStorage), parcours /s/{slug}/checkout, commande validée avec référence et statut de paiement simulé.
Prévisualisation front-office du marchand : branding dynamique, produits suggérés par événements et météo.
Données compartimentées par merchant_id (produits, clients, commandes, transporteurs, déclinaisons) — chaque marchand a son back-office et sa boutique propres.
Accès admin obligatoirement authentifié (redirection /login), bouton de déconnexion avec purge de session.
Liste, création et fiche détaillée : identité, adresses de facturation/livraison, historique commandes, diagramme de Kiviat (personality insights), produits recommandés avec scoring IA.
Page /app/orders : référence, nouveau client, livraison, client, total, paiement, statut, date, actions — persistance en base par marchand, badge Démo.
Gestion des options de livraison et tarifs (/app/carriers).
Sous-menu Produits > Déclinaisons : attributs et valeurs centralisés (couleurs, textures, tailles, pointures).
API Open-Meteo, géolocalisation navigateur, ville détectée par reverse-geocoding, affichage du magasin le plus proche (formule de Haversine, rayon 50 km).
Logo marchand et couleurs primaires/secondaires appliqués au widget, intégré pleine largeur dans /app/preview.
Détection couleur dominante et textures (léopard, zèbre, girafe) à l'upload, aperçu texture dans « Couleur / texture », tags merchandising automatiques.
Extraction automatique de la palette primaire/secondaire au chargement du logo (avec confirmation) en onboarding et branding.
Parcours réduit à 4 étapes, option plateforme SmartCart, vérification email réelle (Supabase) avant accès à /app/onboarding.
Bannière cookies site-wide, bascules par catégorie (nécessaires, préférences, analytics, marketing, IA), persistance localStorage, page /cookies.
Mentions légales, Cookies & IA, Mentions RGPD (/rgpd) : finalités, bases légales, droits, durées de conservation.
Export JSON horodaté depuis Réglages + dossier complet (profil, préférences, événements, panier, produits) téléchargeable.
Formulaire de demande RGPD (accès, rectification, effacement, portabilité, opposition) avec accusé de réception JSON référencé.
Journal horodaté des exports, consentements, demandes et suppressions, avec recherche plein texte, filtres par type et par période.
Suppression en un clic avec double confirmation (saisie de « SUPPRIMER ») + bouton « Supprimer mes données » purgeant le localStorage de démo sur /rgpd.
Checklist — Prêt pour production
Limites actuelles
- Pas d'intégration Stripe réelle — la page /app/billing utilise un historique de factures mocké.
- Recommandations IA : scoring partiellement simulé côté fiches clients.
- Analytics Super Admin (croissance, MRR/ARR, churn) : données de démonstration mockées.
- Monitoring plateforme partiellement mocké — seul le ping Supabase DB est réel.
- Boutiques servies en sous-dossiers /s/{slug} — les sous-domaines uniques sont prévus pour plus tard.
- Les données de démo non authentifiées restent en localStorage (purgeables via /rgpd).
Prochaines étapes recommandées
Checkout, portail client, webhooks, sync plans → colonnes merchants.plan / status.
Migrer /s/{slug} vers {slug}.domaine.tld par marchand.
Brancher Lovable AI Gateway pour des recommandations produits temps réel.
Table mcp_calls + Super Admin timeline des appels par marchand.
Health checks Auth/Storage/Realtime, latence API, alerting.
Vitest pour services (UsageService, adapters), Playwright pour parcours prospect + marchand.