儿童价
修改于: 2024-03-28 16:19
TABLE OF CONTENTS
介绍
儿童价是 GO Distributor v4.7 发布的一项新功能,支持当酒店集团按儿童年龄段来提供儿童价时,GO 透传给渠道的业务场景。
版本要求
| GO版本 | 需要升级到 GO Distributor V4.7或更高版本吗? | 备注 | 
|---|---|---|
| 
 | 否 | 渠道调用实时检查或Shop ARI 接口时,GO将根据请求中的”儿童年龄”进行计算并返回对应的价格 | 
| 
 | 是 | 需要升级以下两个接口: 1.BookingUSB的酒店产品接口 2.AvailabilityPeer的ARI推送接口 | 
儿童价类型
目前 GO 支持四种儿童价类型,渠道可以通过 BookingUSB 酒店产品接口中的 childRateType 字段获取此类型。
| 儿童价类型 | 描述 | 
|---|---|
| Normal | 入住成人与入住儿童组合价 | 
| ByAge | 根据入住儿童年龄收取对应儿童价 | 
| Free | 入住儿童免费 | 
| AsAdult | 入住儿童按成人价收取 | 
文档中的定义
| 属性 | 类型 | 描述 | 
|---|---|---|
| childRateType | 枚举 | 枚举:[Normal,ByAge,Free,AsAdult] 标示酒店儿童价类型 Normal:默认类型,入住成人与入住儿童组合价,与入住儿童年龄无关 ByAge:根据入住儿童年龄收取对应儿童价。此类型时 maxChildAge 字段提供最大儿童年龄设置。推送 ARI 时,儿童价由 extraChildRates 节点推送。 Free:入住儿童免费 AsAdult:入住儿童将按成人收费 | 
| maxChildAge | 整数 | 如果 childRateType 设置为 ByAge,则必须提供大于零的最大儿童年龄。 | 
如何通过API获取childRateType指示符?
渠道调用 BookingUSB 酒店产品接口,通过 childRateType 字段获取标识,参见示例如下:
{
    "hotelId": "GATHI",
    "hotelName": "This is a test hotel",
    "supplierId": "HILTON",
    "status": "Actived",
    "chainCode": "abc",
    "brandCode": "Waldorf",
    "longitude": 41.40338,
    "latitude": 2.17403,
    "city": "string",
    "country": "string",
    "state": "string",
    "address": [
        "AddressLine1",
        "AddressLine2"
    ],
    "phone": {
        "countryAccessCode": "string",
        "areaCityCode": "string",
        "phoneNumber": "string"
    },
    "settings": {
        "userName": "username",
        "password": "password"
    },
    "ariType": "Daily",
    "timezone": "America/Los_Angeles",
    "rateType": "AmountBeforeTax",
    "maxChildAge": 17,
    "childRateType": "ByAge",
    "products": [...]
}如何通过 API 获取儿童价?
- 对于 GO v4 拉模式渠道
渠道无需修改程序代码,因为 GO 将根据请求中的成人数,儿童数及儿童年龄计算出总价并返回给渠道。
示例:shopping 两位成人,一位 8 岁儿童入住的 ARI 数据,GO 将计算并返回总价。
示例请求:
{
"header": {
"distributorId": "GTA",
"version": "v4",
"token": "18393849028490234"
 },
 "hotels": [
 {
"supplierId": "HILTON",
"hotelId": "GATHI",
"status": "Actived"
 }
 ],
"stayRange": {
"checkin": "2022-01-01",
"checkout": "2022-01-04"
 },
"roomCriteria": {
"roomCount": 1,
"adultCount": 2,
 "childCount": 1,
"childAges": [8]
 }
}- 对于 GO v4 推模式渠道
重要信息:
GO Distributor v4.7及以上支持儿童价功能。低于此版本的渠道如要升级并支持儿童价,请联系我们 GO Help 团队。
如果酒店集团支持并提供儿童价,GO 将通过 AvailabilityPeer ARI Push 接口中 extraChilaRates 向渠道推送儿童价。
Daily ARI 推送示例如下:
{
    "header": {
        "supplierId": "HILTON",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "hotelId": "GATHI",
    "dateRange": {
        "startDate": "2018-01-01",
        "endDate": "2018-01-04"
    },
    "currency": "USD",
    "dailyAris": [
        {
            "roomId": "K1",
            "rateId": "BARB",
            "mealPlans": [
                "BB",
                "BB",
                "BB",
                "BB"
            ],
            "inventories": [
                9,
                0,
                9,
                9
            ],
            "rates": {
                "extraChildRates": [
                    {
                        "amountAfterTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "amountBeforeTax": [
                            40.00,
                            40.00,
                            40.00,
                            40.00
                        ],
                        "maxAge": 2,
                        "minAge": 0
                    },
                    {
                        "amountAfterTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "amountBeforeTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "maxAge": 8,
                        "minAge": 3
                    },
                    {
                        "amountAfterTax": [
                            70.00,
                            70.00,
                            70.00,
                            70.00
                        ],
                        "amountBeforeTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "maxAge": 17,
                        "minAge": 9
                    }
                ],
                "type": "OccupancyRate",
                "rates": [
                    {
                        "adultCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            623.23,
                            623.23,
                            623.23,
                            623.23
                        ]
                    },
                    {
                        "adultCount": 2,
                        "amountBeforeTax": [
                            520.19,
                            520.19,
                            520.19,
                            520.19
                        ],
                        "amountAfterTax": [
                            641.23,
                            641.23,
                            641.23,
                            641.23
                        ]
                    }
                ]
            },
            "availStatuses": {
                "close": [
                    false,
                    false,
                    false,
                    false
                ],
                "minStayArrival": [
                    0,
                    2,
                    0,
                    0
                ],
                "maxStayArrival": [
                    0,
                    2,
                    0,
                    0
                ],
                "minStayThrough": [
                    0,
                    2,
                    0,
                    0
                ],
                "maxStayThrough": [
                    0,
                    2,
                    0,
                    0
                ],
                "minAdvanceDay": [
                    0,
                    2,
                    0,
                    0
                ],
                "maxAdvanceDay": [
                    365,
                    365,
                    365,
                    365
                ],
                "cta": [
                    false,
                    false,
                    false,
                    true
                ],
                "ctd": [
                    false,
                    false,
                    false,
                    true
                ],
                "fplos": [
                    "1111111",
                    "1001111",
                    "1000001",
                    "0000000"
                ]
            },
            "rateChangeIndicators": [
                true,
                false,
                true,
                false
            ]
        }
    ]
}LOS ARI 推送示例如下:
{
    "header": {
        "supplierId": "HILTON",
        "distributorId": "GTA",
        "version": "v4",
        "token": "18393849028490234"
    },
    "hotelId": "GATHI",
    "dateRange": {
        "startDate": "2018-01-01",
        "endDate": "2018-01-04"
    },
    "currency": "USD",
    "losAris": [{
            "roomId": "K1",
            "rateId": "BARB",
            "los": 1,
            "mealPlans": [
                "BB",
                "BB",
                "RO",
                "BB"
            ],
            "inventories": [
                9,
                0,
                9,
                9
            ],
            "rates": {
                "extraChildRates": [{
                        "amountAfterTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "amountBeforeTax": [
                            40.00,
                            40.00,
                            40.00,
                            40.00
                        ],
                        "maxAge": 2,
                        "minAge": 0
                    }, {
                        "amountAfterTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "amountBeforeTax": [
                            50.00,
                            50.00,
                            50.00,
                            50.00
                        ],
                        "maxAge": 8,
                        "minAge": 3
                    }, {
                        "amountAfterTax": [
                            70.00,
                            70.00,
                            70.00,
                            70.00
                        ],
                        "amountBeforeTax": [
                            60.00,
                            60.00,
                            60.00,
                            60.00
                        ],
                        "maxAge": 17,
                        "minAge": 9
                    }
                ],
                "type": "OccupancyRate",
                "rates": [{
                        "adultCount": 2,
                        "childCount": 1,
                        "amountBeforeTax": [
                            502.19,
                            502.19,
                            502.19,
                            502.19
                        ],
                        "amountAfterTax": [
                            623.23,
                            623.23,
                            623.23,
                            623.23
                        ]
                    }
                ]
            }
        }
    ]
}它是如何在GO v4.7 Push渠道API上工作的?
我们从 GO BookingUSB 的酒店产品 API 中删除了 2 个属性,并添加了一个新属性。
- 属性 freeChildAge 和 childPriceRules 将被删除。
- 添加属性 childRateType,用于指示酒店集团提供了哪种类型的儿童价。如果 childRateType 是 ByAge,则 maxChildAge 为必填属性,并且值大于0。示例如下:
{
    "hotelId": "100001",
    "hotelName": "This is a test hotel",
    "distributorId": "GTA",
    "status": "Actived",
    "chainCode": "Marriott",
    "brandCode": "Courtyard",
    "longitude": 41.40338,
    "latitude": 2.17403,
    "city": "string",
    "country": "string",
    "state": "string",
    "address": [],
    "phone": {},
    "settings": {},
    "ariType": "Daily",
    "timezone": "America/Los_Angeles",
    "rateType": "AmountBeforeTax",
    "maxChildAge": 17,
    "childRateType": "ByAge",
    "products": []
}我们在 AvailabilityPeer 的 ARI PUSH API 上添加了新属性 extraChilaRates,以反映 Rate 模型 OccupancyRate 中特定年龄段的儿童价格。
例如. 如果设置 maxChildAge=8,则示例响应如下:
"rates": {
  "type": "OccupancyRate",
  "rates": [
    {
      "adultCount": 1,
      "amountBeforeTax": [
        100.00,
        100.00,
      ],
      "amountAfterTax": [
        120.00,
        120.00
      ]
    },
    {
      "adultCount": 2,
      "amountBeforeTax": [
        180.00,
        180.00,
      ],
      "amountAfterTax": [
        200.00,
        200.00
      ]
    }
  ],
  "extraChildRates": [
    {
      "minAge": 0,
      "maxAge": 2,
      "amountBeforeTax": [
        40.00,
        40.00,
      ],
      "amountAfterTax": [
        50.00,
        50.00
      ]
    },
    {
      "minAge": 3,
      "maxAge": 8,
      "amountBeforeTax": [
        50.00,
        50.00,
      ],
      "amountAfterTax": [
        60.00,
        60.00
      ]
    }
  ]
}- 年龄范围将被明确定义且不重叠,例如,当 maxChildAge 为 12 时,年龄范围为 [0-2]、[3-8] 和 [9-12]。
- minAge 和 maxAge 都是闭区间,其中 minAge 将大于或等于 0,maxAge 应小于或等于 maxChildAge。
- 儿童定价将基于与客房相同的金额类型(AAT/ABT)。
- 当推送 byAge 的儿童价时,childCount 字段将从成人和儿童的费率组合中删除。
此回答是否有所帮助? 是 否
Send feedback