====== Sprint 18 — Distribution, OTA & Channel Manager ======
===== Objectif du Sprint =====
Transformer la plateforme en véritable Channel Manager capable de diffuser automatiquement les biens sur les principaux canaux de réservation et de synchroniser les disponibilités, les tarifs et les réservations en temps réel.
À l'issue du Sprint 18 :
* Les biens sont publiés sur plusieurs plateformes
* Les calendriers sont synchronisés
* Les tarifs sont synchronisés
* Les réservations sont synchronisées
* Les surréservations sont évitées
* Les gestionnaires pilotent tous les canaux depuis une seule interface
Ce sprint constitue une étape stratégique majeure pour la commercialisation des biens.
----
====== Vision Architecture ======
===== Architecture cible =====
Plateforme
↓
Channel Manager
├── Airbnb
├── Booking.com
├── Vrbo / Abritel
├── Google Vacation Rentals
├── Expedia
└── iCal
↓
Synchronisation
↓
Catalogue Central
----
===== Source de vérité =====
La plateforme reste la source principale :
Biens
Tarifs
Disponibilités
Réservations
Les OTA reçoivent les données synchronisées.
----
====== Périmètre ======
===== Modules concernés =====
ChannelManagerModule
OTAModule
DistributionModule
AvailabilitySyncModule
RateSyncModule
ReservationSyncModule
ICalModule
----
====== User Stories ======
===== US-1801 : Connecter un canal =====
**En tant qu'administrateur**
Je souhaite connecter une plateforme OTA
Afin de diffuser mes biens.
----
===== Endpoint =====
POST /channels/connect
----
===== Plateformes =====
Airbnb
Booking.com
Vrbo
Expedia
Google VR
----
===== Données =====
Compte
Clé API
Identifiant OTA
Configuration
----
====== US-1802 : Consulter les canaux connectés ======
===== Endpoint =====
GET /channels
----
===== Informations =====
Canal
Statut
Dernière synchronisation
Nombre biens publiés
----
====== Distribution ======
===== US-1803 : Publier un bien =====
===== Endpoint =====
POST /distribution/properties/{id}/publish
----
===== Étapes =====
Bien
↓
Transformation
↓
Mapping OTA
↓
Publication
----
====== US-1804 : Dépublier un bien ======
===== Endpoint =====
POST /distribution/properties/{id}/unpublish
----
====== US-1805 : Gérer le mapping =====
===== Exemple =====
Property.title
↓
Airbnb.name
↓
Booking.property_name
----
====== Synchronisation Disponibilités ======
===== US-1806 : Synchroniser les calendriers =====
===== Endpoint =====
POST /sync/availability
----
===== Déclencheurs =====
Nouvelle réservation
Annulation
Blocage calendrier
Modification disponibilité
----
====== US-1807 : Importer les réservations OTA ======
===== Workflow =====
OTA
↓
Réservation
↓
Webhook
↓
Import
↓
Réservation locale
----
===== Résultat =====
Réservation unique
Blocage calendrier
----
====== Synchronisation Tarifs ======
===== US-1808 : Synchroniser les prix =====
===== Endpoint =====
POST /sync/rates
----
===== Sources =====
Tarif standard
Revenue Management
Tarifs saisonniers
----
====== US-1809 : Appliquer des majorations OTA ======
===== Exemple =====
Prix plateforme
100 €
Booking
+10 %
↓
110 €
----
===== Paramétrage =====
Par OTA
Par bien
Par période
----
====== Gestion des réservations ======
===== US-1810 : Import automatique =====
===== Sources =====
Airbnb
Booking
Vrbo
----
===== Contrôles =====
Doublons
Disponibilités
Paiements
----
====== US-1811 : Synchronisation des annulations ======
===== Workflow =====
OTA
↓
Annulation
↓
Mise à jour locale
↓
Libération calendrier
----
====== Prévention des surréservations ======
===== US-1812 : Verrouillage calendrier =====
===== Objectif =====
Empêcher :
Double réservation
Conflits OTA
Conflits manuels
----
===== Stratégie =====
Lock pessimiste
+
Synchronisation immédiate
----
====== iCal ======
===== US-1813 : Export iCal =====
===== Endpoint =====
GET /ical/properties/{id}
----
===== Compatibilité =====
Google Calendar
Apple Calendar
Outlook
Airbnb
Booking
----
====== US-1814 : Import iCal =====
===== Endpoint =====
POST /ical/import
----
====== Tableau de bord OTA ======
===== US-1815 : Consulter les performances =====
===== KPI =====
Réservations
CA
Occupation
Canal
Commission OTA
----
===== Répartition =====
Airbnb
Booking
Vrbo
Direct
----
====== Gestion des commissions ======
===== US-1816 : Calculer les commissions =====
===== Exemple =====
Réservation
1 000 €
Commission OTA
15 %
↓
150 €
----
===== Calcul =====
:contentReference[oaicite:0]{index=0}
----
====== Modèle Prisma ======
===== Channel =====
model Channel {
id String @id @default(uuid())
code String @unique
name String
active Boolean
}
----
===== ChannelConnection =====
model ChannelConnection {
id String @id @default(uuid())
tenantId String
channelId String
status String
credentials Json
}
----
===== PropertyDistribution =====
model PropertyDistribution {
id String @id @default(uuid())
propertyId String
channelId String
externalId String
published Boolean
}
----
===== SyncExecution =====
model SyncExecution {
id String @id @default(uuid())
channelId String
syncType String
status String
startedAt DateTime
completedAt DateTime?
}
----
===== ChannelReservation =====
model ChannelReservation {
id String @id @default(uuid())
reservationId String
channelId String
externalReference String
}
----
====== Architecture Backend ======
src/modules/channel-manager
├── channels
│
├── distribution
│
├── availability-sync
│
├── rate-sync
│
├── reservation-sync
│
├── mappings
│
└── ical
----
====== Domain Services ======
ChannelService
DistributionService
AvailabilitySyncService
RateSyncService
ReservationSyncService
IcalService
----
====== Connecteurs OTA ======
===== Airbnb =====
Airbnb Connector
----
===== Booking.com =====
Booking Connector
----
===== Vrbo =====
Vrbo Connector
----
===== Expedia =====
Expedia Connector
----
====== Événements métier ======
===== PropertyPublished =====
PropertyPublished
----
===== AvailabilitySynced =====
AvailabilitySynced
----
===== ReservationImported =====
ReservationImported
----
===== RateUpdated =====
RateUpdated
----
====== Swagger ======
===== Tags =====
Channels
Distribution
AvailabilitySync
RateSync
ReservationSync
ICal
----
===== Volume API =====
Environ :
40 endpoints
----
====== Frontend ======
===== Pages =====
/channel-manager
/channel-manager/channels
/channel-manager/distribution
/channel-manager/sync
/channel-manager/performance
/channel-manager/mappings
----
===== Composants =====
ChannelConnectionWizard
DistributionManager
SyncMonitor
ChannelPerformanceDashboard
MappingEditor
----
====== Dashboard Channel Manager ======
===== KPI =====
Biens publiés
Réservations OTA
CA OTA
Commissions
Synchronisations
Erreurs
----
====== Tests ======
===== Unitaires =====
DistributionService
AvailabilitySyncService
RateSyncService
ReservationSyncService
----
===== Intégration =====
Réservation OTA
↓
Webhook
↓
Import
↓
Blocage calendrier
↓
Synchronisation
----
===== E2E =====
Connexion Booking
↓
Publication bien
↓
Réservation OTA
↓
Import local
↓
Mise à jour disponibilité
↓
Synchronisation Airbnb
----
====== Définition de terminé ======
Le Sprint 18 est terminé lorsque :
* Airbnb connecté
* Booking.com connecté
* Vrbo connecté
* iCal opérationnel
* Synchronisation calendriers opérationnelle
* Synchronisation tarifs opérationnelle
* Synchronisation réservations opérationnelle
* Prévention des surréservations opérationnelle
* Swagger à jour
* Tests verts
* CI verte
----
====== Livrables ======
* ChannelManagerModule
* OTAModule
* DistributionModule
* AvailabilitySyncModule
* RateSyncModule
* ReservationSyncModule
* ICalModule
* DTO
* Swagger
* Tests
* Migrations Prisma
----
====== Bilan Release 3.4 ======
À l'issue du Sprint 18 :
* Distribution multi-canaux
* Synchronisation OTA
* Gestion centralisée des disponibilités
* Revenue Management connecté à la distribution
* Réduction du risque de surréservation
La plateforme devient un véritable PMS (Property Management System) couplé à un Channel Manager professionnel.
----
====== Sprint suivant ======
===== Sprint 19 — Gouvernance, Sécurité Avancée & Conformité =====
Objectif :
Atteindre un niveau de sécurité, conformité et gouvernance compatible avec les exigences des grands comptes et des réseaux internationaux.
Modules concernés :
SecurityModule
ComplianceModule
DataGovernanceModule
IdentityModule
RiskManagementModule
Fonctionnalités :
* MFA
* SSO SAML/OIDC
* Gestion des consentements
* RGPD avancé
* Journalisation légale
* Classification des données
* Gestion des risques
* Politiques de sécurité
À l'issue du Sprint 19, la plateforme sera prête pour des déploiements entreprise (Enterprise).