Travel Partner Prices API
Travel Partner Prices API, tesis fiyatlarını Google'a göndermek için RESTful bir arayüz sağlar.
Hizmet: travelpartnerprices.googleapis.com
Bu hizmeti çağırmak için Google'ın sağladığı istemciyi kullanmanızı öneririz. kitaplıklara göz atın. Eğer uygulamasının bu hizmeti çağırmak için kendi kitaplıklarınızı kullanması gerekiyor. Uygulama Keşif Dokümanı'nı almak için Teknik Hesap Yöneticisi (THY) bu hizmetten bahsedeceğim.
Hizmet uç noktası
Hizmet uç nokta, bir bir API hizmetinin ağ adresini belirten temel URL. Tek hizmet birden fazla hizmet uç noktası olabilir. Bu hizmetin aşağıdaki hizmet uç noktası vardır ve listelenen tüm URI'ler bu hizmet uç noktasıyla ilgilidir:
https://travelpartnerprices.googleapis.com
Yöntemler | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Belirtilen bir tesis için sağlanan Konaklama Süresi Fiyatlarını yükleyin. HTTP mesaj gövdesi olarak JSON kodlu bir LoS fiyatları mesajı (aşağıya bakın) gerektirir.
|
API Kimlik Doğrulaması
Travel Partner Prices API'si şu işlemleri gerçekleştirmek için OAuth 2.0'ı kullanır: API'lere erişebilmeniz için uygulamanızın kimliğini doğrulayın.
Travel Partner Prices API'niz için yetkilendirme almak üzere OAUTH 2.0 kurulum talimatlarını uygulayın.
Travel Partners Prices API için yeni bir proje oluşturduğunuzda, yeni Google Cloud Console projenize erişimi etkinleştirmeniz gerekir. Bu işlem, Travel Partner API'de verilen talimatlara benzer.
Projenizi etkinleştirmek için Travel Partner API'de verilen adımlara bakın ve "Travel Partner API"nin tüm örneklerini "Travel Partner Prices API" ile değiştirin.
Travel Partner Prices API'nin kapsamı:
"https://travelpartnerprices.googleapis.com"
Travel Partner Prices API'nin yükleme yolu:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
İstekler
Söz dizimi
LoS Prices
mesajında şu söz dizimi kullanılır:
{
"requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
"propertyPrices": {
"arrivalDatePrices": [{
"startDate": {
"year": int
"month": int
"day": int
}
"endDate": {
"year": int
"month": int
"day": int
}
"productPrices": [{
"roomTypeId": "string"
"ratePlanId": "string"
"occupancyPrices": [{
"adults": int
"prices": [{
"rateRuleId": "string"
"currencyCode": "string"
"rates": [night_1,night_2,...]
"taxes": [night_1,night_2,...]
"fees": [night_1,night_2,...]
}]
}]
}]
}]
}
}
Öğeler ve Özellikler
Konaklama süresi fiyatları mesajında aşağıdaki öğeler ve özellikler bulunur:
Öğe | Yineleme sayısı | Tür | Açıklama |
---|---|---|---|
requestTime | 1 | string | LoS Price mesajının gönderildiği andır. RFC 3339 biçimli bir dize olarak ifade edilir. Son 24 gün içinde Mesajlar RFC 3339, tam olarak belirtilen tarih ve saat değerlerinin Kesirli saniyeler isteğe bağlıdır ve
nanosaniye hassasiyeti var. Örneğin,
|
propertyPrices | 1 | Object | Bir tesisin fiyatları. Bu propertyPrices içindeki tüm fiyatlar
aynı mülk için geçerlidir.
Bu öğe tekrarlanmıyor. Birden fazla mülkün fiyatlarını göndermek için birden fazla HTTP isteği (mülk başına en az bir tane) göndermeniz gerekir. |
arrivalDayPrices[] | 1..n | Object | Varış tarihi için fiyatlar. Bu arrivalDayPrices içindeki tüm fiyatlar belirli bir mülk için geçerlidir ancak farklı varış tarihleri içindir. |
startDate | 1 | Object | productPrices tüm varış tarihlerine uygulanır
startDate ile endDate arasında (bu alanlar dahil).
Yalnızca tek bir varış tarihi belirtmeye çalışıyorsanız (aralık değil),
Varış tarihini hem |
startDate.year | 1 | integer | startDate yılı. 1 ile 9.999 arasında olmalıdır. |
startDate.month | 1 | integer | Bir yılın ayı. 1 ile 12 arasında olmalıdır. |
startDate.day | 1 | integer | Ayın günü. 1 ile 31 arasında olmalı, yıl ve ay için geçerlidir. |
endDate | 0..1 | Object | productPrices,
startDate ve endDate (bu değerler dahil).
Yalnızca bir varış tarihi (veya tarih aralığı) belirtmek istiyorsanız |
endDate.year | 1 | integer | endDate yılı. 1 ile 9.999 arasında olmalıdır. |
endDate.month | 1 | integer | Bir yılın ayı. 1 ile 12 arasında olmalıdır. |
endDate.day | 1 | integer | Ayın günü. 1 ile 31 arasında olmalı ve yıl ile ay için geçerli olmalıdır. |
productPrices[] | 1..n | Object | Bir ürünün fiyatları. Bu productPrices içindeki tüm fiyatlar belirli bir mülk, varış tarihi kombinasyonu için geçerlidir ancak farklı ürünler için geçerlidir.
|
roomTypeId | 0..1 | string | Bu fiyatın atıfta bulunduğu odanın benzersiz kimliği. Oda Paketi verilerini roomdata içinde gönderdikleriniz ile eşleştirmek için bu kimliği kullanın. Daha fazla bilgi için: Oda Paketi meta verileri. |
ratePlanId | 0..1 | string | Bu fiyatın atıfta bulunduğu paket verilerinin benzersiz kimliği. Tekliflerinizi otomatikleştirmek ve optimize etmek için Oda Paketi verilerini, paket verilerinde gönderdiklerinizle eşleştirmek için bu kimliği kullanın. Daha fazla bilgi için: Oda Paketi meta verileri. |
occupancyPrices[] | 1..n | Object | Doluluk oranı için fiyatlar. Bu occupancyPrices içindeki tüm fiyatlar
belirli bir tesis, varış tarihi, ürün kombinasyonu için geçerlidir ancak
farklı doluluk oranları.
|
adults | 1 | integer | Şu da dahil olmak üzere oda başına rezervasyon yapılabilecek maksimum konuk sayısı:
birlikte çalışır. Bu değer, ilgili occupancyPrices alanındaki tüm fiyatlar için ayarlanır ve 1 ile 99 arasında pozitif bir tam sayı olmalıdır.
Not: Doluluk durumunu bildirmek için destek ekibinizle iletişime geçin. dört yetişkinden daha büyüktür. |
prices[] | 1..n | Object | Konaklama süresi fiyatları. prices içindeki tüm fiyatlar belirli bir mülk, varış tarihi, ürün ve doluluk kombinasyonu için geçerlidir.
|
rateRuleId | 0..1 | string | Koşullu fiyatlar için: bu kimlik, bir ücreti Ücret Kuralı Tanımlama dosyanızdaki bir tanımla eşleştirir. Bu alan için karakter sınırı 40 karakterdir. |
currencyCode | 1 | string | rates ve taxes olmak üzere üç harfli para birimi kodu
sağlandığından emin olun. Örneğin, ABD doları için "USD" .
|
rates[] | 30 | float | Konaklama süresi fiyatlarının taban ücret bileşeni.
Karşılık gelen bir
30 fiyatlık KS grubunun tamamını tek seferde göndermeniz gerekir. 30'dan az gönderirseniz sağlanan tüm LoS fiyatları normal şekilde işlenir ve kalan fiyatlar, LoS 30'a kadar kullanılamaz. Şu durumda: 30'un üzerinde fiyat gönderiyorsanız 30. fiyatın üzerinde gönderdiğiniz fiyatlar düştü . Kullanılamayan konaklama süreleri
|
taxes[] | 30 | float | Konaklama süresi fiyatlarının vergi bileşeni.
|
fees[] | 30 | float | Konaklama süresi fiyatlarının ücret bileşeni.
|
Örnek
KS'ye göre ücretler ve vergiler
Aşağıdaki örnekte, bir check-in tarihi için minimum konaklama süresinin 2 gece, başka bir check-in tarihi için ise müsaitlik durumunun "yok" olarak ayarlanması gösterilmektedir.
startDate
değerini 1.9.2023'ten itibaren endDate
olmadan ayarlarsanız yalnızca bir tarih için ücretleri belirttiğiniz anlamına gelir ve endDate
değerini atlayabilirsiniz.
2
olarak ayarlanan occupancyPrices
dizisi, farklı doluluk oranları için farklı ücretler ayarlamanıza olanak tanır. Bu nedenle, 04.09.23 tarihinde boş yer olmadığı için rates
mevcut değildir.
Gösterilen taxes
dizisi, oranın% 10'u olarak hesaplanır.
Gösterilen fees
dizisinde konaklama başına 50 ABD doları temizlik ücreti uygulanır.
Giriş tarihinin tamamı kullanılamıyorsa ‐03/09/2023
tarihi açıkça gönderin ve rates
, taxes
ve productPrices
öğelerini
Belirtilen tarih için müsaitlik olmadığını belirtmelidir.
{
"requestTime": "2023-08-10T12:15:222",
"propertyPrices": {
"arrivalDatePrices": [
{
"startDate": {
"year": 2023,
"month": 9,
"day": 1
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
},
{
"startDate": {
"year": 2023,
"month": 9,
"day": 3
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
}
]
}
}
Yanıt Metni
Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:
JSON gösterimi | |
---|---|
{ "name": "string" } |
Alanlar | |
---|---|
name |
Değiştirilen PropertyPrices kaynağının adı. Şu biçime sahip olmalıdır:
accounts/{account}/properties/{property} .
|