Add-on Management
Add-ons are the management area where you define products that add extra value to vehicle rental bookings (Baby Seat, GPS, Full Insurance, Port Baggage, etc.). Access this section via MHM Rentiva > Add-ons.
These services are added to the booking total and improve operational efficiency.
π§Ί Creating a New Add-onβ
When adding a product or service, the following parameters are configured:
- Service Name: The name the customer sees in the cart (e.g. Baby Seat).
- Description: Detailed information about the product and its terms of use.
- Pricing:
- Daily Price: Charged for each day of the rental (e.g. $50 / Day).
- Fixed Price: Charged once per booking (e.g. Insurance Package $500).
- Required Service: When checked, the customer cannot complete a booking without this service (e.g. Standard Insurance).
- Maximum Quantity: How many units can be selected for a single vehicle (e.g. Max 2 Baby Seats).
πΌοΈ IMAGE: ADD-ON MANAGEMENTβ
(Add-on list and pricing settings)
π Vehicle Compatibility (Assignment)β
Not all services may be appropriate for every vehicle.
- Vehicle-Specific: You can define an 8β9 person baggage service exclusively for the "Minibus" group.
- Global Assignment: Some services (e.g. International Exit Permit) are automatically applied to the entire fleet.
π Customer Selection and Cart Managementβ
The customer sees these services as a list on the vehicle detail page or at the checkout step.
- Real-time Calculation: When an add-on is selected, the total amount updates instantly via Ajax.
- Summary: The selected extras are itemized both in the customer's email and in the booking record in the admin panel.
π v4.36.0 β Context & Pricing Typeβ
Starting with v4.36.0, every add-on has two new fields on the edit screen:
Context (addon_context taxonomy)β
A radio metabox in the side panel with three options:
| Context | Meaning |
|---|---|
| Rental only | Shown only on rental booking flow |
| Transfer only | Shown only on transfer booking flow (modal picker) |
| Both | Shown in both flows |
- Default:
Rental only(existing add-ons auto-migrated to this on upgrade) - Where the customer sees it:
- Rental: existing checkboxes on the booking form (unchanged)
- Transfer: a "+ N add-ons available" hint above the "Add to cart" button on each search-result card; clicking the button opens a modal picker
Pricing Type (_mhm_addon_pricing_type post meta)β
A select field in the main metabox with three options:
| Type | Calculation | Valid in |
|---|---|---|
| Per booking (fixed) | addon_price (flat) | Both contexts |
| Per day | addon_price Γ rental_days | Rental |
| Per passenger | addon_price Γ (adults + children) | Transfer |
- Default:
Per booking (fixed)(existing add-ons auto-migrated) - Dynamic admin UI: when you change the Context radio, the Pricing Type select disables incompatible options with a
(incompatible with context)suffix. JS-driven, no save needed to preview. - Server-side guard: if a JS-bypass somehow saves an invalid combination (e.g.
Rental only+Per passenger), the server snaps the pricing type back toPer bookingand shows an admin notice.
Transfer modal previewβ
When a customer clicks "Add to cart" on a transfer search result and at least one transfer-context add-on exists:
ββ Modal βββββββββββββββββββββββββββββββββββ
β Add-ons for your VIP transfer β
β Δ°stanbul HavalimanΔ± β Taksim Ofis β
ββββββββββββββββββββββββββββββββββββββββββββ€
β β Welcome Banner (required) +30 βΊ β
β β Child Seat +25 βΊ β
β β VIP Assistant +15 βΊ Γ 3 yolcu = 45 βΊ β
ββββββββββββββββββββββββββββββββββββββββββββ€
β Vehicle 280 βΊ + add-ons 95 βΊ = 375 βΊ β
β [ Cancel ] [ Add to cart ] β
ββββββββββββββββββββββββββββββββββββββββββββ
- Required add-ons appear at the top, pre-checked, and locked.
- The total updates live as the customer toggles checkboxes.
- "Cancel" backs out without dispatching anything; "Add to cart" submits the selection alongside the existing transfer payload.
- If zero transfer-context add-ons are configured, the modal is suppressed and the existing direct-add behaviour remains untouched.
Migrationβ
On the first init after upgrading to v4.36.0, every legacy vehicle_addon record is auto-assigned:
addon_context = rental_mhm_addon_pricing_type = per_booking
This is idempotent β a manual operator override (changing context to transfer or pricing type to per_day) is never overwritten on subsequent boots. The migration is gated by an internal option flag.
Lite limitβ
Lite still caps at 4 published add-ons total (combined rental + transfer). The vendor decides how to split the slots. Pro is unlimited.
Section Summaryβ
- Offer rich service options to create Additional Revenue Channels.
- Cover your costs with Pricing Strategies (daily / fixed / per booking / per passenger).
- Use Vehicle-Specific Presentation and Context Targeting to show the right add-ons in the right flow.
- Transfer customers see a focused modal picker with live multiplier-aware totals.
Changelogβ
| Date | Version | Note |
|---|---|---|
| 29.04.2026 | 4.36.0 | Added addon_context taxonomy (rental / transfer / both) and _mhm_addon_pricing_type (per_booking / per_day / per_passenger). Transfer modal picker with live total. Idempotent data-lane migration. |
| 19.03.2026 | 4.21.2 | Add-ons usage guide created. |