Package step

A creator-defined step in a package booking journey.

A creator-defined step in a package booking journey. Access via package.steps or as package_step on package booking step pages. Many methods read the current package_booking from the Liquid context.

Properties

accommodated_adult_count

Total guests selected on this step in the current package booking.

Returns: Integer

auto_progress

Whether the step advances automatically once the customer has met its requirements.

Returns: Boolean

available_star_ratings

Unique star ratings on the step's listable accommodations, sorted ascending. Use to build star-rating filter UIs.

Returns: Array (Float) — empty when the step has no accommodations or none have a star rating.

See also: PackageProductSearchQueryDrop, PackageStepProductSearchTag

available_tags

Tag categories and values present across the step's listable products, grouped by category and deduplicated. Use to build filter UIs that only show options which will return results.

Returns: Array (TagCategoryDrop) — empty when the step has no listable products or none have tags.

See also: PackageProductSearchQueryDrop, PackageStepProductSearchTag

earliest_check_in_date

Earliest check-in date allowed when the step has required dates and limits additional nights before the required start. Only applies to accommodation steps on multi-date packages.

Returns: Date or nil — nil on fixed-date packages, when date offsets are not configured, when no start date has been chosen, or when any number of additional nights may be booked before the required start.

id

The step's unique identifier.

Returns: String — a UUID.

latest_check_out_date

Latest check-out date allowed when the step has required dates and limits additional nights after the required end. Only applies to accommodation steps on multi-date packages.

Returns: Date or nil — nil on fixed-date packages, when date offsets are not configured, when no start date has been chosen, or when any number of additional nights may be booked after the required end.

max_guests_required

The guest count the step must accommodate — the package booking's adult count, or the package minimum when no adult count is set.

Returns: Integer

min_guests_required

The minimum guests required on this step. Returns the package adult count when the step requires an exact guest count; 1 when the step has required dates but not guest-count requirements; otherwise 0.

Returns: Integer

name

The step's display name.

Returns: String

next_page_path

URL for the next page in the booking journey. When this is the last step, returns the package return-to URL if one was stored, otherwise the checkout path.

Returns: String

package

The package this step belongs to.

Returns: PackageDrop

path

URL for this step in the package booking journey.

Returns: String

product_groups

The listable products on this step, in the order set in the seller admin. Each entry exposes the product and the variants the creator selected for the package.

Returns: Array (Package::Step::ProductDrop)

required_end_date

End of the date range the customer must book when the step has required dates. For multi-date packages with date offsets, calculated from the customer's chosen start date.

Returns: Date or nil — nil when the step has no required dates, or for multi-date packages when offsets are not configured or no start date has been chosen.

required_start_date

Start of the date range the customer must book when the step has required dates. For multi-date packages with date offsets, calculated from the customer's chosen start date.

Returns: Date or nil — nil when the step has no required dates, or for multi-date packages when offsets are not configured or no start date has been chosen.

seating_event

The seating event for this step in the current package booking. Fixed-date packages use the item's configured slot. Multi-date packages use the booking's selected start date and time and the item's slot strategy.

Returns: Seating::EventDrop or nil — nil when no listable item resolves to a slot with a seating event.

single_item_constraint?

Whether the step restricts the customer to selecting a single item that fits the entire group.

Returns: Boolean

step_valid?

Whether the customer's cart selections satisfy this step's requirements.

Returns: Boolean

tagline

A short description shown to customers on the step page.

Returns: String or nil

validation_errors

Explanations when the customer's selections do not meet this step's requirements.

Returns: Array (String) or nil — nil when the step is valid.

On this page