ظرفیت و قیمت
ظرفیت هر تفریح به زمان وابسته است. ابتدا تاریخهای قابلرزرو یک نوع محصول را بخوانید و سپس سانسها و قیمت هر مسافر را برای تاریخ انتخابی. تاریخها و ساعتهای گذشته، بر اساس منطقهٔ زمانی محلی همان تفریح، از قبل حذف شدهاند.
خواندن ظرفیت#
GET/v3/HAPI/activities/product-types/{id}/availability
به اسکوپ activities:read نیاز دارد. {id} شناسهٔ apt_ یک نوع محصول است.
پارامترهای کوئری#
| نام | نوع | توضیح |
|---|---|---|
date | string | اختیاری، با قالب YYYY-MM-DD. بدون آن تاریخهای قابلرزرو را میگیرید و با آن، سانسها و نرخهای همان تاریخ را. |
پاسخ: تاریخهای قابلرزرو#
{
"object": "activity_availability",
"product_type_id": "apt_88213",
"timezone": "Asia/Tbilisi",
"dates": [
{ "date": "2026-11-14" },
{ "date": "2026-11-15" }
]
}پاسخ: یک تاریخ مشخص#
{
"object": "activity_availability",
"product_type_id": "apt_88213",
"date": "2026-11-14",
"weekday": "Saturday",
"timezone": "Asia/Tbilisi",
"available": true,
"capacity": [
{ "category": "adult", "quantity": 12 },
{ "category": "child", "quantity": 12 }
],
"timeslots": [
{ "start_time": "09:00" },
{ "start_time": "14:00" }
],
"rates": [
{ "category": "adult", "price": { "amount": "29.00", "currency": "USD" } },
{ "category": "child", "price": { "amount": "19.00", "currency": "USD" } },
{ "category": "senior", "price": { "amount": "24.00", "currency": "USD" } }
],
"booking_options": {
"per_booking": [
{
"id": "46db421e-5727-46fc-9f2c-10679e026582",
"name": "Flight number", "name_translated": "Flight number",
"description": "As shown on your ticket", "required": true, "add_on": false,
"input_type": 14, "input_type_name": "flight_number",
"format_regex": "^[A-Z0-9][A-Z0-9][0-9]{0,4}$",
"valid_from": null, "valid_to": null
}
],
"per_pax": [
{
"id": "543f0e45-bdfe-4dc7-af73-e7fd5eda8246",
"name": "Pickup zone", "required": true, "add_on": true,
"input_type": 1, "input_type_name": "list",
"items": [
{ "label": "Zone 1", "value": "zone_1", "price": { "amount": "10.00", "currency": "USD" } },
{ "label": "Zone 2", "value": "zone_2", "price": { "amount": "15.00", "currency": "USD" } }
]
}
]
}
}
از اساس به زمان حساس است.
تاریخها و سانسهایی که گذشتهاند، نسبت به منطقهٔ زمانی محلی تفریح حذف میشوند؛ پس هر سانسی که میبینید قابلرزرو است. قیمتها برای هر مسافر و به دلار آمریکا (USD) هستند.
مقدار
0 در quantityـِ capacity یعنی ظرفیت آن گروه مسافر در این تاریخ تمام شده است؛ تفریحهایی که ورود آزاد (بدون سانس) دارند، فهرست timeslots خالی برمیگردانند.
گزینههای رزرو#
بعضی تفریحات هنگام رزرو اطلاعات بیشتری لازم دارند؛ مثل شمارهٔ پرواز، منطقهٔ ترانسفر، نام مسافران یا یک مدرک بارگذاریشده. این موارد زیر booking_options برمیگردند و به دو دسته تقسیم میشوند:
per_booking: یک بار برای کل رزرو پاسخ داده میشود.per_pax: یک بار برای هر مسافر پاسخ داده میشود (بزرگسالان، سپس کودکان، سپس سالمندان، به همین ترتیب).
هر گزینه این فیلدها را دارد:
| فیلد | معنا |
|---|---|
id | شناسهٔ گزینه؛ هنگام رزرو آن را بهعنوان id پاسخ برگردانید. |
name / name_translated | برچسبی که به مهمان نمایش میدهید. |
description / description_translated | متن راهنما. |
required | اگر true باشد، رزرو بدون پاسخ به این گزینه رد میشود. |
add_on | یک گزینهٔ اضافهٔ پولی که در صفحهٔ محصول نمایش داده میشود. |
input_type / input_type_name | نوع فیلد؛ جدول زیر را ببینید. |
format_regex | الگوی اختیاری برای اعتبارسنجی مقدار در سمت کلاینت. |
valid_from / valid_to | بازهٔ تاریخی که گزینه در آن اعمال میشود (یا null). |
price | هزینهٔ اضافهٔ ثابت و اختیاری برای انتخاب این گزینه. |
items | برای نوعهای فهرستی: گزینههای قابلانتخاب به شکل { label, value, price }. |
مقادیر input_type
| # | name | # | name |
|---|---|---|---|
1 | list | 8 | image |
2 | list_multiple | 9 | address |
3 | number | 10 | time |
4 | string | 11 | datetime |
5 | boolean | 12 | country |
6 | date | 13 | phone |
7 | file | 14 | flight_number |
قیمت گزینههای اضافه.
price هر گزینه و items[].price هر آیتم فهرست، یک هزینهٔ اضافه به ازای هر انتخاب و به دلار آمریکا (USD) است که مهمان علاوه بر نرخ بلیت میپردازد. این قیمتِ نهایی برای مشتری است (هر مارکآپ مربوط از قبل در آن لحاظ شده است). گزینههایی که price ندارند، صرفاً اطلاعاتیاند (مثل شمارهٔ پرواز) و هزینهای ندارند.
گزینههای الزامی کنترل میشوند. اگر تفریح گزینهٔ
required داشته باشد و آن را نفرستید (یا برای یکی از مسافران نفرستید)، رزرو با خطای 422 و پیامی که نام گزینهٔ جاافتاده را میگوید رد میشود و هیچ چیزی نگه داشته نمیشود. برای رزرو، به همهٔ گزینههای required پاسخ دهید.
پاسخها را هنگام ایجاد رزرو زیر options بفرستید.
ویرایش این صفحه در گیتهابمشکلی دیدید؟ از پنل ← پشتیبانی خبرمان کنید.