Hosted Package

Orders and bookings

Display customer orders, bookings, and guest pre-registration flows.

Display customer orders, bookings, and guest pre-registration flows. First, complete the installation.

Render orders

<div data-tiquo-orders data-tiquo-limit="5">
  <div data-tiquo-order-item>
    <span data-tiquo-order="month"></span>
    <span data-tiquo-order="day"></span>
    <span data-tiquo-order="year"></span>
    <span data-tiquo-order="date"></span>
    <span data-tiquo-order="orderNumber"></span>
    <span data-tiquo-order="status"></span>
    <span data-tiquo-order="items"></span>
    <span data-tiquo-order="itemQuantity"></span>
    <span data-tiquo-order="total"></span>
  </div>

  <p data-tiquo-empty>No orders yet.</p>
</div>
</>Interactive example

Orders collection

Inspect the collection, filters, template, every supported order field, and the empty-state fallback.

Hover, tap, or focus an element to inspect its data attributes.

Account

Recent orders

Latest 5

Order

#TQ-1048

Placed

28 Jun 2026

Total

£42.50

2 items · Completed

Every other order field

7 fields

Order day

28

Order month

JUN

Order year

2026

Order status

Completed

Order items

Recovery Suite, Guest pass

Item quantity

2

Quantity label

2 items

Empty fallback

No orders yet

Your completed orders will appear here.

Tiquo hides the first order card, clones it once per result, fills its fields, and shows the fallback only when no orders exist.

Supported order fields include:

Attribute valueDescription
dateOrder creation date as DD/MM/YYYY
dayOrder creation day, such as 28
monthShort order creation month, such as JUN
yearOrder creation year, such as 2026
itemsComma-separated order item names
itemQuantityTotal quantity across all order items
itemQuantityLabelTotal quantity with label, such as 1 item or 2 items
totalOrder total formatted with the order currency and two decimal places, such as £12.50

Optional filters:

  • data-tiquo-limit="5"
  • data-tiquo-status="completed"

The first data-tiquo-order-item element is the template. Tiquo hides that template and appends rendered copies for each order.

data-tiquo-status filters by the order lifecycle status, not payment status. Use values such as completed, processing, cancelled, refunded, or open_tab. Do not use payment statuses such as paid here.

Render bookings

<div data-tiquo-bookings data-tiquo-limit="upcoming" data-tiquo-count="5">
  <div data-tiquo-booking-item>
    <span data-tiquo-booking="date"></span>
    <span data-tiquo-booking="day"></span>
    <span data-tiquo-booking="month"></span>
    <span data-tiquo-booking="year"></span>
    <span data-tiquo-booking="id"></span>
    <span data-tiquo-booking="serviceName"></span>
    <span data-tiquo-booking="items"></span>
    <span data-tiquo-booking="itemQuantity"></span>
    <span data-tiquo-booking="duration"></span>
    <span data-tiquo-booking="startTime"></span>
    <span data-tiquo-booking="endTime"></span>
    <span data-tiquo-booking="status"></span>
  </div>

  <p data-tiquo-empty>No upcoming bookings.</p>
</div>
</>Interactive example

Bookings collection

Inspect the collection filters, repeatable template, every supported booking field, and empty state.

Hover, tap, or focus an element to inspect its data attributes.

Bookings

Upcoming visits

Next 5

Booking number

BKG-1CTYN6

Booking date

03/08/2026

Service name

Recovery Suite

Start time

11:00

End time

12:00

Booking status

Confirmed

Every other booking field

9 fields

Internal booking ID

booking_01JZ8A2K

Booking day

03

Booking month

AUG

Booking year

2026

Service category

Wellness

Booking items

Recovery Suite

Item quantity

2

Quantity label

2 items

Duration

60 min

Empty fallback

No upcoming bookings

Future confirmed bookings will appear here.

Canonical booking field names are shown. The documented booking-prefixed aliases bind to the same values.

Optional filters:

  • data-tiquo-limit="upcoming" or data-tiquo-limit="past"
  • data-tiquo-count="5"
  • data-tiquo-status="confirmed"

The first data-tiquo-booking-item element is the template. Tiquo hides that template and appends rendered copies for each booking.

data-tiquo-upcoming="true" still works for older pages, but new embeds should use data-tiquo-limit="upcoming" instead. When using upcoming or past, use data-tiquo-count for the number of bookings to render.

Booking fields:

FieldDescription
date or bookingDateBooking date formatted as DD/MM/YYYY
day or bookingDayTwo-digit booking day
month or bookingMonthThree-letter booking month, such as JUN
year or bookingYearFour-digit booking year
items or bookingItemsBooking service/item name. Falls back to the service record when no order snapshot exists.
itemQuantity or bookingItemQuantityBooking attendee/item quantity
itemQuantityLabel or bookingItemQuantityLabelQuantity with item or items label
id or bookingIdHuman booking number, such as BKG-1CTYN6
rawIdInternal booking row ID
duration or bookingDurationBooking duration, such as 30 min
startTime or bookingStartTimeBooking start time formatted as HH:mm
endTime or bookingEndTimeBooking end time formatted as HH:mm
statusBooking status
serviceNameBooking service name
serviceCategoryNameBooking service category name, when captured

Cancel and reschedule bookings

Signed-in customers can cancel or move their own bookings with the same rules as the customer portal: the service's cancellation deadline, availability, and advance-booking limits. Build the buttons yourself and call the JavaScript API:

const { bookings } = await window.Tiquo.getUpcomingBookings();
const booking = bookings[0];

if (booking.customerActions.canCancel) {
  await window.Tiquo.cancelBooking(booking.id);
}

if (booking.customerActions.canReschedule) {
  const { options } = await window.Tiquo.getBookingRescheduleOptions(booking.id);
  if (options[0]) {
    await window.Tiquo.rescheduleBooking(booking.id, {
      date: options[0].date,
      startTime: options[0].startTime,
    });
  }
}

window.Tiquo.render();

Use the booking's raw id (the rawId field above), not the human booking number. window.Tiquo.render() reloads any data-tiquo-bookings lists on the page after a change. getBookingRescheduleOptions() also accepts { dateFrom, dateTo } (YYYY-MM-DD) to page through calendar dates. When a change isn't allowed, the promise rejects with an Error whose message you can show, such as "The cancellation deadline for this booking has passed." Imported bookings, such as hotel stays from Mews, have customerActions.cancellationBlockedReason set to managed_by_venue; ask the customer to contact the venue instead.

See Cancel and Reschedule Bookings for the fields, rules, and responses.

Render guest pre-registration flows

For signed-in customers, data-tiquo-guest-flows renders the Guest Flows returned by the Customer API.

<div data-tiquo-guest-flows data-tiquo-limit="10">
  <article data-tiquo-guest-flow-item>
    <h3 data-tiquo-guest-flow="label"></h3>
    <p data-tiquo-guest-flow="inviteMessage"></p>
    <span data-tiquo-guest-flow="availableGuestsLabel"></span>
    <a data-tiquo-guest-flow="hostedUrl" data-tiquo-preserve-text>Register guests</a>
  </article>

  <p data-tiquo-empty>No guest registration flows are available.</p>
</div>

Besides the raw flow fields, each item has maxGuests, maxGuestsLabel ("Up to 3 guests"), availableGuests, availableGuestsLabel ("5 Guest Passes available") and isAvailable. availableGuestsLabel and isAvailable only describe a pass balance when the flow's requiresGuestPass is true; for unlimited flows, show maxGuestsLabel instead.

Advanced sites can access the same data directly:

const { guestFlows } = await window.Tiquo.getGuestFlows();

See the Customer API Guest Flows reference for the raw response fields.

Render Guest Pass invitations

For signed-in customers, data-tiquo-guest-passes renders the live guest invitations returned by getGuestPasses(): ones the customer sent (assigned) and ones they received and accepted (accepted). Each item is one invitation. To show how many Guest Passes or Access Passes the customer has left, use Pass balances instead.

<div data-tiquo-guest-passes data-tiquo-guest-pass-status="accepted" data-tiquo-limit="20">
  <article data-tiquo-guest-pass-item>
    <h3 data-tiquo-guest-pass="name"></h3>
    <p data-tiquo-guest-pass="venueName"></p>
    <time data-tiquo-guest-pass="visitDate"></time>
    <p>Invited by <span data-tiquo-guest-pass="personName"></span></p>
  </article>

  <p data-tiquo-empty>No Guest Pass invitations.</p>
</div>
AttributeDescription
data-tiquo-guest-passesThe list container
data-tiquo-guest-pass-itemTemplate repeated for each invitation
data-tiquo-guest-pass="field"invitationId, name, status, personName, visitDate, venueName or expiresAt
data-tiquo-guest-pass-statusOptional: assigned for sent invitations, accepted for received ones. Omit to show both
data-tiquo-limitOptional: the most invitations to show, default 20

The list clears on logout and refreshes after an invitation is created or accepted. Call window.Tiquo.render() to refresh it at other times. It shows only live invitations, without share tokens or links; see Custom Guest Invitations for tracking sent invitations.

See Rendering and empty states for shared collection behaviour.

En esta página