Produk & Pengalaman Wisata
Dokumentasi API untuk eksplorasi produk (Experience, Attraction, Event), detail produk, pengecekan kuota, dan opsi penyaringan.
Endpoint Overview
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /products | Mengambil daftar produk menggunakan filter dan pagination. |
| GET | /products/:slug | Mengambil detail lengkap produk berdasarkan slug. |
| GET | /products/id/:id | Mengambil detail produk berdasarkan UUID. |
| GET | /products/quota | Mengecek ketersediaan kuota tiket pada tanggal tertentu. |
| GET | /products/:slug/format_customer | Mengambil format data tambahan pemesan (custom fields). |
| GET | /products/filter_option | Mengambil opsi penyaringan (kategori, harga, lokasi). |
1. List Products
Mendapatkan daftar produk dengan parameter penyaringan yang fleksibel.
URL:
/productsMethod:
GETQuery Parameters:
page(default: 1): Nomor halaman.max(default: 10): Item per halaman.type:experience,attraction,event.cities: Nama kota (e.g.,Bali).categories: Array ID kategori.price_range: Array[min, max].sort:most_popular,latest,price_low,price_high.
Response (200 OK):
{
"data": [
{
"id": "uuid-product",
"product_name": "Sunrise at Borobudur",
"slug": "sunrise-at-borobudur",
"min_price": 500000,
"cover_url": "https://...",
"categories": ["History", "Adventure"]
}
],
"pagination": {
"page": 1,
"max": 10,
"total": 120
}
}
2. Product Detail
Mendapatkan informasi mendalam dari sebuah produk, termasuk deskripsi, partner penyedia, dan ulasan.
- URL:
/products/:slug - Method:
GET - Path Variable:
slug(string) - Slug unik produk. - Response (200 OK):
{
"id": "uuid",
"product_name": "Sunrise at Borobudur",
"description": "Nikmati keindahan matahari terbit...",
"partner": {
"name": "Atourin Hub",
"slug": "atourin-hub"
},
"meta": {
"duration": "4 Hours",
"min_person": 1
}
}
3. Check Quota
Mengecek ketersediaan sisa kuota untuk tiket tertentu di tanggal tertentu. Sangat penting dilakukan sebelum memproses pesanan.
- URL:
/products/quota - Method:
GET - Query Params:
ticket_id(required): ID tiket.date(required): FormatYYYY/MM/DD.
- Response (200 OK):
{
"ticket_id": 123,
"date": "2024/01/15",
"total_quota": 100,
"used_quota": 45,
"available_quota": 55
}
4. Product Format Customer
Mengambil struktur data tambahan yang wajib diisi oleh pelanggan untuk produk tertentu (misal: Nomor Paspor, Ukuran Kaos).
- URL:
/products/:slug/format_customer - Method:
GET - Response (200 OK):
[
{
"id": 1,
"format_name": "Full Name",
"is_required": true
},
{
"id": 2,
"format_name": "Passport Number",
"is_required": false
}
]
🔥 Uji Coba API (Simulator)
Gunakan simulator di bawah ini untuk mencoba seluruh endpoint di atas secara langsung. Anda dapat mengubah URL, Method, Headers, dan Body sesuai kebutuhan.