Adelaide | Cairns | Sydney
+61 881263890
+61 881263890
Hire.
Drive.
Discover.
Unlock Exclusive Savings with Simba Car Hire
Book your rental direct and dive into your next journey with exclusive savings tailored just for you
Heading 6
Hire.
Drive.
Discover.
Australia's Leading Airport Car Rental & Hire Company
Why Simba
Exceptional Customer Service
4.9 Stars Google Rating out of 1500+ reviews
Price Beat Guarantee*
Got a better deal? we will beat it by 5%! Chat with us now. *T&C applies
Unlimited Mileage
Drive UNLIMITED kilometres with our vehicles *Excludes UTES, Commercial vans and 8+ Seater vans
Weekend Getaway Deals
Ready for a break? Dive into your weekend adventure with our exclusive weekend getaway deals*. From compact city cars to spacious SUVs, we have the perfect match for your escape. Book your weekend ride today and save!
*Use "Welcome5" to receive 5% off your booking
Family Adventures Await
Make memories that last a lifetime with our family-friendly vehicles. Spacious, comfortable, and safe – we have the perfect car for your family's next vacation. Enjoy special family discounts this season!
Explore with Freedom
Embark on your next adventure with Simba Car Hire. From rugged mountains to serene coastlines, our vehicles are your ticket to unforgettable journeys. Book now and unleash the explorer in you!
Promotions
import { getRentalDetails } from 'backend/simbaCarHire'; import wixLocation from 'wix-location'; const locationMap = { "9": "Sydney Airport", "15": "Cairns Airport", "8": "Adelaide Airport", "10": "Adelaide Melrose Park" }; let filterCriteria = { vehicleType: '', gearship: '', minPassengerCapacity: 0, minBagsCapacity: 0 }; let rentalDetails; $w.onReady(async function () { $w("#loadingSpinner").show(); // Show the loading indicator at the start try { const url = wixLocation.url; const queryParameters = url.split('?')[1]; const params = new URLSearchParams(queryParameters); const pickupLocationId = params.get('pickuplocationid'); const dropOffLocationId = params.get('dropofflocationid'); const pickUpDate = params.get('pickupdate'); const pickUpTime = params.get('pickuptime'); const dropOffDate = params.get('dropoffdate'); const dropOffTime = params.get('dropofftime'); const ageId = params.get('ageid') || '18'; const campaignCode = params.get('campaigncode') !== 'undefined' ? params.get('campaigncode') : ''; const searchParams = { method: 'step2', vehiclecategorytypeid: 0, pickuplocationid: pickupLocationId, pickupdate: pickUpDate, pickuptime: pickUpTime, dropofflocationid: dropOffLocationId, dropoffdate: dropOffDate, dropofftime: dropOffTime, ageid: ageId, campaigncode: campaignCode, name: '', packageid: 0, }; rentalDetails = await getRentalDetails(searchParams); setupFilterHandlers(); if (rentalDetails && rentalDetails.results && rentalDetails.results.availablecars && rentalDetails.results.availablecars.length > 0) { let availableCars = rentalDetails.results.availablecars .filter(car => car.available === 1) .sort((a, b) => b.totalrateafterdiscount - a.totalrateafterdiscount) .map(car => ({ ...car, _id: generateUniqueId() })); $w("#Resultrepeater").data = availableCars; hideNoResults(); setupItemReadyEventHandlers(pickupLocationId, dropOffLocationId, pickUpDate, pickUpTime, dropOffDate, dropOffTime, ageId); const pickupLocationName = locationMap[pickupLocationId] || 'Unknown Location'; $w("#location").text = pickupLocationName; const formattedPickUpDateTime = formatDate(pickUpDate, pickUpTime); const formattedDropOffDateTime = formatDate(dropOffDate, dropOffTime); const dateTimeText = `${formattedPickUpDateTime} - ${formattedDropOffDateTime}`; $w("#datetime").text = dateTimeText; $w("#Resultrepeater").show(); $w("#location").show(); $w("#datetime").show(); } else { showNoResults(); } } catch (error) { console.error('Error fetching rental details:', error); showNoResults(); } finally { $w("#loadingSpinner").hide(); // Hide the loading indicator once everything is loaded or failed } }); function setupItemReadyEventHandlers(pickupLocationId, dropOffLocationId, pickUpDate, pickUpTime, dropOffDate, dropOffTime, ageId) { let tooltipText = "You have the option to pay $50 to reserve this booking and pay the balance at the desk when you receive the car, but this will add a 15% surcharge to your total cost."; let deskPayInfo = $w('#DeskPayInfo'); deskPayInfo.tooltip = tooltipText; $w("#Resultrepeater").onItemReady(($item, itemData) => { $item("#vehicleName").text = itemData.categoryfriendlydescription; $item("#vehicleImage").src = itemData.imageurl; $item("#availability").text = itemData.availablemessage; $item("#numberofadults").text = `${itemData.numberofadults} passenger`; $item("#numberofsmallcases").text = `${itemData.numberofsmallcases} case`; $item("#numberoflargecases").text = `${itemData.numberoflargecases} suitcase${itemData.numberoflargecases !== '1' ? 's' : ''}`; $item("#numberofdays").text = `${itemData.numberofdays} days`; $item("#perday").text = ` $${itemData.avgrate} `; $item("#totalAmount").text = `$${itemData.totalrateafterdiscount} total`; $item("#bookNowButton").onClick(() => { bookNow(itemData, pickupLocationId, dropOffLocationId, pickUpDate, pickUpTime, dropOffDate, dropOffTime, ageId); }); }); } $w.onReady(function () { setupFilterHandlers(); }); function setupFilterHandlers() { $w('#vehicleTypeDropdown').onChange((event) => { filterCriteria.vehicleType = event.target.value === 'All' ? '' : event.target.value; applyFiltersAndSort(); }); $w('#passengerCapacityDropdown').onChange((event) => { filterCriteria.minPassengerCapacity = parseInt(event.target.value); applyFiltersAndSort(); }); $w('#bagsCapacityDropdown').onChange((event) => { filterCriteria.minBagsCapacity = parseInt(event.target.value); applyFiltersAndSort(); }); $w('#Pricedropdown').onChange(() => { applyFiltersAndSort(); }); } function applyFiltersAndSort() { if (rentalDetails && rentalDetails.results && rentalDetails.results.availablecars) { const filteredCars = rentalDetails.results.availablecars.filter(car => { const passengers = car.numberofadults + car.numberofchildren; const bags = car.numberoflargecases + car.numberofsmallcases; return (filterCriteria.vehicleType.length === 0 || car.vehiclecategory === filterCriteria.vehicleType) && (filterCriteria.gearship.length === 0 || car.transmissionType === filterCriteria.gearship) && (passengers >= filterCriteria.minPassengerCapacity) && (bags >= filterCriteria.minBagsCapacity) && car.available === 1; }); if ($w('#Pricedropdown').value === "Low to high") { filteredCars.sort((a, b) => a.totalrateafterdiscount - b.totalrateafterdiscount); } else if ($w('#Pricedropdown').value === "High to low") { filteredCars.sort((a, b) => b.totalrateafterdiscount - a.totalrateafterdiscount); } if (filteredCars.length > 0) { const filteredCarsWithIds = filteredCars.map(car => ({ ...car, _id: generateUniqueId() })); $w("#Resultrepeater").data = filteredCarsWithIds; hideNoResults(); } else { $w("#Resultrepeater").data = []; showNoResults(); } } else { console.error('Rental details not available.'); showNoResults(); } }