Documentation des APIs elloha   v2.6

Introduction

Généralités

Les APIs mises à disposition par elloha permettent de réaliser un processus complet de réservation depuis n'importe-quelle plateforme.

Ce processus de réservation se déroule en 4 étapes distinctes :

  • Etape 1 : la recherche globale de disponibilité, qui permet de retourner tous les produits disponibles selon des critères de recherche. Les produits sont retournés de manière simplifiée avec un prix "à partir de".
  • Etape 2 : la disponibilité détaillée d'un produit avec l'ensemble de ses offres pouvant être réservées et leurs tarifs associés.
  • Etape 3 : la mise au panier d'une ou plusieurs offres, via l'appel au moteur de réservation elloha.
  • Etape 4 : la finalisation de la commande avec le paiement, intervenant sur le moteur de réservation elloha.


Cette documentation permet de détailler l'ensemble de ces étapes, et ceci pour chacune des principales catégories de produits gérées par elloha, à savoir :

  • Les hébergements
  • Les activités
  • Les restaurants

Même si les APIs appelées ne diffèrent pas, chaque catégorie est traitée de manière indépendante dans cette documentation, ceci pour les raisons suivantes :

  • Chaque catégorie possède des subtilités, que ce soit dans les requêtes ou dans les réponses à ces requêtes, qui sont propres à cette catégorie.
  • Les APIs ne permettent pas de retourner, dans une même réponse, des produits de différentes catégories : chaque recherche doit être liée à une catégorie bien précise.

Historique des versions

Version Date Description
v1.0 27/10/2017 Création du document avec la partie "Hébergements".
v1.1 02/11/2017 Ajout des parties "Activités", "Restaurants" et "Autres catégories".
v1.2 06/11/2017 Ajout de la possibilité de filtrer en fonction d'une liste de produits.
v1.3 25/01/2021 Ajout de l’API validation des QR codes.
v1.4 28/01/2021 Ajout des propriétés de groupe pour les formules.
v1.5 08/02/2021 Ajout de recherche sur le premier jour présentant des disponibilités.
v1.6 10/03/2021 Mise à jour de l’API des QR codes.
v1.7 07/06/2021 Ajout du filtrage par liste de prestations.
v1.8 02/07/2021 Ajout du paramètre de recherche "ReturnInternalOffers", ajout des propriétés "PensionTypeIncluded" et "IsPersonNumberDependant" dans les blocs "Offers/Rates", ajout des propriétés "IdType" et "Type" dans les blocs "Options".
v1.9 21/07/2021 Ajout des produits boutique.
v2.0 09/03/2022 Ajout de nouveaux modes de recherche pour les activités : "SearchFormulas" et "ReturnAllHours".
v2.1 08/06/2022 Ajout du nouveau mode de recherche : "ReturnCompleteOffers".
v2.2 17/10/2022 Ajout de précisions sur le mode de recherche : "ReturnInternalOffers".
v2.3 17/05/2023 Ajout du nouveau mode de recherche : "Categories".
v2.4 17/05/2023 Ajout du stock des formules lors d'un SearchFormulas=true.
v2.5 15/01/2024 Ajout du champ "note" dans "rate" lors d’une recherche de disponibilité détaillée.
v2.6 07/05/2024 Ajout des propriétés ExternalSystem et IdFormulaExternal lors de recherches de disponibilité globale et de disponibilité de formules.

Accès aux APIs

Généralités

Les APIs elloha sont accessibles via l'URL :
https://api.elloha.com/Availabilities


L'URL ci-dessus doit être appelée avec la méthode POST et en appliquant les headers suivants :

Header Obligatoire Valeur
accept oui application/json
culture oui Code de la culture souhaitée : fr-FR pour le français, en-GB pour l'anglais, es-ES pour l'espagnol... (voir https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx pour une liste complète)

Il est nécessaire de vous identifier auprès de nos services via mail à api@elloha.com

Merci de nous fournir, si c'est votre première demande :

  • la raison sociale, adresse et site web de votre structure
  • le nom, prénom et adresse mail d'un contact technique

Dans tous les cas nous avons besoin pour chaque projet de:

  • la raison sociale du client elloha qui vous a missionné
  • le site web ou l'application concernés
  • toutes vos IP de Production et de pre-Production amenées à accéder aux APIs
  • l'idBookingEngine que vous allez utiliser dans vos requêtes

En retour nous vous confirmerons la déclaration de vos IPs et nous vous fournirons un header à positionner de votre côté lors de chaque appel à l’API. Ce header permettra de vous identifier et de vous accorder des quotas d'APIs personnalisés pour chaque projet.

Le header en question doit se nommer :

  • elloha-client-id
et sa valeur sera par exemple :
  • otclient-agenceweb_


Codes sources

Ci-dessous figurent plusieurs exemples de codes sources d'appel aux APIs elloha, selon les langages de programmation les plus utilisés :

Copier

var data = "{\"IdBookingEngine\": \"b68c6848-b7d9-4083-91f0-3de6f065280e\", \"StartDate\": \"2017-11-15\"}";

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
	console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.elloha.com/Availabilities");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("culture", "fr-FR")

xhr.send(data);

Copier

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.elloha.com/Availabilities",
  "method": "POST",
  "headers": {
	"accept": "application/json",
	"culture": "fr-FR"
  },
  "data": "{\"IdBookingEngine\": \"b68c6848-b7d9-4083-91f0-3de6f065280e\", \"StartDate\": \"2017-11-15\"}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

Copier

$request = new HttpRequest();
$request->setUrl('https://api.elloha.com/Availabilities');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'culture' => 'fr-FR',
  'accept' => 'application/json'
));

$request->setBody('{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
    "StartDate": "2017-11-15"
}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

Copier

import requests

url = "https://api.elloha.com/Availabilities"

payload = "{\"IdBookingEngine\": \"b68c6848-b7d9-4083-91f0-3de6f065280e\", \"StartDate\": \"2017-11-15\"}"
headers = {
    'accept': "application/json",
    'culture': "fr-FR"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Copier

require 'uri'
require 'net/http'

url = URI("https://api.elloha.com/Availabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["culture"] = 'fr-FR'
request.body = "{\"IdBookingEngine\": \"b68c6848-b7d9-4083-91f0-3de6f065280e\", \"StartDate\": \"2017-11-15\"}"

response = http.request(request)
puts response.read_body

Copier

var client = new RestClient("https://api.elloha.com/Availabilities");
var request = new RestRequest(Method.POST);
request.AddHeader("culture", "fr-FR");
request.AddHeader("accept", "application/json");
request.AddParameter("undefined"
	, "{\"IdBookingEngine\": \"b68c6848-b7d9-4083-91f0-3de6f065280e\", \"StartDate\": \"2017-11-15\"}"
	, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Copier

import Foundation

let headers = [
  "accept": "application/json",
  "culture": "fr-FR"
]

let postData = NSData(data: "{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
    "StartDate": "2017-11-15"
}".data(using: String.Encoding.utf8)!)

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elloha.com/Availabilities")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()

Copier

curl --request POST \
  --url https://api.elloha.com/Availabilities \
  --header 'accept: application/json' \
  --header 'culture: fr-FR' \
  --data '{"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e","StartDate": "2017-11-15"}'

Hébergements

Généralités

Dans elloha, les hébergements sont répartis entre plusieurs types, chacun de ces types étant identifié par un code qui leur est dédié :

  • Hotel pour caractériser les hôtels.
  • BedAndBreakfast pour caractériser les chambres d'hôtes.
  • ApartmentVillaOrCottage pour caractériser les appartements, villas et gîtes.
  • TouristHome pour caractériser les résidences de tourisme.
  • GroupAccommodation pour caractériser les hébergements collectifs.
  • Camping pour caractériser les campings.
  • HolidayVillage pour caractériser les villages vacances.
  • Stay pour caractériser les séjours.


Via les APIs elloha, il est alors possible de filtrer sur l'un de ces types afin de mieux caractériser la recherche globale de disponibilité (étape 1), avant de cibler un produit précis via la transaction de disponibilité détaillée (étape 2). Il est également possible d'effectuer une recherche sur la présence de plusieurs chambres (pour les hôtels ou chambres d'hôtes) ou de plusieurs hébergements (pour les autres types), en définissant une occupation précise pour chacune de ces chambres ou hébergements. L'ensemble des possibilités de filtrage sont détaillées dans le paragraphe suivant.

Recherche globale

La recherche globale, tout comme l'ensemble des recherches de disponibilités, s'effectue via l'envoi aux APIs elloha d'une transaction au format JSON (pour plus de détails sur la façon d'appeler les APIs elloha, se référer à la section Accès aux APIs).


Transaction de recherche

La transaction de recherche globale permet de préciser les dates de séjour, l'occupation demandée répartie sur un ou plusieurs hébergements, ainsi que le type d'hébergement éventuellement recherché. En marge de ces critères de base sont proposés d'autres filtres, également décrits ci-dessous, qui permettent d'affiner selon vos besoins la recherche effectuée.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e"
StartDate date non Date de début de séjour au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-15"
EndDate date non Date de fin de séjour au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du lendemain du début du séjour qui est positionnée. "EndDate": "2017-11-17"
Type string non Code du type d'hébergement recherché (la liste des codes pour les hébergements est donnée dans le paragraphe précédent). Si cette propriété n'est pas renseignée, alors la recherche s'effectue sur l'ensemble des hébergements, quelque-soit leur type. "Type": "Hotel"

Liste des propriétés liées à l'occupation

Propriété Type Obligatoire Description Exemple
AdultNumber int non Nombre d'adultes demandé. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné, alors la recherche s'effectue pour un seul adulte.
Attention : si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il convient de ne pas renseigner cette propriété.
"AdultNumber": 1
ChildNumber int non Nombre d'enfants demandé. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant.
Attention : si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il convient de ne pas renseigner cette propriété.
"ChildNumber": 2
ChildAges array[int] non Liste des âges des enfants, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans.
Attention : si la propriété ChildNumber n'est pas renseignée avec une valeur positive, ou si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il ne convient pas de renseigner cette propriété.
"ChildAges": [5, 12]
Accommodations non Liste des chambres, sous forme de tableau, avec les occupations associées.
Attention : si la propriété AdultNumber ou la propriété ChildNumber décrites ci-dessus sont renseignées, alors il ne convient pas de renseigner cette propriété.
Accommodations/AdultNumber int non Nombre d'adultes demandé pour une chambre ou un hébergement. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné pour la chambre ou l'hébergement en question, alors la recherche s'effectue en considérant un seul adulte pour cette chambre ou cet hébergement. "AdultNumber": 1
Accommodations/ChildNumber int non Nombre d'enfants demandé pour une chambre ou un hébergement. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant pour la chambre ou l'hébergement en question. "ChildNumber": 2
Accommodations/ChildAges array[int] non Liste des âges des enfants pour une chambre ou un hébergement, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans pour la chambre ou l'hébergement en question. "ChildAges": [5, 12]

Liste des propriétés géographiques

Propriété Type Obligatoire Description Exemple
City string non Nom de la ville sur laquelle filtrer les résultats. "City": "PERIGUEUX"
Latitude decimal non Latitude prise en compte dans le cadre d'une recherche par rayon géographique.
Attention : afin que cette recherche par rayon géographique soit réalisable, il convient de renseigner également les propriétés Longitude et Distance décrites ci-dessous.
"Latitude": 45.20335
Longitude decimal non Longitude prise en compte dans le cadre d'une recherche par rayon géographique. Longitude": 0.66785
Distance decimal non Distance, en nombre de kilomètres, prise en compte dans le cadre d'une recherche par rayon géographique. C'est cette distance qui définit le rayon de recherche autour du point défini par la latitude et la longitude renseignées via les propriétés Latitude et Longitude décrites ci-dessus. "Distance": 10

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
IdProducts array[guid] non Liste d'identifiants de produits sur lesquels filtrer les résultats de la recherche. "IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"]
IdOffers array[guid] non Liste d'identifiants de prestations sur lesquels filtrer les résultats de la recherche. Ainsi, seuls les produits dont ces prestations ont de la disponibilité remonteront dans les résultats de la recherche. "IdOffers": ["1ded54e7-adc0-44fc-954f-84785c36d040", "24181776-c75e-485d-ba8f-0a0d3032fbdc"]
ProductName string non Texte à rechercher dans les noms des produits. Seuls les produits dont le nom contient la valeur renseignée seront alors retournés. "ProductName": "Orangerie"
SearchOnlyPromotion bool non Indicateur précisant de filtrer les résultats de sorte à ne retourner que les produits possédant au moins une promotion. "SearchOnlyPromotion": true
ReturnInternalOffers bool non Indicateur permettant de prendre en compte les prestations internes de l'établissement, destinées à la vente guichet, et de pouvoir vendre l'ensemble de l'inventaire sur des dates passées. "ReturnInternalOffers": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true
Categories array[guid] non Liste de catgérories sur lesquelles filtrer les résultats de la recherche. "Categories": ["d53a979f-520a-4bd0-be0a-b1b96069abf5", "8939ca1d-9527-4ecc-93b9-5d62d23afd7a"]

Exemple de recherche simple
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
    "AdultNumber": 2,
	"ChildNumber": 1,
	"ChildAges": [5, 12]
}


Exemple de recherche sur plusieurs hébergements
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
	"Type": "Hotel",
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
    "Accommodations": [
	    {
		    "AdultNumber": 1,
		    "ChildNumber": 2,
		    "ChildAges": [5, 12]
	    },
	    {
		    "AdultNumber": 3
	    }
    ]
}


Exemple de recherche sur une liste de produits
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
    "IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"],
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
	"AdultNumber": 1
}


Exemple de recherche sur un rayon géographique avec filtrage sur la présence de promotions
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
    "AdultNumber": 2,
	"ChildNumber": 1,
	"ChildAges": [5, 12],
    "Latitude": 45.20335,
    "Longitude": 0.66785,
    "Distance": 10,
    "SearchOnlyPromotion": true
}




Transaction de réponse

Pour une recherche globale, la réponse décrit une liste simplifiée de produits, avec uniquement les propriétés de base de ces derniers, ainsi qu'avec un prix "à partir de". Pour ce type de recherche, aucune offre n'est remontée.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date du début du séjour au format yyyy-mm-dd. "StartDate": "2017-11-15T00:00:00"
EndDate datetime Date de la fin du séjour au format yyyy-mm-dd. "EndDate": "2017-11-17T00:00:00"
IdProduct guid Identifiant du produit dans elloha. Cet identifiant est indispensable afin de pouvoir récupérer la description détaillée de ce produit, tel que décrit dans le paragraphe suivant. "IdProduct": "c26ccca1-ca7b-4a5e-a918-d8d261ed75c8"
Name string Nom du produit, dans la langue demandée. "Name": "Kyriad Bergerac"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une recherche globale, cette description est tronquée à 512 caractères. "Description": "Hôtel idéalement placé."
Type string Libellé du type du produit, dans la langue demandée. "Type": "Hôtel"
Rating int Classement, en nombre d'étoiles, de l'hébergement. "Rating": 4
PriceFrom decimal Prix "à partir de" du produit, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses offres disponibles, selon les critères de la transaction de recherche, sans considérer dans le calcul les options supplémentaires. "PriceFrom": 93.5
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion sur ses offres disponibles, selon les critères de la transaction de recherche. "HasPromotion": false
PriceFromWithoutPromotion decimal Prix "à partir de" du produit sans application des promotions disponibles, exprimé dans la devise du moteur de réservation. Cette propriété n'est renseignée que si la propriété HasPromotion a la valeur true. "PriceFromWithoutPromotion": 105.5

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "Rt De Bordeaux Cd936 St Cernin"
ZipCode string Code postal de la ville du produit. "ZipCode": "24100"
City string Nom de la ville du produit. "City": "ST LAURENT DES VIGNES"
CityCode string Code INSEE de la ville du produit. "CityCode": "31158"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit. "CountryCode": "FR"
Country string Libellé localisé du pays du produit. "Country": "France"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": 44.83429
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 0.42663

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail du produit au sein du moteur de réservation elloha. Cette URL reprend les dates de séjour et l'occupation recherchées de sorte à charger le moteur de réservation elloha avec les critères de recherche demandés dans le cadre de la transaction de recherche globale. "BookingUrl": "https://reservation.elloha.com/Search /Index/b68c6848-b7d9-4083-91f0-3de6f065280e ?idoi=c26ccca1-ca7b-4a5e-a918-d8d261ed75c8 &dateFrom=15/11/2017&culture=fr-FR&currency=EUR"

Remarque importante : cette URL permet de réaliser une intégration simple et rapide d'un module de réservation sur une plateforme tierce. En effet, il est tout à fait possible de n'intégrer que la recherche globale et de déléguer l'affichage du descriptif détaillé d'un produit, ainsi que l'ajout d'une offre au panier, au moteur de réservation elloha via l'utilisation de l'URL fournie par la propriété BookingUrl pour le produit souhaité.



Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une recherche globale, seule la photo principale est remontée. Pour cette unique photo, seule une vignette, au format 300x200, est fournie.
Photos/ThumbnailUrl string URL de la vignette de la photo au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/ 841e8bfd-161d-4349-87ab-d6022d042289/1177493_33_b.jpg"

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "Rt De Bordeaux Cd936 St Cernin"
ZipCode string Code postal de la ville du produit. "ZipCode": "24100"
City string Nom de la ville du produit. "City": "ST LAURENT DES VIGNES"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": 44.83429
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 0.42663

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail du produit au sein du moteur de réservation elloha. Cette URL reprend les dates de séjour et l'occupation recherchées de sorte à charger le moteur de réservation elloha avec les critères de recherche demandés dans le cadre de la transaction de recherche globale. "BookingUrl": "https://reservation.elloha.com/Search /Index/b68c6848-b7d9-4083-91f0-3de6f065280e ?idoi=c26ccca1-ca7b-4a5e-a918-d8d261ed75c8 &dateFrom=15/11/2017&culture=fr-FR&currency=EUR"

Remarque importante : cette URL permet de réaliser une intégration simple et rapide d'un module de réservation sur une plateforme tierce. En effet, il est tout à fait possible de n'intégrer que la recherche globale et de déléguer l'affichage du descriptif détaillé d'un produit, ainsi que l'ajout d'une offre au panier, au moteur de réservation elloha via l'utilisation de l'URL fournie par la propriété BookingUrl pour le produit souhaité.



Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une recherche globale, seule la photo principale est remontée. Pour cette unique photo, seule une vignette, au format 300x200, est fournie.
Photos/ThumbnailUrl string URL de la vignette de la photo au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/ 841e8bfd-161d-4349-87ab-d6022d042289/1177493_33_b.jpg"

Exemple de résultat comprenant 2 hébergements
Copier

[
    {
        "StartDate": "2017-11-15T00:00:00",
        "EndDate": "2017-11-17T00:00:00",
        "IdProduct": "e45aa6fc-e8bf-4592-8880-36d9dc00e42d",
        "Name": "Hotel Première Classe Périgueux - Boulazac",
        "Description": "Situation de l'établissement En choisissant l'établissement Hotel Première Classe Périgueux - Boulazac de Boulazac, vous séjournerez à proximité de Musée du Périgord et Cathédrale de Périgueux. Cet hôtel se trouve tout près de Place de la Clautre et Musée de l'Armée. Chambres Les 70 chambres climatisées de l'établissement vous invitent à la détente. L'accès Wi-Fi à Internet gratuit vous permet de rester en contact avec le reste du monde et votre divertissement est assuré par des chaînes par satellite. Une d",
        "Type": "Hôtel",
        "PriceFrom": 59.2,
        "HasPromotion": false,
        "Address": "Espace Agora / Centre Ville",
        "ZipCode": "24750",
        "City": "BOULAZAC",
        "CountryCode": "FR",
        "Latitude": 45.18116,
        "Longitude": 0.7626,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/b68c6848-b7d9-4083-91f0-3de6f065280e?idoi=e45aa6fc-e8bf-4592-8880-36d9dc00e42d&dateFrom=15/11/2017&duration=2&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&NbAdultes2=3&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/dcb88290-b833-48f0-97c2-16b1beea362a/1628039_12_b.jpg"
            }
        ]
    },
    {
        "StartDate": "2017-11-15T00:00:00",
        "EndDate": "2017-11-17T00:00:00",
        "IdProduct": "c26ccca1-ca7b-4a5e-a918-d8d261ed75c8",
        "Name": "Kyriad Bergerac",
        "Description": "Situation de l'établissement En choisissant l'établissement Kyriad Bergerac de Saint-Laurent-des-Vignes, vous séjournerez à proximité de Statue de Cyrano de Bergerac et Maison des vins de Bergerac. Cet hôtel se trouve aux environs de Château de Monbazillac et Château de Bridoire. Chambres Les 45 chambres climatisées de l'établissement vous invitent à la détente et comprennent une télévision LCD. L'accès Wi-Fi à Internet gratuit vous permet de rester en contact avec le reste du monde et votre divertissement ",
        "Type": "Hôtel",
		"Rating": 3,
        "PriceFrom": 93.5,
        "HasPromotion": false,
        "Address": "Rt De Bordeaux Cd936 St Cernin",
        "ZipCode": "24100",
        "City": "ST LAURENT DES VIGNES",
        "CountryCode": "FR",
        "Latitude": 44.83429,
        "Longitude": 0.42663,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/b68c6848-b7d9-4083-91f0-3de6f065280e?idoi=c26ccca1-ca7b-4a5e-a918-d8d261ed75c8&dateFrom=15/11/2017&duration=2&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&NbAdultes2=3&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/841e8bfd-161d-4349-87ab-d6022d042289/1177493_33_b.jpg"
            }
        ]
    }
]




Disponibilité détaillée

La disponibilité détaillée d'un produit permet d'avoir accès à l'ensemble des propriétés descriptives de ce produit, ainsi qu'à la totalité de ses offres disponibles à la réservation : chambres/hébergements, options, chèques et cartes cadeaux. Pour chaque offre ou option figure l'ensemble des données transactionnelles associées : tarifs, stocks restants, conditions de vente. Des URLs pointant vers le moteur de réservation elloha sont également fournies pour chaque élément réservable, afin de réaliser une gestion du panier de vente pour l'internaute connecté.


Transaction de disponibilité détaillée

La transaction permettant d'avoir accès à la disponibilité détaillée d'un produit est similaire à une transaction de recherche globale dépourvue de ses filtres d'affinage des résultats, et dans laquelle doit figurer une propriété IdProduct correspondant à l'identifiant du produit ciblé. C'est ainsi la présence de cette propriété IdProduct qui conditionne le type de la réponse donnée par l'API :

  • Sans IdProduct, il s'agira d'une recherche globale.
  • Avec IdProduct, il s'agira d'une recherche de disponibilité détaillée pour le produit dont l'identifiant est renseigné.


A noter qu'il est également possible de cibler une offre précise du produit, afin de ne remonter la disponibilité que pour cette offre, via l'utilisation de la propriété IdOffer.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e"
IdProduct guid oui Identifiant du produit ciblé pour la disponibilité détaillée. "IdProduct": "e45aa6fc-e8bf-4592-8880-36d9dc00e42d"
IdOffer guid non Identifiant de l'offre sur laquelle éventuellement filtrer de sorte à ne rechercher de la disponibilité que pour cette offre. Cette possibilité de filtrage sera surtout utile pour les options, afin de pouvoir vérifier leur disponibilité sur des dates différentes, tout le long du séjour, et selon les besoins de l'internaute. "IdOffer": "40d87f20-0b1d-4a18-9f4a-28b2bc668021"
StartDate date non Date de début de séjour au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-15"
EndDate date non Date de fin de séjour au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du lendemain du début du séjour qui est positionnée. "EndDate": "2017-11-17"
SearchFirstAvailableDates bool non Indicateur permettant de définir les dates de séjour sur le premier jour présentant de la disponibilité à partir d'aujourd’hui.
Attention : si cet indicateur est à true et qu'il y a de la disponibilité, les paramètres StarDate et EndDate sont ignorés.
"SearchFirstAvailableDates": "true"

Liste des propriétés liées à l'occupation

Propriété Type Obligatoire Description Exemple
AdultNumber int non Nombre d'adultes demandé. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné, alors la recherche s'effectue pour un seul adulte.
Attention : si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il convient de ne pas renseigner cette propriété.
"AdultNumber": 1
ChildNumber int non Nombre d'enfants demandé. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant.
Attention : si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il convient de ne pas renseigner cette propriété.
"ChildNumber": 2
ChildAges array[int] non Liste des âges des enfants, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans.
Attention : si la propriété ChildNumber n'est pas renseignée avec une valeur positive, ou si la propriété Accommodations, décrite ci-dessous, est renseignée, alors il ne convient pas de renseigner cette propriété.
"ChildAges": [5, 12]
Accommodations non Liste des chambres, sous forme de tableau, avec les occupations associées.
Attention : si la propriété AdultNumber ou la propriété ChildNumber décrites ci-dessus sont renseignées, alors il ne convient pas de renseigner cette propriété.
Accommodations/AdultNumber int non Nombre d'adultes demandé pour une chambre ou un hébergement. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné pour la chambre ou l'hébergement en question, alors la recherche s'effectue en considérant un seul adulte pour cette chambre ou cet hébergement. "AdultNumber": 1
Accommodations/ChildNumber int non Nombre d'enfants demandé pour une chambre ou un hébergement. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant pour la chambre ou l'hébergement en question. "ChildNumber": 2
Accommodations/ChildAges array[int] non Liste des âges des enfants pour une chambre ou un hébergement, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans pour la chambre ou l'hébergement en question. "ChildAges": [5, 12]

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
ReturnInternalOffers bool non Indicateur permettant de prendre en compte et de retourner les prestations internes de l'établissement, destinées à la vente guichet, et de pouvoir vendre l'ensemble de l'inventaire sur des dates passées. "ReturnInternalOffers": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche de disponibilité détaillée
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
	"IdProduct": "e45aa6fc-e8bf-4592-8880-36d9dc00e42d",
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
    "Accommodations": [
	    {
		    "AdultNumber": 1,
		    "ChildNumber": 2,
		    "ChildAges": [5, 12]
	    },
	    {
		    "AdultNumber": 3
	    }
    ]
}


Exemple de recherche simple de disponibilité détaillée, portant sur une seule offre
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
	"IdProduct": "e45aa6fc-e8bf-4592-8880-36d9dc00e42d",
	"IdOffer": "40d87f20-0b1d-4a18-9f4a-28b2bc668021",
    "StartDate": "2017-11-15",
    "EndDate": "2017-11-17",
    "AdultNumber": 2
}




Transaction de réponse

Pour une disponibilité détaillée, la réponse décrit de manière exhaustive un produit unique : celui correspondant à l'identifiant IdProduct. La réponse recense l'ensemble des éléments transactionnels de ce produit, pour les critères de recherche renseignés, ainsi que tous les éléments descriptifs pouvant être utiles dans le cadre du processus de réservation.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date du début du séjour au format yyyy-mm-dd. "StartDate": "2017-11-15T00:00:00"
EndDate datetime Date de la fin du séjour au format yyyy-mm-dd. "EndDate": "2017-11-17T00:00:00"
IdProduct guid Identifiant du produit dans elloha. "IdProduct": "c26ccca1-ca7b-4a5e-a918-d8d261ed75c8"
Name string Nom du produit, dans la langue demandée. "Name": "Kyriad Bergerac"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une disponibilité détaillée, cette propriété peut contenir des balises HTML. "Description": "Hôtel idéalement placé."
Type string Libellé du type du produit, dans la langue demandée. "Type": "Hôtel"
Rating int Classement, en nombre d'étoiles, de l'hébergement. "Rating": 4
PriceFrom decimal Prix "à partir de" du produit, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses offres disponibles, selon les critères de la transaction de recherche, sans considérer dans le calcul les options supplémentaires. "PriceFrom": 93.5
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion sur ses offres disponibles, selon les critères de la transaction de recherche. "HasPromotion": false
PriceFromWithoutPromotion decimal Prix "à partir de" du produit sans application des promotions disponibles, exprimé dans la devise du moteur de réservation. Cette propriété n'est renseignée que si la propriété HasPromotion a la valeur true. "PriceFromWithoutPromotion": 105.5

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "Rt De Bordeaux Cd936 St Cernin"
ZipCode string Code postal de la ville du produit. "ZipCode": "24100"
City string Nom de la ville du produit. "City": "ST LAURENT DES VIGNES"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": 44.83429
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 0.42663

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail du produit au sein du moteur de réservation elloha. Cette URL reprend les dates de séjour et l'occupation recherchées de sorte à charger le moteur de réservation elloha avec les critères de recherche demandés dans le cadre de la transaction de recherche globale. "BookingUrl": "https://reservation.elloha.com/Search /Index/b68c6848-b7d9-4083-91f0-3de6f065280e ?idoi=c26ccca1-ca7b-4a5e-a918-d8d261ed75c8 &dateFrom=15/11/2017&culture=fr-FR&currency=EUR"

Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une disponibilité détaillée, toutes les photos sont remontées.
Photos/Url string URL de la photo, au format 1024x768. "Url": "https://cnstlltn.com/crop-1024x768 /2dd0574f-3d3a-42ab-8b55-fd85b77b3e84/untitled-1.jpg"
Photos/ThumbnailUrl string URL de la vignette de la photo, au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200 /841e8bfd-161d-4349-87ab-d6022d042289/1177493_33_b.jpg"
Photos/Title string Titre éventuellement renseigné pour la photo. "Title": "villa_sant_andrea-deluxe_double_room-terrasse"

Liste des propriétés liées aux offres

Propriété Type Description Exemple
Offers Liste des offres principales du produit (hors options, qui font l'objet d'un bloc à part), disponibles à la vente selon les critères de recherche saisis.
Offers/IdOffer string Identifiant de l'offre.
A noter que cet identifiant ne sera pas obligatoirement sous la forme d'un Guid, cela dépendra de l'origine de son produit associé.
"IdOffer": "5a13a613-f7b1-4041-982a-953482efae73"
Offers/Name string Nom de l'offre, dans la langue demandée. "Name": "Suite Familiale"
Offers/Description string Description de l'offre, dans la langue demandée. Cette description peut comporter des éléments HTML. "Description": "Situées dans l'aile du fleuve, nos suites à deux chambres spacieuses
et élégantes sont décorées dans le style méditerranéen traditionnel.<br>
Un coin salon séparé est attenant aux chambres."
Offers/PriceFrom decimal Prix "à partir de" de l'offre, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses tarifs associés. "PriceFrom": 180
Offers/HasPromotion bool Indicateur précisant si l'offre possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Offers/Capacity int Capacité de l'hébergement, en nombre de personnes. "Capacity": 4
Offers/CheckInHour string Horaire à partir duquel une arrivée est possible. "CheckInHour": "15:00"
Offers/CheckOutHour string Horaire jusqu'auquel un départ est possible. "CheckOutHour": "11:00"
Offers/Services array[string] Liste des services spécifiques à l'offre, présentée sous la forme d'une liste de libellés exprimés dans la langue demandée. "Services": [ "Climatisation", "Wifi gratuit" ]
Offers/Photos Liste des photos décrivant l'offre. Les photos des offres sont présentées avec le même format que celui des photos du produit (voir description de la propriété Photos ci-dessus).

Liste des propriétés liées à la literie des offres

Propriété Type Description Exemple
Offers/Beddings string Liste des literies composant l'hébergement.
Offers/Beddings/Name string Nom du type de la literie, dans la langue demandée. "Name": "lit simple"
Offers/Beddings/Number int Nombre de literies correspondant à ce type, installées au sein de l'hébergement. "Number": 1
Offers/Beddings/Capacity int Capacité, en nombre de personnes, couverte par une unité de ce type de literie. "Capacity": 1
Offers/Beddings/IsOptional bool Indicateur précisant s'il s'agit d'une literie optionnelle. Cet indicateur sera à true dans le cas d'un lit supplémentaire. "IsOptional": false

Liste des propriétés liées aux tarifs des offres

Propriété Type Description Exemple
Offers/Rates Liste des tarifs réservables de l'offre, disponibles selon les critères de recherche. Les tarifs sont remontés avec leur prix, leur descriptif et leurs conditions d'annulation.
Offers/Rates/IdRate string Identifiant du tarif.
A noter que cet identifiant ne sera pas obligatoirement sous la forme d'un Guid, cela dépendra de l'origine de son produit associé.
"IdRate": "2f7f81e8-1161-4dfd-bf3f-9a88529a8a39"
Offers/Rates/Name string Nom du tarif, dans la langue demandée. "Name": "Nuit Plus Petit Déjeuner"
Offers/Rates/Description string Description du tarif, dans la langue demandée. "Description": "Profitez de notre buffet petit déjeuner à un prix doux"
Offers/Rates/Note string Information supplémentaire sur le tarif. Peut varier selon les horaires. "Note": "Guide français"
Offers/Rates/IsRackRate bool Indicateur précisant si le tarif correspond à un tarif de base. "IsRackRate": true
Offers/Rates/IsSpecialOffer bool Indicateur précisant si le tarif correspond à une offre spéciale. "IsSpecialOffer": false
Offers/Rates/IsPromotion bool Indicateur précisant si le tarif correspond à une promotion. "IsPromotion": true
Offers/Rates/IsEarlyBird bool Indicateur précisant si le tarif correspond à une promotion de type Early Bird. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsEarlyBird": false
Offers/Rates/IsLastMinute bool Indicateur précisant si le tarif correspond à une promotion de type Last Minute. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsLastMinute": false
Offers/Rates/IsBestRate bool Indicateur précisant si le tarif correspond au meilleur tarif proposé pour l'offre. "IsBestRate": true
Offers/Rates/Price decimal Prix de vente du tarif, exprimé dans la devise du moteur de réservation. "Price": 120
Offers/Rates/PriceWithoutPromotion decimal Prix de vente du tarif tel qu'il serait sans application de la promotion (prix barré), exprimé dans la devise du moteur de réservation. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "PriceWithoutPromotion": 150
Offers/Rates/StockLeft int Stock restant pour l'offre selon les critères de recherche renseignés. "StockLeft": 2
Offers/Rates/PriceInclude string Description de ce que le prix du tarif comprend, dans la langue demandée. "PriceInclude": "Le petit-déjeuner."
Offers/Rates/PriceExclude string Description de ce que le prix du tarif ne comprend pas, dans la langue demandée. "PriceExclude": "Le déjeuner et le dîner."
Offers/Rates/PensionTypeIncluded string Description du type de pension inclus dans le tarif : "Le petit-déjeuner", "La pension complète" ou "La demi-pension". A noter que ce libellé est traduit suivant la langue demandée. "PensionTypeIncluded": "Le petit-déjeuner"
Offers/Rates/IsPersonNumberDependant bool Indicateur précisant si le tarif est dépendant du choix d'un PAX (nombre d'adultes et nombre d'enfants). Si cela n'est pas le cas, alors la définition d'une quantité réservée sera suffisante pour la création du dossier de vente. "IsPersonNumberDependant": true
Offers/Rates/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du tarif pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24 ?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c &dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR &currency=EUR&rateCode=fc13e00d-f51f-4f1a-b743-82e8f01bc780 &offerCode=57e15392-1bac-4260-acf7-fc26f790cfad"
Offers/Rates/IsCancellable bool Indicateur précisant si le tarif est annulable pour le client. "IsCancellable": true
Offers/Rates/IsCancellableForFree bool Indicateur précisant si le tarif est annulable gratuitement pour le client. Cette propriété est renseignée si et seulement si la propriété IsCancellable est à true. "IsCancellableForFree": false
Offers/Rates/CancellationPolicies array[string] Liste des conditions d'annulation propres au tarif, dans la langue demandée. "CancellationPolicies": [ "Plus de 30 jours avant le départ, 10% du montant de votre réservation", "De 30 à 21 jours du départ, 40% du montant de votre réservation", "De 20 à 8 jours du départ, 60% du montant de votre réservation", "De 7 à 2 jours du départ, 75% du montant de votre réservation", "A 2 jours du départ, 100% du montant de votre réservation" ]

Liste des propriétés liées aux options

Propriété Type Description Exemple
Options Liste des options supplémentaires du produit, disponibles à la vente selon les critères de recherche saisis.
Attention : les options remontées sont uniquement celles disponibles pour la date de début de séjour (correspondant à l'argument StartDate de la transaction de recherche). Certains types d'options (par exemple, les petits-déjeuners) nécessiteront l'exécution de nouvelles recherches spécifiques afin de remonter les disponibilités des différentes options pour les autres dates du séjour. Pour ce faire, il conviendra d'utiliser la propriété IdOffer de la transaction de recherche, afin de pouvoir cibler les options concernées sur différentes dates.
Options/IdOffer string Identifiant de l'option.
A noter que cet identifiant ne sera pas obligatoirement sous la forme d'un Guid, cela dépendra de l'origine de son produit associé.
"IdOffer": "5a13a613-f7b1-4041-982a-953482efae73"
Options/Name string Nom de l'option, dans la langue demandée. "Name": "Location De Vélos Et Évadez-Vous"
Options/IdType guid Identifiant du type de l'option. Les identifiants disponibles sont les suivants :
  • 11d8ddcf-7d41-4b5e-a017-dd68e6044504 : Petit-Déjeuner
  • a2d6ec06-ad5e-4e01-a624-52b2bd6e946b : Déjeuner
  • ea2f8930-a0a7-4554-8820-5814b1e7d3b4 : Dîner
  • debb22f0-1df4-4f94-9b38-c8b4c6b06f16 : Parking
  • 0675a11d-36d9-4642-af81-cb3c597c2041 : Navette
  • 1c0695c4-343a-43f0-9287-7c9d0f735af9 : Activité
  • b8f7278e-2211-4a56-b974-86655c5002a2 : Location de matériel
  • c306219c-712e-475f-9a01-fd98d2533f95 : Salle de réunion
  • d4d9db86-bed5-4cc9-9fa5-6ea63c1ca8c4 : Location de salle
  • f4b6de34-dafe-46c0-a741-f38d7d9d1924 : Autres
"IdType": "11d8ddcf-7d41-4b5e-a017-dd68e6044504"
Options/Type string Libellé du type l'option, dans la langue demandée. "Type": "Parking"
Options/Description string Description de l'option, dans la langue demandée. Cette description peut comporter des éléments HTML. "Description": "Et si vous vous évadiez sur les chemins de vignes à quelques encablures de votre chambre ?"
Options/PriceFrom decimal Prix "à partir de" de l'option, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses tarifs associés. "PriceFrom": 180
Options/HasPromotion bool Indicateur précisant si l'option possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Options/Capacity int Capacité de l'option, en nombre de personnes. "Capacity": 4
Options/DurationOfActivity string Durée de l'activité correspondant à l'option, exprimée dans la langue demandée. "DurationOfActivity": "1 jour"
Options/Photos Liste des photos décrivant l'option. Les photos des offres sont présentées avec le même format que celui des photos du produit (voir description de la propriété Photos ci-dessus).

Liste des propriétés liées aux tarifs des options

Propriété Type Description Exemple
Options/Rates Liste des tarifs réservables de l'option, disponibles selon les critères de recherche. Les tarifs sont remontés avec leur prix, leur descriptif et leurs conditions d'annulation.
Options/Rates/IdRate string Identifiant du tarif.
A noter que cet identifiant ne sera pas obligatoirement sous la forme d'un Guid, cela dépendra de l'origine de son produit associé.
"IdRate": "2f7f81e8-1161-4dfd-bf3f-9a88529a8a39"
Options/Rates/Name string Nom du tarif, dans la langue demandée. "Name": "Prix Standard"
Options/Rates/Description string Description du tarif, dans la langue demandée. "Description": "Profitez de notre offre très intéressante."
Options/Rates/Hour string Horaire pour lequel le tarif s'applique.
A noter que si l'option est vendue à la journée alors cette propriété ne sera pas renseignée.
"Hour": "10:30"
Options/Rates/IsRackRate bool Indicateur précisant si le tarif correspond à un tarif de base. "IsRackRate": true
Options/Rates/IsSpecialOffer bool Indicateur précisant si le tarif correspond à une offre spéciale. "IsSpecialOffer": false
Options/Rates/IsPromotion bool Indicateur précisant si le tarif correspond à une promotion. "IsPromotion": true
Options/Rates/IsEarlyBird bool Indicateur précisant si le tarif correspond à une promotion de type Early Bird. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsEarlyBird": false
Options/Rates/IsLastMinute bool Indicateur précisant si le tarif correspond à une promotion de type Last Minute. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsLastMinute": false
Options/Rates/IsBestRate bool Indicateur précisant si le tarif correspond au meilleur tarif proposé pour l'option. "IsBestRate": true
Options/Rates/Price decimal Prix de vente du tarif, exprimé dans la devise du moteur de réservation. "Price": 10
Options/Rates/PriceWithoutPromotion decimal Prix de vente du tarif tel qu'il serait sans application de la promotion (prix barré), exprimé dans la devise du moteur de réservation. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "PriceWithoutPromotion": 15
Options/Rates/StockLeft int Stock restant pour l'option, par rapport à l'horaire sur lequel s'applique le tarif, et selon les critères de recherche renseignés. "StockLeft": 20
Options/Rates/PriceInclude string Description de ce que le prix du tarif comprend, dans la langue demandée. "PriceInclude": "Le casque."
Options/Rates/PriceExclude string Description de ce que le prix du tarif ne comprend pas, dans la langue demandée. "PriceExclude": "La consigne."
Options/Rates/IsPersonNumberDependant bool Indicateur précisant si le tarif est dépendant du choix d'un PAX (nombre d'adultes et nombre d'enfants). Si cela n'est pas le cas, alors la définition d'une quantité réservée sera suffisante pour la création du dossier de vente. "IsPersonNumberDependant": true
Options/Rates/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du tarif pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24 ?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c &dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR &currency=EUR&rateCode=2f7f81e8-1161-4dfd-bf3f-9a88529a8a39 &offerCode=ca1e8607-e9f4-487c-95de-affb4496b5f8&isOption=True"
Options/Rates/IsCancellable bool Indicateur précisant si le tarif est annulable pour le client. "IsCancellable": true
Options/Rates/IsCancellableForFree bool Indicateur précisant si le tarif est annulable gratuitement pour le client. Cette propriété est renseignée si et seulement si la propriété IsCancellable est à true. "IsCancellableForFree": false
Options/Rates/CancellationPolicies array[string] Liste des conditions d'annulation propres au tarif, dans la langue demandée. "CancellationPolicies": [ "L'offre n'est pas annulable." ]

Liste des propriétés liées aux chèques cadeaux

Propriété Type Description Exemple
GiftVouchers Liste des chèques cadeaux du produit.
Un chèque cadeau est défini par un prix exprimé dans la devise du moteur de réservation, et par une durée de validité, exprimée en nombre de mois.
GiftVouchers/IdGiftVoucher int Identifiant du chèque cadeau. "IdGiftVoucher": 91
GiftVouchers/Price decimal Prix du chèque cadeau, exprimé dans la devise du moteur de réservation. "Price": 100
GiftVouchers/DurationInMonths int Durée du chèque cadeau, exprimée en nombre de mois. "DurationInMonths": 12
GiftVouchers/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du chèque cadeau pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24 ?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c &dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR &currency=EUR&idGiftVoucher=91"

Liste des propriétés liées aux cartes cadeaux

Propriété Type Description Exemple
GiftCards Liste des cartes cadeaux du produit.
Une carte cadeau est définie par un nom, par un prix exprimé dans la devise du moteur de réservation, par une photo d'illustration, et par une notion de validité qui est soit exprimée par une durée en nombre de mois, soit par une période bornée par une date de début de validité et une date de fin de validité.
GiftCards/IdGiftCard int Identifiant de la carte cadeau. "IdGiftCard": 877
GiftCards/Name string Nom de la carte cadeau, dans la langue demandée. "Name": "Week end détente"
GiftCards/Price decimal Prix de la carte cadeau, exprimé dans la devise du moteur de réservation. "Price": 150
GiftCards/ValidityStartDate datetime Date de début de validité de la carte cadeau au format yyyy-mm-dd. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une durée. "ValidityStartDate": "2017-04-21T00:00:00"
GiftCards/ValidityEndDate datetime Date de fin de validité de la carte cadeau au format yyyy-mm-dd. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une durée. "ValidityEndDate": "2017-12-31T00:00:00"
GiftCards/DurationInMonths int Durée de la carte cadeau, exprimée en nombre de mois. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une période de validité. "DurationInMonths": 12
GiftCards/PhotoUrl string URL de la photo d'illustration de la carte cadeau, au format 1000x660 (format imposé pour toute illustration de carte cadeau dans elloha) "PhotoUrl":
"https://cnstlltn.com/crop-1000x660/1bb6c06a-13a5-4206-bcae-bc8de39d7c89/carte+cadeau.png"
GiftCards/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier de la carte cadeau pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24 ?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c &dateFrom=18/11/2017&NbAdultes=2 &culture=fr-FR&currency=EUR &idGiftCard=877"

Liste des propriétés liées aux produits boutique

Propriété Type Description Exemple
ShopProducts Liste des produits boutique du produit.
Un produit boutique est défini par un nom, un prix exprimé dans la devise du moteur de réservation, une description, des photos d'illustration, un stock restant, et éventuellement par un groupe auquel il appartient. S'il s'agit d'une recherche de disponibilité Web, seuls les produits paramétrés en mode Click & Collect seront retournés.
ShopProducts/IdOffer guid Identifiant de la prestation correspondant au produit boutique. "IdOffer": "2280a17e-9270-4daf-a10a-ef125cc0e436"
ShopProducts/Name string Nom du produit boutique, dans la langue demandée. "Name": "Orangina 33cl"
ShopProducts/Description string Description du produit boutique, dans la langue demandée. "Name": "Canette d'Orangina 33cl, disponible au frais."
ShopProducts/Price decimal Prix du produit boutique, exprimé dans la devise du moteur de réservation. "Price": 3.0
ShopProducts/StockLeft int Quantité de produits boutique restant en stock. "StockLeft": 5
ShopProducts/IdGroup int Identifiant du groupe associé au produit boutique. "IdGroup": 143
ShopProducts/GroupName string Nom du groupe associé au produit boutique. "GroupName": "Boissons"
ShopProducts/GroupDescription string Description du groupe associé au produit boutique. Cette propriété peut contenir des balises HTML "GroupDescription": "Profitez de nos nombreuses boissons, disponible au bar."
ShopProducts/GroupPhotoUrl string URL de la photo du groupe associé au produit boutique. "GroupPhotoUrl": "https://cnstlltn.com/300x200/2742de0f-1376-4a05-b796-91a4fa5ba012/boissons.jpg"
ShopProducts/GroupPriceFrom decimal Prix "à partir de" du groupe associé au produit boutique. "GroupPriceFrom": 2.0
ShopProducts/Photos Liste des photos décrivant le produit boutique. Les photos des produits boutique sont présentées avec le même format que celui des photos des autres offres (voir description de la propriété Photos ci-dessus).

Liste des propriétés liées aux caractéristiques du produit

Propriété Type Description Exemple
Characteristics Liste des caractéristiques du produit. Chaque caractéristique est représentée par un type et une valeur.
Characteristics/Type string Code du type de la caractéristique.
Les types possibles sont : DisabledAccess (accès aux personnes handicapées), Service (services proposés), ComfortElement (éléments de confort), Equipment (équipements), Activity (activités à proximité), PetsAllowed (animaux admis).
"Type": "ComfortElement"
Characteristics/Value string Valeur de la caractéristique, dans la langue demandée. "Value": "Wifi gratuit"
SpokenLanguages array[string] Liste des langues parlées au niveau de l'établissement du produit, exprimées dans la langue demandée. "SpokenLanguages": [ "français", "italien" ]
PaymentModes array[string] Liste des modes de paiement acceptés par le produit, exprimés dans la langue demandée. "PaymentModes": [ "American Express", "Chèques Vacances", "Visa" ]

Liste des propriétés liées aux moyens de communication

Propriété Type Description Exemple
MeansOfCommunication Liste des différents moyens de communication associés au produit, chaque élément étant décrit par un type et une valeur.
MeansOfCommunication/Type string Libellé du type du moyen de communication, dans la langue demandée. "Type": "Téléphone"
MeansOfCommunication/Value string Valeur du moyen de communication correspondant au type remonté. "Value": "+33 6 48 98 40 43"

Liste des propriétés liées aux conditions de vente

Propriété Type Description Exemple
CancellationPolicies array[string] Liste des conditions de vente associées au produit, présentées sous forme de tableau. Ces conditions de vente peuvent contenir des éléments HTML. "CancellationPolicies": [ "Conditions de vente<br>Aucune annulation possible." ]

Exemple de disponibilité détaillée d'un hébergement
Copier

{
    "StartDate": "2017-11-15T00:00:00",
    "EndDate": "2017-11-17T00:00:00",
    "IdProduct": "c31121f5-32ec-4b59-a895-3c083b1e264c",
    "Name": "Une Chambre Sur La Mer",
    "Description": "<div style=\"text-align: left;\"><b>Près de la de la de la  de <a href=\"www.google.be\">Taormina</a>, une ancienne résidence estivale rococo veille sur son raffinement d'esthète, sa marine privée et son histoire des lettres. </b></div><br>Tels Maupassant, D. H. Lawrence et Goethe au siècle du romantisme, les voyageurs en Sicile s'arrêtent à Taormina. La côte dentelée de criques a son étape inoubliable, où s'effacent les foules estivales et renaît l'illusion de la découverte: la Villa Sant'Andrea, qui, avant d'être un cinq-étoiles estampillé Orient-Express, fut la résidence d'été d'un aristocrate de Palerme. <br>PUBLICITÉ<br><br>La demeure est assise sur la plage privée de San Mazzaro, fleurie de parasols blancs. Quelques pas vous séparent de votre chambre, à l'élégance très XVIIIe siècle, des jardins tropicaux où paresser aux heures les plus chaudes. Le voilier de l'hôtel est à la disposition des explorateurs pour voguer vers les grottes de l'Isola Bella et la côte est de la Sicile, avec un somptueux pique-nique à bord. La ville de Taormina a beau n'être qu'à cinq minutes de tramway, vous ne songerez peut-être même pas à vous y rendre.<br>",
    "Type": "Chambre d'hôtes",
    "Rating": 5,
    "PriceFrom": 110,
    "HasPromotion": true,
    "Address": "30 Residence Bellissen",
    "ZipCode": "09000",
    "City": "FOIX",
    "Latitude": 42.95964,
    "Longitude": 1.59661800000004,
    "BookingUrl": "https://reservation.elloha.com/Search/Index/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR",
    "Photos": [
        {
            "Url": "https://cnstlltn.com/crop-1024x768/2dd0574f-3d3a-42ab-8b55-fd85b77b3e84/untitled-1.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/2dd0574f-3d3a-42ab-8b55-fd85b77b3e84/untitled-1.jpg",
            "Title": "Untitled-1"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/8a419c83-242c-422a-8a52-109f7a343b0d/xl-italy-sicily-hotel_villa_sant_andrea-deluxe_double_room-terrasse.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/8a419c83-242c-422a-8a52-109f7a343b0d/xl-italy-sicily-hotel_villa_sant_andrea-deluxe_double_room-terrasse.jpg",
            "Title": "villa_sant_andrea-deluxe_double_room-terrasse"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/cf903fba-79ac-47ab-bee3-d2cec7ffaf7a/ovsa_1366x650_dining_restaurant_oliviero15.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/cf903fba-79ac-47ab-bee3-d2cec7ffaf7a/ovsa_1366x650_dining_restaurant_oliviero15.jpg",
            "Title": "villa-sant-andrea-dining-terrace"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/e2a4ffa6-3713-499f-952b-b6221520637c/658583-villa-sant-andrea-exterior-view.jpeg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/e2a4ffa6-3713-499f-952b-b6221520637c/658583-villa-sant-andrea-exterior-view.jpeg",
            "Title": "villa-sant-andrea-private-beach"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/c7e9d608-6524-448a-8150-350894192c5a/ovsa_1366x650_pool01.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/c7e9d608-6524-448a-8150-350894192c5a/ovsa_1366x650_pool01.jpg",
            "Title": "villa-sant-andrea-pool"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/c984a4c4-ea0f-4714-a7b5-0aff23c66dfe/luxe-lodge-05.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/c984a4c4-ea0f-4714-a7b5-0aff23c66dfe/luxe-lodge-05.jpg",
            "Title": "Entree-de-la-maison-dhotes"
        }
    ],
    "Offers": [
        {
            "IdOffer": "5a13a613-f7b1-4041-982a-953482efae73",
            "Name": "Suite Familiale",
            "Description": "Situées dans l'aile du fleuve, nos suites à deux chambres spacieuses et élégantes sont décorées dans le style méditerranéen traditionnel. Un coin salon séparé est attenant aux chambres. L'une est meublée d'un grand lit « king » et l'autre, de lits jumeaux. La salle de bain permet de choisir entre une grande baignoire et une douche séparée. Les chambres de la suite sont baignées de lumière grâce à leurs baies vitrées offrant une vue spectaculaire sur la Mer Méditerranée.<br><br><b>Nota:</b> Attention, cette chambre est fictive et a été créée pour les besoins de la démo. Vous pouvez toutefois aller jusqu'à la réservation en ligne de cette chambre dans les mêmes conditions que l'internaute final. <br>",
            "PriceFrom": 180,
            "HasPromotion": true,
            "Capacity": 4,
            "CheckInHour": "11:00",
            "CheckOutHour": "15:00",
            "Beddings": [
                {
                    "Name": "lit simple",
                    "Number": 1,
                    "Capacity": 1,
                    "IsOptional": false
                },
                {
                    "Name": "lit double",
                    "Number": 1,
                    "Capacity": 2,
                    "IsOptional": false
                },
                {
                    "Name": "lit supplémentaire",
                    "Number": 1,
                    "Capacity": 1,
                    "IsOptional": true
                }
            ],
            "Services": [
                "Climatisation",
                "Coffre",
                "Double vitrage",
                "Douche",
                "Films à la demande",
                "Hammam",
                "Jacuzzi",
                "Lit enfant",
                "Peignoirs et chaussons",
                "Produits de bains",
                "Sauna",
                "Sèche cheveux",
                "Téléphone",
                "Télévision",
                "Terrasse privative",
                "Wifi gratuit"
            ],
            "Rates": [
                {
                    "IdRate": "bc1daa21-ec22-4132-90ae-7911850b4995",
                    "Name": "Promotion Été Indien",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": true,
                    "IsEarlyBird": false,
                    "IsLastMinute": false,
                    "IsBestRate": true,
                    "Price": 180,
                    "PriceWithoutPromotion": 200,
                    "StockLeft": 1,
					"PriceInclude": "Le petit-déjeuner.",
                    "PriceExclude": "Le déjeuner et le dîner.",
                    "PensionTypeIncluded": "La pension complète.",
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=bc1daa21-ec22-4132-90ae-7911850b4995&offerCode=5a13a613-f7b1-4041-982a-953482efae73",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/7ac2e7ac-5a44-4cff-82cd-95d1db17e6b8/3.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/7ac2e7ac-5a44-4cff-82cd-95d1db17e6b8/3.jpg",
                    "Title": "Vue depuis le salon"
                },
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/6824592c-d55a-486e-8dbd-741af419a165/suite_familale.png",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/6824592c-d55a-486e-8dbd-741af419a165/suite_familale.png",
                    "Title": "suite_familale"
                }
            ]
        },
        {
            "IdOffer": "57e15392-1bac-4260-acf7-fc26f790cfad",
            "Name": "Chambre Tradition",
            "Description": "<a href=\"http://myreader.toile-libre.org/test4658.pdf\">Consultez les horaires de notre spa</a>",
            "PriceFrom": 110,
            "HasPromotion": false,
            "Capacity": 9,
            "CheckInHour": "15:00",
            "CheckOutHour": "11:00",
            "Beddings": [
                {
                    "Name": "lits King",
                    "Number": 3,
                    "Capacity": 2,
                    "IsOptional": false
                },
                {
                    "Name": "lit Queen",
                    "Number": 1,
                    "Capacity": 2,
                    "IsOptional": false
                },
                {
                    "Name": "canapé-lit simple",
                    "Number": 1,
                    "Capacity": 1,
                    "IsOptional": false
                }
            ],
            "Services": [
                "Baignoire pour handicapé",
                "Chaise bébé",
                "Climatisation",
                "Congélateur",
                "Double vitrage",
                "Films à la demande",
                "Téléphone"
            ],
            "Rates": [
                {
                    "IdRate": "fc13e00d-f51f-4f1a-b743-82e8f01bc780",
                    "Name": "Nuit Plus Petit Déjeuner",
                    "Description": "Profitez de notre buffet petit déjeuner à un prix doux",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 110,
                    "StockLeft": 2,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=fc13e00d-f51f-4f1a-b743-82e8f01bc780&offerCode=57e15392-1bac-4260-acf7-fc26f790cfad",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "ab2ba589-c490-4f6e-9356-e4ed61f544c8",
                    "Name": "Gite De 1 à 8",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "IsBestRate": false,
                    "Price": 400,
                    "StockLeft": 2,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=ab2ba589-c490-4f6e-9356-e4ed61f544c8&offerCode=57e15392-1bac-4260-acf7-fc26f790cfad",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/fda20eb6-9043-4e41-9a0b-be35ff51945e/chambre+bleue.jpeg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/fda20eb6-9043-4e41-9a0b-be35ff51945e/chambre+bleue.jpeg",
                    "Title": "Chambre Bleue"
                },
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/5e252cb2-f1cd-487f-bec5-79a394a47ad8/modern-bathroom-design-with-glass-roof-176.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/5e252cb2-f1cd-487f-bec5-79a394a47ad8/modern-bathroom-design-with-glass-roof-176.jpg",
                    "Title": "Modern-Bathroom-Design-With-Glass-Roof-176"
                }
            ]
        },
        {
            "IdOffer": "995106e3-d5f1-4e2e-ab6c-809ebe30e7ec",
            "Name": "Suite Deluxe",
            "Description": "La lumière naturelle sublime les magnifiques volumes de cette suite, grâce à une hauteur sous plafond remarquable, typique des premiers étages des hôtels particuliers haussmanniens. Le temps semble soudain s'arrêter dans cette atmosphère baignée d'une tranquille sérénité. Le velours des canapés, le soyeux des tentures en satin de Damas et le moelleux des tapis invitent à la douceur de vivre sur un autre rythme. Ici et là, un bronze ouvragé ou quelques bibelots anciens, des livres d'art, à feuilleter après avoir exploré les ressources du bar privé, regorgeant de trésors des vignobles français. A la belle saison, le balcon s'ouvre sur le rideau de verdure des arbres majestueux qui bordent l'avenue Gabriel, une sensation étonnante en plein Paris.<br><br>La suite Deluxe offre sur 60 m² un salon et une chambre avec dressing. Tout en marbre de Carrare, la salle de bains dispose d'une baignoire, d'une douche à l'italienne ainsi que d'une double vasque.",
            "PriceFrom": 120,
            "HasPromotion": false,
            "Capacity": 5,
            "Beddings": [
                {
                    "Name": "lit double",
                    "Number": 1,
                    "Capacity": 2,
                    "IsOptional": false
                },
                {
                    "Name": "lit King",
                    "Number": 1,
                    "Capacity": 2,
                    "IsOptional": false
                },
                {
                    "Name": "lit supplémentaire",
                    "Number": 1,
                    "Capacity": 1,
                    "IsOptional": true
                },
                {
                    "Name": "lit bébé",
                    "Number": 1,
                    "Capacity": 0,
                    "IsOptional": true
                }
            ],
            "Rates": [
                {
                    "IdRate": "771f0662-16cf-42c5-a0e3-e762b1353287",
                    "Name": "Prix Standard",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 120,
                    "StockLeft": 5,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=771f0662-16cf-42c5-a0e3-e762b1353287&offerCode=995106e3-d5f1-4e2e-ab6c-809ebe30e7ec",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/9d39fbb2-257c-4ebf-a00d-57da1636a86d/deluxe-suites-0.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/9d39fbb2-257c-4ebf-a00d-57da1636a86d/deluxe-suites-0.jpg",
                    "Title": "Suite Deluxe"
                }
            ]
        }
    ],
    "Options": [
        {
            "IdOffer": "da7f6aef-55f2-4d98-b6f2-1f6ae3dee416",
            "Name": "Petit Dejeuner Mediterraneen (démo)",
			"IdType": "11d8ddcf-7d41-4b5e-a017-dd68e6044504",
			"Type": "Petit-déjeuner",
            "Description": "Dégustez toutes les saveurs de la Méditerranée dès le lever et profitez d'une vue incroyable sur notre baie.<br><br><b>Nota: </b>Attention, cette option est fictive et a été créée pour les besoins de la démo. Vous pouvez toutefois aller jusqu'à la réservation en ligne de cette option dans les mêmes conditions que l'internaute final. <br>",
            "PriceFrom": 12,
            "HasPromotion": false,
            "Rates": [
                {
                    "IdRate": "71a858b7-9aa2-40be-80ff-505b43d42800",
                    "Name": "Prix Standard",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 12,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=71a858b7-9aa2-40be-80ff-505b43d42800&offerCode=da7f6aef-55f2-4d98-b6f2-1f6ae3dee416&isOption=True",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/54be6919-9899-4f24-a02a-745b13efe16e/breakfast_villa_sant_andrea.png",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/54be6919-9899-4f24-a02a-745b13efe16e/breakfast_villa_sant_andrea.png",
                    "Title": "breakfast_villa_sant_andrea"
                }
            ]
        },
        {
            "IdOffer": "40d87f20-0b1d-4a18-9f4a-28b2bc668021",
            "Name": "Spa - Soin Du Corps (démo)",
			"IdType": "1c0695c4-343a-43f0-9287-7c9d0f735af9",
			"Type": "Activité",
            "Description": "Et si vous vous abandonniez quelques minutes entre les mains de nos spécialistes du soin du corps et du bien-être à base de produits issus de la vigne méditerranéenne ? Soin du visage, soin du corps ... réservez votre séance et décidez une fois sur place selon votre humeur.<br><br><b>Nota: </b>Attention, cette option est fictive et a été créée pour les besoins de la démo. Vous pouvez toutefois aller jusqu'à la réservation en ligne de cette option dans les mêmes conditions que l'internaute final. <br>",
            "PriceFrom": 60,
            "HasPromotion": false,
            "DurationOfActivity": "1h30",
            "Rates": [
                {
                    "IdRate": "76892243-c9ea-4f14-ba6f-0c24f42e5e89",
                    "Name": "Prix Standard",
                    "Hour": "11:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 60,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=76892243-c9ea-4f14-ba6f-0c24f42e5e89&offerCode=40d87f20-0b1d-4a18-9f4a-28b2bc668021&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "76892243-c9ea-4f14-ba6f-0c24f42e5e89",
                    "Name": "Prix Standard",
                    "Hour": "12:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 60,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=76892243-c9ea-4f14-ba6f-0c24f42e5e89&offerCode=40d87f20-0b1d-4a18-9f4a-28b2bc668021&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "76892243-c9ea-4f14-ba6f-0c24f42e5e89",
                    "Name": "Prix Standard",
                    "Hour": "16:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 60,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=76892243-c9ea-4f14-ba6f-0c24f42e5e89&offerCode=40d87f20-0b1d-4a18-9f4a-28b2bc668021&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "76892243-c9ea-4f14-ba6f-0c24f42e5e89",
                    "Name": "Prix Standard",
                    "Hour": "18:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 60,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=76892243-c9ea-4f14-ba6f-0c24f42e5e89&offerCode=40d87f20-0b1d-4a18-9f4a-28b2bc668021&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "76892243-c9ea-4f14-ba6f-0c24f42e5e89",
                    "Name": "Prix Standard",
                    "Hour": "19:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 60,
                    "StockLeft": 10,
                    "IsPersonNumberDependant": true,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=76892243-c9ea-4f14-ba6f-0c24f42e5e89&offerCode=40d87f20-0b1d-4a18-9f4a-28b2bc668021&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant le départ, 10% du montant de votre réservation",
                        "De 30 à 21 jours du départ, 40% du montant de votre réservation",
                        "De 20 à 8 jours du départ, 60% du montant de votre réservation",
                        "De 7 à 2 jours du départ, 75% du montant de votre réservation",
                        "A 2 jours du départ, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/7eff8103-790c-4416-9100-e5f5f9a4ab13/spa-4.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/7eff8103-790c-4416-9100-e5f5f9a4ab13/spa-4.jpg",
                    "Title": "spa-4"
                }
            ]
        },
        {
            "IdOffer": "ca1e8607-e9f4-487c-95de-affb4496b5f8",
            "Name": "Arrivez Directement Depuis Le Train!",
			"IdType": "1c0695c4-343a-43f0-9287-7c9d0f735af9",
			"Type": "Activité",
            "Description": "Détendez-vous! Prenez le train, ne louez pas de voiture : nous vous attendons à votre arrivée à la gare et vous conduisons directement dans le magnifique hall de notre établissement. Choisissez l'horaire qui vous convient le mieux (le prix du voyage retour est inclus et nous fixerons avec vous le meilleur horaire de départ).  ",
            "PriceFrom": 10,
            "HasPromotion": false,
            "DurationOfActivity": "15 min",
            "Rates": [
                {
                    "IdRate": "2f7f81e8-1161-4dfd-bf3f-9a88529a8a39",
                    "Name": "Prix Standard",
                    "Hour": "10:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 10,
                    "StockLeft": 20,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=2f7f81e8-1161-4dfd-bf3f-9a88529a8a39&offerCode=ca1e8607-e9f4-487c-95de-affb4496b5f8&isOption=True",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "2f7f81e8-1161-4dfd-bf3f-9a88529a8a39",
                    "Name": "Prix Standard",
                    "Hour": "14:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 10,
                    "StockLeft": 20,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=2f7f81e8-1161-4dfd-bf3f-9a88529a8a39&offerCode=ca1e8607-e9f4-487c-95de-affb4496b5f8&isOption=True",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/4e5c4bce-b9d6-45e6-95ff-5e38fe9dd7c7/mercedes_classe_v_2014_3a16a-1200-800.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/4e5c4bce-b9d6-45e6-95ff-5e38fe9dd7c7/mercedes_classe_v_2014_3a16a-1200-800.jpg",
                    "Title": "navette"
                }
            ]
        },
        {
            "IdOffer": "d3c20a15-5713-4b68-a1dc-95700579d038",
            "Name": "Location De Vélos Et Évadez-Vous",
			"IdType": "1c0695c4-343a-43f0-9287-7c9d0f735af9",
			"Type": "Activité",
            "Description": "Et si vous vous évadiez sur les chemins de vignes à quelques encablures de votre chambre, entendre le fin bruissement des rivières et contempler le ballet vert et blanc des champs d'oliviers?",
            "PriceFrom": 15,
            "HasPromotion": false,
            "DurationOfActivity": "1 jour",
            "Rates": [
                {
                    "IdRate": "33dd5fee-83b2-41ac-bc8e-f870cdfa1fe6",
                    "Name": "Prix Standard",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 15,
                    "StockLeft": 20,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=33dd5fee-83b2-41ac-bc8e-f870cdfa1fe6&offerCode=d3c20a15-5713-4b68-a1dc-95700579d038&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/0018b580-95de-49a8-83d7-46928ec6bfb3/230107006_1.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/0018b580-95de-49a8-83d7-46928ec6bfb3/230107006_1.jpg",
                    "Title": "balade à vélos"
                }
            ]
        }
    ],
    "GiftVouchers": [
        {
            "IdGiftVoucher": 909,
            "Price": 100,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftVoucher=909"
        },
        {
            "IdGiftVoucher": 910,
            "Price": 200,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftVoucher=910"
        }
    ],
    "GiftCards": [
        {
            "IdGiftCard": 877,
            "Name": "STAGE DE REMISE EN FORME",
            "Price": 80,
            "ValidityStartDate": "2017-04-21T00:00:00",
            "ValidityEndDate": "2017-12-31T00:00:00",
            "PhotoUrl": "https://cnstlltn.com/crop-1000x660/5b25140b-8d8d-4b31-beea-33dde931c79a/remise-en-forme.jpg",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=877"
        },
        {
            "IdGiftCard": 1561,
            "Name": "Week end détente",
            "Price": 150,
            "DurationInMonths": 12,
            "PhotoUrl": "https://cnstlltn.com/crop-1000x660/1bb6c06a-13a5-4206-bcae-bc8de39d7c89/carte+cadeau.png",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=1561"
        },
        {
            "IdGiftCard": 873,
            "Name": "STAGE DE CUISINE ITALIENNE",
            "Price": 180,
            "ValidityStartDate": "2017-04-20T00:00:00",
            "ValidityEndDate": "2017-12-31T00:00:00",
            "PhotoUrl": "https://cnstlltn.com/crop-1000x660/b091439a-2f06-494a-953c-9072054761f2/carte-cours-de-cuisine.jpg",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=873"
        },
        {
            "IdGiftCard": 872,
            "Name": "WEEK-END REMISE EN FORME",
            "Price": 280,
            "ValidityStartDate": "2017-04-20T00:00:00",
            "ValidityEndDate": "2017-12-31T00:00:00",
            "PhotoUrl": "https://cnstlltn.com/crop-1000x660/de7e1b37-e843-4468-b9cc-8d374e758cfd/carte-spa.jpg",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=872"
        },
        {
            "IdGiftCard": 874,
            "Name": "WEEK-END MONTGOLFIERE",
            "Price": 390,
            "ValidityStartDate": "2017-04-20T00:00:00",
            "ValidityEndDate": "2017-12-31T00:00:00",
            "PhotoUrl": "https://cnstlltn.com/crop-1000x660/518546f3-6e4f-41bb-b62c-c3fd466b94f9/hot-air-balloons-1024x640.jpg",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=874"
        }
    ],
	"Characteristics": [
        {
            "Type": "DisabledAccess",
            "Value": "Accès handicapés"
        },
        {
            "Type": "ComfortElement",
            "Value": "Accès Internet haut-débit"
        },
        {
            "Type": "Service",
            "Value": "Accueil bébé"
        },
        {
            "Type": "PetsAllowed",
            "Value": "Animaux admis"
        },
        {
            "Type": "Equipment",
            "Value": "Appontement"
        },
        {
            "Type": "Service",
            "Value": "Baby Sitter"
        },
        {
            "Type": "ComfortElement",
            "Value": "Balcon"
        },
        {
            "Type": "Equipment",
            "Value": "Bibliothèque"
        },
        {
            "Type": "Equipment",
            "Value": "Billard"
        },
        {
            "Type": "Service",
            "Value": "Blanchisserie / Pressing"
        },
        {
            "Type": "ComfortElement",
            "Value": "Cheminée"
        },
        {
            "Type": "ComfortElement",
            "Value": "Climatisation"
        },
        {
            "Type": "ComfortElement",
            "Value": "Coffre"
        },
        {
            "Type": "Activity",
            "Value": "Équitation"
        },
        {
            "Type": "Activity",
            "Value": "Fitness"
        },
        {
            "Type": "Activity",
            "Value": "Golf"
        },
        {
            "Type": "Equipment",
            "Value": "Hammam"
        },
        {
            "Type": "Equipment",
            "Value": "Jacuzzi"
        },
        {
            "Type": "Equipment",
            "Value": "Jardin indépendant"
        },
        {
            "Type": "Equipment",
            "Value": "Jeux pour enfants"
        },
        {
            "Type": "ComfortElement",
            "Value": "Lit bébé"
        },
        {
            "Type": "Service",
            "Value": "Location matériel de sport"
        },
        {
            "Type": "Equipment",
            "Value": "Matériel de sport"
        },
        {
            "Type": "Equipment",
            "Value": "Parking"
        },
        {
            "Type": "Equipment",
            "Value": "Piscine"
        },
        {
            "Type": "Equipment",
            "Value": "Piscine chauffée"
        },
        {
            "Type": "Activity",
            "Value": "Planche à voile"
        },
        {
            "Type": "Activity",
            "Value": "Randonnée pédestre"
        },
        {
            "Type": "Equipment",
            "Value": "Sauna"
        },
        {
            "Type": "Equipment",
            "Value": "Spa"
        },
        {
            "Type": "Service",
            "Value": "Table d'hôtes"
        },
        {
            "Type": "ComfortElement",
            "Value": "Télévision"
        },
        {
            "Type": "Equipment",
            "Value": "Tennis"
        },
        {
            "Type": "ComfortElement",
            "Value": "Terrasse privative"
        },
        {
            "Type": "Equipment",
            "Value": "Vélos à disposition"
        },
        {
            "Type": "Activity",
            "Value": "Voile"
        },
        {
            "Type": "ComfortElement",
            "Value": "Vue sur mer"
        },
        {
            "Type": "ComfortElement",
            "Value": "Wifi gratuit"
        }
    ],
    "SpokenLanguages": [
        "allemand",
        "anglais",
        "basque",
        "français",
        "italien"
    ],
    "PaymentModes": [
        "American Express",
        "Bons CAF",
        "Carte JCB",
        "Chèques",
        "Chèques de voyage",
        "Chèques Vacances",
        "Diners Club",
        "Espèces",
        "Eurocard - Mastercard",
        "Mandats internationaux",
        "Virements",
        "Visa"
    ],
    "MeansOfCommunication": [
        {
            "Type": "Email",
            "Value": "f.fernandez@lyncis-conseil.com"
        },
        {
            "Type": "Téléphone",
            "Value": "+33 6 48 98 40 43"
        },
        {
            "Type": "Téléphone mobile",
            "Value": "+33 6 48 98 40 43"
        }
    ],
    "CancellationPolicies": [
        "1.Objet<br><br><b>Les présentes conditions générales définissent les droits et obligations des parties dans le cadre de la réservation à distance de services proposés notre établissement dont les coordonnées sont précisées dans le présent document de confirmation de réservation. Elles régissent toutes les étapes nécessaires à la réservation et au suivi de la réservation entre les parties con</b>tractantes. Le client reconnaît avoir pris connaissance et accepté les présentes conditions générales de vente et les conditions de vente du tarif réservé accessibles sur notre plateforme de réservation.  Les présentes conditions générales de vente s'appliquent à toutes les réservations conclues par internet, via notre plateforme de réservation.<br><br>    Réservation<br><br>Le client choisit les services présentés sur notre plateforme de réservation. Il reconnaît avoir pris connaissance de la nature, de la destination et des modalités de réservation des services disponibles sur notre plateforme de réservation et avoir sollicité et obtenu des informations nécessaires et/ou complémentaires pour effectuer sa réservation en parfaite connaissance de cause. Le client est seul responsable de son choix des services et de leur adéquation à ses besoins, de telle sorte que notre responsabilité ne peut être recherchée à cet égard. La réservation est réputée acceptée par le client à l'issue du processus de réservation.<br><br>    Processus de réservation<br><br>Les réservations effectuées par le client se font par l'intermédiaire du bon de réservation dématérialisé accessible en ligne sur notre plateforme de réservation. La réservation est réputée formée dès la réception du bon de réservation. Le client s'engage, préalablement à toute réservation, à compléter les informations demandées sur le bon ou la demande de réservation. Le client atteste de la véracité et de l'exactitude des informations transmises. Après le choix définitif des prestations à réserver, la procédure de réservation comprend notamment la saisie de la carte bancaire en cas de demande de garantie ou de prépaiement, la consultation et l’acceptation des conditions générales de vente et des conditions de vente du tarif réservé avant la validation de la réservation et, enfin, la validation de la réservation par le client.<br><br>    Accusé de réception de la réservation<br><br>Notre plateforme de réservation accuse réception de la réservation du client par l’envoi sans délai d’un courrier électronique. Dans le cas de la réservation en ligne, l'accusé de réception de la réservation par courrier électronique récapitule l'offre de contrat, les services réservés, les prix, les conditions de ventes afférentes au tarif sélectionné, acceptées par le client, la date de réservation effectuée, les informations relatives au service après-vente, ainsi que l’adresse de l’établissement du vendeur auprès duquel le client peut présenter ses réclamations.<br><br>    Annulation ou modification du fait du client<br><br>Il est rappelé au client, conformément à l’article L. 121-21-8 12° du Code de la consommation, qu’il ne dispose pas du droit de rétractation prévu à l’article L. 121-21 du Code de la consommation. Les conditions de vente du tarif réservé précisent les modalités d’annulation et/ou de modification de la réservation. Les réservations avec prépaiement ne pourront faire l’objet d’aucune modification et/ ou annulation. Les sommes versées d’avance que sont les arrhes ne feront l’objet d’aucun remboursement. Dans ce cas, il en est fait mention dans les conditions de vente du tarif. Lorsque les conditions de vente du tarif réservé le permettent, l’annulation de la réservation peut s’effectuer directement auprès de l’établissement, dont les coordonnées téléphoniques sont précisées sur la confirmation de la réservation envoyée par courrier électronique. Toute réservation est nominative et ne peut en aucun cas être cédée à un tiers, que ce soit à titre gratuit ou onéreux.<br><br>    Consommation de la prestation<br><br>En application de la réglementation en vigueur dans certains pays, il pourra être demandé au client, à l’arrivée, de remplir une fiche de police. Pour ce faire, il sera demandé au client de présenter une pièce d’identité afin de vérifier si celui-ci doit compléter ou non la fiche de police. Tout comportement contraire aux bonnes mœurs et à l’ordre public amènera l’établissement à demander au client de quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué. Pour les établissements disposant d’un Règlement Intérieur, le client accepte et s’engage à respecter ledit règlement. En cas de non-respect par le client d’une des dispositions du Règlement Intérieur, l’établissement se trouvera dans l’obligation d’inviter le client à quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué.<br><br>    Responsabilité<br><br>Les photographies présentées sur notre plateforme de réservation ne sont pas contractuelles. Même si tous les meilleurs efforts sont faits pour que les photographies, représentations graphiques et les textes reproduits pour illustrer les établissements présentés donnent un aperçu aussi exact que possible des prestations proposées, des variations peuvent intervenir entre le moment de la réservation et le jour de la consommation du service. L’établissement ne saurait être tenu pour responsable de l'inexécution ou de la mauvaise exécution de la réservation en cas de force majeure, du fait du tiers, du fait du client, notamment l'indisponibilité du réseau internet, impossibilité d’accès au site web, intrusion extérieure, virus informatiques ou en cas prépaiement non autorisé par la banque du porteur. Toute réservation ou paiement qui seraient irréguliers, inopérants, incomplets ou frauduleux pour un motif imputable au client entraînera l’annulation de la commande aux frais du client, sans préjudice de toute action civile ou pénale à l’encontre de ce dernier.<br><br>    Réclamations<br><br>Les réclamations relatives à l’inexécution ou à la mauvaise exécution des prestations réservées doivent, sous peine de forclusion, être portées à notre connaissance par écrit dans les huit jours après la date de départ de l’établissement.<br><br>    Prix<br><br>Les prix afférents à la réservation des services sont indiqués avant et lors de la réservation. Les prix sont confirmés au client en montant TTC, dans la devise commerciale de l’établissement, et ne sont valables que pour la durée indiquée sur la plateforme de réservation. Si le débit à l’établissement s’effectue dans une monnaie autre que celle confirmée sur la réservation, les frais de change sont à la charge du client. Toutes les réservations, quelle que soit leur origine, sont payables dans la monnaie locale de l’établissement, sauf dispositions particulières indiquées sur place. Sauf mention contraire sur la plateforme de réservation, les prestations complémentaires ne sont pas incluses dans le prix.  Les taxes (taxes locales, taxes de séjour, etc …) le cas échéant, présentées sur la page des tarifs, sont à régler directement sur place auprès de l’établissement. Les prix tiennent compte de la TVA applicable au jour de la commande et tout changement du taux applicable à la TVA sera automatiquement répercuté sur les prix indiqués à la date de facturation.Toute modification ou instauration de nouvelles taxes légales ou réglementaires imposées par les autorités compétentes seront automatiquement répercutées sur les prix indiqués à la date de la facturation.<br><br>    Paiement<br><br>Le client communique ses coordonnées bancaires à titre de garantie de la réservation sauf conditions ou tarifs spéciaux, par carte bancaire de crédit ou privative (Visa, Mastercard, American Express, Diners Club… selon les possibilités offertes par la plateforme de réservation de l'établissement) en indiquant directement, dans la zone prévue à cet effet (saisie sécurisée par cryptage SSL), le numéro de carte, sans espaces entre les chiffres, ainsi que sa date de validité (il est précisé que la carte bancaire utilisée doit être valable au moment de la consommation du service) et le cryptogramme visuel. Il doit se présenter à l’établissement avec la carte bancaire lui ayant permis de garantir la réservation. Le débit du paiement s’effectue à l’établissement lors du séjour, sauf dans le cas de conditions ou tarifs spéciaux où le débit partiel ou total du paiement s’effectue lors de la réservation. Ce prépaiement est qualifié d’arrhes. En cas de no show (réservation non annulée – client non présent) d’une réservation garantie par carte bancaire, l’établissement débitera le client, à titre d’indemnité forfaitaire, du montant indiqué dans ses conditions générales et conditions particulières de vente. L’établissement a choisi elloha.com/stripe.com afin de sécuriser les paiements en ligne par carte bancaire. La validité de la carte de paiement du client est vérifiée par stripe.com. Il peut y avoir un refus de la carte de paiement pour plusieurs raisons : carte volée, carte bloquée, plafond atteint, erreur de saisie… En cas de problème, le client devra se rapprocher de sa banque d’une part, de l’établissement d’autre part pour confirmer sa réservation et son mode de paiement. Dans le cas d’un tarif soumis au prépaiement en ligne, la somme versée d’avance, que sont les arrhes, est débitée au moment de la réservation. Certains établissements peuvent générer des factures/notes par voie électronique, le fichier original est certifié et disponible en ligne à l’adresse internet communiquée par l’établissement.<br><br>    Respect de la vie privée<br><br>Le client est informé, sur chacun des formulaires de collecte de données à caractère personnel, du caractère obligatoire ou facultatif des réponses par la présence d’un astérisque. Les informations traitées sont destinées à l’établissements, elloha.com, à ses entités, à ses partenaires, à ses prestataires (et notamment aux prestataires de paiement en ligne). Le client autorise elloha.com à communiquer ses données personnelles à des tiers à la condition qu’une telle communication se révèle compatible avec la réalisation des opérations incombant à elloha.com au titre des présentes conditions générales et en lien avec la Charte clients de protection des données personnelles. En particulier lors du paiement en ligne, les coordonnées bancaires du client devront être transmises par le prestataire de paiement stripe.com à la banque de l’établissement, pour l’exécution du contrat de réservation. Le client est informé que ce transfert de données peut donc s’exécuter dans des pays étrangers ne disposant pas d’une protection des données personnelles adéquate au sens de la loi Informatique et Libertés. Cependant, le client consent à ce transfert nécessaire pour l’exécution de sa réservation. Constellation SAS / Stripe.com en leur qualité de professionnel, se sont engagés vis-à-vis de l’établissement à prendre toutes les mesures de sécurité et de respect de la confidentialité des données pour lesdits transferts de données.<br><br>    Convention de preuve<br><br>La saisie des informations bancaires requises, ainsi que l’acceptation des présentes conditions générales et du bon ou de la demande de réservation, constitue une signature électronique qui a, entre les parties, la même valeur qu'une signature manuscrite. Les registres informatisés conservés dans les systèmes informatiques d’elloha.com. seront conservés dans des conditions raisonnables de sécurité et considérés comme les preuves des communications, des commandes et des paiements intervenus entre les parties. Le client est informé que son adresse IP est enregistrée au moment de la réservation.<br><br>    Force majeure<br><br>La force majeure s’entend de tout évènement extérieur aux parties présentant un caractère à la fois imprévisible et insurmontable qui empêche soit le client, soit l’établissement d’assurer tout ou partie des obligations prévues au contrat. Sont considérés comme cas de force majeure ou cas fortuit ceux habituellement reconnus par la jurisprudence des Cours et Tribunaux français. Chaque partie ne pourra être tenue responsable à l’égard de l’autre partie en cas d’inexécution de ses obligations résultant d’un évènement de force majeure. Il est expressément convenu que la force majeure suspend, pour les parties, l’exécution de leurs obligations réciproques et que chaque partie supporte la charge des frais qui en découlent.<br><br>    Règlement des litiges<br><br>Les présentes Conditions générales de vente sont régies par la loi du pays de l’établissement sans faire obstacle aux dispositions impératives protectrices éventuellement applicables du pays de résidence des consommateurs.<br><br>    Intégralité<br><br>Les présentes Conditions générales de vente, les conditions de vente du tarif réservé par le client, et le bon ou la demande de réservation expriment l'intégralité des obligations des parties. Aucune condition générale ou spécifique communiquée par le client ne pourra s'intégrer aux présentes conditions générales. Les documents formant les engagements contractuels entre les parties sont, par ordre de priorité décroissant, le bon ou la demande de réservation (dont les conditions particulières du tarif réservé) et les présentes conditions générales. En cas de contradiction entre le bon de réservation et les conditions générales, les dispositions figurant au bon de réservation seront les seules applicables pour l’obligation en cause. Les présentes conditions générales de vente par internet peuvent être à tout moment modifiées et/ou complétées par l’établissement. Dans ce cas, la nouvelle version des conditions générales de vente par internet sera mise en ligne par l’établissement. Dès sa mise en ligne sur internet, la nouvelle version des conditions générales de vente par internet s’appliquera automatiquement pour tous les clients."
    ]
}

Activités

Généralités

Dans elloha, la recherche de disponibilité des activités suit un Workflow différent par rapport à celui des hébergements. En effet, les offres des activités (appelées aussi "ressources") sont organisées au sein de différentes formules, chaque formule représentant une prestation différente. Pour un produit donné, la connaissance de ses formules disponibles est donc obligatoire afin de pouvoir ensuite récupérer les offres réservables appartenant à la formule de son choix.

Le Workflow de recherche de disponibilité pour les activités présente donc une étape supplémentaire par rapport à celui des hébergements :

  • Etape 1 : recherche globale de disponibilité.
  • Etape 2 : recherche de la disponibilité des formules pour un produit donné.
  • Etape 3 : recherche de la disponibilité des offres pour une formule donnée.


Tout comme pour les hébergements, les activités sont réparties entre plusieurs types, chacun de ces types étant identifié par un code qui leur est dédié :

  • CulturalActivity pour caractériser les loisirs culturels.
  • LeisureSport pour caractériser les loisirs sportifs.
  • Tasting pour caractériser les activités de dégustation.
  • FestivalOrEvent pour caractériser les fêtes ou manifestations.
  • CulturalHeritage pour caractériser les activités liées au patrimoine culturel.
  • NaturalHeritage pour caractériser les activités liées au patrimoine naturel.
  • Stage pour caractériser les stages.


Il est ainsi possible de filtrer sur l'un de ces types afin de mieux caractériser la recherche globale de disponibilité (étape 1), pour ensuite cibler un produit précis via la transaction de disponibilité des formules (étape 2), et enfin cibler une formule de ce produit via la transaction de disponibilité détaillée (étape 3).

Recherche globale

La recherche globale, tout comme l'ensemble des recherches de disponibilités, s'effectue via l'envoi aux APIs elloha d'une transaction au format JSON (pour plus de détails sur la façon d'appeler les APIs elloha, se référer à la section Accès aux APIs).


Transaction de recherche

La transaction de recherche globale permet de préciser la date de l'activité, ainsi que le type d'activité éventuellement recherché. Aucune occupation n'est demandée pour les activités. En marge de ces critères de base sont proposés d'autres filtres, également décrits ci-dessous, qui permettent d'affiner selon vos besoins la recherche effectuée.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69"
StartDate date non Date de début de l'activité au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-18"
Type string oui Code du type d'activité recherché (la liste des codes pour les activités est donnée dans le paragraphe précédent).
Attention : si cette propriété n'est pas renseignée, alors la recherche s'effectuera par défaut sur l'ensemble des hébergements, et non pas sur l'ensemble des activités.
Afin de définir une recherche sur l'ensemble des activités, alors il convient d'utiliser le code Activity.
Cette propriété doit donc être obligatoirement renseignée dans le cadre d'une recherche d'activités.
"Type": "Activity"

Liste des propriétés géographiques

Propriété Type Obligatoire Description Exemple
City string non Nom de la ville sur laquelle filtrer les résultats. "City": "NOUMEA"
Latitude decimal non Latitude prise en compte dans le cadre d'une recherche par rayon géographique.
Attention : afin que cette recherche par rayon géographique soit réalisable, il convient de renseigner également les propriétés Longitude et Distance décrites ci-dessous.
"Latitude": -21.61297
Longitude decimal non Longitude prise en compte dans le cadre d'une recherche par rayon géographique. Longitude": 166.2148
Distance decimal non Distance, en nombre de kilomètres, prise en compte dans le cadre d'une recherche par rayon géographique. C'est cette distance qui définit le rayon de recherche autour du point défini par la latitude et la longitude renseignées via les propriétés Latitude et Longitude décrites ci-dessus. "Distance": 10

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
IdProducts array[guid] non Liste d'identifiants de produits sur lesquels filtrer les résultats de la recherche. "IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"]
IdOffers array[guid] non Liste d'identifiants de ressources sur lesquelles filtrer les résultats de la recherche. Ainsi, seuls les produits dont ces ressources ont de la disponibilité remonteront dans les résultats de la recherche. "IdOffers": ["1ded54e7-adc0-44fc-954f-84785c36d040", "24181776-c75e-485d-ba8f-0a0d3032fbdc"]
ProductName string non Texte à rechercher dans les noms des produits. Seuls les produits dont le nom contient la valeur renseignée seront alors retournés. "ProductName": "Orangerie"
SearchOnlyPromotion bool non Indicateur précisant de filtrer les résultats de sorte à ne retourner que les produits possédant au moins une promotion. "SearchOnlyPromotion": true
ReturnInternalOffers bool non Indicateur permettant de prendre en compte les prestations internes de l'établissement, destinées à la vente guichet, et de pouvoir vendre l'ensemble de l'inventaire sur des dates passées. "ReturnInternalOffers": true
SearchFormulas bool non Indicateur permettant de retourner les formules disponibles pour tous les établissements en guise de résultat, en supplément des informations des établissements eux-mêmes. "SearchFormulas": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true
Categories array[guid] non Liste de catgérories sur lesquelles filtrer les résultats de la recherche. "Categories": ["d53a979f-520a-4bd0-be0a-b1b96069abf5", "8939ca1d-9527-4ecc-93b9-5d62d23afd7a"]

Exemple de recherche simple sur toutes les activités
Copier

{
	"IdBookingEngine": "c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69",
	"Type": "Activity",
    "StartDate": "2017-11-18"
}


Exemple de recherche sur une liste de produits
Copier

{
	"IdBookingEngine": "c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69",
	"Type": "Activity",
    "IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"],
    "StartDate": "2017-11-18"
}


Exemple de recherche de loisirs culturels sur un rayon géographique avec filtrage sur la présence de promotions
Copier

{
	"IdBookingEngine": "c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69",
	"Type": "CulturalActivity",
    "StartDate": "2017-11-18",
    "Latitude": -21.61297,
    "Longitude": 166.2148,
    "Distance": 10,
    "SearchOnlyPromotion": true
}


Exemple de recherche avec retour de la liste des formules
Copier

{
	"IdBookingEngine": "b68c6848-b7d9-4083-91f0-3de6f065280e",
	"Type": "Activity",
    "StartDate": "2017-11-15",
    "SearchFormulas": true
}




Transaction de réponse

Pour une recherche globale, la réponse décrit une liste simplifiée de produits, avec uniquement les propriétés de base de ces derniers, ainsi qu'avec un prix "à partir de". Pour ce type de recherche, aucune offre n'est remontée. Sur ce point, le fonctionnement est donc identique à celui des hébergements.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date de la réservation au format yyyy-mm-dd. "StartDate": "2017-11-15T00:00:00"
IdProduct guid Identifiant du produit dans elloha. Cet identifiant est indispensable afin de pouvoir récupérer la disponibilité des formules de ce produit, tel que décrit dans le paragraphe suivant. "IdProduct": "2db3a268-fe1a-4e4e-b22f-ff38ce4a9c33"
IdFormula guid Identifiant de la formule. Cette propriété n'est renseignée que si la propriété SearchFormulas de la transaction de recherche a la valeur true. "IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36"
Name string Nom du produit, dans la langue demandée. "Name": "Gecko Evasion - Excursions En 4x4"
FormulaName string Nom de la formule, dans la langue demandée. Cette propriété n'est renseignée que si la propriété SearchFormulas de la transaction de recherche a la valeur true. "FormulaName": "Croisière yoga"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une recherche globale, cette description est tronquée à 512 caractères. "Description": "Réservez vos parcours auprès de Gecko Evasion."
Type string Libellé du type du produit, dans la langue demandée. "Type": "Activité"
PriceFrom decimal Prix "à partir de" du produit, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses formules disponibles, selon les critères de la transaction de recherche. "PriceFrom": 93.5
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion sur ses offres disponibles, selon les critères de la transaction de recherche. "HasPromotion": false
PriceFromWithoutPromotion decimal Prix "à partir de" du produit sans application des promotions disponibles, exprimé dans la devise du moteur de réservation. Cette propriété n'est renseignée que si la propriété HasPromotion a la valeur true. "PriceFromWithoutPromotion": 105.5
ExternalSystem string Nom du connecteur "ExternalSystem" : "Utick"
IdFormulaExternal string L’identifiant externe de la formule. Cette propriété n'est renseignée que si la propriété SearchFormulas de la transaction de recherche a la valeur true. "IdFormulaExternal" : "33013"

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "Address": "Rue Rapadzi"
ZipCode string Code postal de la ville du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "ZipCode": "98829"
City string Nom de la ville du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "City": "THIO"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "Latitude": -21.61297
Longitude decimal Longitude de l'emplacement du produit (ou de la formule si la propriété SearchFormulas de la transaction de recherche a la valeur true). "Longitude": 166.2148

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page du produit listant les formules disponibles, au sein du moteur de réservation elloha. Cette URL reprend la date de l'activité de sorte à conserver ce paramètre dans le moteur de réservation elloha. "BookingUrl": "https://reservation.elloha.com/Search /Index/c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69 ?idoi=f30126d3-2b01-43ce-94d1-50f0eab4a010 &dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR &currency=XPF"

Remarque importante : cette URL permet de réaliser une intégration simple et rapide d'un module de réservation sur une plateforme tierce. En effet, il est tout à fait possible de n'intégrer que la recherche globale et de déléguer l'affichage de la liste des formules d'un produit, du descriptif détaillé d'une formule, ainsi que l'ajout d'une offre au panier, au moteur de réservation elloha via l'utilisation de l'URL fournie par la propriété BookingUrl pour le produit souhaité.



Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une recherche globale, seule la photo principale est remontée. Pour cette unique photo, seule une vignette, au format 300x200, est fournie.
Photos/ThumbnailUrl string URL de la vignette de la photo au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/ 841e8bfd-161d-4349-87ab-d6022d042289/1177493_33_b.jpg"

Exemple de résultat comprenant 2 activités
Copier

[
    {
        "StartDate": "2017-11-18T00:00:00",
        "IdProduct": "a1a24fc4-1f7f-43fb-a801-0801cca5cc35",
        "Name": "Kart Parc Pacific",
        "Description": "Envie de sensations fortes ? Alors RDV sur les pistes du karting de Nakutakoin qui ravira petits et grands ! Une piste de 865 mètres de long et large de 7 mètres va vous permettre de profiter pleinement de votre activité ! Attention : pour cette piste, il faut être âgé de 7 ans minimum et mesurer au moins 1m30. Pour les enfants de 3 à 7 ans, une piste plus petite est disponible et équipée de voiturettes électriques. Vous trouverez sur place un snack (vente de paninis, gâteaux, glaces et friandises), un faré",
        "Type": "Activité",
        "PriceFrom": 12.57,
        "HasPromotion": false,
        "Address": "Route De Nakutakoin",
        "ZipCode": "98835",
        "City": "DUMBEA",
        "CountryCode": "FR",
        "Latitude": -22.17177,
        "Longitude": 166.4364,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69?idoi=a1a24fc4-1f7f-43fb-a801-0801cca5cc35&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/df6bd3bf-8816-46f7-8058-4e61599988ab/10931481_901284229916451_3739096475184696184_o.jpg"
            }
        ]
    },
    {
        "StartDate": "2017-11-18T00:00:00",
        "IdProduct": "02d141d1-b998-4bd3-884a-725bd6197e64",
        "Name": "Tchou Tchou Train Nouméa",
        "Description": "Ne passez pas par Nouméa sans une balade en Tchou Tchou train. Toute l'année, le Tchou Tchou Train vous fait découvrir les plus beaux points de vue de Nouméa pendant 2 heures. Ne manquez rien des essentiels de la capitale calédonienne et venez faire le plein de paysages et d'ambiance locale ! Idéal pour une sortie en famille, cette excursion ravira les petits comme les grands ! Important : le paiement pour le Tchou Tchou train se fait en ligne. La carte bancaire que vous rentrerez pour finaliser votre réser",
        "Type": "Activité",
        "PriceFrom": 16.76,
        "HasPromotion": false,
        "Address": "127 Promenade Roger Laroque",
        "ZipCode": "98800",
        "City": "NOUMEA",
        "CountryCode": "FR",
        "Latitude": -22.3049507393195,
        "Longitude": 166.447762449074,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/c3fac6ff-a61a-4bd5-ab5e-ef596deb0a69?idoi=02d141d1-b998-4bd3-884a-725bd6197e64&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/b0b248b4-88ab-43ec-aed0-113fc39c07d0/17+-+train+1+wiki+wiki+-+2.jpg"
            }
        ]
    }
]


Exemple de résultat en cas de recherche par formule (si la propriété SearchFormulas de la transaction de recherche a la valeur true)
Copier

[
    {
        "StartDate": "2022-02-26T00:00:00",
        "IdProduct": "b2b773e0-cbcf-4753-a226-3b5f4bfff09b",
        "IdFormula": "54403dd0-c656-46cf-b90b-00c10fbd6b65",
        "Name": "Spa by W Barcelona",
        "FormulaName": "Back (strip wax)",
        "Description": "Description of Spa by W Barcelona",
        "Type": "Loisir sportif",
        "PriceFrom": 38.0,
        "HasPromotion": false,
        "Address": "Passeig De Joan De Borbó",
        "ZipCode": "08039",
        "City": "BARCELONA",
        "Country": "ESPAGNE",
        "CountryCode": "ES",
        "Latitude": 41.36863,
        "Longitude": 2.190005,
        "IsAdultRequired": false,
        "BookingUrl": "https://localhost/BEResponsive/Search/Index/be37fd9e-018c-4d5d-8630-82af9b658170?idoi=b2b773e0-cbcf-4753-a226-3b5f4bfff09b&dateFrom=26/02/2022&NbAdultes=2&culture=fr-FR¤cy=EUR&idFormula=54403dd0-c656-46cf-b90b-00c10fbd6b65",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/1c9c0bdc-57bc-472c-95f1-ca1adbe8a7b9/waxing-back.jpeg"
            }
        ]
    },
    {
        "StartDate": "2022-02-26T00:00:00",
        "IdProduct": "b26c4b6a-fe80-4ddf-8170-d20c0cc2f662",
        "IdFormula": "6b6d84f6-bd80-47eb-a2f2-15114cf8f048",
        "Name": "La Rochelle",
        "FormulaName": "Votre Événement Privé",
        "Description": "LA ROCHELLE EN MODE SEGWAY ! \r\n Nul besoin d'avoir le sens de l'équilibre pour faire du Segway...\r\n Le principe du gyropode est d'être auto-stabilisé...il gère donc l'équilibre à votre place ! \r\n Les activités Segway sont ainsi à la portée de tous. \r\n Originales, conviviales et faciles, elles procurent un plaisir immédiat.\r\n Nos activités sont encadrées par des animateurs agrées Segway.\r\n Il ne vous reste plus qu'à découvrir de nouvelles sensations et vivre une expérience unique !\r\n # - Particuliers \r\n - Ci",
        "Type": "Loisir culturel",
        "PriceFrom": 50.0,
        "HasPromotion": false,
        "Address": "44 Rue Saint-Nicolas",
        "ZipCode": "17000",
        "City": "LA ROCHELLE",
        "CityCode": "17300",
        "Country": "FRANCE",
        "CountryCode": "FR",
        "Latitude": 46.15676,
        "Longitude": -1.14925310000001,
        "IsAdultRequired": false,
        "BookingUrl": "https://localhost/BEResponsive/Search/Index/be37fd9e-018c-4d5d-8630-82af9b658170?idoi=b26c4b6a-fe80-4ddf-8170-d20c0cc2f662&dateFrom=26/02/2022&NbAdultes=2&culture=fr-FR¤cy=EUR&idFormula=6b6d84f6-bd80-47eb-a2f2-15114cf8f048",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/42e1a7ee-268e-4f0c-939c-c705a96d05b9/offre-5669-1451687925.jpg"
            }
        ]
    }
]


Disponibilité des formules

Pour un produit donné, la recherche de disponibilité des formules permet d'avoir accès à l'ensemble des propriétés descriptives de ce produit, ainsi qu'à la totalité de ses formules disponibles à la réservation, chacune de ces formules étant remontée de manière simplifiée avec un prix "à partir de". A noter que les chèques et cartes cadeaux réservables sont également remontées dans le cadre de cette transaction : des URLs pointant vers le moteur de réservation elloha sont fournies pour ces derniers, afin de réaliser une gestion du panier de vente pour l'internaute connecté.


Transaction de disponibilité des formules

La transaction permettant d'avoir accès à la disponibilité des formules d'un produit est similaire à une transaction de recherche globale dépourvue de ses filtres d'affinage des résultats, et dans laquelle doit figurer une propriété IdProduct correspondant à l'identifiant du produit ciblé. C'est ainsi la présence de cette propriété IdProduct qui conditionne le type de la réponse donnée par l'API :

  • Sans IdProduct, il s'agira d'une recherche globale.
  • Avec IdProduct, il s'agira d'une recherche de disponibilité des formules pour le produit dont l'identifiant est renseigné, dans la mesure où ce produit correspond à une activité.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "c4697d76-0b81-46ca-bab7-52acf6912d9a"
IdProduct guid oui Identifiant du produit ciblé pour la disponibilité des formules. "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c"
StartDate date non Date de début de l'activité au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-18"

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
ReturnInternalOffers bool non Indicateur permettant de prendre en compte et de retourner les prestations internes de l'établissement, destinées à la vente guichet, et de pouvoir vendre l'ensemble de l'inventaire sur des dates passées. "ReturnInternalOffers": true
ReturnAllHours bool non Indicateur permettant de spécifier si les horaires des formules doivent être retournés (par défaut, les horaires ne sont pas retournés afin de ne pas alourdir le flux). "ReturnAllHours": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche de disponibilité des formules
Copier

{
	"IdBookingEngine": "c4697d76-0b81-46ca-bab7-52acf6912d9a",
	"IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
    "StartDate": "2017-11-18"
}


Exemple de recherche avec retour de la liste des horaires par formule
Copier

{
	"IdBookingEngine": "c4697d76-0b81-46ca-bab7-52acf6912d9a",
	"IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
    "StartDate": "2017-11-18"
    "ReturnAllHours": true
}




Transaction de réponse

Pour une recherche de disponibilité des formules, la réponse décrit le produit correspondant à l'identifiant IdProduct. La réponse recense l'ensemble des formules de ce produit, disponibles selon les critères de recherche renseignés, ainsi que tous les éléments descriptifs du produit pouvant être utiles dans le cadre du processus de réservation.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date de la réservation au format yyyy-mm-dd. "StartDate": "2017-11-18T00:00:00"
IdProduct guid Identifiant du produit dans elloha. "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c"
Name string Nom du produit, dans la langue demandée. "Name": "Kayak Aventures"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une disponibilité détaillée, cette propriété peut contenir des balises HTML. "Description": "Venez profiter de notre activité à sensations !"
Type string Libellé du type du produit, dans la langue demandée. "Type": "Activité"
PriceFrom decimal Prix "à partir de" du produit, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses formules disponibles, selon les critères de la transaction de recherche. "PriceFrom": 14
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion sur ses offres disponibles, selon les critères de la transaction de recherche. "HasPromotion": true
IdCategory guid Catégorie de la formule dans le cadre d'une recherche via searchfromulas=true "IdCategory": "9032f689-7ad2-4f3e-8160-b11d84c3ea1c"
Stock int Stock de la formule dans le cadre d'une recherche via searchfromulas=true "Stock": 10
ExternalSystem string Nom du connecteur "ExternalSystem" : "Utick"

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "Le Bourg"
ZipCode string Code postal de la ville du produit. "ZipCode": "24370"
City string Nom de la ville du produit. "City": "ST JULIEN DE LAMPON"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": 44.86065
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 1.36453000000006

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page du produit listant les formules disponibles, au sein du moteur de réservation elloha. Cette URL reprend la date de l'activité de sorte à conserver ce paramètre dans le moteur de réservation elloha. "BookingUrl": "https://reservation.elloha.com/Search /Index/c4697d76-0b81-46ca-bab7-52acf6912d9a ?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c &dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR"

Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une disponibilité détaillée, toutes les photos sont remontées.
Photos/Url string URL de la photo, au format 1024x768. "Url": "https://cnstlltn.com/crop-1024x768 /00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg"
Photos/ThumbnailUrl string URL de la vignette de la photo, au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200 /00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg"
Photos/Title string Titre éventuellement renseigné pour la photo. "Title": "kayak_aventures_elloha"

Liste des propriétés liées aux formules

Propriété Type Description Exemple
Formulas Liste des formules du produit, disponibles à la vente selon les critères de recherche saisis. Toutes les propriétés descriptives des formules ne sont pas remontées dans le cadre de cette transaction. Afin d'avoir le détail complet d'une formule, l'exécution d'une transaction de disponibilité détaillée d'une formule, décrite dans le paragraphe suivant, est nécessaire.
Formulas/IdFormula guid Identifiant de la formule. "IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36"
Formulas/Name string Nom de la formule, dans la langue demandée. "Name": "Location 1 Heure"
Formulas/PriceFrom decimal Prix "à partir de" de la formule, exprimé dans la devise du moteur de réservation. Cela correspond soit au prix saisi par le prestataire dans la partie descriptive de sa formule, soit, par défaut, au prix minimum de ses offres associés. "PriceFrom": 15
Formulas/HourList Liste de string Liste des horaires de la formule. Cette propriété n'est renseignée que si la propriété ReturnAllHours de la transaction de recherche a la valeur true. "HourList": ["10:00", "10:30", "19:00", "19:30"]
Formulas/HasPromotion bool Indicateur précisant si la formule possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Formulas/DurationOfActivity string Durée de la formule, exprimée dans la langue demandée. "DurationOfActivity": "1h"
Formulas/PeopleNumberPerSession int Nombre de personnes maximum dans le cadre d'une session de la formule. "PeopleNumberPerSession": 12
StockLeft int Nombre de formules restant en stock. "StockLeft": 5
Formulas/IdGroup int Identifiant du groupe associé à la prestation. "IdGroup": 724
Formulas/GroupName string Nom du groupe associé à la prestation. "GroupName": "Descente Kayak"
Formulas/GroupDescription string Description du groupe associé à la prestation. Cette propriété peut contenir des balises HTML "GroupDescription": "Profitez de nos offres spéciales disponibles toute l'année pour des activités uniques en famille."
Formulas/GroupPhotoUrl string URL de la photo du groupe associé à la prestation. "GroupPhotoUrl": "https://cnstlltn.com/300x200/2742de0f-1376-4a05-b796-91a4fa5ba012/pirogue.jpg"
Formulas/GroupPriceFrom decimal Prix "à partir de" du groupe associé à la prestation. "GroupPriceFrom": 40.0
Formulas/GroupLatitude decimal Latitude du groupe associé à la prestation. "GroupLatitude": 42.63243
Formulas/GroupLongitude decimal Longitude du groupe associé à la prestation. "GroupLongitude": 2.756348
Formulas/Photos Liste des photos décrivant la formule. Les photos des offres sont présentées avec le même format que celui des photos du produit (voir description de la propriété Photos ci-dessus).
IdFormulaExternal string L’identifiant externe de la formule "IdFormulaExternal" : "330014"

Liste des propriétés liées aux chèques cadeaux

Propriété Type Description Exemple
GiftVouchers Liste des chèques cadeaux du produit.
Un chèque cadeau est défini par un prix exprimé dans la devise du moteur de réservation, et par une durée de validité, exprimée en nombre de mois.
GiftVouchers/IdGiftVoucher int Identifiant du chèque cadeau. "IdGiftVoucher": 849
GiftVouchers/Price decimal Prix du chèque cadeau, exprimé dans la devise du moteur de réservation. "Price": 100
GiftVouchers/DurationInMonths int Durée du chèque cadeau, exprimée en nombre de mois. "DurationInMonths": 12
GiftVouchers/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du chèque cadeau pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a ?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c &dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR &currency=EUR&idGiftVoucher=849"

Liste des propriétés liées aux cartes cadeaux

Propriété Type Description Exemple
GiftCards Liste des cartes cadeaux du produit.
Une carte cadeau est définie par un nom, par un prix exprimé dans la devise du moteur de réservation, par une photo d'illustration, et par une notion de validité qui est soit exprimée par une durée en nombre de mois, soit par une période bornée par une date de début de validité et une date de fin de validité.
GiftCards/IdGiftCard int Identifiant de la carte cadeau. "IdGiftCard": 866
GiftCards/Name string Nom de la carte cadeau, dans la langue demandée. "Name": "Carte cadeau spéciale"
GiftCards/Price decimal Prix de la carte cadeau, exprimé dans la devise du moteur de réservation. "Price": 50
GiftCards/ValidityStartDate datetime Date de début de validité de la carte cadeau au format yyyy-mm-dd. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une durée. "ValidityStartDate": "2017-04-21T00:00:00"
GiftCards/ValidityEndDate datetime Date de fin de validité de la carte cadeau au format yyyy-mm-dd. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une durée. "ValidityEndDate": "2017-12-31T00:00:00"
GiftCards/DurationInMonths int Durée de la carte cadeau, exprimée en nombre de mois. Cette propriété n'est pas renseignée si jamais la validité de la carte cadeau est exprimée sous la forme d'une période de validité. "DurationInMonths": 12
GiftCards/PhotoUrl string URL de la photo d'illustration de la carte cadeau, au format 1000x660 (format imposé pour toute illustration de carte cadeau dans elloha) "PhotoUrl":
"https://cnstlltn.com/crop-1000x660/1bb6c06a-13a5-4206-bcae-bc8de39d7c89/carte+cadeau.png"
GiftCards/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier de la carte cadeau pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a ?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c &dateFrom=18/11/2017&NbAdultes=1 &culture=fr-FR&currency=EUR &idGiftCard=866"

Liste des propriétés liées aux produits boutique

Propriété Type Description Exemple
ShopProducts Liste des produits boutique du produit.
Un produit boutique est défini par un nom, un prix exprimé dans la devise du moteur de réservation, une description, des photos d'illustration, un stock restant, et éventuellement par un groupe auquel il appartient. S'il s'agit d'une recherche de disponibilité Web, seuls les produits paramétrés en mode Click & Collect seront retournés.
ShopProducts/IdOffer guid Identifiant de la prestation correspondant au produit boutique. "IdOffer": "2280a17e-9270-4daf-a10a-ef125cc0e436"
ShopProducts/Name string Nom du produit boutique, dans la langue demandée. "Name": "Orangina 33cl"
ShopProducts/Description string Description du produit boutique, dans la langue demandée. "Name": "Canette d'Orangina 33cl, disponible au frais."
ShopProducts/Price decimal Prix du produit boutique, exprimé dans la devise du moteur de réservation. "Price": 3.0
ShopProducts/StockLeft int Quantité de produits boutique restant en stock. "StockLeft": 5
ShopProducts/IdGroup int Identifiant du groupe associé au produit boutique. "IdGroup": 143
ShopProducts/GroupName string Nom du groupe associé au produit boutique. "GroupName": "Boissons"
ShopProducts/GroupDescription string Description du groupe associé au produit boutique. Cette propriété peut contenir des balises HTML "GroupDescription": "Profitez de nos nombreuses boissons, disponible au bar."
ShopProducts/GroupPhotoUrl string URL de la photo du groupe associé au produit boutique. "GroupPhotoUrl": "https://cnstlltn.com/300x200/2742de0f-1376-4a05-b796-91a4fa5ba012/boissons.jpg"
ShopProducts/GroupPriceFrom decimal Prix "à partir de" du groupe associé au produit boutique. "GroupPriceFrom": 2.0
ShopProducts/Photos Liste des photos décrivant le produit boutique. Les photos des produits boutique sont présentées avec le même format que celui des photos des autres offres (voir description de la propriété Photos ci-dessus).

Liste des propriétés liées aux caractéristiques du produit

Propriété Type Description Exemple
Characteristics Liste des caractéristiques du produit. Chaque caractéristique est représentée par un type et une valeur.
Characteristics/Type string Code du type de la caractéristique.
Pour les activités, les types possibles sont : DisabledAccess (accès aux personnes handicapées) et PetsAllowed (animaux admis).
"Type": "DisabledAccess"
Characteristics/Value string Valeur de la caractéristique, dans la langue demandée. "Value": "Accès handicapés"
SpokenLanguages array[string] Liste des langues parlées dans le cadre de l'activité, exprimées dans la langue demandée. "SpokenLanguages": [ "français", "italien" ]
PaymentModes array[string] Liste des modes de paiement acceptés par le produit, exprimés dans la langue demandée. "PaymentModes": [ "American Express", "Chèques Vacances", "Visa" ]

Liste des propriétés liées aux moyens de communication

Propriété Type Description Exemple
MeansOfCommunication Liste des différents moyens de communication associés au produit, chaque élément étant décrit par un type et une valeur.
MeansOfCommunication/Type string Libellé du type du moyen de communication, dans la langue demandée. "Type": "Téléphone"
MeansOfCommunication/Value string Valeur du moyen de communication correspondant au type remonté. "Value": "+33 6 48 98 40 43"

Liste des propriétés liées aux conditions de vente

Propriété Type Description Exemple
CancellationPolicies array[string] Liste des conditions de vente associées au produit, présentées sous forme de tableau. Ces conditions de vente peuvent contenir des éléments HTML. "CancellationPolicies": [ "Conditions de vente<br>Aucune annulation possible." ]

Exemple de disponibilité des formules pour une activité, avec retour des horaires des formules (si la propriété ReturnAllHours de la transaction de recherche a la valeur true)
Copier

{
    "StartDate": "2017-11-18T00:00:00",
    "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
    "Name": "Kayak Aventures",
    "Description": "Chez Kayak Aventures, nous accueillons les amoureux du kayak de tous les âges.<div>Découvrez les beautés de notre rivière à travers des itinéraires accessibles à tous.</div><div>Profitez de nos équipements classiques ou sports pour vos randonnées individuelles ou familiales.</div><div>Chez Kayak Aventures, vous bénéficiez d'un service complet pour que votre randonnée soit la plus agréable possible. </div>",
    "Type": "Activité",
    "PriceFrom": 14,
    "HasPromotion": true,
    "Address": "Le Bourg",
    "ZipCode": "24370",
    "City": "ST JULIEN DE LAMPON",
    "CountryCode": "FR",
    "Latitude": 44.86065,
    "Longitude": 1.36453000000006,
    "BookingUrl": "https://reservation.elloha.com/Search/Index/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR",
    "Photos": [
        {
            "Url": "https://cnstlltn.com/crop-1024x768/2577f1b8-5a5d-4dc2-a107-f2a0b8e4a300/zk049ofp4ui-filip-mroz.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/2577f1b8-5a5d-4dc2-a107-f2a0b8e4a300/zk049ofp4ui-filip-mroz.jpg",
            "Title": "kayak_aventures_elloha_3"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg",
            "Title": "kaykak_aventures_elloha"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/143eba5e-a5bd-4839-927c-cc1e8ff1594b/n3xtxxv7qhi-faye-cornish.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/143eba5e-a5bd-4839-927c-cc1e8ff1594b/n3xtxxv7qhi-faye-cornish.jpg",
            "Title": "kayak_aventures_elloha_2"
        }
    ],
    "Formulas": [
        {
            "IdFormula": "18a6280b-7c64-4915-9baa-20c0d7ec72c3",
            "Name": "Carsac - Vitrac (7 Km)",
            "Description": "Laissez vous glisser au fil de l'eau entre les falaises et découvrez depuis la rivière une vue inégalable sur le château de Montfort. <br>7 km - 1h30 à 2 heures max",
            "PriceFrom": 14,
			"HourList": [
                "10:00",
                "10:30",
                "11:00",
                "11:30",
                "12:00",
                "12:30",
                "13:00",
                "13:30",
                "14:00",
                "14:30",
                "15:00",
                "15:30",
                "16:00",
                "16:30",
                "17:00",
                "17:30",
                "18:00",
                "18:30",
                "19:00",
                "19:30"
            ],
            "HasPromotion": true,
            "DurationOfActivity": "2h",
            "PeopleNumberPerSession": 8,
            "StockLeft": 5,
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/2e0c9b85-651c-4bbb-a448-c7a0f14b2436/vitrac.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/2e0c9b85-651c-4bbb-a448-c7a0f14b2436/vitrac.jpg",
                    "Title": "vitrac"
                }
            ]
        },
        {
            "IdFormula": "cbd11b97-49cb-4ad6-810a-9c23f44adde7",
            "Name": "Vitrac - Beynac (15 Km)",
            "Description": "Point de location et arrivée des canoës au cœur du village de Beynac. Le bureau de location se situe entre le parking et le Restaurant Maleville. Départ en bus toutes les heures (par prudence se renseigner et réserver). Parkings communaux.",
            "PriceFrom": 18,
            "HasPromotion": true,
            "DurationOfActivity": "6h",
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/f0f13b99-c490-4d9d-beda-8d75ff0bf680/shutterstock_489524974.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/f0f13b99-c490-4d9d-beda-8d75ff0bf680/shutterstock_489524974.jpg",
                    "Title": "shutterstock_489524974"
                }
            ]
        },
        {
            "IdFormula": "aa521c69-acb0-48f7-8a03-da794566c193",
            "Name": "Saint Julien De Lampon - Vitrac (17 Km)",
            "PriceFrom": 21,
            "HasPromotion": true,
            "DurationOfActivity": "8h",
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/4b0d4203-92a9-4450-9986-ebe1ce599a32/dordogne.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/4b0d4203-92a9-4450-9986-ebe1ce599a32/dordogne.jpg",
                    "Title": "dordogne"
                }
            ]
        },
        {
            "IdFormula": "7ba36dfb-a4c3-498b-b748-6260a3fdbbd2",
            "Name": "Carsac - Beynac (22 Km)",
            "PriceFrom": 23,
            "HasPromotion": true,
            "DurationOfActivity": "8h",
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/c2b131c8-e8e3-4af8-a933-308a7f0f2621/carsac.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/c2b131c8-e8e3-4af8-a933-308a7f0f2621/carsac.jpg",
                    "Title": "carsac"
                }
            ]
        },
        {
            "IdFormula": "cd352dbc-bc2b-4449-b094-b74b720586de",
            "Name": "Weekend Canoe",
            "Description": "<div>Découvrez la Dordogne le temps d'un weekend en canoe:</div><div><br></div><ul><li>1er jour, le samedi : « Circuit sauvage » Saint-Julien de Lampon/Vitrac.</li><li>2e jour, le dimanche : « Circuit touristique » Vitrac/Beynac.</li></ul>Pour la nuit vous avez le choix entre bivouac, chambres d'hôtes, chambre d'hôtel et camping, tous situés à proximité immédiate de la rivière.",
            "PriceFrom": 30,
            "HasPromotion": false,
            "DurationOfActivity": "2 jours",
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/7ce01c02-292c-4b05-8d6c-77ba3521cfe9/zk049ofp4ui-filip-mroz.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/7ce01c02-292c-4b05-8d6c-77ba3521cfe9/zk049ofp4ui-filip-mroz.jpg",
                    "Title": "zk049ofp4ui-filip-mroz"
                }
            ]
        },
        {
            "IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36",
            "Name": "Location 1 Heure",
            "Description": "Venez profitez d'une virée dépaysante en Kayak pendant une heure que vous n'oublierez pas !",
            "PriceFrom": 15,
            "HasPromotion": false,
            "DurationOfActivity": "1h",
            "PeopleNumberPerSession": 12,
            "StockLeft": 6,
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/82e6667f-1df8-4a9c-947c-85f54b9de27f/468807.ori.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/82e6667f-1df8-4a9c-947c-85f54b9de27f/468807.ori.jpg",
                    "Title": "468807"
                }
            ]
        }
    ],
    "GiftVouchers": [
        {
            "IdGiftVoucher": 849,
            "Price": 50,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idGiftVoucher=849"
        }
    ],
    "GiftCards": [
        {
            "IdGiftCard": 866,
            "Name": "Carte cadeau spéciale ",
            "Price": 50,
            "ValidityStartDate": "2017-04-18T00:00:00",
            "ValidityEndDate": "2018-06-10T00:00:00",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idGiftCard=866"
        },
        {
            "IdGiftCard": 1894,
            "Name": "Carte cadeau aventure",
            "Price": 100,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idGiftCard=1894"
        }
    ],
    "Characteristics": [
        {
            "Type": "DisabledAccess",
            "Value": "Accès handicapés"
        },
        {
            "Type": "PetsAllowed",
            "Value": "Animaux admis"
        }
    ],
    "SpokenLanguages": [
        "allemand",
        "anglais",
        "français"
    ],
    "PaymentModes": [
        "American Express",
        "Chèques",
        "Chèques bancaires et postaux",
        "Chèques de voyage",
        "Chèques Vacances",
        "Coupon Sport ANCV",
        "Espèces",
        "Eurocard - Mastercard",
        "Paypal",
        "Visa"
    ],
    "MeansOfCommunication": [
        {
            "Type": "Email",
            "Value": "kayak@elloha.com"
        },
        {
            "Type": "Téléphone mobile",
            "Value": "+33 6 76 49 42 22"
        }
    ],
    "CancellationPolicies": [
        "<section class=\"article-info\" style=\"max-width: 100%; color: rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: 15px;\"><div class=\"article-content\" style=\"line-height: 1.6; margin: 40px 0px; word-wrap: break-word;\"><div class=\"article-body\"><p>Objet</p><p>Les présentes conditions générales définissent les droits et obligations des parties dans le cadre de la réservation à distance de services proposés notre établissement dont les coordonnées sont précisées dans le présent document de confirmation de réservation. Elles régissent toutes les étapes nécessaires à la réservation et au suivi de la réservation entre les parties contractantes. Le client reconnaît avoir pris connaissance et accepté les présentes conditions générales de vente et les conditions de vente du tarif réservé accessibles sur notre plateforme de réservation.  Les présentes conditions générales de vente s'appliquent à toutes les réservations conclues par internet, via notre plateforme de réservation.</p><ol start=\"2\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Réservation</li></ol><p>Le client choisit les services présentés sur notre plateforme de réservation. Il reconnaît avoir pris connaissance de la nature, de la destination et des modalités de réservation des services disponibles sur notre plateforme de réservation et avoir sollicité et obtenu des informations nécessaires et/ou complémentaires pour effectuer sa réservation en parfaite connaissance de cause. Le client est seul responsable de son choix des services et de leur adéquation à ses besoins, de telle sorte que notre responsabilité ne peut être recherchée à cet égard. La réservation est réputée acceptée par le client à l'issue du processus de réservation.</p><ol start=\"3\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Processus de réservation</li></ol><p>Les réservations effectuées par le client se font par l'intermédiaire du bon de réservation dématérialisé accessible en ligne sur notre plateforme de réservation. La réservation est réputée formée dès la réception du bon de réservation. Le client s'engage, préalablement à toute réservation, à compléter les informations demandées sur le bon ou la demande de réservation. Le client atteste de la véracité et de l'exactitude des informations transmises. Après le choix définitif des prestations à réserver, la procédure de réservation comprend notamment la saisie de la carte bancaire en cas de demande de garantie ou de prépaiement, la consultation et l’acceptation des conditions générales de vente et des conditions de vente du tarif réservé avant la validation de la réservation et, enfin, la validation de la réservation par le client.</p><ol start=\"4\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Accusé de réception de la réservation</li></ol><p>Notre plateforme de réservation accuse réception de la réservation du client par l’envoi sans délai d’un courrier électronique. Dans le cas de la réservation en ligne, l'accusé de réception de la réservation par courrier électronique récapitule l'offre de contrat, les services réservés, les prix, les conditions de ventes afférentes au tarif sélectionné, acceptées par le client, la date de réservation effectuée, les informations relatives au service après-vente, ainsi que l’adresse de l’établissement du vendeur auprès duquel le client peut présenter ses réclamations.</p><ol start=\"5\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Annulation ou modification du fait du client</li></ol><p>Il est rappelé au client, conformément à l’article L. 121-21-8 12° du Code de la consommation, qu’il ne dispose pas du droit de rétractation prévu à l’article L. 121-21 du Code de la consommation. Les conditions de vente du tarif réservé précisent les modalités d’annulation et/ou de modification de la réservation. Les réservations avec prépaiement ne pourront faire l’objet d’aucune modification et/ ou annulation. Les sommes versées d’avance que sont les arrhes ne feront l’objet d’aucun remboursement. Dans ce cas, il en est fait mention dans les conditions de vente du tarif. Lorsque les conditions de vente du tarif réservé le permettent, l’annulation de la réservation peut s’effectuer directement auprès de l’établissement, dont les coordonnées téléphoniques sont précisées sur la confirmation de la réservation envoyée par courrier électronique. Toute réservation est nominative et ne peut en aucun cas être cédée à un tiers, que ce soit à titre gratuit ou onéreux.</p><ol start=\"6\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Consommation de la prestation</li></ol><p>En application de la réglementation en vigueur dans certains pays, il pourra être demandé au client, à l’arrivée, de remplir une fiche de police. Pour ce faire, il sera demandé au client de présenter une pièce d’identité afin de vérifier si celui-ci doit compléter ou non la fiche de police. Tout comportement contraire aux bonnes mœurs et à l’ordre public amènera l’établissement à demander au client de quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué. Pour les établissements disposant d’un Règlement Intérieur, le client accepte et s’engage à respecter ledit règlement. En cas de non-respect par le client d’une des dispositions du Règlement Intérieur, l’établissement se trouvera dans l’obligation d’inviter le client à quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué.</p><ol start=\"7\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Responsabilité</li></ol><p>Les photographies présentées sur notre plateforme de réservation ne sont pas contractuelles. Même si tous les meilleurs efforts sont faits pour que les photographies, représentations graphiques et les textes reproduits pour illustrer les établissements présentés donnent un aperçu aussi exact que possible des prestations proposées, des variations peuvent intervenir entre le moment de la réservation et le jour de la consommation du service. L’établissement ne saurait être tenu pour responsable de l'inexécution ou de la mauvaise exécution de la réservation en cas de force majeure, du fait du tiers, du fait du client, notamment l'indisponibilité du réseau internet, impossibilité d’accès au site web, intrusion extérieure, virus informatiques ou en cas prépaiement non autorisé par la banque du porteur. Toute réservation ou paiement qui seraient irréguliers, inopérants, incomplets ou frauduleux pour un motif imputable au client entraînera l’annulation de la commande aux frais du client, sans préjudice de toute action civile ou pénale à l’encontre de ce dernier.</p><ol start=\"8\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Réclamations</li></ol><p>Les réclamations relatives à l’inexécution ou à la mauvaise exécution des prestations réservées doivent, sous peine de forclusion, être portées à notre connaissance par écrit dans les huit jours après la date de départ de l’établissement.</p><ol start=\"9\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Prix</li></ol><p>Les prix afférents à la réservation des services sont indiqués avant et lors de la réservation. Les prix sont confirmés au client en montant TTC, dans la devise commerciale de l’établissement, et ne sont valables que pour la durée indiquée sur la plateforme de réservation. Si le débit à l’établissement s’effectue dans une monnaie autre que celle confirmée sur la réservation, les frais de change sont à la charge du client. Toutes les réservations, quelle que soit leur origine, sont payables dans la monnaie locale de l’établissement, sauf dispositions particulières indiquées sur place. Sauf mention contraire sur la plateforme de réservation, les prestations complémentaires ne sont pas incluses dans le prix.  Les taxes (taxes locales, taxes de séjour, etc …) le cas échéant, présentées sur la page des tarifs, sont à régler directement sur place auprès de l’établissement. Les prix tiennent compte de la TVA applicable au jour de la commande et tout changement du taux applicable à la TVA sera automatiquement répercuté sur les prix indiqués à la date de facturation.Toute modification ou instauration de nouvelles taxes légales ou réglementaires imposées par les autorités compétentes seront automatiquement répercutées sur les prix indiqués à la date de la facturation.</p><ol start=\"10\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Paiement</li></ol><p>Le client communique ses coordonnées bancaires à titre de garantie de la réservation sauf conditions ou tarifs spéciaux, par carte bancaire de crédit ou privative (Visa, Mastercard, American Express, Diners Club… selon les possibilités offertes par la plateforme de réservation de l'établissement) en indiquant directement, dans la zone prévue à cet effet (saisie sécurisée par cryptage SSL), le numéro de carte, sans espaces entre les chiffres, ainsi que sa date de validité (il est précisé que la carte bancaire utilisée doit être valable au moment de la consommation du service) et le cryptogramme visuel. Il doit se présenter à l’établissement avec la carte bancaire lui ayant permis de garantir la réservation. Le débit du paiement s’effectue à l’établissement lors du séjour, sauf dans le cas de conditions ou tarifs spéciaux où le débit partiel ou total du paiement s’effectue lors de la réservation. Ce prépaiement est qualifié d’arrhes. En cas de no show (réservation non annulée – client non présent) d’une réservation garantie par carte bancaire, l’établissement débitera le client, à titre d’indemnité forfaitaire, du montant indiqué dans ses conditions générales et conditions particulières de vente. L’établissement a choisi elloha.com/stripe.com afin de sécuriser les paiements en ligne par carte bancaire. La validité de la carte de paiement du client est vérifiée par stripe.com. Il peut y avoir un refus de la carte de paiement pour plusieurs raisons : carte volée, carte bloquée, plafond atteint, erreur de saisie… En cas de problème, le client devra se rapprocher de sa banque d’une part, de l’établissement d’autre part pour confirmer sa réservation et son mode de paiement. Dans le cas d’un tarif soumis au prépaiement en ligne, la somme versée d’avance, que sont les arrhes, est débitée au moment de la réservation. Certains établissements peuvent générer des factures/notes par voie électronique, le fichier original est certifié et disponible en ligne à l’adresse internet communiquée par l’établissement.</p><ol start=\"11\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Respect de la vie privée</li></ol><p>Le client est informé, sur chacun des formulaires de collecte de données à caractère personnel, du caractère obligatoire ou facultatif des réponses par la présence d’un astérisque. Les informations traitées sont destinées à l’établissements, elloha.com, à ses entités, à ses partenaires, à ses prestataires (et notamment aux prestataires de paiement en ligne). Le client autorise elloha.com à communiquer ses données personnelles à des tiers à la condition qu’une telle communication se révèle compatible avec la réalisation des opérations incombant à elloha.com au titre des présentes conditions générales et en lien avec la Charte clients de protection des données personnelles. En particulier lors du paiement en ligne, les coordonnées bancaires du client devront être transmises par le prestataire de paiement stripe.com à la banque de l’établissement, pour l’exécution du contrat de réservation. Le client est informé que ce transfert de données peut donc s’exécuter dans des pays étrangers ne disposant pas d’une protection des données personnelles adéquate au sens de la loi Informatique et Libertés. Cependant, le client consent à ce transfert nécessaire pour l’exécution de sa réservation. Constellation SAS / Stripe.com en leur qualité de professionnel, se sont engagés vis-à-vis de l’établissement à prendre toutes les mesures de sécurité et de respect de la confidentialité des données pour lesdits transferts de données.</p><ol start=\"12\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Convention de preuve</li></ol><p>La saisie des informations bancaires requises, ainsi que l’acceptation des présentes conditions générales et du bon ou de la demande de réservation, constitue une signature électronique qui a, entre les parties, la même valeur qu'une signature manuscrite. Les registres informatisés conservés dans les systèmes informatiques d’elloha.com. seront conservés dans des conditions raisonnables de sécurité et considérés comme les preuves des communications, des commandes et des paiements intervenus entre les parties. Le client est informé que son adresse IP est enregistrée au moment de la réservation.</p><ol start=\"13\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Force majeure</li></ol><p>La force majeure s’entend de tout évènement extérieur aux parties présentant un caractère à la fois imprévisible et insurmontable qui empêche soit le client, soit l’établissement d’assurer tout ou partie des obligations prévues au contrat. Sont considérés comme cas de force majeure ou cas fortuit ceux habituellement reconnus par la jurisprudence des Cours et Tribunaux français. Chaque partie ne pourra être tenue responsable à l’égard de l’autre partie en cas d’inexécution de ses obligations résultant d’un évènement de force majeure. Il est expressément convenu que la force majeure suspend, pour les parties, l’exécution de leurs obligations réciproques et que chaque partie supporte la charge des frais qui en découlent.</p><ol start=\"14\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Règlement des litiges</li></ol><p>Les présentes Conditions générales de vente sont régies par la loi du pays de l’établissement sans faire obstacle aux dispositions impératives protectrices éventuellement applicables du pays de résidence des consommateurs.</p><ol start=\"15\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Intégralité</li></ol><p style=\"margin-bottom: 0px;\">Les présentes Conditions générales de vente, les conditions de vente du tarif réservé par le client, et le bon ou la demande de réservation expriment l'intégralité des obligations des parties. Aucune condition générale ou spécifique communiquée par le client ne pourra s'intégrer aux présentes conditions générales. Les documents formant les engagements contractuels entre les parties sont, par ordre de priorité décroissant, le bon ou la demande de réservation (dont les conditions particulières du tarif réservé) et les présentes conditions générales. En cas de contradiction entre le bon de réservation et les conditions générales, les dispositions figurant au bon de réservation seront les seules applicables pour l’obligation en cause. Les présentes conditions générales de vente par internet peuvent être à tout moment modifiées et/ou complétées par l’établissement. Dans ce cas, la nouvelle version des conditions générales de vente par internet sera mise en ligne par l’établissement. Dès sa mise en ligne sur internet, la nouvelle version des conditions générales de vente par internet s’appliquera automatiquement pour tous les clients.</p><div class=\"article-attachments\"><ul class=\"attachments\" style=\"list-style: none; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 0px;\"></ul></section><footer style=\"color: rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: 15px;\"><div class=\"article-footer\" style=\"align-items: center; display: flex; justify-content: space-between; padding-bottom: 20px;\"><div class=\"article-share\"></footer>Objet<br><br>Les présentes conditions générales définissent les droits et obligations des parties dans le cadre de la réservation à distance de services proposés notre établissement dont les coordonnées sont précisées dans le présent document de confirmation de réservation. Elles régissent toutes les étapes nécessaires à la réservation et au suivi de la réservation entre les parties contractantes. Le client reconnaît avoir pris connaissance et accepté les présentes conditions générales de vente et les conditions de vente du tarif réservé accessibles sur notre plateforme de réservation.  Les présentes conditions générales de vente s'appliquent à toutes les réservations conclues par internet, via notre plateforme de réservation.<br><br>Réservation<br>Le client choisit les services présentés sur notre plateforme de réservation. Il reconnaît avoir pris connaissance de la nature, de la destination et des modalités de réservation des services disponibles sur notre plateforme de réservation et avoir sollicité et obtenu des informations nécessaires et/ou complémentaires pour effectuer sa réservation en parfaite connaissance de cause. Le client est seul responsable de son choix des services et de leur adéquation à ses besoins, de telle sorte que notre responsabilité ne peut être recherchée à cet égard. La réservation est réputée acceptée par le client à l'issue du processus de réservation.<br><br>Processus de réservation<br>Les réservations effectuées par le client se font par l'intermédiaire du bon de réservation dématérialisé accessible en ligne sur notre plateforme de réservation. La réservation est réputée formée dès la réception du bon de réservation. Le client s'engage, préalablement à toute réservation, à compléter les informations demandées sur le bon ou la demande de réservation. Le client atteste de la véracité et de l'exactitude des informations transmises. Après le choix définitif des prestations à réserver, la procédure de réservation comprend notamment la saisie de la carte bancaire en cas de demande de garantie ou de prépaiement, la consultation et l’acceptation des conditions générales de vente et des conditions de vente du tarif réservé avant la validation de la réservation et, enfin, la validation de la réservation par le client.<br><br>Accusé de réception de la réservation<br>Notre plateforme de réservation accuse réception de la réservation du client par l’envoi sans délai d’un courrier électronique. Dans le cas de la réservation en ligne, l'accusé de réception de la réservation par courrier électronique récapitule l'offre de contrat, les services réservés, les prix, les conditions de ventes afférentes au tarif sélectionné, acceptées par le client, la date de réservation effectuée, les informations relatives au service après-vente, ainsi que l’adresse de l’établissement du vendeur auprès duquel le client peut présenter ses réclamations.<br><br>Annulation ou modification du fait du client<br>Il est rappelé au client, conformément à l’article L. 121-21-8 12° du Code de la consommation, qu’il ne dispose pas du droit de rétractation prévu à l’article L. 121-21 du Code de la consommation. Les conditions de vente du tarif réservé précisent les modalités d’annulation et/ou de modification de la réservation. Les réservations avec prépaiement ne pourront faire l’objet d’aucune modification et/ ou annulation. Les sommes versées d’avance que sont les arrhes ne feront l’objet d’aucun remboursement. Dans ce cas, il en est fait mention dans les conditions de vente du tarif. Lorsque les conditions de vente du tarif réservé le permettent, l’annulation de la réservation peut s’effectuer directement auprès de l’établissement, dont les coordonnées téléphoniques sont précisées sur la confirmation de la réservation envoyée par courrier électronique. Toute réservation est nominative et ne peut en aucun cas être cédée à un tiers, que ce soit à titre gratuit ou onéreux.<br><br>Consommation de la prestation<br>En application de la réglementation en vigueur dans certains pays, il pourra être demandé au client, à l’arrivée, de remplir une fiche de police. Pour ce faire, il sera demandé au client de présenter une pièce d’identité afin de vérifier si celui-ci doit compléter ou non la fiche de police. Tout comportement contraire aux bonnes mœurs et à l’ordre public amènera l’établissement à demander au client de quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué. Pour les établissements disposant d’un Règlement Intérieur, le client accepte et s’engage à respecter ledit règlement. En cas de non-respect par le client d’une des dispositions du Règlement Intérieur, l’établissement se trouvera dans l’obligation d’inviter le client à quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué.<br><br>Responsabilité<br>Les photographies présentées sur notre plateforme de réservation ne sont pas contractuelles. Même si tous les meilleurs efforts sont faits pour que les photographies, représentations graphiques et les textes reproduits pour illustrer les établissements présentés donnent un aperçu aussi exact que possible des prestations proposées, des variations peuvent intervenir entre le moment de la réservation et le jour de la consommation du service. L’établissement ne saurait être tenu pour responsable de l'inexécution ou de la mauvaise exécution de la réservation en cas de force majeure, du fait du tiers, du fait du client, notamment l'indisponibilité du réseau internet, impossibilité d’accès au site web, intrusion extérieure, virus informatiques ou en cas prépaiement non autorisé par la banque du porteur. Toute réservation ou paiement qui seraient irréguliers, inopérants, incomplets ou frauduleux pour un motif imputable au client entraînera l’annulation de la commande aux frais du client, sans préjudice de toute action civile ou pénale à l’encontre de ce dernier.<br><br>Réclamations<br>Les réclamations relatives à l’inexécution ou à la mauvaise exécution des prestations réservées doivent, sous peine de forclusion, être portées à notre connaissance par écrit dans les huit jours après la date de départ de l’établissement.<br><br>Prix<br>Les prix afférents à la réservation des services sont indiqués avant et lors de la réservation. Les prix sont confirmés au client en montant TTC, dans la devise commerciale de l’établissement, et ne sont valables que pour la durée indiquée sur la plateforme de réservation. Si le débit à l’établissement s’effectue dans une monnaie autre que celle confirmée sur la réservation, les frais de change sont à la charge du client. Toutes les réservations, quelle que soit leur origine, sont payables dans la monnaie locale de l’établissement, sauf dispositions particulières indiquées sur place. Sauf mention contraire sur la plateforme de réservation, les prestations complémentaires ne sont pas incluses dans le prix.  Les taxes (taxes locales, taxes de séjour, etc …) le cas échéant, présentées sur la page des tarifs, sont à régler directement sur place auprès de l’établissement. Les prix tiennent compte de la TVA applicable au jour de la commande et tout changement du taux applicable à la TVA sera automatiquement répercuté sur les prix indiqués à la date de facturation.Toute modification ou instauration de nouvelles taxes légales ou réglementaires imposées par les autorités compétentes seront automatiquement répercutées sur les prix indiqués à la date de la facturation.<br><br>Paiement<br>Le client communique ses coordonnées bancaires à titre de garantie de la réservation sauf conditions ou tarifs spéciaux, par carte bancaire de crédit ou privative (Visa, Mastercard, American Express, Diners Club… selon les possibilités offertes par la plateforme de réservation de l'établissement) en indiquant directement, dans la zone prévue à cet effet (saisie sécurisée par cryptage SSL), le numéro de carte, sans espaces entre les chiffres, ainsi que sa date de validité (il est précisé que la carte bancaire utilisée doit être valable au moment de la consommation du service) et le cryptogramme visuel. Il doit se présenter à l’établissement avec la carte bancaire lui ayant permis de garantir la réservation. Le débit du paiement s’effectue à l’établissement lors du séjour, sauf dans le cas de conditions ou tarifs spéciaux où le débit partiel ou total du paiement s’effectue lors de la réservation. Ce prépaiement est qualifié d’arrhes. En cas de no show (réservation non annulée – client non présent) d’une réservation garantie par carte bancaire, l’établissement débitera le client, à titre d’indemnité forfaitaire, du montant indiqué dans ses conditions générales et conditions particulières de vente. L’établissement a choisi elloha.com/stripe.com afin de sécuriser les paiements en ligne par carte bancaire. La validité de la carte de paiement du client est vérifiée par stripe.com. Il peut y avoir un refus de la carte de paiement pour plusieurs raisons : carte volée, carte bloquée, plafond atteint, erreur de saisie… En cas de problème, le client devra se rapprocher de sa banque d’une part, de l’établissement d’autre part pour confirmer sa réservation et son mode de paiement. Dans le cas d’un tarif soumis au prépaiement en ligne, la somme versée d’avance, que sont les arrhes, est débitée au moment de la réservation. Certains établissements peuvent générer des factures/notes par voie électronique, le fichier original est certifié et disponible en ligne à l’adresse internet communiquée par l’établissement.<br><br>Respect de la vie privée<br>Le client est informé, sur chacun des formulaires de collecte de données à caractère personnel, du caractère obligatoire ou facultatif des réponses par la présence d’un astérisque. Les informations traitées sont destinées à l’établissements, elloha.com, à ses entités, à ses partenaires, à ses prestataires (et notamment aux prestataires de paiement en ligne). Le client autorise elloha.com à communiquer ses données personnelles à des tiers à la condition qu’une telle communication se révèle compatible avec la réalisation des opérations incombant à elloha.com au titre des présentes conditions générales et en lien avec la Charte clients de protection des données personnelles. En particulier lors du paiement en ligne, les coordonnées bancaires du client devront être transmises par le prestataire de paiement stripe.com à la banque de l’établissement, pour l’exécution du contrat de réservation. Le client est informé que ce transfert de données peut donc s’exécuter dans des pays étrangers ne disposant pas d’une protection des données personnelles adéquate au sens de la loi Informatique et Libertés. Cependant, le client consent à ce transfert nécessaire pour l’exécution de sa réservation. Constellation SAS / Stripe.com en leur qualité de professionnel, se sont engagés vis-à-vis de l’établissement à prendre toutes les mesures de sécurité et de respect de la confidentialité des données pour lesdits transferts de données.<br><br>Convention de preuve<br>La saisie des informations bancaires requises, ainsi que l’acceptation des présentes conditions générales et du bon ou de la demande de réservation, constitue une signature électronique qui a, entre les parties, la même valeur qu'une signature manuscrite. Les registres informatisés conservés dans les systèmes informatiques d’elloha.com. seront conservés dans des conditions raisonnables de sécurité et considérés comme les preuves des communications, des commandes et des paiements intervenus entre les parties. Le client est informé que son adresse IP est enregistrée au moment de la réservation.<br><br>Force majeure<br>La force majeure s’entend de tout évènement extérieur aux parties présentant un caractère à la fois imprévisible et insurmontable qui empêche soit le client, soit l’établissement d’assurer tout ou partie des obligations prévues au contrat. Sont considérés comme cas de force majeure ou cas fortuit ceux habituellement reconnus par la jurisprudence des Cours et Tribunaux français. Chaque partie ne pourra être tenue responsable à l’égard de l’autre partie en cas d’inexécution de ses obligations résultant d’un évènement de force majeure. Il est expressément convenu que la force majeure suspend, pour les parties, l’exécution de leurs obligations réciproques et que chaque partie supporte la charge des frais qui en découlent.<br><br>Règlement des litiges<br>Les présentes Conditions générales de vente sont régies par la loi du pays de l’établissement sans faire obstacle aux dispositions impératives protectrices éventuellement applicables du pays de résidence des consommateurs.<br><br>Intégralité<br>Les présentes Conditions générales de vente, les conditions de vente du tarif réservé par le client, et le bon ou la demande de réservation expriment l'intégralité des obligations des parties. Aucune condition générale ou spécifique communiquée par le client ne pourra s'intégrer aux présentes conditions générales. Les documents formant les engagements contractuels entre les parties sont, par ordre de priorité décroissant, le bon ou la demande de réservation (dont les conditions particulières du tarif réservé) et les présentes conditions générales. En cas de contradiction entre le bon de réservation et les conditions générales, les dispositions figurant au bon de réservation seront les seules applicables pour l’obligation en cause. Les présentes conditions générales de vente par internet peuvent être à tout moment modifiées et/ou complétées par l’établissement. Dans ce cas, la nouvelle version des conditions générales de vente par internet sera mise en ligne par l’établissement. Dès sa mise en ligne sur internet, la nouvelle version des conditions générales de vente par internet s’appliquera automatiquement pour tous les clients.<br>"
    ]
}

Disponibilité détaillée

Pour un produit donné, la recherche de disponibilité détaillée permet d'avoir accès à l'ensemble des propriétés descriptives d'une formule de ce produit, ainsi qu'à la totalité des offres et options de cette formule. Pour chaque offre ou option figure l'ensemble des données transactionnelles associées : tarifs, stocks restants, conditions de vente. Des URLs pointant vers le moteur de réservation elloha sont également fournies pour chaque élément réservable (chèques et cartes cadeaux compris), afin de réaliser une gestion du panier de vente pour l'internaute connecté.


Transaction de disponibilité détaillée

La transaction permettant d'avoir accès à la disponibilité détaillée d'une formule d'un produit est similaire à une transaction de recherche de disponibilité des formules, à laquelle doit être ajoutée une propriété IdFormula correspondant à l'identifiant de la formule ciblée. C'est ainsi la présence de cette propriété IdFormula qui conditionne le type de la réponse donnée par l'API :

  • Sans IdFormula, il s'agira d'une recherche de disponibilité des formules pour le produit dont l'identifiant est renseigné, dans la mesure où ce produit correspond à une activité.
  • Avec IdFormula, il s'agira d'une recherche de disponibilité détaillée pour le produit et la formule dont les identifiants sont renseignés.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "c4697d76-0b81-46ca-bab7-52acf6912d9a"
IdProduct guid oui Identifiant du produit ciblé pour la disponibilité détaillée. "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c"
IdFormula guid oui Identifiant de la formule ciblée pour la disponibilité détaillée. "IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36"
StartDate date non Date de début de l'activité au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-18"
SearchFirstAvailableDates bool non Indicateur permettant de définir la date de début de l'activité sur le premier jour présentant de la disponibilité à partir d'aujourd’hui.
Attention : si cet indicateur est à true et qu'il y a de la disponibilité, le paramètre StarDate est ignoré.
"SearchFirstAvailableDates": "true"

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
ReturnInternalOffers bool non Indicateur permettant de prendre en compte et de retourner les prestations internes de l'établissement, destinées à la vente guichet, et de pouvoir vendre l'ensemble de l'inventaire sur des dates passées. "ReturnInternalOffers": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche de disponibilité détaillée d'une formule
Copier

{
	"IdBookingEngine": "c4697d76-0b81-46ca-bab7-52acf6912d9a",
	"IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
	"IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36",
    "StartDate": "2017-11-18"
}




Transaction de réponse

Pour une recherche de disponibilité des formules, la réponse décrit le produit correspondant à l'identifiant IdProduct. La réponse recense l'ensemble des formules de ce produit, disponibles selon les critères de recherche renseignés, ainsi que tous les éléments descriptifs du produit pouvant être utiles dans le cadre du processus de réservation.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date du début de l'activité au format yyyy-mm-dd. "StartDate": "2017-11-18T00:00:00"
IdProduct guid Identifiant du produit dans elloha. "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c"
Name string Nom du produit, dans la langue demandée. "Name": "Kayak Aventures"
FormulaName string Nom de la formule, dans la langue demandée. "Name": "Kayak Aventures"
Description string Description de la formule, dans la langue demandée. Dans le cadre d'une disponibilité détaillée, cette propriété peut contenir des balises HTML. "Description": "Venez profiter de notre activité à sensations !"
Type string Libellé du type du produit, dans la langue demandée. "Type": "Activité"
PriceFrom decimal Prix "à partir de" de la formule, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses offres disponibles, hors options, selon les critères de la transaction de recherche. "PriceFrom": 14
HasPromotion bool Indicateur précisant si la formule possède au moins une promotion sur ses offres disponibles, selon les critères de la transaction de recherche. "HasPromotion": true
PriceFromWithoutPromotion decimal Prix "à partir de" de la formule sans application des promotions disponibles, exprimé dans la devise du moteur de réservation. Cette propriété n'est renseignée que si la propriété HasPromotion a la valeur true. "PriceFromWithoutPromotion": 20

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du lieu de la formule. "Address": "Le Bourg"
ZipCode string Code postal de la ville du lieu de la formule. "ZipCode": "24370"
City string Nom de la ville du lieu de la formule. "City": "ST JULIEN DE LAMPON"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du lieu de la formule. "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du lieu de la formule. "Latitude": 44.86065
Longitude decimal Longitude de l'emplacement du lieu de la formule. "Longitude": 1.36453000000006

Liste des propriétés liées aux restrictions de la formule

Propriété Type Description Exemple
PeopleNumberPerSession int Nombre de personnes maximum dans le cadre d'une session de la formule. "PeopleNumberPerSession": 12
StockLeft int Nombre de formules restant en stock. "StockLeft": 5
ProductInclude string Description de ce que la formule comprend, dans la langue demandée. "ProductInclude": "L'équipement nécessaire à la pratique du Kayak."
ProductExclude string Description de ce que la formule ne comprend pas, dans la langue demandée. "ProductExclude": "La consigne n'est pas comprise dans le prix."
Equipments string Liste des équipements nécessaires pour une participation à la formule, dans la langue demandée. "Equipments": "Maillot de bain."
Documents string Liste des documents nécessaires pour une participation à la formule, dans la langue demandée. "Documents": "Carte d'identité."
Difficulty int Niveau de difficulté de la formule, matérialisée par un chiffre de 1 à 5 (de facile à très difficile). "Difficulty": 3
IsAdultRequired bool Indicateur précisant si la présence d'un adulte est nécessaire pour une participation à la formule. "IsAdultRequired": true

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail de la formule au sein du moteur de réservation elloha. Cette URL reprend la date de l'activité de sorte à conserver ce paramètre dans le moteur de réservation elloha. "BookingUrl": "https://reservation.elloha.com/Search /Index/c4697d76-0b81-46ca-bab7-52acf6912d9a ?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c &dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR &currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36"

Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos directement associées à la formule.
Photos/Url string URL de la photo, au format 1024x768. "Url": "https://cnstlltn.com/crop-1024x768 /00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg"
Photos/ThumbnailUrl string URL de la vignette de la photo, au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200 /00dc8976-70a3-4f9d-8ceb-a7a7921b36c0/l2801u-rasg-josh-trommel.jpg"
Photos/Title string Titre éventuellement renseigné pour la photo. "Title": "kayak_aventures_elloha"

Liste des propriétés liées aux offres

Propriété Type Description Exemple
Offers Liste des offres principales de la formule (hors options, qui font l'objet d'un bloc à part), disponibles à la vente selon les critères de recherche saisis.
Offers/IdOffer guid Identifiant de l'offre. "IdOffer": "1fec3296-53dc-40b2-aa61-1959b2d6d3bc"
Offers/Name string Nom de l'offre, dans la langue demandée. "Name": "Kayak (1 Place)"
Offers/Description string Description de l'offre, dans la langue demandée. "Description": "Kayak confortable pour une personne."
Offers/PriceFrom decimal Prix "à partir de" de l'offre, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses tarifs associés. "PriceFrom": 10
Offers/HasPromotion bool Indicateur précisant si l'offre possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Offers/Capacity int Quantité totale disponible pour l'offre. "Capacity": 50
Offers/Photos Liste des photos décrivant l'offre. Les photos des offres sont présentées avec le même format que celui des photos du produit (voir description de la propriété Photos ci-dessus).

Liste des propriétés liées aux tarifs des offres

Propriété Type Description Exemple
Offers/Rates Liste des tarifs réservables de l'offre, disponibles selon les critères de recherche. Les tarifs sont remontés avec leur prix, leur descriptif et leurs conditions d'annulation.
Offers/Rates/IdRate guid Identifiant du tarif. "IdRate": "4707d649-7d83-407c-b489-6b0ec816165d"
Offers/Rates/Name string Nom du tarif, dans la langue demandée. "Name": "Promo Sympa"
Offers/Rates/Description string Description du tarif, dans la langue demandée. "Description": "Promotion pour le lancement de notre site Internet."
Offers/Rates/Hour string Horaire pour lequel le tarif s'applique.
A noter que si l'offre est vendue à la journée alors cette propriété ne sera pas renseignée.
"Hour": "15:30"
Offers/Rates/IsRackRate bool Indicateur précisant si le tarif correspond à un tarif de base. "IsRackRate": true
Offers/Rates/IsSpecialOffer bool Indicateur précisant si le tarif correspond à une offre spéciale. "IsSpecialOffer": false
Offers/Rates/IsPromotion bool Indicateur précisant si le tarif correspond à une promotion. "IsPromotion": true
Offers/Rates/IsEarlyBird bool Indicateur précisant si le tarif correspond à une promotion de type Early Bird. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsEarlyBird": false
Offers/Rates/IsLastMinute bool Indicateur précisant si le tarif correspond à une promotion de type Last Minute. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsLastMinute": false
Offers/Rates/IsBestRate bool Indicateur précisant si le tarif correspond au meilleur tarif proposé pour l'offre. "IsBestRate": true
Offers/Rates/Price decimal Prix de vente du tarif, exprimé dans la devise du moteur de réservation. "Price": 20
Offers/Rates/PriceWithoutPromotion decimal Prix de vente du tarif tel qu'il serait sans application de la promotion (prix barré), exprimé dans la devise du moteur de réservation. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "PriceWithoutPromotion": 25
Offers/Rates/StockLeft int Stock restant pour l'offre, par rapport à l'horaire sur lequel s'applique le tarif, et selon les critères de recherche renseignés. "StockLeft": 2
Offers/Rates/MinimumQuantity int Quantité minimum à réserver pour l'offre afin que la commande puisse être validée. "MinimumQuantity": 2
Offers/Rates/MaximumQuantity int Quantité maximum réservable pour l'offre afin que la commande puisse être validée. "MaximumQuantity": 12
Offers/Rates/AgeMinimum int Age minimum à respecter pour tout participant à l'activité. "AgeMinimum": 5
Offers/Rates/HeightMinimum decimal Taille minimum, en mètres, à respecter pour tout participant à l'activité. "HeightMinimum": 1
Offers/Rates/PriceInclude string Description de ce que le prix du tarif comprend, dans la langue demandée. "PriceInclude": "La location du matériel."
Offers/Rates/PriceExclude string Description de ce que le prix du tarif ne comprend pas, dans la langue demandée. "PriceExclude": "La consigne."
Offers/Rates/IsPersonNumberDependant bool Indicateur précisant si le tarif est dépendant du choix d'un PAX (nombre d'adultes et nombre d'enfants). Si cela n'est pas le cas, alors la définition d'une quantité réservée sera suffisante pour la création du dossier de vente. "IsPersonNumberDependant": false
Offers/Rates/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du tarif pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a ?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c &dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR &currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36 &rateCode=85ec6692-3f54-4189-9262-dbb0fef34034 &offerCode=1fec3296-53dc-40b2-aa61-1959b2d6d3bc &Hour=15:30"
Offers/Rates/IsCancellable bool Indicateur précisant si le tarif est annulable pour le client. "IsCancellable": true
Offers/Rates/IsCancellableForFree bool Indicateur précisant si le tarif est annulable gratuitement pour le client. Cette propriété est renseignée si et seulement si la propriété IsCancellable est à true. "IsCancellableForFree": false
Offers/Rates/CancellationPolicies array[string] Liste des conditions d'annulation propres au tarif, dans la langue demandée. "CancellationPolicies": [ "Plus de 30 jours avant le départ, 10% du montant de votre réservation", "De 30 à 21 jours du départ, 40% du montant de votre réservation", "De 20 à 8 jours du départ, 60% du montant de votre réservation", "De 7 à 2 jours du départ, 75% du montant de votre réservation", "A 2 jours du départ, 100% du montant de votre réservation" ]

Liste des propriétés liées aux options

Propriété Type Description Exemple
Options Liste des options supplémentaires de la formule, disponibles à la vente selon les critères de recherche saisis.
Options/IdOffer guid Identifiant de l'option. "IdOffer": "5a13a613-f7b1-4041-982a-953482efae73"
Options/Name string Nom de l'option, dans la langue demandée. "Name": "Audioguide"
Options/IdType guid Identifiant du type de l'option. Les identifiants disponibles sont les suivants :
  • 11d8ddcf-7d41-4b5e-a017-dd68e6044504 : Petit-Déjeuner
  • a2d6ec06-ad5e-4e01-a624-52b2bd6e946b : Déjeuner
  • ea2f8930-a0a7-4554-8820-5814b1e7d3b4 : Dîner
  • debb22f0-1df4-4f94-9b38-c8b4c6b06f16 : Parking
  • 0675a11d-36d9-4642-af81-cb3c597c2041 : Navette
  • 1c0695c4-343a-43f0-9287-7c9d0f735af9 : Activité
  • b8f7278e-2211-4a56-b974-86655c5002a2 : Location de matériel
  • c306219c-712e-475f-9a01-fd98d2533f95 : Salle de réunion
  • d4d9db86-bed5-4cc9-9fa5-6ea63c1ca8c4 : Location de salle
  • f4b6de34-dafe-46c0-a741-f38d7d9d1924 : Autres
"IdType": "11d8ddcf-7d41-4b5e-a017-dd68e6044504"
Options/Type string Libellé du type l'option, dans la langue demandée. "Type": "Parking"
Options/Description string Description de l'option, dans la langue demandée. Cette description peut comporter des éléments HTML. "L'audioguide vous permettra de profiter pleinement de la visite."
Options/PriceFrom decimal Prix "à partir de" de l'option, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses tarifs associés. "PriceFrom": 8
Options/HasPromotion bool Indicateur précisant si l'option possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Options/Capacity int Quantité totale disponible pour l'option. "Capacity": 50
Options/Photos Liste des photos décrivant l'option. Les photos des offres sont présentées avec le même format que celui des photos du produit (voir description de la propriété Photos ci-dessus).
Options/Rates Liste des tarifs réservables de l'option, disponibles selon les critères de recherche. Les tarifs d'une option sont présentés avec le même format que celui des tarifs d'une offre (voir description de la propriété Offers/Rates ci-dessus).

Liste des propriétés liées aux chèques cadeaux

Les données remontées sont identiques à celles figurant dans la réponse à une transaction de recherche de disponibilité des formules. Pour plus de détails, se référer au paragraphe précédent.


Liste des propriétés liées aux cartes cadeaux

Les données remontées sont identiques à celles figurant dans la réponse à une transaction de recherche de disponibilité des formules. Pour plus de détails, se référer au paragraphe précédent.


Liste des propriétés liées aux caractéristiques du produit

Les données remontées sont identiques à celles figurant dans la réponse à une transaction de recherche de disponibilité des formules. Pour plus de détails, se référer au paragraphe précédent.


Liste des propriétés liées aux moyens de communication

Les données remontées sont identiques à celles figurant dans la réponse à une transaction de recherche de disponibilité des formules. Pour plus de détails, se référer au paragraphe précédent.


Liste des propriétés liées aux conditions de vente

Les données remontées sont identiques à celles figurant dans la réponse à une transaction de recherche de disponibilité des formules. Pour plus de détails, se référer au paragraphe précédent.


Exemple de disponibilité détaillée d'une formule
Copier

{
    "StartDate": "2017-11-18T00:00:00",
    "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
    "IdFormula": "ec185b4c-5d11-4796-9f5e-5166dcd23a36",
    "Name": "Kayak Aventures",
    "FormulaName": "Location 1 Heure",
    "Description": "Venez profitez d'une virée dépaysante en Kayak pendant une heure que vous n'oublierez pas !",
    "Type": "Activité",
    "PriceFrom": 15,
    "HasPromotion": false,
    "Address": "Le Bourg",
    "ZipCode": "24370",
    "City": "ST JULIEN DE LAMPON",
    "CountryCode": "FR",
    "Latitude": 44.86065,
    "Longitude": 1.36453000000006,
    "PeopleNumberPerSession": 12,
    "StockLeft": 5,
    "ProductInclude": "L'équipement nécessaire à la pratique du Kayak.",
    "ProductExclude": "La consigne n'est pas comprise dans le prix.",
    "Equipments": "Maillot de bain.",
    "Documents": "Carte d'identité.",
    "Difficulty": 3,
    "IsAdultRequired": true,
    "BookingUrl": "https://reservation.elloha.com/Search/Index/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36",
    "IdCategory": "8963c4c8-0a18-4a72-bb56-fbefdbab5079",
	"Stock": 10,
    "Photos": [
        {
            "Url": "https://cnstlltn.com/crop-1024x768/82e6667f-1df8-4a9c-947c-85f54b9de27f/468807.ori.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/82e6667f-1df8-4a9c-947c-85f54b9de27f/468807.ori.jpg",
            "Title": "468807"
        }
    ],
	"Offers": [
        {
            "IdOffer": "1fec3296-53dc-40b2-aa61-1959b2d6d3bc",
            "Name": "Kayak (1 Place)",
            "PriceFrom": 10,
            "HasPromotion": true,
            "Capacity": 50,
            "Rates": [
                {
                    "IdRate": "4707d649-7d83-407c-b489-6b0ec816165d",
                    "Name": "Promo Sympa",
                    "Description": "Promotion pour le lancement de notre site Internet.",
                    "Hour": "14:00",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": true,
                    "IsEarlyBird": false,
                    "IsLastMinute": false,
                    "IsBestRate": true,
                    "Price": 10,
                    "StockLeft": 12,
                    "MinimumQuantity": 2,
                    "MaximumQuantity": 6,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "PriceInclude": "La location du matériel.",
                    "PriceExclude": "La consigne.",
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=4707d649-7d83-407c-b489-6b0ec816165d&offerCode=1fec3296-53dc-40b2-aa61-1959b2d6d3bc",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "14:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": false,
                    "Price": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 2,
                    "MaximumQuantity": 6,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=1fec3296-53dc-40b2-aa61-1959b2d6d3bc",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "4707d649-7d83-407c-b489-6b0ec816165d",
                    "Name": "Promo Sympa",
                    "Description": "Promotion pour le lancement de notre site Internet.",
                    "Hour": "15:30",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": true,
                    "IsEarlyBird": false,
                    "IsLastMinute": false,
                    "IsBestRate": true,
                    "Price": 10,
                    "StockLeft": 12,
                    "MinimumQuantity": 2,
                    "MaximumQuantity": 6,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "PriceInclude": "La location du matériel.",
                    "PriceExclude": "La consigne.",
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=4707d649-7d83-407c-b489-6b0ec816165d&offerCode=1fec3296-53dc-40b2-aa61-1959b2d6d3bc",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "15:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": false,
                    "Price": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 2,
                    "MaximumQuantity": 6,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=1fec3296-53dc-40b2-aa61-1959b2d6d3bc",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/3aef2bcd-4e38-466a-aac6-e6a467cf3643/kayak_aventures_kayak.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/3aef2bcd-4e38-466a-aac6-e6a467cf3643/kayak_aventures_kayak.jpg",
                    "Title": "kayak_aventures_kayak"
                }
            ]
        },
        {
            "IdOffer": "65b251ad-e787-4cf1-b617-097bcbd145de",
            "Name": "Canoe 2 Places",
            "PriceFrom": 15,
            "HasPromotion": true,
            "Capacity": 30,
            "Rates": [
                {
                    "IdRate": "4707d649-7d83-407c-b489-6b0ec816165d",
                    "Name": "Promo Sympa",
                    "Description": "Promotion pour le lancement de notre site Internet.",
                    "Hour": "14:00",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": true,
                    "IsEarlyBird": false,
                    "IsLastMinute": false,
                    "IsBestRate": true,
                    "Price": 15,
                    "PriceWithoutPromotion": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 1,
                    "MaximumQuantity": 8,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "PriceInclude": "La location du matériel.",
                    "PriceExclude": "La consigne.",
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=4707d649-7d83-407c-b489-6b0ec816165d&offerCode=65b251ad-e787-4cf1-b617-097bcbd145de",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "14:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": false,
                    "Price": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 1,
                    "MaximumQuantity": 8,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=65b251ad-e787-4cf1-b617-097bcbd145de",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "4707d649-7d83-407c-b489-6b0ec816165d",
                    "Name": "Promo Sympa",
                    "Description": "Promotion pour le lancement de notre site Internet.",
                    "Hour": "15:30",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": true,
                    "IsEarlyBird": false,
                    "IsLastMinute": false,
                    "IsBestRate": true,
                    "Price": 15,
                    "PriceWithoutPromotion": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 1,
                    "MaximumQuantity": 8,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "PriceInclude": "La location du matériel.",
                    "PriceExclude": "La consigne.",
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=4707d649-7d83-407c-b489-6b0ec816165d&offerCode=65b251ad-e787-4cf1-b617-097bcbd145de",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "15:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": false,
                    "Price": 20,
                    "StockLeft": 12,
                    "MinimumQuantity": 1,
                    "MaximumQuantity": 8,
                    "AgeMinimum": 5,
                    "HeightMinimum": 1,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=65b251ad-e787-4cf1-b617-097bcbd145de",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/0bf87926-5a9b-458f-a38d-e26622dec387/canoe_kayak_aventures.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/0bf87926-5a9b-458f-a38d-e26622dec387/canoe_kayak_aventures.jpg",
                    "Title": "canoe_kayak_aventures"
                }
            ]
        }
    ],
    "Options": [
        {
            "IdOffer": "82ecf8d1-8d69-4df2-8e23-21d8d2770890",
            "Name": "Panier Repas Perigourdin",
            "Description": "Emportez avec vous un véritable pique-nique perigourdin : rillettes de canard, pain frais aux céréales, fruits de saison, une assiette de charcuteries du pays, eau minerale + 1 bouteille de vin de Cahors",
            "PriceFrom": 8,
            "HasPromotion": false,
            "Rates": [
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "14:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 8,
                    "StockLeft": 12,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=82ecf8d1-8d69-4df2-8e23-21d8d2770890&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                },
                {
                    "IdRate": "85ec6692-3f54-4189-9262-dbb0fef34034",
                    "Name": "Prix Standard",
                    "Hour": "15:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "Price": 8,
                    "StockLeft": 12,
                    "IsPersonNumberDependant": false,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&rateCode=85ec6692-3f54-4189-9262-dbb0fef34034&offerCode=82ecf8d1-8d69-4df2-8e23-21d8d2770890&isOption=True",
                    "IsCancellable": true,
                    "IsCancellableForFree": false,
                    "CancellationPolicies": [
                        "Plus de 30 jours avant l'arrivée, 10% du montant de votre réservation",
                        "De 30 à 21 jours de l'arrivée, 40% du montant de votre réservation",
                        "De 20 à 8 jours de l'arrivée, 60% du montant de votre réservation",
                        "De 7 à 2 jours de l'arrivée, 75% du montant de votre réservation",
                        "A 2 jours de l'arrivée, 100% du montant de votre réservation"
                    ]
                }
            ],
            "Photos": [
                {
                    "Url": "https://cnstlltn.com/crop-1024x768/48bfd91c-55fc-49ad-90d5-f1ad33afb680/piquenique.jpg",
                    "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/48bfd91c-55fc-49ad-90d5-f1ad33afb680/piquenique.jpg",
                    "Title": "piquenique"
                }
            ]
        }
    ],
    "GiftVouchers": [
        {
            "IdGiftVoucher": 849,
            "Price": 50,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&idGiftVoucher=849"
        }
    ],
    "GiftCards": [
        {
            "IdGiftCard": 866,
            "Name": "Carte cadeau spéciale ",
            "Price": 50,
            "ValidityStartDate": "2017-04-18T00:00:00",
            "ValidityEndDate": "2018-06-10T00:00:00",
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&idGiftCard=866"
        },
        {
            "IdGiftCard": 1894,
            "Name": "Carte cadeau aventure",
            "Price": 100,
            "DurationInMonths": 12,
            "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/c4697d76-0b81-46ca-bab7-52acf6912d9a?idoi=70fb831d-4f90-4ca5-b46c-c33ecefa922c&dateFrom=18/11/2017&NbAdultes=1&culture=fr-FR&currency=EUR&idFormula=ec185b4c-5d11-4796-9f5e-5166dcd23a36&idGiftCard=1894"
        }
    ],
    "Characteristics": [
        {
            "Type": "DisabledAccess",
            "Value": "Accès handicapés"
        },
        {
            "Type": "PetsAllowed",
            "Value": "Animaux admis"
        }
    ],
    "SpokenLanguages": [
        "allemand",
        "anglais",
        "français"
    ],
    "PaymentModes": [
        "American Express",
        "Chèques",
        "Chèques bancaires et postaux",
        "Chèques de voyage",
        "Chèques Vacances",
        "Coupon Sport ANCV",
        "Espèces",
        "Eurocard - Mastercard",
        "Paypal",
        "Visa"
    ],
    "MeansOfCommunication": [
        {
            "Type": "Email",
            "Value": "kayak@elloha.com"
        },
        {
            "Type": "Téléphone mobile",
            "Value": "+33 6 76 49 42 22"
        }
    ],
    "CancellationPolicies": [
        "<section class=\"article-info\" style=\"max-width: 100%; color: rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: 15px;\"><div class=\"article-content\" style=\"line-height: 1.6; margin: 40px 0px; word-wrap: break-word;\"><div class=\"article-body\"><p>Objet</p><p>Les présentes conditions générales définissent les droits et obligations des parties dans le cadre de la réservation à distance de services proposés notre établissement dont les coordonnées sont précisées dans le présent document de confirmation de réservation. Elles régissent toutes les étapes nécessaires à la réservation et au suivi de la réservation entre les parties contractantes. Le client reconnaît avoir pris connaissance et accepté les présentes conditions générales de vente et les conditions de vente du tarif réservé accessibles sur notre plateforme de réservation.  Les présentes conditions générales de vente s'appliquent à toutes les réservations conclues par internet, via notre plateforme de réservation.</p><ol start=\"2\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Réservation</li></ol><p>Le client choisit les services présentés sur notre plateforme de réservation. Il reconnaît avoir pris connaissance de la nature, de la destination et des modalités de réservation des services disponibles sur notre plateforme de réservation et avoir sollicité et obtenu des informations nécessaires et/ou complémentaires pour effectuer sa réservation en parfaite connaissance de cause. Le client est seul responsable de son choix des services et de leur adéquation à ses besoins, de telle sorte que notre responsabilité ne peut être recherchée à cet égard. La réservation est réputée acceptée par le client à l'issue du processus de réservation.</p><ol start=\"3\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Processus de réservation</li></ol><p>Les réservations effectuées par le client se font par l'intermédiaire du bon de réservation dématérialisé accessible en ligne sur notre plateforme de réservation. La réservation est réputée formée dès la réception du bon de réservation. Le client s'engage, préalablement à toute réservation, à compléter les informations demandées sur le bon ou la demande de réservation. Le client atteste de la véracité et de l'exactitude des informations transmises. Après le choix définitif des prestations à réserver, la procédure de réservation comprend notamment la saisie de la carte bancaire en cas de demande de garantie ou de prépaiement, la consultation et l’acceptation des conditions générales de vente et des conditions de vente du tarif réservé avant la validation de la réservation et, enfin, la validation de la réservation par le client.</p><ol start=\"4\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Accusé de réception de la réservation</li></ol><p>Notre plateforme de réservation accuse réception de la réservation du client par l’envoi sans délai d’un courrier électronique. Dans le cas de la réservation en ligne, l'accusé de réception de la réservation par courrier électronique récapitule l'offre de contrat, les services réservés, les prix, les conditions de ventes afférentes au tarif sélectionné, acceptées par le client, la date de réservation effectuée, les informations relatives au service après-vente, ainsi que l’adresse de l’établissement du vendeur auprès duquel le client peut présenter ses réclamations.</p><ol start=\"5\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Annulation ou modification du fait du client</li></ol><p>Il est rappelé au client, conformément à l’article L. 121-21-8 12° du Code de la consommation, qu’il ne dispose pas du droit de rétractation prévu à l’article L. 121-21 du Code de la consommation. Les conditions de vente du tarif réservé précisent les modalités d’annulation et/ou de modification de la réservation. Les réservations avec prépaiement ne pourront faire l’objet d’aucune modification et/ ou annulation. Les sommes versées d’avance que sont les arrhes ne feront l’objet d’aucun remboursement. Dans ce cas, il en est fait mention dans les conditions de vente du tarif. Lorsque les conditions de vente du tarif réservé le permettent, l’annulation de la réservation peut s’effectuer directement auprès de l’établissement, dont les coordonnées téléphoniques sont précisées sur la confirmation de la réservation envoyée par courrier électronique. Toute réservation est nominative et ne peut en aucun cas être cédée à un tiers, que ce soit à titre gratuit ou onéreux.</p><ol start=\"6\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Consommation de la prestation</li></ol><p>En application de la réglementation en vigueur dans certains pays, il pourra être demandé au client, à l’arrivée, de remplir une fiche de police. Pour ce faire, il sera demandé au client de présenter une pièce d’identité afin de vérifier si celui-ci doit compléter ou non la fiche de police. Tout comportement contraire aux bonnes mœurs et à l’ordre public amènera l’établissement à demander au client de quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué. Pour les établissements disposant d’un Règlement Intérieur, le client accepte et s’engage à respecter ledit règlement. En cas de non-respect par le client d’une des dispositions du Règlement Intérieur, l’établissement se trouvera dans l’obligation d’inviter le client à quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué.</p><ol start=\"7\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Responsabilité</li></ol><p>Les photographies présentées sur notre plateforme de réservation ne sont pas contractuelles. Même si tous les meilleurs efforts sont faits pour que les photographies, représentations graphiques et les textes reproduits pour illustrer les établissements présentés donnent un aperçu aussi exact que possible des prestations proposées, des variations peuvent intervenir entre le moment de la réservation et le jour de la consommation du service. L’établissement ne saurait être tenu pour responsable de l'inexécution ou de la mauvaise exécution de la réservation en cas de force majeure, du fait du tiers, du fait du client, notamment l'indisponibilité du réseau internet, impossibilité d’accès au site web, intrusion extérieure, virus informatiques ou en cas prépaiement non autorisé par la banque du porteur. Toute réservation ou paiement qui seraient irréguliers, inopérants, incomplets ou frauduleux pour un motif imputable au client entraînera l’annulation de la commande aux frais du client, sans préjudice de toute action civile ou pénale à l’encontre de ce dernier.</p><ol start=\"8\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Réclamations</li></ol><p>Les réclamations relatives à l’inexécution ou à la mauvaise exécution des prestations réservées doivent, sous peine de forclusion, être portées à notre connaissance par écrit dans les huit jours après la date de départ de l’établissement.</p><ol start=\"9\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Prix</li></ol><p>Les prix afférents à la réservation des services sont indiqués avant et lors de la réservation. Les prix sont confirmés au client en montant TTC, dans la devise commerciale de l’établissement, et ne sont valables que pour la durée indiquée sur la plateforme de réservation. Si le débit à l’établissement s’effectue dans une monnaie autre que celle confirmée sur la réservation, les frais de change sont à la charge du client. Toutes les réservations, quelle que soit leur origine, sont payables dans la monnaie locale de l’établissement, sauf dispositions particulières indiquées sur place. Sauf mention contraire sur la plateforme de réservation, les prestations complémentaires ne sont pas incluses dans le prix.  Les taxes (taxes locales, taxes de séjour, etc …) le cas échéant, présentées sur la page des tarifs, sont à régler directement sur place auprès de l’établissement. Les prix tiennent compte de la TVA applicable au jour de la commande et tout changement du taux applicable à la TVA sera automatiquement répercuté sur les prix indiqués à la date de facturation.Toute modification ou instauration de nouvelles taxes légales ou réglementaires imposées par les autorités compétentes seront automatiquement répercutées sur les prix indiqués à la date de la facturation.</p><ol start=\"10\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Paiement</li></ol><p>Le client communique ses coordonnées bancaires à titre de garantie de la réservation sauf conditions ou tarifs spéciaux, par carte bancaire de crédit ou privative (Visa, Mastercard, American Express, Diners Club… selon les possibilités offertes par la plateforme de réservation de l'établissement) en indiquant directement, dans la zone prévue à cet effet (saisie sécurisée par cryptage SSL), le numéro de carte, sans espaces entre les chiffres, ainsi que sa date de validité (il est précisé que la carte bancaire utilisée doit être valable au moment de la consommation du service) et le cryptogramme visuel. Il doit se présenter à l’établissement avec la carte bancaire lui ayant permis de garantir la réservation. Le débit du paiement s’effectue à l’établissement lors du séjour, sauf dans le cas de conditions ou tarifs spéciaux où le débit partiel ou total du paiement s’effectue lors de la réservation. Ce prépaiement est qualifié d’arrhes. En cas de no show (réservation non annulée – client non présent) d’une réservation garantie par carte bancaire, l’établissement débitera le client, à titre d’indemnité forfaitaire, du montant indiqué dans ses conditions générales et conditions particulières de vente. L’établissement a choisi elloha.com/stripe.com afin de sécuriser les paiements en ligne par carte bancaire. La validité de la carte de paiement du client est vérifiée par stripe.com. Il peut y avoir un refus de la carte de paiement pour plusieurs raisons : carte volée, carte bloquée, plafond atteint, erreur de saisie… En cas de problème, le client devra se rapprocher de sa banque d’une part, de l’établissement d’autre part pour confirmer sa réservation et son mode de paiement. Dans le cas d’un tarif soumis au prépaiement en ligne, la somme versée d’avance, que sont les arrhes, est débitée au moment de la réservation. Certains établissements peuvent générer des factures/notes par voie électronique, le fichier original est certifié et disponible en ligne à l’adresse internet communiquée par l’établissement.</p><ol start=\"11\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Respect de la vie privée</li></ol><p>Le client est informé, sur chacun des formulaires de collecte de données à caractère personnel, du caractère obligatoire ou facultatif des réponses par la présence d’un astérisque. Les informations traitées sont destinées à l’établissements, elloha.com, à ses entités, à ses partenaires, à ses prestataires (et notamment aux prestataires de paiement en ligne). Le client autorise elloha.com à communiquer ses données personnelles à des tiers à la condition qu’une telle communication se révèle compatible avec la réalisation des opérations incombant à elloha.com au titre des présentes conditions générales et en lien avec la Charte clients de protection des données personnelles. En particulier lors du paiement en ligne, les coordonnées bancaires du client devront être transmises par le prestataire de paiement stripe.com à la banque de l’établissement, pour l’exécution du contrat de réservation. Le client est informé que ce transfert de données peut donc s’exécuter dans des pays étrangers ne disposant pas d’une protection des données personnelles adéquate au sens de la loi Informatique et Libertés. Cependant, le client consent à ce transfert nécessaire pour l’exécution de sa réservation. Constellation SAS / Stripe.com en leur qualité de professionnel, se sont engagés vis-à-vis de l’établissement à prendre toutes les mesures de sécurité et de respect de la confidentialité des données pour lesdits transferts de données.</p><ol start=\"12\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Convention de preuve</li></ol><p>La saisie des informations bancaires requises, ainsi que l’acceptation des présentes conditions générales et du bon ou de la demande de réservation, constitue une signature électronique qui a, entre les parties, la même valeur qu'une signature manuscrite. Les registres informatisés conservés dans les systèmes informatiques d’elloha.com. seront conservés dans des conditions raisonnables de sécurité et considérés comme les preuves des communications, des commandes et des paiements intervenus entre les parties. Le client est informé que son adresse IP est enregistrée au moment de la réservation.</p><ol start=\"13\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Force majeure</li></ol><p>La force majeure s’entend de tout évènement extérieur aux parties présentant un caractère à la fois imprévisible et insurmontable qui empêche soit le client, soit l’établissement d’assurer tout ou partie des obligations prévues au contrat. Sont considérés comme cas de force majeure ou cas fortuit ceux habituellement reconnus par la jurisprudence des Cours et Tribunaux français. Chaque partie ne pourra être tenue responsable à l’égard de l’autre partie en cas d’inexécution de ses obligations résultant d’un évènement de force majeure. Il est expressément convenu que la force majeure suspend, pour les parties, l’exécution de leurs obligations réciproques et que chaque partie supporte la charge des frais qui en découlent.</p><ol start=\"14\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Règlement des litiges</li></ol><p>Les présentes Conditions générales de vente sont régies par la loi du pays de l’établissement sans faire obstacle aux dispositions impératives protectrices éventuellement applicables du pays de résidence des consommateurs.</p><ol start=\"15\" style=\"padding-left: 20px; list-style-position: outside; margin: 20px 0px 20px 20px;\"><li>Intégralité</li></ol><p style=\"margin-bottom: 0px;\">Les présentes Conditions générales de vente, les conditions de vente du tarif réservé par le client, et le bon ou la demande de réservation expriment l'intégralité des obligations des parties. Aucune condition générale ou spécifique communiquée par le client ne pourra s'intégrer aux présentes conditions générales. Les documents formant les engagements contractuels entre les parties sont, par ordre de priorité décroissant, le bon ou la demande de réservation (dont les conditions particulières du tarif réservé) et les présentes conditions générales. En cas de contradiction entre le bon de réservation et les conditions générales, les dispositions figurant au bon de réservation seront les seules applicables pour l’obligation en cause. Les présentes conditions générales de vente par internet peuvent être à tout moment modifiées et/ou complétées par l’établissement. Dans ce cas, la nouvelle version des conditions générales de vente par internet sera mise en ligne par l’établissement. Dès sa mise en ligne sur internet, la nouvelle version des conditions générales de vente par internet s’appliquera automatiquement pour tous les clients.</p><div class=\"article-attachments\"><ul class=\"attachments\" style=\"list-style: none; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 0px;\"></ul></section><footer style=\"color: rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: 15px;\"><div class=\"article-footer\" style=\"align-items: center; display: flex; justify-content: space-between; padding-bottom: 20px;\"><div class=\"article-share\"></footer>Objet<br><br>Les présentes conditions générales définissent les droits et obligations des parties dans le cadre de la réservation à distance de services proposés notre établissement dont les coordonnées sont précisées dans le présent document de confirmation de réservation. Elles régissent toutes les étapes nécessaires à la réservation et au suivi de la réservation entre les parties contractantes. Le client reconnaît avoir pris connaissance et accepté les présentes conditions générales de vente et les conditions de vente du tarif réservé accessibles sur notre plateforme de réservation.  Les présentes conditions générales de vente s'appliquent à toutes les réservations conclues par internet, via notre plateforme de réservation.<br><br>Réservation<br>Le client choisit les services présentés sur notre plateforme de réservation. Il reconnaît avoir pris connaissance de la nature, de la destination et des modalités de réservation des services disponibles sur notre plateforme de réservation et avoir sollicité et obtenu des informations nécessaires et/ou complémentaires pour effectuer sa réservation en parfaite connaissance de cause. Le client est seul responsable de son choix des services et de leur adéquation à ses besoins, de telle sorte que notre responsabilité ne peut être recherchée à cet égard. La réservation est réputée acceptée par le client à l'issue du processus de réservation.<br><br>Processus de réservation<br>Les réservations effectuées par le client se font par l'intermédiaire du bon de réservation dématérialisé accessible en ligne sur notre plateforme de réservation. La réservation est réputée formée dès la réception du bon de réservation. Le client s'engage, préalablement à toute réservation, à compléter les informations demandées sur le bon ou la demande de réservation. Le client atteste de la véracité et de l'exactitude des informations transmises. Après le choix définitif des prestations à réserver, la procédure de réservation comprend notamment la saisie de la carte bancaire en cas de demande de garantie ou de prépaiement, la consultation et l’acceptation des conditions générales de vente et des conditions de vente du tarif réservé avant la validation de la réservation et, enfin, la validation de la réservation par le client.<br><br>Accusé de réception de la réservation<br>Notre plateforme de réservation accuse réception de la réservation du client par l’envoi sans délai d’un courrier électronique. Dans le cas de la réservation en ligne, l'accusé de réception de la réservation par courrier électronique récapitule l'offre de contrat, les services réservés, les prix, les conditions de ventes afférentes au tarif sélectionné, acceptées par le client, la date de réservation effectuée, les informations relatives au service après-vente, ainsi que l’adresse de l’établissement du vendeur auprès duquel le client peut présenter ses réclamations.<br><br>Annulation ou modification du fait du client<br>Il est rappelé au client, conformément à l’article L. 121-21-8 12° du Code de la consommation, qu’il ne dispose pas du droit de rétractation prévu à l’article L. 121-21 du Code de la consommation. Les conditions de vente du tarif réservé précisent les modalités d’annulation et/ou de modification de la réservation. Les réservations avec prépaiement ne pourront faire l’objet d’aucune modification et/ ou annulation. Les sommes versées d’avance que sont les arrhes ne feront l’objet d’aucun remboursement. Dans ce cas, il en est fait mention dans les conditions de vente du tarif. Lorsque les conditions de vente du tarif réservé le permettent, l’annulation de la réservation peut s’effectuer directement auprès de l’établissement, dont les coordonnées téléphoniques sont précisées sur la confirmation de la réservation envoyée par courrier électronique. Toute réservation est nominative et ne peut en aucun cas être cédée à un tiers, que ce soit à titre gratuit ou onéreux.<br><br>Consommation de la prestation<br>En application de la réglementation en vigueur dans certains pays, il pourra être demandé au client, à l’arrivée, de remplir une fiche de police. Pour ce faire, il sera demandé au client de présenter une pièce d’identité afin de vérifier si celui-ci doit compléter ou non la fiche de police. Tout comportement contraire aux bonnes mœurs et à l’ordre public amènera l’établissement à demander au client de quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué. Pour les établissements disposant d’un Règlement Intérieur, le client accepte et s’engage à respecter ledit règlement. En cas de non-respect par le client d’une des dispositions du Règlement Intérieur, l’établissement se trouvera dans l’obligation d’inviter le client à quitter l’établissement sans aucune indemnité et ou sans aucun remboursement si un règlement a déjà été effectué.<br><br>Responsabilité<br>Les photographies présentées sur notre plateforme de réservation ne sont pas contractuelles. Même si tous les meilleurs efforts sont faits pour que les photographies, représentations graphiques et les textes reproduits pour illustrer les établissements présentés donnent un aperçu aussi exact que possible des prestations proposées, des variations peuvent intervenir entre le moment de la réservation et le jour de la consommation du service. L’établissement ne saurait être tenu pour responsable de l'inexécution ou de la mauvaise exécution de la réservation en cas de force majeure, du fait du tiers, du fait du client, notamment l'indisponibilité du réseau internet, impossibilité d’accès au site web, intrusion extérieure, virus informatiques ou en cas prépaiement non autorisé par la banque du porteur. Toute réservation ou paiement qui seraient irréguliers, inopérants, incomplets ou frauduleux pour un motif imputable au client entraînera l’annulation de la commande aux frais du client, sans préjudice de toute action civile ou pénale à l’encontre de ce dernier.<br><br>Réclamations<br>Les réclamations relatives à l’inexécution ou à la mauvaise exécution des prestations réservées doivent, sous peine de forclusion, être portées à notre connaissance par écrit dans les huit jours après la date de départ de l’établissement.<br><br>Prix<br>Les prix afférents à la réservation des services sont indiqués avant et lors de la réservation. Les prix sont confirmés au client en montant TTC, dans la devise commerciale de l’établissement, et ne sont valables que pour la durée indiquée sur la plateforme de réservation. Si le débit à l’établissement s’effectue dans une monnaie autre que celle confirmée sur la réservation, les frais de change sont à la charge du client. Toutes les réservations, quelle que soit leur origine, sont payables dans la monnaie locale de l’établissement, sauf dispositions particulières indiquées sur place. Sauf mention contraire sur la plateforme de réservation, les prestations complémentaires ne sont pas incluses dans le prix.  Les taxes (taxes locales, taxes de séjour, etc …) le cas échéant, présentées sur la page des tarifs, sont à régler directement sur place auprès de l’établissement. Les prix tiennent compte de la TVA applicable au jour de la commande et tout changement du taux applicable à la TVA sera automatiquement répercuté sur les prix indiqués à la date de facturation.Toute modification ou instauration de nouvelles taxes légales ou réglementaires imposées par les autorités compétentes seront automatiquement répercutées sur les prix indiqués à la date de la facturation.<br><br>Paiement<br>Le client communique ses coordonnées bancaires à titre de garantie de la réservation sauf conditions ou tarifs spéciaux, par carte bancaire de crédit ou privative (Visa, Mastercard, American Express, Diners Club… selon les possibilités offertes par la plateforme de réservation de l'établissement) en indiquant directement, dans la zone prévue à cet effet (saisie sécurisée par cryptage SSL), le numéro de carte, sans espaces entre les chiffres, ainsi que sa date de validité (il est précisé que la carte bancaire utilisée doit être valable au moment de la consommation du service) et le cryptogramme visuel. Il doit se présenter à l’établissement avec la carte bancaire lui ayant permis de garantir la réservation. Le débit du paiement s’effectue à l’établissement lors du séjour, sauf dans le cas de conditions ou tarifs spéciaux où le débit partiel ou total du paiement s’effectue lors de la réservation. Ce prépaiement est qualifié d’arrhes. En cas de no show (réservation non annulée – client non présent) d’une réservation garantie par carte bancaire, l’établissement débitera le client, à titre d’indemnité forfaitaire, du montant indiqué dans ses conditions générales et conditions particulières de vente. L’établissement a choisi elloha.com/stripe.com afin de sécuriser les paiements en ligne par carte bancaire. La validité de la carte de paiement du client est vérifiée par stripe.com. Il peut y avoir un refus de la carte de paiement pour plusieurs raisons : carte volée, carte bloquée, plafond atteint, erreur de saisie… En cas de problème, le client devra se rapprocher de sa banque d’une part, de l’établissement d’autre part pour confirmer sa réservation et son mode de paiement. Dans le cas d’un tarif soumis au prépaiement en ligne, la somme versée d’avance, que sont les arrhes, est débitée au moment de la réservation. Certains établissements peuvent générer des factures/notes par voie électronique, le fichier original est certifié et disponible en ligne à l’adresse internet communiquée par l’établissement.<br><br>Respect de la vie privée<br>Le client est informé, sur chacun des formulaires de collecte de données à caractère personnel, du caractère obligatoire ou facultatif des réponses par la présence d’un astérisque. Les informations traitées sont destinées à l’établissements, elloha.com, à ses entités, à ses partenaires, à ses prestataires (et notamment aux prestataires de paiement en ligne). Le client autorise elloha.com à communiquer ses données personnelles à des tiers à la condition qu’une telle communication se révèle compatible avec la réalisation des opérations incombant à elloha.com au titre des présentes conditions générales et en lien avec la Charte clients de protection des données personnelles. En particulier lors du paiement en ligne, les coordonnées bancaires du client devront être transmises par le prestataire de paiement stripe.com à la banque de l’établissement, pour l’exécution du contrat de réservation. Le client est informé que ce transfert de données peut donc s’exécuter dans des pays étrangers ne disposant pas d’une protection des données personnelles adéquate au sens de la loi Informatique et Libertés. Cependant, le client consent à ce transfert nécessaire pour l’exécution de sa réservation. Constellation SAS / Stripe.com en leur qualité de professionnel, se sont engagés vis-à-vis de l’établissement à prendre toutes les mesures de sécurité et de respect de la confidentialité des données pour lesdits transferts de données.<br><br>Convention de preuve<br>La saisie des informations bancaires requises, ainsi que l’acceptation des présentes conditions générales et du bon ou de la demande de réservation, constitue une signature électronique qui a, entre les parties, la même valeur qu'une signature manuscrite. Les registres informatisés conservés dans les systèmes informatiques d’elloha.com. seront conservés dans des conditions raisonnables de sécurité et considérés comme les preuves des communications, des commandes et des paiements intervenus entre les parties. Le client est informé que son adresse IP est enregistrée au moment de la réservation.<br><br>Force majeure<br>La force majeure s’entend de tout évènement extérieur aux parties présentant un caractère à la fois imprévisible et insurmontable qui empêche soit le client, soit l’établissement d’assurer tout ou partie des obligations prévues au contrat. Sont considérés comme cas de force majeure ou cas fortuit ceux habituellement reconnus par la jurisprudence des Cours et Tribunaux français. Chaque partie ne pourra être tenue responsable à l’égard de l’autre partie en cas d’inexécution de ses obligations résultant d’un évènement de force majeure. Il est expressément convenu que la force majeure suspend, pour les parties, l’exécution de leurs obligations réciproques et que chaque partie supporte la charge des frais qui en découlent.<br><br>Règlement des litiges<br>Les présentes Conditions générales de vente sont régies par la loi du pays de l’établissement sans faire obstacle aux dispositions impératives protectrices éventuellement applicables du pays de résidence des consommateurs.<br><br>Intégralité<br>Les présentes Conditions générales de vente, les conditions de vente du tarif réservé par le client, et le bon ou la demande de réservation expriment l'intégralité des obligations des parties. Aucune condition générale ou spécifique communiquée par le client ne pourra s'intégrer aux présentes conditions générales. Les documents formant les engagements contractuels entre les parties sont, par ordre de priorité décroissant, le bon ou la demande de réservation (dont les conditions particulières du tarif réservé) et les présentes conditions générales. En cas de contradiction entre le bon de réservation et les conditions générales, les dispositions figurant au bon de réservation seront les seules applicables pour l’obligation en cause. Les présentes conditions générales de vente par internet peuvent être à tout moment modifiées et/ou complétées par l’établissement. Dans ce cas, la nouvelle version des conditions générales de vente par internet sera mise en ligne par l’établissement. Dès sa mise en ligne sur internet, la nouvelle version des conditions générales de vente par internet s’appliquera automatiquement pour tous les clients.<br>"
    ]
}

Restaurants

Généralités

Dans elloha, les restaurants possèdent 2 particularités notables par rapport aux hébergements et aux activités :

  • Les restaurants ne proposent pas de prix. En effet, pour cette catégorie de produit, il s'agit de réserver une table et non de payer une consommation ou un menu en avance. En conséquence, aucun prix n'apparaîtra dans les APIs pour toute transaction concernant les restaurants.
  • Les restaurants ne disposent que d'une seule offre. Cette offre représente ainsi la carte du restaurant.


Le Workflow de recherche de disponibilité pour les restaurants est quant à lui identique à celui des hébergements (sans présence de formule), à savoir :

  • Etape 1 : recherche globale de disponibilité.
  • Etape 2 : recherche de la disponibilité détaillée pour un produit donné.

Recherche globale

La recherche globale, tout comme l'ensemble des recherches de disponibilités, s'effectue via l'envoi aux APIs elloha d'une transaction au format JSON (pour plus de détails sur la façon d'appeler les APIs elloha, se référer à la section Accès aux APIs).


Transaction de recherche

La transaction de recherche globale permet de préciser la date de la réservation ainsi que l'occupation de la table. En marge de ces critères de base sont proposés d'autres filtres, également décrits ci-dessous, qui permettent d'affiner selon vos besoins la recherche effectuée.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "353ff3ac-6cc1-4671-b3c4-f77feca48028"
StartDate date non Date de la réservation au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-18"
Type string oui Code du type de produit recherché. Pour effectuer une recherche sur les restaurants, alors il convient d'utiliser le code Restaurant.
Cette propriété doit donc être obligatoirement renseignée dans le cadre d'une recherche de restaurants.
"Type": "Restaurant"

Liste des propriétés liées à l'occupation

Propriété Type Obligatoire Description Exemple
AdultNumber int non Nombre d'adultes demandé. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné, alors la recherche s'effectue pour un seul adulte. "AdultNumber": 1
ChildNumber int non Nombre d'enfants demandé. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant. "ChildNumber": 2
ChildAges array[int] non Liste des âges des enfants, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans. "ChildAges": [5, 12]

Liste des propriétés géographiques

Propriété Type Obligatoire Description Exemple
City string non Nom de la ville sur laquelle filtrer les résultats. "City": "NOUMEA"
Latitude decimal non Latitude prise en compte dans le cadre d'une recherche par rayon géographique.
Attention : afin que cette recherche par rayon géographique soit réalisable, il convient de renseigner également les propriétés Longitude et Distance décrites ci-dessous.
"Latitude": -21.61297
Longitude decimal non Longitude prise en compte dans le cadre d'une recherche par rayon géographique. Longitude": 166.2148
Distance decimal non Distance, en nombre de kilomètres, prise en compte dans le cadre d'une recherche par rayon géographique. C'est cette distance qui définit le rayon de recherche autour du point défini par la latitude et la longitude renseignées via les propriétés Latitude et Longitude décrites ci-dessus. "Distance": 10

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
IdProducts array[guid] non Liste d'identifiants de produits sur lesquels filtrer les résultats de la recherche. "IdProducts": ["bea8263d-08b6-49f1-9f52-ccb7f2f053ff", 853866de-784b-4c8b-937e-df98cd1b9b03"]
ProductName string non Texte à rechercher dans les noms des produits. Seuls les produits dont le nom contient la valeur renseignée seront alors retournés. "ProductName": "Jardin"
SearchOnlyPromotion bool non Indicateur précisant de filtrer les résultats de sorte à ne retourner que les produits possédant au moins une promotion. "SearchOnlyPromotion": true
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche simple sur tous les restaurants
Copier

{
	"IdBookingEngine": "353ff3ac-6cc1-4671-b3c4-f77feca48028",
	"Type": "Restaurant",
    "StartDate": "2017-11-18",
    "AdultNumber": 1,
    "ChildNumber": 2,
    "ChildAges": [5, 12]
}


Exemple de recherche sur une liste de produits
Copier

{
	"IdBookingEngine": "353ff3ac-6cc1-4671-b3c4-f77feca48028",
	"IdProducts": ["bea8263d-08b6-49f1-9f52-ccb7f2f053ff", "853866de-784b-4c8b-937e-df98cd1b9b03"],
	"Type": "Restaurant",
    "StartDate": "2017-11-18",
    "AdultNumber": 1
}


Exemple de recherche de restaurants sur un rayon géographique avec filtrage sur la présence de promotions
Copier

{
	"IdBookingEngine": "353ff3ac-6cc1-4671-b3c4-f77feca48028",
	"Type": "Restaurant",
    "StartDate": "2017-11-18",
    "Latitude": -21.61297,
    "Longitude": 166.2148,
    "Distance": 10,
    "SearchOnlyPromotion": true
}




Transaction de réponse

Pour une recherche globale, la réponse décrit une liste simplifiée de produits, avec uniquement les propriétés de base de ces derniers. Pour ce type de recherche, aucune offre n'est remontée. Sur ce point, le fonctionnement est donc identique à celui des hébergements et des activités.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date du début de l'activité au format yyyy-mm-dd. "StartDate": "2017-11-18T00:00:00"
IdProduct guid Identifiant du produit dans elloha. Cet identifiant est indispensable afin de pouvoir récupérer la disponibilité des formules de ce produit, tel que décrit dans le paragraphe suivant. "IdProduct": "bea8263d-08b6-49f1-9f52-ccb7f2f053ff"
Name string Nom du produit, dans la langue demandée. "Name": "Restaurant Malabou Beach"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une recherche globale, cette description est tronquée à 512 caractères. "Description": "Venez vous régaler au restaurant de l'hôtel Malabou Beach."
Type string Libellé du type du produit, dans la langue demandée. "Type": "Restaurant"
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion parmi ses menus disponibles, selon les critères de la transaction de recherche. "HasPromotion": false

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "BAIE DE NÉHOUÉ"
ZipCode string Code postal de la ville du produit. "ZipCode": "98826"
City string Nom de la ville du produit. "City": "POUM"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": -20.29229
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 164.1077

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail du produit au sein du moteur de réservation elloha. Cette URL reprend la date de réservation et l'occupation recherchées de sorte à charger le moteur de réservation elloha avec les critères de recherche demandés dans le cadre de la transaction de recherche globale. "BookingUrl": "https://reservation.elloha.com/Search /Index/353ff3ac-6cc1-4671-b3c4-f77feca48028 ?idoi=bea8263d-08b6-49f1-9f52-ccb7f2f053ff &dateFrom=18/11/2017&NbAdultes=1&NbEnfants=2 &AgeEnfants=5_12&culture=fr-FR&currency=EUR"

Remarque importante : cette URL permet de réaliser une intégration simple et rapide d'un module de réservation sur une plateforme tierce. En effet, il est tout à fait possible de n'intégrer que la recherche globale et de déléguer l'affichage du descriptif détaillé d'un produit, ainsi que l'ajout d'une offre au panier, au moteur de réservation elloha via l'utilisation de l'URL fournie par la propriété BookingUrl pour le produit souhaité.



Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une recherche globale, seule la photo principale est remontée. Pour cette unique photo, seule une vignette, au format 300x200, est fournie.
Photos/ThumbnailUrl string URL de la vignette de la photo au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/ 9c67a4e5-03cd-4294-bf04-65fbd6547449/la+terrasse+de+nuit.jpg"

Exemple de résultat comprenant 2 restaurants
Copier

[
    {
        "StartDate": "2017-11-18T00:00:00",
        "IdProduct": "bea8263d-08b6-49f1-9f52-ccb7f2f053ff",
        "Name": "Restaurant Malabou Beach",
        "Description": "Venez vous régaler au restaurant de l'hôtel Malabou Beach en dégustant chaque soir des buffets copieux et raffinés à base de fruits de mer du lagon. On ne peut pas faire plus frais ! Pour le déjeuner, c'est sous les paillotes de l'îlot du Malabou que vous apprécierez la carte du chef Henri Jewine et sa cuisine internationale.",
        "Type": "Restaurant",
        "HasPromotion": false,
        "Address": "BAIE DE NÉHOUÉ",
        "ZipCode": "98826",
        "City": "POUM",
        "CountryCode": "FR",
        "Latitude": -20.29229,
        "Longitude": 164.1077,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/353ff3ac-6cc1-4671-b3c4-f77feca48028?idoi=bea8263d-08b6-49f1-9f52-ccb7f2f053ff&dateFrom=18/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/9c67a4e5-03cd-4294-bf04-65fbd6547449/la+terrasse+de+nuit.jpg"
            }
        ]
    },
    {
        "StartDate": "2017-11-18T00:00:00",
        "IdProduct": "34267047-e7cc-4462-96bc-d33d1093ed25",
        "Name": "La Ferme Des P'Tits Paddocks - Table D'Hôte",
        "Description": "Au cœur d'une propriété de 186 hectares, Nadia vous accueille à sa table d'hôte où elle vous servira des plats locaux concoctés à partir de recettes traditionnelles : plats au feu de bois, produits frais...et cadre enchanteur seront au rendez-vous de votre déjeuner. Venez passer un moment de détente dans un environnement magnifique où Nadia vous fera partager sa passion des vieilles recettes. Profitez de votre halte pour découvrir les produits de la ferme en vente sur place. Vous venez en groupe, vous faite",
        "Type": "Restaurant",
        "HasPromotion": false,
        "Address": "Popidéry",
        "ZipCode": "98880",
        "City": "LA FOA",
        "CountryCode": "FR",
        "Latitude": -21.80565,
        "Longitude": 165.846,
        "BookingUrl": "https://reservation.elloha.com/Search/Index/353ff3ac-6cc1-4671-b3c4-f77feca48028?idoi=34267047-e7cc-4462-96bc-d33d1093ed25&dateFrom=18/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR",
        "Photos": [
            {
                "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/85095bf7-45c1-44c5-a7ae-0b72aedd36a0/s-dsc05710.jpg"
            }
        ]
    }
]


Disponibilité détaillée

La disponibilité détaillée d'un produit permet d'avoir accès à l'ensemble des propriétés descriptives de ce produit, ainsi qu'à la totalité de ses offres disponibles à la réservation. Pour chaque offre figure l'ensemble des données transactionnelles associées : stocks restants, conditions de vente (pour rappel, il n'y a pas de prix pour les restaurants). Des URLs pointant vers le moteur de réservation elloha sont également fournies pour chaque élément réservable, afin de réaliser une gestion du panier de vente pour l'internaute connecté.


Transaction de disponibilité détaillée

La transaction permettant d'avoir accès à la disponibilité détaillée d'un produit est similaire à une transaction de recherche globale dépourvue de ses filtres d'affinage des résultats, et dans laquelle doit figurer une propriété IdProduct correspondant à l'identifiant du produit ciblé. C'est ainsi la présence de cette propriété IdProduct qui conditionne le type de la réponse donnée par l'API :

  • Sans IdProduct, il s'agira d'une recherche globale.
  • Avec IdProduct, il s'agira d'une recherche de disponibilité détaillée pour le produit dont l'identifiant est renseigné.


Liste des propriétés générales

Propriété Type Obligatoire Description Exemple
IdBookingEngine guid oui Identifiant du moteur de réservation appelé. Cet identifiant vous sera fourni par le support elloha à la demande. C'est une propriété obligatoire pour tout type de transaction. "IdBookingEngine": "479a7766-cd55-454c-babb-c195bc974a2e"
IdProduct guid oui Identifiant du produit ciblé pour la disponibilité détaillée. "IdProduct": "b8c0ace1-7043-4b1f-8603-2106ca7ff6a0"
StartDate date non Date de la réservation au format yyyy-mm-dd. Si cette date n'est pas renseignée, alors c'est la date du jour qui est positionnée par défaut. "StartDate": "2017-11-22"
SearchFirstAvailableDates bool non Indicateur permettant de définir la date de réservation sur le premier jour présentant de la disponibilité à partir d'aujourd’hui.
Attention : si cet indicateur est à true et qu'il y a de la disponibilité, le paramètre StarDate est ignoré.
"SearchFirstAvailableDates": "true"

Liste des propriétés liées à l'occupation

Propriété Type Obligatoire Description Exemple
AdultNumber int non Nombre d'adultes demandé. Si cette propriété n'est pas renseignée et si aucun nombre d'enfants n'est renseigné, alors la recherche s'effectue pour un seul adulte. "AdultNumber": 1
ChildNumber int non Nombre d'enfants demandé. Si cette propriété n'est pas renseignée, alors la recherche considère qu'il n'y a pas d'enfant. "ChildNumber": 2
ChildAges array[int] non Liste des âges des enfants, sous la forme d'un tableau d'entiers. Les valeurs possibles pour les âges des enfants vont de 0 à 17. Si cette propriété n'est pas renseignée, alors tout enfant sera considéré comme ayant un âge moyen de 8 ans. "ChildAges": [5, 12]

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche de disponibilité détaillée
Copier

{
	"IdBookingEngine": "479a7766-cd55-454c-babb-c195bc974a2e",
	"IdProduct": "b8c0ace1-7043-4b1f-8603-2106ca7ff6a0",
    "StartDate": "2017-11-22",
    "AdultNumber": 1,
    "ChildNumber": 2,
    "ChildAges": [5, 12]
}




Transaction de réponse

Pour une disponibilité détaillée, la réponse décrit de manière exhaustive un produit unique : celui correspondant à l'identifiant IdProduct. La réponse recense l'ensemble des éléments transactionnels de ce produit, pour les critères de recherche renseignés, ainsi que tous les éléments descriptifs pouvant être utiles dans le cadre du processus de réservation.


Liste des propriétés générales

Propriété Type Description Exemple
StartDate datetime Date de la réservation au format yyyy-mm-dd. "StartDate": "2017-11-15T00:00:00"
IdProduct guid Identifiant du produit dans elloha. "IdProduct": "b8c0ace1-7043-4b1f-8603-2106ca7ff6a0"
Name string Nom du produit, dans la langue demandée. "Name": "Restaurant Malakoff"
Description string Description du produit, dans la langue demandée. Dans le cadre d'une disponibilité détaillée, cette propriété peut contenir des balises HTML. "Description": "Grande brasserie traditionnelle."
Type string Libellé du type du produit, dans la langue demandée. "Type": "Restaurant"
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion parmi ses menus disponibles, selon les critères de la transaction de recherche. "HasPromotion": true

Liste des propriétés géographiques

Propriété Type Description Exemple
Address string Adresse postale du produit. "Address": "166 Rue Saint Honoré"
ZipCode string Code postal de la ville du produit. "ZipCode": "75001"
City string Nom de la ville du produit. "City": "PARIS 01"
CountryCode string Code ISO, sous la forme de 2 caractères, du pays du produit "CountryCode": "FR"
Latitude decimal Latitude de l'emplacement du produit. "Latitude": 48.86229
Longitude decimal Longitude de l'emplacement du produit. "Longitude": 2.33950600000003

Liste des propriétés liées au moteur de réservation

Propriété Type Description Exemple
BookingUrl string URL menant vers la page de détail du produit au sein du moteur de réservation elloha. Cette URL reprend la date de réservation et l'occupation recherchées de sorte à charger le moteur de réservation elloha avec les critères de recherche demandés dans le cadre de la transaction de recherche globale. "BookingUrl": "https://reservation.elloha.com/Search /Index/479a7766-cd55-454c-babb-c195bc974a2e ?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0 &dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2 &AgeEnfants=5_12&culture=fr-FR&currency=EUR"

Liste des propriétés liées aux photos

Propriété Type Description Exemple
Photos Liste des photos du produit. Dans le cadre d'une disponibilité détaillée, toutes les photos sont remontées.
Photos/Url string URL de la photo, au format 1024x768. "Url": "https://cnstlltn.com/crop-1024x768 /c37a5374-2ec9-4543-9ee0-4b2294964c35/malakoff.jpg"
Photos/ThumbnailUrl string URL de la vignette de la photo, au format 300x200. "ThumbnailUrl": "https://cnstlltn.com/crop-300x200 /c37a5374-2ec9-4543-9ee0-4b2294964c35/malakoff.jpg"
Photos/Title string Titre éventuellement renseigné pour la photo. "Title": "Intérieur"

Liste des propriétés liées à l'offre du restaurant

Propriété Type Description Exemple
Offers Dans le cadre des restaurants, il s'agit de l'offre unique du produit, correspondant à la carte du restaurant. Le tableau de la propriété Offers ne contiendra donc qu'un seul élément, quelque-soit le restaurant remonté.
Offers/IdOffer guid Identifiant de l'offre. "IdOffer": "789fb278-1764-4a0b-84da-422127ac2c63"
Offers/Name string Nom donné à la carte du restaurant, dans la langue demandée. "Name": "Carte"
Offers/Description string Description de la carte du restaurant, dans la langue demandée. Cette description peut comporter des éléments HTML. "Description": "La carte est consultable à l'adresse suivante : <div><a href=\"http://ogdc.soft4mobile.fr /c/g/0da803ee-6c1b-4df9-8c11-c6295f45ae65.pdf\"> http://ogdc.soft4mobile.fr/c/g /0da803ee-6c1b-4df9-8c11-c6295f45ae65.pdf</a> <br></div>"
Offers/HasPromotion bool Indicateur précisant si a carte du restaurant possède des promotions disponibles, selon les critères de recherche. "HasPromotion": true
Offers/Capacity int Nombre de couverts proposés par le restaurant. "Capacity": 30

Liste des propriétés liées aux menus de l'offre

Propriété Type Description Exemple
Offers/Rates Liste des menus réservables pour l'offre du restaurant, disponibles selon les critères de recherche. Les menus sont remontés avec leur descriptif et leurs conditions d'annulation.
Offers/Rates/IdRate guid Identifiant du menu. "IdRate": "c703a442-c689-41f7-84e7-326ce2bcfae5"
Offers/Rates/Name string Nom du menu, dans la langue demandée. "Name": "Promotion Découverte"
Offers/Rates/Description string Description du menu, dans la langue demandée. "Description": "Promotion découverte sur notre menu emblématique."
Offers/Rates/Hour string Horaire du service. "Hour": "21:00"
Offers/Rates/IsRackRate bool Indicateur précisant s'il s'agit du menu de base, correspondant à une réservation à la carte. "IsRackRate": false
Offers/Rates/IsSpecialOffer bool Indicateur précisant s'il s'agit d'un menu spécial. "IsSpecialOffer": true
Offers/Rates/IsPromotion bool Indicateur précisant s'il s'agit d'un menu sur lequel s'applique une promotion. "IsPromotion": true
Offers/Rates/IsEarlyBird bool Indicateur précisant si le menu possède une promotion de type Early Bird. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsEarlyBird": false
Offers/Rates/IsLastMinute bool Indicateur précisant si le menu possède une promotion de type Last Minute. Cette propriété est renseignée si et seulement si la propriété IsPromotion est à true. "IsLastMinute": true
Offers/Rates/StockLeft int Nombre de couverts restants pour l'horaire du service, selon les critères de recherche renseignés. "StockLeft": 2
Offers/Rates/PriceInclude string Description de ce que le menu comprend, dans la langue demandée. "PriceInclude": "Les 8 plats de notre menu."
Offers/Rates/PriceExclude string Description de ce que le menu ne comprend pas, dans la langue demandée. "PriceExclude": "Les boissons."
Offers/Rates/IsPersonNumberDependant bool Indicateur précisant si le tarif est dépendant du choix d'un PAX (nombre d'adultes et nombre d'enfants). Si cela n'est pas le cas, alors la définition d'une quantité réservée sera suffisante pour la création du dossier de vente. "IsPersonNumberDependant": false
Offers/Rates/AddToCartUrl string URL à appeler côté client afin de réaliser un ajout au panier du menu pour l'internaute connecté. Pour plus de détails sur la gestion du panier, se référer à la section Gestion du panier "AddToCartUrl": "https://reservation.elloha.com/api/WebService /AddToCart/479a7766-cd55-454c-babb-c195bc974a2e ?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0 &dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12 &culture=fr-FR&currency=EUR&rateCode=c703a442-c689-41f7-84e7-326ce2bcfae5 &offerCode=789fb278-1764-4a0b-84da-422127ac2c63"
Offers/Rates/IsCancellable bool Indicateur précisant si la réservation de la table est annulable pour le client. "IsCancellable": false
Offers/Rates/IsCancellableForFree bool Indicateur précisant si la réservation de la table est annulable gratuitement pour le client. Cette propriété est renseignée si et seulement si la propriété IsCancellable est à true. "IsCancellableForFree": false
Offers/Rates/CancellationPolicies array[string] Liste des conditions d'annulation propres à la réservation de la table, dans la langue demandée. "CancellationPolicies": [ "L'offre n'est pas annulable." ]

Liste des propriétés liées aux caractéristiques du produit

Propriété Type Description Exemple
Characteristics Liste des caractéristiques du produit. Chaque caractéristique est représentée par un type et une valeur.
Characteristics/Type string Code du type de la caractéristique.
Les types possibles sont : DisabledAccess (accès aux personnes handicapées), Service (services proposés), PetsAllowed (animaux admis).
"Type": "Service"
Characteristics/Value string Valeur de la caractéristique, dans la langue demandée. "Value": "Bar"
SpokenLanguages array[string] Liste des langues parlées au niveau de l'établissement du produit, exprimées dans la langue demandée. "SpokenLanguages": [ "français", "allemand" ]
PaymentModes array[string] Liste des modes de paiement acceptés par le produit, exprimés dans la langue demandée. "PaymentModes": [ "Chèques", "Espèces", "Visa" ]

Liste des propriétés liées aux moyens de communication

Propriété Type Description Exemple
MeansOfCommunication Liste des différents moyens de communication associés au produit, chaque élément étant décrit par un type et une valeur.
MeansOfCommunication/Type string Libellé du type du moyen de communication, dans la langue demandée. "Type": "Email"
MeansOfCommunication/Value string Valeur du moyen de communication correspondant au type remonté. "Value": "restaurant@elloha.com"

Liste des propriétés liées aux conditions de vente

Propriété Type Description Exemple
CancellationPolicies array[string] Liste des conditions de vente associées au produit, présentées sous forme de tableau. Ces conditions de vente peuvent contenir des éléments HTML. "CancellationPolicies": [ "Votre réservation sera confirmée par E-mail ou par SMS la veille de votre venue." ]

Exemple de disponibilité détaillée d'un hébergement
Copier

{
    "StartDate": "2017-11-18T00:00:00",
    "IdProduct": "b8c0ace1-7043-4b1f-8603-2106ca7ff6a0",
    "Name": "Restaurant Malakoff",
    "Description": "Grande brasserie traditionnelle, le Malakoff ouvre ses baies sur la place du Trocadéro.<br>En rive du restaurant, sa grande terrasse aux chaises cannelées offre un point de vue idéal pour rêver en regardant le manège de la circulation autour de la place.",
    "Type": "Restaurant",
    "PriceFrom": 0,
    "HasPromotion": false,
    "Address": "166 Rue Saint Honoré",
    "ZipCode": "75001",
    "City": "PARIS 01",
    "CountryCode": "FR",
    "Latitude": 48.86229,
    "Longitude": 2.33950600000003,
    "BookingUrl": "https://reservation.elloha.com/Search/Index/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR",
    "Photos": [
        {
            "Url": "https://cnstlltn.com/crop-1024x768/c37a5374-2ec9-4543-9ee0-4b2294964c35/malakoff.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/c37a5374-2ec9-4543-9ee0-4b2294964c35/malakoff.jpg",
            "Title": "Intérieur"
        },
        {
            "Url": "https://cnstlltn.com/crop-1024x768/8c290886-1286-4248-8018-2b8370e62594/malakoff2.jpg",
            "ThumbnailUrl": "https://cnstlltn.com/crop-300x200/8c290886-1286-4248-8018-2b8370e62594/malakoff2.jpg",
            "Title": "Extérieur"
        }
    ],
    "Offers": [
        {
            "IdOffer": "789fb278-1764-4a0b-84da-422127ac2c63",
            "Name": "Carte",
            "Description": "La carte est consultable à l'adresse suivante :<div><a href=\"http://ogdc.soft4mobile.fr/c/g/0da803ee-6c1b-4df9-8c11-c6295f45ae65.pdf\">http://ogdc.soft4mobile.fr/c/g/0da803ee-6c1b-4df9-8c11-c6295f45ae65.pdf</a><br></div>",
            "HasPromotion": false,
            "Capacity": 30,
            "Rates": [
                {
                    "IdRate": "bd1b5251-841a-41cc-a75d-beef4b552368",
                    "Name": "Menu Du Jour",
                    "Description": "Menu proposé en semaine, tous les midis.",
                    "Hour": "12:00",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "PriceInclude": "Entrée, plat et dessert.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=bd1b5251-841a-41cc-a75d-beef4b552368&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "12:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "bd1b5251-841a-41cc-a75d-beef4b552368",
                    "Name": "Menu Du Jour",
                    "Description": "Menu proposé en semaine, tous les midis.",
                    "Hour": "12:30",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "IsBestRate": true,
                    "PriceInclude": "Entrée, plat et dessert.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=bd1b5251-841a-41cc-a75d-beef4b552368&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "12:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "bd1b5251-841a-41cc-a75d-beef4b552368",
                    "Name": "Menu Du Jour",
                    "Description": "Menu proposé en semaine, tous les midis.",
                    "Hour": "13:00",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "PriceInclude": "Entrée, plat et dessert.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=bd1b5251-841a-41cc-a75d-beef4b552368&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "13:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "bd1b5251-841a-41cc-a75d-beef4b552368",
                    "Name": "Menu Du Jour",
                    "Description": "Menu proposé en semaine, tous les midis.",
                    "Hour": "13:30",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "PriceInclude": "Entrée, plat et dessert.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=bd1b5251-841a-41cc-a75d-beef4b552368&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "13:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "19:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "19:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "20:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "2acd9e86-cbfe-4b9e-ad36-10a87783b092",
                    "Name": "Menu Découverte",
                    "Description": "Un menu savoureux afin de découvrir l'ensemble de nos spécialités.",
                    "Hour": "20:30",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "PriceInclude": "Les 8 plats saveur et vin.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=2acd9e86-cbfe-4b9e-ad36-10a87783b092&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "20:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "2acd9e86-cbfe-4b9e-ad36-10a87783b092",
                    "Name": "Menu Découverte",
                    "Description": "Un menu savoureux afin de découvrir l'ensemble de nos spécialités.",
                    "Hour": "21:00",
                    "IsRackRate": false,
                    "IsSpecialOffer": true,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "PriceInclude": "Les 8 plats saveur et vin.",
                    "PriceExclude": "Les boissons.",
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=2acd9e86-cbfe-4b9e-ad36-10a87783b092&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "21:00",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                },
                {
                    "IdRate": "6729b17f-e43c-4152-b187-b222e263a518",
                    "Name": "Réservation à La Carte",
                    "Hour": "21:30",
                    "IsRackRate": true,
                    "IsSpecialOffer": false,
                    "IsPromotion": false,
                    "StockLeft": 20,
                    "AddToCartUrl": "https://reservation.elloha.com/api/WebService/AddToCart/479a7766-cd55-454c-babb-c195bc974a2e?idoi=b8c0ace1-7043-4b1f-8603-2106ca7ff6a0&dateFrom=22/11/2017&NbAdultes=1&NbEnfants=2&AgeEnfants=5_12&culture=fr-FR&currency=EUR&rateCode=6729b17f-e43c-4152-b187-b222e263a518&offerCode=789fb278-1764-4a0b-84da-422127ac2c63",
                    "IsCancellable": false,
                    "CancellationPolicies": [
                        "L'offre n'est pas annulable."
                    ]
                }
            ]
        }
    ],
    "Characteristics": [
        {
            "Type": "DisabledAccess",
            "Value": "Accès handicapés"
        },
        {
            "Type": "PetsAllowed",
            "Value": "Animaux admis"
        },
        {
            "Type": "Service",
            "Value": "Bar"
        },
        {
            "Type": "Service",
            "Value": "Brunch"
        },
        {
            "Type": "Service",
            "Value": "Espace enfant"
        },
        {
            "Type": "Service",
            "Value": "Voiturier"
        }
    ],
    "SpokenLanguages": [
        "allemand",
        "anglais",
        "français"
    ],
    "PaymentModes": [
        "Chèques",
        "Espèces",
        "Visa"
    ],
    "MeansOfCommunication": [
        {
            "Type": "Email",
            "Value": "restaurant@elloha.com"
        },
        {
            "Type": "Téléphone mobile",
            "Value": "+33 6 76 49 42 22"
        }
    ],
    "CancellationPolicies": [
        "Votre réservation vous sera confirmée par E-mail ou par SMS la veille de votre venue."
    ]
}

Autres catégories

D'autres catégories de produits sont disponibles dans elloha. Celles-ci présentent des similarités, dans leur mode de recherche de disponibilités, avec les principales catégories décrites ci-dessus.

Les autres catégories disponibles sont les suivantes :

  • Les transports recherchables via l'utilisation du code Transportation au niveau de la propriété Type. Le mode de fonctionnement des transports est identique à celui des activités. Pour plus de détails, il suffit donc de se référer à la documentation des activités.
  • Les croisières recherchables via l'utilisation du code Cruise au niveau de la propriété Type. Le mode de fonctionnement des croisières est également identique à celui des activités. Pour plus de détails, il suffit donc de se référer à la documentation des activités.
  • Les commerces et services recherchables via l'utilisation du code ShopOrService au niveau de la propriété Type. Le mode de fonctionnement des commerces et services est identique à celui des restaurants, avec notamment l'absence de prix (il s'agit uniquement de prises de rendez-vous). Pour plus de détails, il suffit donc de se référer à la documentation des restaurants.

Gestion du panier

Généralités

La gestion du panier de vente, matérialisée par l'ajout et le retrait d'éléments à ce panier, s'effectue via des appels directs au moteur de réservation elloha.

Il est très important de noter que ces appels doivent absolument être réalisés côté client et non côté serveur (ils sont généralement effectués en Javascript/JQuery) de sorte à ce que le panier impacté soit celui associé à la session de l'internaute (et non pas à celle du serveur, ce qui empêcherait d'avoir un panier différent dédié à chaque internaute).

Ajout au panier

L'URL du moteur de réservation elloha à appeler afin de réaliser un ajout au panier est fournie par la propriété AddToCartUrl fournie au niveau de chacun des éléments réservables : tarifs des offres ou options, chèques cadeaux et cartes cadeaux.

Afin de réaliser un ajout au panier de l'élément souhaité, il convient donc de récupérer l'URL contenue au sein de cette propriété puis appeler celle-ci côté client en tâche de fond.

Exemple d'URL d'ajout au panier fournie pour un tarif donné : https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&rateCode=bc1daa21-ec22-4132-90ae-7911850b4995&offerCode=5a13a613-f7b1-4041-982a-953482efae73


Il est par ailleurs possible de compléter cette URL par un argument quantity de sorte à pouvoir définir une quantité à ajouter au panier pour le tarif, le chèque cadeau ou la carte cadeau.

Par exemple, l'URL suivante va permettre d'ajouter au panier 2 cartes cadeaux du même type via l'ajout de l'argument &quantity=2 à la fin de l'URL fournie par l'API elloha : https://reservation.elloha.com/api/WebService/AddToCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?idoi=c31121f5-32ec-4b59-a895-3c083b1e264c&dateFrom=18/11/2017&NbAdultes=2&culture=fr-FR&currency=EUR&idGiftCard=1561&quantity=2

Pour un tarif d'offre ou d'option, il est à noter que si la quantité à mettre au panier est supérieure au stock restant disponible (fourni par la propriété StockLeft), alors une erreur sera remontée lors de l'ajout au panier et aucune modification du panier ne pourra avoir lieu.


Suite à l'appel d'une URL d'ajout au panier, le moteur de réservation elloha retourne une réponse au format JSON. Cette réponse présente alors les propriétés suivantes :


Propriété Type Description Exemple
IsSuccess bool Indicateur précisant si l'ajout au panier s'est déroulé avec succès. "IsSuccess": true
TotalAmountOfCart string Montant total du panier, suite à la réalisation de l'ajout de l'élément. Ce montant est retourné sous la forme d'une chaîne de caractères en étant complété avec la devise du moteur de réservation. Cette donnée peut être mémorisée et utilisée afin d'afficher des informations sur le panier sur votre propre plateforme. "TotalAmountOfCart": "211,00 €"
NumberOfItemsInCart int Nombre d'éléments figurant dans le panier, suite à la réalisation de l'ajout de l'élément. Cette donnée peut être mémorisée et utilisée afin d'afficher des informations sur le panier sur votre propre plateforme. "NumberOfItemsInCart": 3
ErrorMessage string Message d'erreur éventuel en cas d'échec de l'ajout de l'élément au panier. "ErrorMessage": "L'ajout de l'offre au panier vient d'échouer. Veuillez réessayer ultérieurement."
RemoveFromCartUrl string URL permettant d'effectuer à postériori un retrait de l'élément venant d'être ajouté au panier. Cette URL est à mémoriser si vous souhaitez donner à l'internaute la possibilité de retirer des éléments du panier directement sur votre plateforme. Pour plus de détails, se référer à la section Retrait du panier. "RemoveFromCartUrl": "https://reservation.elloha.com/api/WebService /RemoveFromCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24 ?cartItemId=d1fb88b4-e9c5-4352-b38b-57e1b5e4c1d5&isExternal=1"
PaymentUrl string URL vers la page de finalisation de la commande dans le moteur de réservation elloha. Pour plus de détails, se référer à la section Finalisation de la commande. "PaymentUrl":"https://reservation.elloha.com/Booking /ShowForm/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24"

Exemple de réponse suite à un ajout au panier
Copier

{
	"IsSuccess": true,
	"TotalAmountOfCart": "211,00 €",
	"NumberOfItemsInCart": 3,
	"RemoveFromCartUrl": "https://reservation.elloha.com/api/WebService/RemoveFromCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?cartItemId=d1fb88b4-e9c5-4352-b38b-57e1b5e4c1d5&isExternal=1",
	"PaymentUrl":"https://reservation.elloha.com/Booking/ShowForm/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24"
}


Retrait du panier

Afin de retirer un élément du panier, il convient d'utiliser l'URL contenue dans la propriété RemoveFromCartUrl, fournie au moment de l'ajout de l'élément au panier, puis d'appeler cette URL côté client en tâche de fond.

L'appel à cette URL va permettre de retirer l'élément concerné du panier, dans la quantité avec laquelle il a été ajouté au panier (si une quantité de 2 a par exemple été spécifiée au moment de l'ajout au panier, alors cette même quantité sera retirée du panier lors de l'appel à l'URL de retrait).

Exemple d'URL de retrait du panier fournie pour un tarif donné : https://reservation.elloha.com/api/WebService/RemoveFromCart/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24?cartItemId=d1fb88b4-e9c5-4352-b38b-57e1b5e4c1d5&isExternal=1


Suite à l'appel d'une URL de retrait du panier, le moteur de réservation elloha retourne une réponse au format JSON. Cette réponse présente alors les propriétés suivantes :


Propriété Type Description Exemple
IsSuccess bool Indicateur précisant si le retrait du panier s'est déroulé avec succès. "IsSuccess": true
TotalAmountOfCart string Montant total du panier, suite à la réalisation du retrait de l'élément. Ce montant est retourné sous la forme d'une chaîne de caractères en étant complété avec la devise du moteur de réservation. Cette donnée peut être mémorisée et utilisée afin d'afficher des informations sur le panier sur votre propre plateforme. "TotalAmountOfCart": "61,00 €"
NumberOfItemsInCart int Nombre d'éléments figurant dans le panier, suite à la réalisation du retrait de l'élément. Cette donnée peut être mémorisée et utilisée afin d'afficher des informations sur le panier sur votre propre plateforme. "NumberOfItemsInCart": 2
ErrorMessage string Message d'erreur éventuel en cas d'échec du retrait de l'élément du panier. "ErrorMessage": "L'ajout de l'offre au panier vient d'échouer. Veuillez réessayer ultérieurement."
PaymentUrl string URL vers la page de finalisation de la commande dans le moteur de réservation elloha. Pour plus de détails, se référer à la section Finalisation de la commande. "PaymentUrl":"https://reservation.elloha.com/Booking /ShowForm/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24"

Exemple de réponse suite à un retrait du panier
Copier

{
	"IsSuccess": true,
	"TotalAmountOfCart": "61,00 €",
	"NumberOfItemsInCart": 2,
	"PaymentUrl": "https://reservation.elloha.com/Booking/ShowForm/f6ed4a6e-ce34-449b-aeeb-595ef8b32b24"
}


Finalisation de la commande

Afin de permettre à l'internaute de finaliser sa commande, il convient d'utiliser l'URL contenue dans la propriété PaymentUrl présente dans les transactions de réponse à un ajout ou un retrait du panier. Cette URL mène vers la page de finalisation de la commande dans le moteur de réservation elloha, qui permettra à l'internaute de :

  • Consulter un récapitulatif de son panier avec un rappel des conditions de vente associées.
  • Retirer des éléments de son panier.
  • Saisir un code promo.
  • Saisir ses données personnelles.
  • Saisir ses données de paiement.
  • Lancer la création de son dossier de vente une fois toutes les données obligatoires saisies.

Cache de disponibilités

Généralités

Via une API elloha spécifique, il est possible de récupérer des informations générales sur les disponibilités d'un ou plusieurs produits ainsi que certaines caractéristiques de ces derniers, comme le "prix à partir de".

Il faut bien noter que ces informations ne sont actualisées qu'une seule fois par jour, quelque-soient les produits ciblés, et qu'elles ont uniquement pour vocation d'alimenter un cache de disponibilité.

Accès à l'API

Il est nécessaire de vous identifier auprès de nos services via mail à api@elloha.com

Merci de nous fournir, si c'est votre première demande :

  • la raison sociale, adresse et site web de votre structure
  • le nom, prénom et adresse mail d'un contact technique

Dans tous les cas nous avons besoin pour chaque projet de:

  • la raison sociale du client elloha qui vous a missionné
  • le site web ou l'application concernés
  • toutes vos IP de Production et de pre-Production amenées à accéder aux APIs
  • l'idBookingEngine que vous allez utiliser dans vos requêtes

En retour nous vous confirmerons la déclaration de vos IPs et nous vous fournirons un header à positionner de votre côté lors de chaque appel à l’API. Ce header permettra de vous identifier et de vous accorder des quotas d'APIs personnalisés pour chaque projet.

Le header en question doit se nommer :

  • elloha-client-id
et sa valeur sera par exemple :
  • otclient-agenceweb_

L'API permettant de récupérer le cache de disponibilités est accessible via l'URL suivante :
https://api.elloha.com/AvailabilitiesCache

Récupération des disponibilités

Transaction de recherche

La transaction de recherche permet uniquement de préciser la liste des produits ciblés et, éventuellement, une période sur laquelle rechercher les disponibilités.


Propriété Type Obligatoire Description Exemple
IdProducts array[guid] non Liste d'identifiants de produits sur lesquels rechercher les disponibilités. "IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"]
StartDate date non Date de début de la période au format yyyy-mm-dd pour laquelle remonter la disponibilité. Par défaut, si elle n'est pas renseignée, cette valeur est affectée à la date du jour. "StartDate": "2019-01-28"
EndDate date non Date de fin de la période au format yyyy-mm-dd pour laquelle remonter la disponibilité. Par défaut, si elle n'est pas renseignée, cette valeur est affectée à la date du jour à laquelle est ajoutée une année. "EndDate": "2019-01-29"
SearchByOffer bool non Indicateur précisant si les résultats doivent être retournés par offre et non pas par établissement. "SearchByOffer": true

Liste des autres propriétés de filtrage

Propriété Type Obligatoire Description Exemple
ReturnCompleteOffers bool non Indicateur permettant de spécifier si les offres complètes (n'ayant plus d'inventaire disponible) doivent malgré tout être retournées dans les résultats. "ReturnCompleteOffers": true

Exemple de recherche
Copier

{
	"IdProducts": ["c26ccca1-ca7b-4a5e-a918-d8d261ed75c8", "2e10d12c-6eac-4038-8a15-cfd9ef5f7806"],
    "StartDate": "2019-01-28",
    "EndDate": "2019-01-29"
}




Transaction de réponse

La réponse décrit, pour chacun des produits, l'ensemble des périodes pour lesquelles ceux-ci sont disponibles, avec la présence de certaines caractéristiques propres à chaque période de disponibilité. Toutes ces caractéristiques sont exposées dans les tableaux suivants :


Liste des propriétés générales

Propriété Type Description Exemple
IdProduct guid Identifiant du produit concerné. "IdProduct": "24e2ada9-c64a-4163-8a2a-38ff969b77f8"
Periods array Liste des périodes pour lesquelles le produit est disponible, avec, pour chaque période, certaines caractéristiques de ce produit.

Liste des propriétés générales en cas de recherche par offre

Propriété Type Description Exemple
Offers array Liste des offres pour lesquelles le produit est disponible, avec, pour chaque offre, la liste des périodes de disponibilités.
IdOffer guid Identifiant de l'offre concernée. "IdOffer": "f428d316-5488-4911-bf77-2a235bee171a"

Liste des propriétés propres à chaque période

Propriété Type Description Exemple
StartDate date Date de début de la période de disponibilité. "StartDate": "2018-07-08"
EndDate date Date de fin de la période de disponibilité. "EndDate": "2018-07-13"
IsArrivalPossible bool Indicateur précisant si une une arrivée est possible pour la période de disponibilité considérée. "IsArrivalPossible": true
PriceFrom decimal Prix "à partir de" du produit, exprimé dans la devise du moteur de réservation. Cela correspond au prix minimum de ses offres disponibles, pour la période de disponibilité considérée, sans considérer dans le calcul les options supplémentaires. "PriceFrom": 93.5
DurationUnit int Unité de durée sur laquelle se base le prix "à partir de" du produit. Cela permet notamment d'indiquer si ce prix est calculé à la journée ou à la semaine (uniquement renseigné pour les hébergements). "DurationUnit": 7
HasPromotion bool Indicateur précisant si le produit possède au moins une promotion sur ses offres disponibles, pour la période de disponibilité considérée. "HasPromotion": false
MinimumStay int Durée de séjour minimale afin d'avoir de la disponibilité (uniquement renseigné pour les hébergements). "MinimumStay": 7
MaximumStay int Durée de séjour maximale afin d'avoir de la disponibilité (uniquement renseigné pour les hébergements). "MinimumStay": 364

Exemple de résultat pour une recherche par produit
Copier

[
    {
        "IdProduct": "24e2ada9-c64a-4163-8a2a-38ff969b77f8",
        "Periods": [
            {
                "StartDate": "2018-06-15",
                "EndDate": "2018-06-30",
                "IsArrivalPossible": true,
                "PriceFrom": 700,
                "DurationUnit": 7,
                "HasPromotion": false,
                "MinimumStay": 7,
                "MaximumStay": 364
            }
        ]
    },
    {
        "IdProduct": "006c6143-08ca-41b9-a5e0-d219ef0dc19b",
        "Periods": [
            {
                "StartDate": "2018-06-14",
                "EndDate": "2018-06-14",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": false
            },
            {
                "StartDate": "2018-06-15",
                "EndDate": "2018-06-15",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": false
            },
            {
                "StartDate": "2018-06-17",
                "EndDate": "2018-06-17",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-18",
                "EndDate": "2018-06-18",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-19",
                "EndDate": "2018-06-19",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-20",
                "EndDate": "2018-06-20",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-21",
                "EndDate": "2018-06-21",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-22",
                "EndDate": "2018-06-22",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-24",
                "EndDate": "2018-06-24",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-25",
                "EndDate": "2018-06-25",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-26",
                "EndDate": "2018-06-26",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-27",
                "EndDate": "2018-06-27",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-28",
                "EndDate": "2018-06-28",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-06-29",
                "EndDate": "2018-06-29",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-01",
                "EndDate": "2018-07-01",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-02",
                "EndDate": "2018-07-02",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-03",
                "EndDate": "2018-07-03",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-04",
                "EndDate": "2018-07-04",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-05",
                "EndDate": "2018-07-05",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-06",
                "EndDate": "2018-07-06",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-08",
                "EndDate": "2018-07-08",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-09",
                "EndDate": "2018-07-09",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-10",
                "EndDate": "2018-07-10",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-11",
                "EndDate": "2018-07-11",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-12",
                "EndDate": "2018-07-12",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-13",
                "EndDate": "2018-07-13",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-15",
                "EndDate": "2018-07-15",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-16",
                "EndDate": "2018-07-16",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-17",
                "EndDate": "2018-07-17",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-18",
                "EndDate": "2018-07-18",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-19",
                "EndDate": "2018-07-19",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-20",
                "EndDate": "2018-07-20",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-22",
                "EndDate": "2018-07-22",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-23",
                "EndDate": "2018-07-23",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-24",
                "EndDate": "2018-07-24",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-25",
                "EndDate": "2018-07-25",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-26",
                "EndDate": "2018-07-26",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-27",
                "EndDate": "2018-07-27",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-29",
                "EndDate": "2018-07-29",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-30",
                "EndDate": "2018-07-30",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-07-31",
                "EndDate": "2018-07-31",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-08-01",
                "EndDate": "2018-08-01",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            },
            {
                "StartDate": "2018-08-02",
                "EndDate": "2018-08-02",
                "IsArrivalPossible": true,
                "PriceFrom": 100,
                "HasPromotion": true
            }
        ]
    }
]


Exemple de résultat pour une recherche par offre
Copier

[
    {
        "IdProduct": "70fb831d-4f90-4ca5-b46c-c33ecefa922c",
        "Offers": [
            {
                "IdOffer": "f428d316-5488-4911-bf77-2a235bee171a",
                "Periods": [
                    {
                        "StartDate": "2021-07-05",
                        "EndDate": "2021-07-09",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-12",
                        "EndDate": "2021-07-16",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-19",
                        "EndDate": "2021-07-23",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-26",
                        "EndDate": "2021-07-30",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    }
                ]
            },
            {
                "IdOffer": "ec185b4c-5d11-4796-9f5e-5166dcd23a36",
                "Periods": [
                    {
                        "StartDate": "2021-07-05",
                        "EndDate": "2021-07-09",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-12",
                        "EndDate": "2021-07-16",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    }
                ]
            },
            {
                "IdOffer": "9ba70ee3-b528-43fe-8e45-58f0bfaad4f7",
                "Periods": [
                    {
                        "StartDate": "2021-07-05",
                        "EndDate": "2021-07-09",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-12",
                        "EndDate": "2021-07-16",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-19",
                        "EndDate": "2021-07-23",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    },
                    {
                        "StartDate": "2021-07-26",
                        "EndDate": "2021-07-30",
                        "IsArrivalPossible": true,
                        "PriceFrom": 50.0,
                        "HasPromotion": false
                    }
                ]
            }
        ]
    }
]

Validation des QR codes

Via une API elloha spécifique, il est possible de valider des QR codes et consulter des informations relatives à ceux-ci.

L’API permettant de valider les QR codes est accessible via l’URL suivante avec la méthode GET :
https://api.elloha.com/scan

Une authentification par jeton passé à l'API, généré à partir de votre compte de connexion (voir Génération d'un jeton) est nécessaire pour valider et consulter les QR codes.
En cas d'erreur d'authentification, à cause d'un jeton absent, incorrect ou expiré, une erreur 401 (Unauthorized) est toujours retournée par l'API, sans aucune information supplémentaire.

Un appel à https://api.elloha.com/scan en utilisant la propriété qrcode de type string permet de valider un QR code et consulter son état.

Un appel à https://api.elloha.com/scan/status en utilisant la propriété qrcode de type string permet de consulter l’état d’un QR code sans effectuer de validation.


Exemple d’appel

https://api.elloha.com/scan?qrcode=dzbQo5xvTxfW_fvdqA8sJaqiE-zVQKJ1x80_vbZEfcnE3jv0f0WdU3T1Bj86FdAcjqfjRI11lrW1kUA2sUhdlgLIlrFiK5c5gNwCqpaTHuQziYTbrNIO9ET_a9RpZTUQ7JbByp2ydi8MprmEknLIIVNQSzxVwaWJlYOMBXkDZbHsmuUCyE1vXf8ET2NVNb8NffP1ybmhjiio9WC3eIS69Fna5NxhVbh_WnblSYrlScP_RfoWayN5Hemx_qha-wg-CU8ngyktmpFbrHa_bBzLDtkqTbcST1PoHScPLuc8_fM9U5RWkdj1ovzjKO_ZqYZm

Suite à l'appel d'une URL de validation ou consultation de QR code, elloha retourne une réponse au format JSON. Cette réponse présente alors les propriétés suivantes :

Propriété Type Description Exemple
status string Statut du QR code. "status" : "SUCCESS"
invalidityReason string Raison pour laquelle status a la valeur "INVALID", null si ce n’est pas le cas. "invalidityReason": "Cancelled"
state ReservationItemState Information sur la réservation et le participant associé au QR code, null si status a la valeur "INVALID".

Les valeurs possibles pour status sont :

  • SUCCESS : Le QR code a été validé avec succès (uniquement pour une requête de validation)
  • ALREADY_SCANNED : Le QR code a déjà été scanné.
  • NOT_SCANNED : Le QR code n’a pas encore été scanné (uniquement pour une requête de statut)
  • INVALID : Le QR code est invalide et/ou la réservation annulée.


Propriété de state :

Propriété Type Description Exemple
idReservation guid Identifiant de la réservation. "idReservation" : "c3a4f378-9989-463e-a578-7feb2e28c66d"
idReservationItem guid Identifiant de la ligne de dossier correspondant à une des prestations réservées. "idReservationItem" : "1fb72ae5-8376-45ac-ac97-11735412ae54"
idParticipant guid Identifiant du participant. "idParticipant" : "c1790453-7943-4d8a-b96a-31818e0a0620"
bookingNumber string Numéro du dossier de vente. "bookingNumber" : "TP2101220009"
formulaName string Nom de la formule. "FormulaName" : "visite du musée"
resourceName string Nom de la ressource. "resourceName" : "entrée adulte"
formulaDuration string Durée de la formule. "formulaDuration" : "1h"
price decimal Prix de la ligne de dossier. price" : 9.5000
currency string Monnaie associée au prix. "currency" : "EUR"
dayOfScan string Jour où le QR code a été scanné, null si non scanné. "dayOfScan" : "22/01/2021"
hourOfScan string Heure où le QR code a été scanné, null si non scanné. "hourOfScan" : "18:09"
hour string Heure où commence la prestation. "hour" : "08:30"
day string Jour où commence la prestation "day" : "25/01/2021"
participantFirtName string Prénom du participant associé au QR code. "participantFirtName" : "John"
participantLastName string Nom du participant associé au QR code. "participantLastName" : "Smith"
participantAge int Age du participant associé au QR code. -1 si non indiqué. "participantAge" : 20
reservationState string État de la réservation. Valeurs possible : Ongoing, Reserved, Closed, Withdrawn, Aborted et Undetermined. "reservationState" : "Reserved"
lineReservationState string État de la ligne de la réservation. Valeurs possible : Reserved, ReservedNotPaid, Ongoing, Consumed, Withdrawn et Undetermined. "reservationState" : "Reserved"

Exemple de résultat
Copier

{
  "status": "ALREADY_SCANNED",
  "invalid_reason": null,
  "state": {
    "idReservation": "c3a4f378-9989-463e-a578-7feb2e28c66d",
    "idReservationItem": "1fb72ae5-8376-45ac-ac97-11735412ae54",
    "idParticipant": "c1790453-7943-4d8a-b96a-31818e0a0620",
    "bookingNumber": "TP2101220009",
    "formulaName": "visite du musée",
    "resourceName": "entrée adulte",
    "formulaDuration": "1h",
    "price": 9.5000,
    "currency": "EUR",
    "dayOfScan": "22/01/2021",
    "hourOfScan": "10:09",
    "hour": "10:00",
    "day": "22/01/2021",
    "participantFirstName": "John",
    "participantLastName": "Smith",
    "ageParticipant": 20,
    "reservationState": "Reserved",
    "lineReservationState": "ReservedNotPaid"
  }
}

Erreurs

Si l'appel à l'API se déroule de manière incorrecte, une transaction de réponse contenant une erreur est retournée. L'erreur en question est matérialisée par un code et une description.

La transaction d'erreur respecte ainsi le format suivant :


Propriété Type Description Exemple
ErrorCode string Code de l'erreur. "ErrorCode": "TransactionExecutionError"
ErrorDescription string Description textuelle de l'erreur, dans la langue demandée si cela est possible. "ErrorDescription": "Erreur d'exécution de la transaction"

Exemple de transaction d'erreur
Copier

{
    "ErrorCode": "TransactionExecutionError",
    "ErrorDescription": "Erreur d'exécution de la transaction"
}


Les principaux codes d'erreurs sont les suivants :


Code Description
DeserializationError Erreur lors de la désérialisation de la transaction de recherche. Cela signifie que le JSON envoyé à l'API n'est pas correctement formaté.
TransactionExecutionError Erreur lors de l'exécution de la transaction de recherche. L'origine de l'erreur, dans ce cas, peut être multiple, il convient donc de bien analyser la description de l'erreur afin d'identifier l'origine du problème.
Unknown Erreur d'origine inconnue.
InvalidProduct Le produit n'est pas ouvert à vente.

Si les erreurs ne sont pas identifiables de votre côté, après analyse détaillée de votre part, alors il conviendra de contacter le support elloha, à l'adresse support@elloha.com, en nous fournissant la transaction de recherche impliquée ainsi que la transaction de réponse contenant l'erreur obtenue.

API Métadonnées APIDAE

elloha renvoie dans l'API Métadonnées APIDAE les identifiants de réservation des produits ouverts à la commercialisation dans l'application de place de marché elloha Tête de réseau (TDR). Cet id correspond à celui du compte elloha d’un propriétaire (hébergeur ou activité). Il permet le rapprochement de son compte elloha ("données chaudes" ou transactionnelles) avec sa fiche APIDAE (données "froides" ou descriptives).

Le prestataire web de la destination peut l'utiliser pour afficher, au niveau de la fiche APIDAE sur le site web de la destination, un widget de disponibilités et/ou de réservation ou encore d’appeler l’API de disponibilités elloha.

La métadonnée APIDAE peut aussi contenir des "tags" convenus avec la destination qui déterminent si la fiche APIDAE doit afficher un widget de disponibilités (calendrier) seulement, ou encore un bouton de réservation en ligne plutôt qu’un simple widget de disponibilités…


Exemple de contenu de la métadonnée APIDAE elloha
                    Copier
                    
				Date de création
				15/02/2019
				Date de modification
				15/02/2019
				Données
				{
				"id" : "29209829-5483-4766-bb02-4db630bbec03",
				"tags" : [ "Dispo-Resa" ]
				}
				
				

Description du JSON de l'API Métadonnées elloha
Propriété Type Obligatoire Description Exemple
Id guid oui Identifiant (IdProduct) du produit elloha correspondant à la fiche Apiade ouverte à la commercialisation. "Id": "c4697d76-0b81-46ca-bab7-52acf6912d9a"
tags texte non Critères affectés au produit elloha par le gestionnaire du catalogue. Ils permettent par exemple de déterminer si le produit doit afficcher en front un bouton de réservation ou un calendrier de disponibilité... "tags": "dispo", "abo2019"

Remarque importante : Toutes les fiches APIDAE d'une destination équipée de elloha n'ont pas leur métadonnée elloha renseignée. Seuls les produits et comptes elloha ouverts à la vente ont un "id" de renseigné dans le JSON APIDAE


Pour plus d'infos sur l'API Métadonnées APIDAE : http://dev.apidae-tourisme.com/fr/documentation-technique/v2/metadonnees/consultation



Utilisation de la Métadonnée APIDAE via l'API de disponibilités elloha

La génération en front de liens de réservation ou de codes HTML de widget elloha de disponibilités/réservation peut se faire de façon dynamique par le prestataire web sur la base de :

  • l'IdBookingEngine du moteur de réservation. Identifiant pour l'API elloha transmis par le référent de déploiement de place de marché elloha (support@elloha.com)au membre APIDAE.
  • l'Id transmis dans l'API Métadonnées APIDAE (IdProduct) pour chaque compte elloha ouvert à la vente issu d'une fiche de SIT APIDAE.

Il est possible de cibler un produit précis via la transaction de disponibilité détaillée (étape 2) de l'API de disponibilités elloha pour les Hébregements.

Même principe pour les produits de type Activités, reportez-vous à la documentation de l'API elloha disponibilité détailléeafin de construire une requête de disponibilité grâce à l'idProduct renseigné dans la métadonnée de la fiche APIDAE



Intégration de widgets elloha

Un compte elloha permet à son propriétaire de générer différents widget de réservation à intégrer sur son site web : moteur de réservation, bouton de réservation, calendrier de disponibilités, guide touristique... Ces widgets personnalisés peuvent aussi être déployés sur le site web de la destination.

Comme pour appeler l'API de disponibilités elloha, la génération en front du code de widget de disponibilités ou autre widget elloha peut se faire sur la base de l'id d'API Métadonnées APIDAE (IdProduct) et de l'idPublication du moteur de réservation (IdBookingEngine) de la TDR elloha.

Si vous intégrez directement le code du widget généré depuis le compte elloha d'un prestataire, la vente réalisée via le module sera rattachée aux ventes directes du compte elloha et pas aux ventes du booking-engine de la Tête de réseau elloha de la destination.

Voilà un exemple d'IdBookingEngine du projet de publication :333fffe4-7ab2-4043-9294-7f38ef8007b9

C'est l'identifiant qui se trouve dans l'URL du BE général telle que transmise par le référent de déploiement de place de marché elloha (support@elloha.com).

Par exemple : https://reservation.elloha.com/Search/Index/333fffe4-7ab2-4043-9294-7f38ef8007b9

Il vous faut utiliser cet IdBookingEngine pour remplacer celui présent dans les codes des widgets générés dans elloha (widget dispo, widget BE, widget boutons de résa...) au niveau de l'URL "https://reservation.elloha.com/...".

Exemple ci-après avec le widget "Mon calendrier" créé au niveau de la section Modules du compte elloha d'un prestataire. Le principe est le même pour tous les types de widgets.


Exemple de widget calendrier de dispo propriétaire elloha
                    Copier
                    

				<div id="ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b" style="width:100%; text-align:center;"
					title="Chez Sebastien" data-id-projet='bd1582002db44452b75ec8d2cbf4075b'>Chargement en cours...</div>
				<script type="text/javascript" src="https://reservation.elloha.com/Scripts/widget-loader.min.js?v=39"></script>
				<script type="text/javascript">var constellationWidgetUrlbd1582002db44452b75ec8d2cbf4075b, constellationTypeModulebd1582002db44452b75ec8d2cbf4075b; constellationWidgetUrlbd1582002db44452b75ec8d2cbf4075b = 'https://reservation.elloha.com/Widget/BookingCalendar/bd158200-2db4-4452-b75e-c8d2cbf4075b?idoi=460550bb-f298-4b90-9f41-743eef361c16'; constellationTypeModulebd1582002db44452b75ec8d2cbf4075b = 2; constellationBookingCalendarLoad('ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b'); constellationWidgetAddEvent(window, "resize", function () { constellationWidgetSetAppearance('ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b'); });</script>

				
				

Il faut remplacer l’IdBookingEngine dans l'URL : 'https://reservation.elloha.com/Widget/BookingCalendar/bd158200-2db4-4452-b75e-c8d2cbf4075b?idoi=460550bb-f298-4b90-9f41-743eef361c16';

bd158200-2db4-4452-b75e-c8d2cbf4075b (IdBookingEngine du module de ce compte elloha) par

333fffe4-7ab2-4043-9294-7f38ef8007b9 (IdBookingEngine général de la Tête de réseau elloha).

Vous obtenez ainsi un widget calendrier de disponibilités qui peut être intégré au niveau de la fiche descriptive APIDAE qui remonte sur le site web de la destination:


Exemple de widget calendrier de dispo de la Tête de réseau elloha
                    Copier
                    

				<div id="ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b" style="width:100%; text-align:center;"
				title="Chez Sebastien" data-id-projet='bd1582002db44452b75ec8d2cbf4075b'>Chargement en cours...</div>
				<script type="text/javascript" src="https://reservation.elloha.com/Scripts/widget-loader.min.js?v=39"></script>
				<script type="text/javascript">var constellationWidgetUrlbd1582002db44452b75ec8d2cbf4075b, constellationTypeModulebd1582002db44452b75ec8d2cbf4075b; constellationWidgetUrlbd1582002db44452b75ec8d2cbf4075b = 'https://reservation.elloha.com/Widget/BookingCalendar/333fffe4-7ab2-4043-9294-7f38ef8007b9?idoi=460550bb-f298-4b90-9f41-743eef361c16'; constellationTypeModulebd1582002db44452b75ec8d2cbf4075b = 2; constellationBookingCalendarLoad('ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b'); constellationWidgetAddEvent(window, "resize", function () { constellationWidgetSetAppearance('ConstellationCalendarContainerbd158200-2db4-4452-b75e-c8d2cbf4075b'); });</script>

				
				

Vous pouvez réemployer ce code "type" du widget elloha propre au BE général de la destination et l'intégrer sur les autres pages de détails du site web en modifiant l'idoi (IdProduct) dans le code du widget :

https://reservation.elloha.com/Widget/BookingCalendar/333fffe4-7ab2-4043-9294-7f38ef8007b9?idoi=460550bb-f298-4b90-9f41-743eef361c16

puisque vous pouvez disposer de cet "id" dans le JSON de l'API Métadonnées APIDAE.



Utilisation des tags la métadonnée elloha-APIDAE

Les "tags" présents dans la métadonnée sont propres à chaque membre APIDAE qui peut en demander la création à elloha. Les libellés sont libres et une fiche peut se voir attribuer plusieurs "tags" dans la métadonnée.

Une fois créés, les tags peuvent être affectés aux comptes elloha de la destination et ensuite remonter dans la métadonnée APIDAE dans le but de déterminer un comportement spécifique de la fiche APIDAE en front au niveau des fonctionnalités transactionnelles. L'administration de ces critères transactionnels se fait alors dans l'application de Tête de réseau elloha plutôt que dans le SIT APIDAE.

L'exemple type est la combinaison de tags "dispo" et "dispo-resa". Il revient alors au prestataire web de conditionner l'apparition en front d'un widget de disponibilités pour le produit à la présence du tag "dispo" dans la métadonnée ou sinon d'un widget de réservation permettant le process complet de vente pour ceux qui sont tagués "dispo-resa".

La destination peut par exemple souhaiter filtrer son catalogue pour ne permettre la vente que des produits tagué "Abonnement-2019".