Skip to main content

Bundles Tools

Module-gated

These tools are only advertised when the supplier has the Rentals module enabled. See Per-supplier tool filtering.

View product bundles (pre-configured packages of rental products) and check their availability for specific dates.

Required scope: products:read

Read tools use products:read. Creating or changing a bundle requires bundles:write.

Tools Overviewโ€‹

ToolDescriptionRead-only?
list_bundlesList product bundles with optional searchYes
get_bundleGet full details of a bundle including items and pricingYes
check_bundle_availabilityCheck if a bundle is available for specific datesYes
create_bundleCreate a bundle with its included items and pricingNo

list_bundlesโ€‹

List product bundles/packages with optional search. Returns bundle details with items and pricing.

Parametersโ€‹

NameTypeRequiredDescription
searchstringNoSearch by bundle name
limitintegerNoNumber of results (default 10)

get_bundleโ€‹

Get detailed information about a product bundle including its component items and pricing.

Parametersโ€‹

NameTypeRequiredDescription
bundle_idintegerYesThe bundle ID

check_bundle_availabilityโ€‹

Check if a product bundle is available for specific dates. All items in the bundle must be available for the bundle to be considered available.

Parametersโ€‹

NameTypeRequiredDescription
bundle_idintegerYesThe bundle ID
start_datestringYesStart date for the period
end_datestringYesEnd date for the period

create_bundleโ€‹

Create a "combo" โ€” a product bundle. A bundle can mix rentals, experiences, and store products (shop add-ons) in the same combo. Pass items[] to add them in one call, or add them later in the bundle editor. The bundle and all supplied items save together. An invalid item or discount returns an error without saving a partial bundle. After creating, call get_bundle to read back the choice-group names and bundle item IDs needed to book it.

Required scope: bundles:write

Parametersโ€‹

NameTypeRequiredDescription
namestringYesBundle name
descriptionstringNoOptional description
pricing_typestringNofixed (one flat combo price) or discount (default โ€” calculated from the items with the per-item rental discounts applied)
fixed_pricenumberNoRequired if pricing_type=fixed
security_deposit_typestringNoinherit (default โ€” add up each item's own hold) or flat (one combined hold for the whole combo; set security_deposit_amount)
security_deposit_amountnumberNoThe single flat combo hold amount. Only used when security_deposit_type=flat
cancellation_policy_idintegerNoOptional per-combo cancellation policy override. Leave unset to apply the most rigid policy across the combo's items
itemsarrayNoThe rentals, experiences, and store products in this combo (see below)

items[] objectโ€‹

NameTypeRequiredDescription
item_typestringNoproduct (a rental), experience (a tour), or store_product (a shop add-on, always full price). Defaults to product when product_id is given, experience when experience_id is given, store_product when store_product_id is given
product_idintegerConditionalThe rental product ID (when item_type=product)
variation_idintegerNoPin the rental to one of its own variations. Omit to let the customer pick
experience_idintegerConditionalThe experience ID (when item_type=experience)
rate_category_idintegerNoPin the experience to one of its own prices. A rate the experience does not sell is refused
store_product_idintegerConditionalThe store product (shop add-on) ID (when item_type=store_product). Store products are always full price
quantityintegerNoHow many of this item the combo includes. Default 1
choice_groupstringNoItems sharing the same non-empty choice_group are "pick one" alternatives โ€” the customer chooses exactly one at checkout (e.g. group watercraft for two jet skis)
choice_labelstringNoFriendly label shown for this option in its choice group (e.g. "SeaDoo GTI 130")
discount_percentnumberNoPercent off this included item, from 0 to 100. Applies for every rental length. Required rental charges are added after this discount.
discount_tiersobjectNoRentals only. Duration-tiered discount as hours โ‡’ percent off, e.g. {"2":20,"4":15} = 2 hours gets 20% off, 4 hours gets 15% off. Experiences and store products are always full price
allowed_durationsarrayNoRentals only. The durations in hours the customer can pick for this rental, e.g. [2, 4]. Fractional values mean minutes: 0.5 = 30 minutes, 2.5 = 2 hours 30 minutes

Returnsโ€‹

{
"success": true,
"message": "Bundle 'Weekend Adventure Pack' created with 3 item(s).",
"bundle": { "id": 42, "name": "Weekend Adventure Pack", "item_count": 3, "has_experiences": false }
}