

SE Travel Booking is a self-hosted Joomla 6 component that turns your website into a fully functional online travel agency. It supports hotel and villa property listings, guided tour bookings, multi-vendor marketplaces, online payments, automated emails, and an optional AI-powered booking assistant — all without monthly SaaS fees.
Core capabilities at a glance:
com_setravelbooking_3.2.0.zip.The component creates its own database tables on install. No manual SQL is required.
Work through these steps in order before going live:
Components → SE Travel Booking → Settings
Settings are grouped across several tabs.
| Setting | Description |
|---|---|
| Currency | ISO 4217 code displayed throughout the site (e.g. GBP, USD, EUR). |
| Admin Email | Receives copies of booking confirmation and admin alert emails. |
| Tax Rate (%) | Default tax percentage applied to bookings. Can be overridden per property or tour. |
| Items Per Page | Number of property/tour cards shown per search results page. |
| Date Format | Choose from Y-m-d, d/m/Y, m/d/Y, or d M Y. |
| Booking Prefix | Short prefix prepended to booking reference numbers (e.g. STB → STB-00042). |
| Cancellation Window (hours) | How many hours before check-in a guest may still cancel. |
| Demo Mode | Shows a banner warning that the site is in demo mode. Disable before going live. |
| Setting | Description |
|---|---|
| Enable Hotels | Shows or hides the Hotels tab and listing pages site-wide. |
| Enable Tours | Shows or hides the Tours tab and listing pages site-wide. |
| Enable Flights | Shows or hides the Flights search tab. Requires an API key (see Flights Integration). |
Images are automatically resized on upload. Configure the target dimensions here to control storage usage and page load speed.
| Setting | Description |
|---|---|
| JPEG / WebP Quality | Compression quality as a percentage (default 80). Lower = smaller files. |
| Featured Image | Width × height in pixels for the main property/tour card image. |
| Gallery Images | Width × height for detail-page gallery images. |
| Thumbnail | Width × height for small preview thumbnails. |
See the Payment Gateways and Commission & Payouts sections for full details on these settings.
Components → SE Travel Booking → Properties
A Property represents a bookable accommodation — hotel, villa, apartment, guesthouse, or any similar listing.
Click New to open the property editor. Fields are arranged across tabs.
| Field | Description |
|---|---|
| Title | Property name displayed throughout the site. |
| Alias | URL-friendly slug, auto-generated from the title. |
| Property Type | Hotel, Villa, Apartment, Guesthouse, Resort, Hostel, etc. |
| Short Description | One or two sentences shown on search result cards. |
| Description | Full HTML description displayed on the property detail page. |
| Star Rating | 1–5 stars. Shown as star icons on cards and the detail page. |
| Status | Published (visible) or Unpublished (hidden from frontend). |
| Featured | Highlights the property in featured-property modules or filters. |
| Language | Joomla multilingual tag. Leave as All for single-language sites. |
| Field | Description |
|---|---|
| Address | Street address. |
| City | City name. Used in search filtering and displayed on cards. |
| State / Province | Optional. |
| Country | Country name. |
| Postal Code | Optional postcode / ZIP. |
| Latitude / Longitude | Decimal coordinates for the map pin. |
An interactive map is embedded on this tab. If a Google Maps API key is configured in settings, a Google Places autocomplete search box appears — start typing an address and select a result to auto-fill all location fields and drop the map pin. Without a Google key, OpenStreetMap / Nominatim is used instead. You can also click or drag the pin directly on the map.
| Field | Description |
|---|---|
| Phone | Property phone number. |
| Property enquiry email. | |
| Website | Optional external website link. |
| Field | Description |
|---|---|
| Check-in Time | Standard check-in time (e.g. 14:00). |
| Check-out Time | Standard check-out time (e.g. 11:00). |
| Min / Max Price | Price range displayed on search cards when no specific room is selected. |
| Guest Rating | Aggregate review score (0–10). Updated automatically when reviews are submitted. |
| Total Reviews | Review count. Updated automatically. |
| Free Cancellation | Tick to display a Free Cancellation badge on the listing. |
| Breakfast Included | Tick to display a Breakfast Included badge. |
| Tourist Tax | Enable a per-night or per-person tax applied at checkout on top of the room price. |
| Tourist Tax Type | Per night or Per person per night. |
| Tourist Tax Rate | Amount in the site currency. |
| Tourist Tax Label | Custom label shown at checkout (e.g. "City Tax", "Resort Fee"). |
| Field | Description |
|---|---|
| Featured Image | Primary image shown on search cards and at the top of the detail page. |
| Gallery | Additional images shown in the detail-page photo carousel. Upload multiple files. |
Images are resized on upload according to the dimensions set in Global Settings.
After saving a property, edit it and look for the Amenities panel. Tick any amenities from your global amenity library that apply to this property. Selected amenities appear as icons on the property detail page.
Each property can override the global commission rate. Open the property, click the Commission tab, and enter a specific rate. This overrides the vendor-level rate, which overrides the global default. See Commission & Payouts for the full priority chain.
Components → SE Travel Booking → Rooms, or via the Rooms tab inside a property edit screen.
Each property needs at least one room type before it can be booked.
| Field | Description |
|---|---|
| Property | The parent property this room belongs to. |
| Title | Room type name (e.g. "Deluxe Sea View Double"). |
| Alias | Auto-generated URL slug. |
| Room Type | Single, Double, Twin, Suite, Family, Dormitory, etc. |
| Description | Details shown on the property detail page. |
| Max Guests | Total occupancy limit. |
| Max Adults | Adult occupancy limit. |
| Max Children | Child occupancy limit. |
| Bed Type | King, Queen, Twin, Bunk, etc. |
| Room Size | Size in m² or ft² (text field — include the unit). |
| Price Per Night | Nightly rate in the site currency. |
| Original Price | Optional higher price shown with a strikethrough to indicate a discount. |
| Total Rooms | Number of physically separate rooms of this type. Availability is tracked against this count — when all rooms are taken for the requested dates, the room shows as unavailable. |
| Featured Image | Room photo shown alongside the room option on the detail page. |
| Status | Published or Unpublished. |
Availability: The booking engine checks how many rooms of this type are already booked for the requested check-in/check-out window and compares against Total Rooms. If capacity is reached, guests cannot book and the admin booking panel also blocks the reservation.
Components → SE Travel Booking → Tours
Tours are day trips, multi-day experiences, or activities sold by group size rather than by room.
| Field | Description |
|---|---|
| Title | Tour name. |
| Alias | URL slug. |
| Category | Grouping label (e.g. Safari, City Tour, Water Sports). |
| Short Description | Summary shown on listing cards. |
| Description | Full HTML content for the detail page. |
| Status / Featured | Publish state and featured flag. |
| Language | Multilingual tag. |
Same fields as Properties: City, Country, Address, Latitude, Longitude, and an interactive map picker.
| Field | Description |
|---|---|
| Price (Adult) | Per-person adult price. |
| Price (Child) | Per-person child price. Leave at 0 for adult-only tours. |
| Duration Hours | Numeric duration used for availability calculations. |
| Duration Label | Human-readable label (e.g. "3 hours", "Full day", "7 nights"). |
| Max Group Size | Maximum number of guests per booking. The checkout enforces this limit — a group larger than this value cannot complete the booking. |
| Min Age | Minimum participant age. Displayed as an information badge. |
| Difficulty | Easy, Moderate, Challenging, or Expert. |
| Free Cancellation | Displays the Free Cancellation badge. |
| Instant Confirmation | Displays the Instant Confirmation badge. |
| Tourist Tax | Same options as properties — per-night or per-person, with a custom label. |
Same as properties: a Featured Image and a Gallery of additional photos.
Components → SE Travel Booking → Amenities
Amenities are the shared library of features you can assign to properties (Wi-Fi, Pool, Air Conditioning, etc.).
| Field | Description |
|---|---|
| Title | Amenity name shown to guests. |
| Icon | Font Awesome or Joomla icon class (e.g. fas fa-wifi). Displayed alongside the title. |
| Category | Groups amenities into sections on the detail page (e.g. "Bathroom", "Entertainment"). |
| Ordering | Display sort order. |
| Status | Published or Unpublished. |
Create your full amenity library here first, then assign amenities to individual properties from within each property's edit screen.
Components → SE Travel Booking → Bookings
The bookings list shows all reservations across all properties and tours.
| Column | Description |
|---|---|
| Booking Ref | Unique reference (e.g. STB-00042). |
| Guest | Guest name and email. |
| Property / Tour | What was booked. |
| Dates | Check-in and check-out (or tour date). |
| Guests | Adults + children count. |
| Total | Total amount charged including tax. |
| Payment Status | Pending, Paid, Refunded, or Failed. |
| Booking Status | Confirmed, Pending, Cancelled, Completed, or No-Show. |
Use the filter bar above the list to filter by date range, property, vendor, payment status, or booking status. You can also search by booking reference or guest name.
Click any booking reference to open the edit screen. You can:
Click New to create a booking directly from the admin panel. Select the property, room, dates, and guest details. The availability check runs even for admin bookings — you cannot create an overlapping reservation for a fully booked room.
Use the Export CSV button in the bookings list toolbar to download all visible bookings (respecting any active filters) as a spreadsheet. The export includes all booking fields, guest details, and financial totals.
Components → SE Travel Booking → Vendors
Vendors are property owners or tour operators who list their inventory on your platform. Each vendor has a dedicated frontend portal where they manage their own listings and view their bookings.
| Column | Description |
|---|---|
| # | Joomla user ID of the vendor account. |
| Owner | Vendor display name. |
| Contact email. | |
| Properties | Number of properties this vendor owns. |
In Settings → Vendor Registration:
| Setting | Description |
|---|---|
| Vendor Registration | Enable or disable self-registration from the frontend vendor portal. |
| Auto-Approve Vendors | If enabled, new vendor registrations are immediately active. If disabled, they require manual approval in the admin Vendors list. |
| Max Properties Per Vendor | Limits how many properties a vendor can create. |
If auto-approve is off, new vendors appear in the Vendors list with a Pending status. Open the vendor record and change the status to Approved to grant them access to their dashboard.
Each vendor can have an individual commission rate set at the vendor level. This overrides the global default but is overridden by any property-level rate. See Commission & Payouts.
Components → SE Travel Booking → Settings → Payments & Commission
SE Travel Booking supports two commission models:
Merchant Model — The vendor sets their own prices. The platform deducts a commission percentage from each booking and pays the vendor the net amount.
Agency Model — The platform sets the selling price. The vendor receives an agreed net payout and the platform retains the margin.
Select the model in Settings → Commission Model.
Rates are applied in this order (highest priority first):
| Setting | Description |
|---|---|
| Default Commission Rate (%) | Global fallback commission percentage. |
| Property Commission Override | Allow individual properties to override the vendor rate. |
| Payout Delay (days) | How many days after checkout before a booking becomes eligible for payout. Allows time for disputes or cancellations. |
| Deposit Enabled | Require a partial deposit at booking, with the balance due later. |
| Deposit Percentage | Percentage of total charged at booking time. |
| Agency Card Guarantee | In agency model, require card details at booking even if payment is deferred. |
| Agency Auto-Due (days) | Days before check-in when the full balance is automatically charged. |
| Invoice Generation Day | Day of the month on which vendor invoices are generated. |
Components → SE Travel Booking → Finance
Shows a full breakdown of every eligible booking: Booking Ref, Property, Vendor, Checkout Date, Total, Commission Rate, Commission Amount, Vendor Net, and Payout Status.
Filter by vendor, date range, or payout status. Select bookings and click Mark as Paid to record a payout.
Components → SE Travel Booking → Payouts
The Payouts panel shows pending vendor balances — how much each vendor is owed across all eligible unpaid bookings. Click Pay next to a vendor to mark their outstanding balance as paid and record the payout method.
Payout history is shown in the lower section of the screen.
Components → SE Travel Booking → Refunds
The refunds list tracks all refund requests and processed refunds.
To issue a refund, open the relevant booking and change its Payment Status to Refunded. You can add an optional Refund Note to record the reason. The actual money transfer must be completed through your payment gateway dashboard (Stripe, PayPal, etc.) — SE Travel Booking records the refund in its own system but does not initiate the gateway transfer automatically.
Components → SE Travel Booking → Finance
The Finance screen provides a consolidated commission and revenue report.
Filters available:
Columns:
Pending Vendor Balances section at the bottom shows each vendor's total outstanding balance and their preferred payout method.
Components → SE Travel Booking → Emails
SE Travel Booking sends automated emails for key events. All templates are editable from the admin panel.
| Template | Trigger |
|---|---|
| Booking Confirmation (Guest) | Sent to the guest immediately after a successful booking. |
| Booking Confirmation (Admin) | Sent to the admin email on each new booking. |
| Booking Cancellation | Sent to the guest when a booking is cancelled. |
| Payment Received | Sent when payment is confirmed. |
| Payment Failed | Sent when a payment attempt fails. |
| Vendor New Booking | Sent to the vendor when one of their properties is booked. |
| Vendor Payout Notification | Sent to the vendor when a payout is recorded. |
| Guest Review Request | Sent to the guest after checkout to invite a review. |
Each template has:
| Placeholder | Value inserted |
|---|---|
{booking_ref} |
Booking reference number |
{guest_name} |
Guest full name |
{guest_email} |
Guest email address |
{property_name} |
Property or tour name |
{room_type} |
Room type booked |
{check_in} |
Check-in date |
{check_out} |
Check-out date |
{adults} |
Number of adult guests |
{children} |
Number of child guests |
{total_amount} |
Total booking amount with currency |
{tax_amount} |
Tax component of the total |
{payment_method} |
Payment gateway used |
{special_requests} |
Any special requests from the guest |
{vendor_name} |
Property vendor name |
{site_name} |
Your Joomla site name |
The lower section of the Emails screen shows a log of recently sent emails: Date, Recipient, Subject, Type, Booking reference, Status (Sent / Failed), and any error message.
Components → SE Travel Booking → Theme
The hero is the large search bar section at the top of the properties search page.
| Setting | Description |
|---|---|
| Background Type | Colour Gradient, Background Image with Overlay, or Plain Colour. |
| Background Image | Upload a JPEG, PNG, WebP, or GIF image. Displayed behind the overlay. |
| Overlay Colour | Hex colour applied over the background image (e.g. #003580). |
| Overlay Opacity | 0–100%. Lower values let more of the background image show through. |
| Hero Height | Height of the hero section in pixels. Set to 0 for auto height. |
Customise the text shown in the search tabs and below the hero:
| Setting | Example default |
|---|---|
| Hotels Tab | Hotels |
| Tours Tab | Tours |
| Flights Tab | Flights |
| Hotels Heading | Find your next stay |
| Hotels Subtitle | Search deals on hotels, homes, and much more... |
| Tours Heading | Discover amazing tours |
| Tours Subtitle | Book unforgettable experiences with local expert guides |
| Flights Heading | Search flights |
| Flights Subtitle | Compare and book flights to destinations worldwide |
| Setting | Description |
|---|---|
| Container Width | Sets the maximum content width: 1200px (default), 1400px, 1600px, 1800px, or Full Width. |
| Hero Content Width | How wide the search bar is within the hero: 60%–130% of the container. |
| Search Bar Width | Width of the search input on the results page. |
| Map Height | Height of the embedded map in pixels. |
| Map Provider | Google Maps (requires API key) or OpenStreetMap. |
A palette of brand colours can be set in the Theme tab. These are applied as CSS custom properties across the frontend templates.
Components → SE Travel Booking → Settings → AI Chatbot
An optional AI-powered chat widget appears on the frontend to help guests find properties and complete bookings conversationally.
| Setting | Description |
|---|---|
| Enable AI Chatbot | Toggle the widget on or off. |
| Provider | Select your AI provider (OpenAI or compatible). |
| Model | API model name (e.g. gpt-4o-mini). |
| API Key | Your provider API key. Stored securely in the database. |
| Position | Bottom-right or Bottom-left placement on screen. |
| Bubble Label (Search Page) | Text shown next to the chat bubble on the search page. |
| Bubble Label (Detail Page) | Text shown on property/tour detail pages. |
| Header Title | Text in the chatbot header bar. |
| Welcome Message | First message the bot sends when a guest opens the chat. |
| Colour | Hex colour for the chatbot bubble and header. |
| Glow Effect | Adds a pulsing glow to the bubble to attract attention. |
| Glow Frequency | How often the glow pulses (in seconds). |
| GDPR Notice | Show a privacy notice before the chat session begins. |
| Privacy URL | Link to your privacy policy shown in the GDPR notice. |
| GDPR Notice Text | Custom notice wording. |
The chatbot has full context of your property and tour inventory and can answer availability questions, suggest options by date and group size, and guide guests directly to the booking form.
Components → SE Travel Booking → Settings → Flights
The Flights tab on the frontend allows guests to search for flights alongside hotel bookings. SE Travel Booking integrates with two flight data providers.
| Setting | Description |
|---|---|
| Enable Flights | Toggle the Flights tab on the search hero. |
| Flights Mode | Live API (real flight data) or Demo (sample results for testing). |
| Provider | Amadeus or Duffel. |
| Open in New Tab | Opens flight results in a new browser tab. |
| Show Inspiration | Shows popular destination suggestions before a search is run. |
| Default Origin | Pre-fills the departure airport code (e.g. LHR). |
| Cabin Class | Default cabin class shown at search (Economy, Business, First). |
| Currency | Currency used for flight price display. |
| Max Results | Maximum number of flight offers returned per search. |
Enter your API Key and API Secret from the Amadeus for Developers portal. Enable Test Mode while integrating — switch it off when going live.
Enter your Duffel Token from your Duffel dashboard. Enable Test Mode for integration testing.
For affiliate-based flight links (no API required), enter your Partner ID and Marker from the TravelPayouts dashboard. Guests are redirected to a partner search page and you earn commission on bookings.
Components → SE Travel Booking → Settings → Payments
Enable one or more payment gateways. All gateways have a Sandbox/Test Mode toggle — enable this during setup and disable it when ready to accept real payments.
| Field | Description |
|---|---|
| Test Publishable Key | pk_test_... from your Stripe dashboard. |
| Test Secret Key | sk_test_... from your Stripe dashboard. |
| Test Webhook Secret | whsec_... — copy from the Stripe Webhook endpoint you create. |
| Live Publishable Key | pk_live_... for production. |
| Live Secret Key | sk_live_... for production. |
| Live Webhook Secret | Production webhook secret. |
Set up a Stripe Webhook pointing to https://yoursite.com/index.php?option=com_setravelbooking&task=payment.stripeWebhook and subscribe to the payment_intent.succeeded and payment_intent.payment_failed events.
| Field | Description |
|---|---|
| Sandbox Client ID | From your PayPal Developer sandbox app. |
| Sandbox Client Secret | Sandbox app secret. |
| Live Client ID | From your live PayPal app. |
| Live Client Secret | Live app secret. |
| Checkout Mode | Standard (redirect to PayPal) or Advanced (card fields embedded on your page). |
Enter your Test API Key (test_...) and Live API Key (live_...) from your Mollie dashboard.
Enter your Key ID, Key Secret, and optionally a Webhook Secret for payment event callbacks.
Enter your Login ID, Transaction Key, and Signature Key from your Authorize.Net merchant account.
Enter your Test Token and Live Token from your MercadoPago developer account.
Enables an option for guests to pay in person at check-in instead of paying online. No API keys required. When selected at checkout, a booking is created with Payment Status = Pending.
The homepage of the component shows the hero banner with a search form. Guests can switch between Hotels, Tours, and Flights tabs.
Hotels search fields: - Destination (city or property name) - Check-in date - Check-out date - Adults count - Children count - Rooms
Tours search fields: - Destination - Date - Adults - Children
Results appear as cards below the search bar, with filters in a sidebar: property type, price range, star rating, amenities, and free cancellation.
Clicking a property card opens the detail page showing:
Clicking Book on a room opens the booking form:
For registered guests who are logged in, personal details are pre-filled.
Similar to the property detail page with tour-specific sections: duration, difficulty, min age, group size, what's included, and a photo gallery.
Guests can add multiple bookings to a cart before proceeding to payment. The cart page shows all pending bookings with a combined total and a single checkout flow.
After payment, guests see a confirmation page with: - Booking reference number - Property / tour name and dates - Total paid - A printable receipt link - A prompt to create an account (for guest checkouts)
A confirmation email is sent automatically.
A full-page interactive map view plots all published properties as pins. Guests can click a pin to see the property name, rating, and starting price, with a link to the detail page.
Vendors access their own management area from the frontend. The URL is typically /index.php?option=com_setravelbooking&view=vendor.
New vendors click Become a Vendor and complete a registration form. Depending on your Settings, they may be auto-approved or placed in a pending state until an admin approves them.
After login, approved vendors see:
Vendors can create, edit, and unpublish their own properties. They cannot see other vendors' properties. The form fields are the same as the admin property editor, with the exception of commission settings (which only admins can set).
From the vendor portal vendors can add, edit, and delete room types for their properties.
Same as properties — vendors can create and manage their own tour listings.
Registered guests can log in to access their account at /index.php?option=com_setravelbooking&view=account.
Guests can update their name, phone number, country, and password.
Shows all past and upcoming bookings with status, dates, property name, and total paid. Guests can view the full booking details and, if the cancellation window has not closed, cancel a booking.
After checkout, guests receive an email invitation to submit a review. Reviews include a star rating and written comment. Submitted reviews appear on the property detail page and update the property's aggregate guest score.
SE Travel Booking uses SubSeller for licence management and Joomla update delivery.
https://se24media.co.uk).A green confirmation banner confirms successful activation. The component connects to the SubSeller API and validates your key against your domain.
The Licence tab shows: - Active (green) — licence is valid and updates are enabled. - Expired (amber) — licence has expired; renew to restore update access. - Not Activated (red) — no valid activation found for this domain.
Once activated, SE Travel Booking updates appear in System → Joomla! Update alongside core Joomla updates. No manual download is required — simply click Update in the Joomla Update Manager when a new version is available.
Cancelling a booking changes its status but does not automatically free up the room slot in real time until the page cache clears. If you are testing availability immediately after cancelling, do a hard refresh or clear Joomla's cache (System → Clear Cache).
Ensure your site is publicly accessible (webhooks from Stripe/PayPal cannot reach localhost). Check that the webhook URL is correctly registered in your gateway dashboard and that no firewall or security plugin is blocking POST requests to the component URL.
The vendor's Joomla user account must exist and be approved. Check Users → Manage in Joomla admin to confirm the account is not blocked. Also verify the vendor record in SE Travel Booking's Vendors list has an Approved status.
Ensure the tourist tax fields on the property or tour are fully filled in: Tax must be enabled, Tax Type must be selected, Tax Rate must be greater than 0, and Tax Label must not be blank.
Check that the images/com_setravelbooking folder exists on your server and is writable by the web server user. Also ensure the image file has a proper extension (.jpg, .png, .webp) — files without extensions are blocked by the browser file picker.
Confirm the chatbot is enabled in Settings, a valid API Key is entered, and your hosting plan allows outbound HTTPS connections to the AI provider's API endpoint.
Go to System → Global Configuration → Server → Mail and verify Joomla's mail settings. Send a test email from the SE Travel Booking Email Templates screen. If the test fails, check your SMTP credentials or switch to the PHP Mailer method as a fallback.
If using Amadeus or Duffel, confirm Test Mode matches your API key tier (test keys only work in test mode). Check that the origin airport code is valid and that your account has active API access. Use Demo mode to verify the frontend is rendering correctly before connecting a live API.