How to implement Cross & Upselling using Product Groups

Introduction

When selling tours and activities, showing the right product alternatives at the right time helps improve the customer experience and increase conversions. Tiqets provides pre-curated product groups that highlight relevant upgrades or similar products, enabling seamless upselling and comparison.

This guide walks you through how to retrieve product group data, display it meaningfully, and help users choose the right option for them.

Why use Product Groups?

Product groups go beyond basic recommendations—they directly address key challenges in offering multiple product options:

Pre-Curated Upselling – High-converting suggestions without manual curation on your end. We curate and maintain the groups so you don't have to.

Better Customer Experience – Easier to compare similar options and pick the best one.

More Revenue – Helps promote higher-tier or more premium alternatives.

Time-Saving – Eliminates the need to manage upsell logic manually.

By integrating these curated Upsell & Comparison Groups, API partners can automatically surface relevant options, improve decision-making, grow your basket value and conversion rate with little effort.

User Flow Overview

Before diving into technical implementation, it helps to understand the end-user flow. Below is a typical journey for how a customer might interact with product groups on your site. It is of course only one of many possible user flows you can implement using groups on your website.:

  1. Customer views a product page – They land on a standard product (e.g. "London Eye: Entry Ticket").

  2. Related product options are shown for up-selling – Displayed via a curated list of alternatives or upgrades (e.g. skip-the-line, champagne add-on).

  3. Availability calendar shows which days are bookable – Based on all products in the group.

Example of up-selling layout
  1. User selects their preferred option – A product is selected based on features, availability, or price.

  2. The regular checkout flow continues for selected product – Final availability is confirmed, and the user books their experience.

Illustrative example of checkout flow

Now that you understand how the product groups guide the user journey on the frontend, let's look at how to implement this technically.

Step 1: Get product group information

When fetching a product using:

The response includes a product_groups array if the product is part of one or more groups:

If the product does not belong to any group, the array will be empty.

When present, the product_groups array lists other products that are closely related and designed to be shown together—either as upsell alternatives or for comparison. These groups are curated by Tiqets to reduce partner effort and ensure a high-quality user experience.

Step 2: Get aggregated availability

To compare availability across products in a group, use the /products/calendar endpoint:

Query Parameters:

  • product_ids: A comma-separated list of product IDs to retrieve availability for. These should correspond to the products returned in the product_groups array.

  • start_date: The beginning of the date range (format: YYYY-MM-DD).

  • end_date: The end of the date range (format: YYYY-MM-DD).

Use this aggregated view to build a unified calendar across product options.

Step 3: Guide the User to Select a Product

Once the user sees the available options and selects a product that matches their preferences (price, time, language, etc.), your frontend can proceed with the usual flow.

  • Make a dedicated availability request for that specific product:

  • Show real-time availability (slots, times, etc.)

  • Allow the user to proceed to booking using the selected variant

This step ensures the data is fresh before starting the checkout process.

Best Practices for Cross & Upselling

A successful upsell or comparison layout should group related products in a way that feels intuitive to the user and supports their decision-making process. Here are a few best practices:

  • Display grouped products together in a clear and consistent format.

  • Sort the options either by:

    • Price – to guide users from standard to premium options (ideal for upselling).

    • Availability – especially useful if the goal is to help users find a date that works best (comparison).

  • Ensure each product card includes:

    • A clear title that quickly communicates the difference (e.g. "Fast Track + Champagne")

    • A clear list of What's included as part of the product

    • When relevant:

      • ⏱️ Duration

      • 👥 Group size

      • 🗣️ Language or guide information

  • To maximize engagement and clarity:

    • Allow users to select their preferred product option via cards, a dropdown, or toggle buttons.

    • Avoid overwhelming users: only surface essential differentiators between options. If needed, you can include a "Learn more" expansion to show additional details without cluttering the main interface.

Summary

  • Retrieve product groups directly via /products/{product_id}

  • Use /products/calendar to show availability across the group

  • Guide users to select a product, then fetch real-time availability for checkout

  • Sort and present grouped products to help users choose the best option

  • Use curated groups to save time and increase revenue

This approach is easy to integrate and adds immediate value to the customer experience.

Edge cases & FAQ

Q: How to handle Product temporarily unavailable?

Q: What is a product appears in multiple groups?

  • This is expected. Tiqets curates groups for different use cases (comparison, upselling, etc). Choose the most relevant group for your integration.

Last updated

Was this helpful?