Table des matières

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 :

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 :


Livrables


Bilan Release 3.4

À l'issue du Sprint 18 :

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 :

À l'issue du Sprint 19, la plateforme sera prête pour des déploiements entreprise (Enterprise).

DokuWiki Appliance - Powered by TurnKey Linux