Live demo

Client success story

Tourism Optimizer: tour booking operations organized for faster day-to-day execution

A tour operator in Europe that sells to travellers and to partners put a control layer over its tour bookings, so departures, reservation states and channels are easier to manage every day.

  • Tour operations
  • Europe
  • B2C + B2B
  • Launched in 2024

The project

The Tourism Optimizer success story in one picture

Tourism Optimizer runs tour operations in Europe and sells through two doors: retail travellers who book directly, and partners who book on behalf of their own clients. Both kinds of request land on the same departures.

The project was a tour booking control layer: one place that keeps the schedule, the state of every reservation and the channel each request came from under clear operational control, instead of leaving them to manual oversight.

It was built with the same booking core described on the Tour operators page, around the Tours & activities that hold departures and availability.

Retail travellersB2C
Partner agentsB2B

Tour booking control layer

  1. ScheduleDepartures and availability
  2. Booking statesA clear status on each reservation
  3. ChannelsRetail and partner work kept apart
Tour departures
How the three parts of the control layer sit between the two sales channels and the tours themselves.
Industry
Tour operations
Region
Europe
Model
B2C + B2B
Scope
Tour booking control layer
Launch
2024

Part 1 · Scheduling

Departures and availability in one schedule view

Coordinating departures by hand meant someone always had to check what was still open. A schedule view puts every departure and its availability on one screen.

01Challenge

Schedule complexity

Coordinating departures and availability required too much manual oversight.

Result

Clearer scheduling

Tour planning starts from one view of departures, so the team sees what is open before it promises a place.

Departure week
TourMonTueWedThuFriSatSun
City walking tourOpenOpenFew places leftOpenOpenOpenFull
Day excursionNo departureOpenOpenNo departureFew places leftOpenFull
Multi-day tourOpenNo departureNo departureNo departureOpenNo departureNo departure
  • Open
  • Few places left
  • Full
  • No departure

Illustrative week. Tour names and availability are examples, not Tourism Optimizer data.

Part 2 · Booking states

Every reservation answers two questions: is it confirmed, and is it paid

Confusion about where a reservation stood was the second challenge. Reading the booking status and the payment state together tells the team exactly what to do next. Pick a cell to see it.

Booking status Payment
Unpaid
Paid
Pending
Confirmed
Cancelled

Illustration of the booking and payment states PHPTRAVELS records on each reservation.

Awaiting payment

The request is in, but nothing is settled yet.

Next stepFollow up with the traveller or partner before the place is released.

Paid, to confirm

Payment has arrived for a departure that is not confirmed yet.

Next stepCheck the departure and confirm the place.

Payment due

The place is held on a confirmed departure, with payment outstanding.

Next stepCollect payment before the departure date.

Ready to run

Confirmed and paid. Nothing is left to chase.

Next stepNo action. The reservation is settled.

Closed

Cancelled before any payment was taken.

Next stepMake sure the place is back in availability.

Refund to review

Cancelled after payment was received.

Next stepReview the refund under the operator's own terms.

02Challenge

Booking state confusion

Teams needed clearer status tracking for each reservation.

Result

Improved booking states

Reservation tracking follows defined states, so anyone on the team can tell what is settled and what still needs work.

Part 3 · Channels

Retail and partner requests in their own lanes

Tourism Optimizer sells B2C and B2B. Mixing the two in one queue made both harder to handle, so each channel now keeps its own lane while sharing the same departures.

Retail lane · B2C

  1. Traveller books on the website
  2. Reservation tagged as retail
  3. Handled by the retail desk

Partner lane · B2B

  1. Partner agent books for a client
  2. Reservation tagged as partner
  3. Handled by the partner desk

One departure schedule

Both lanes draw on the same departures and availability, so the whole team works from one schedule.

03Challenge

Mixed channel handling

Retail and partner requests needed better operational separation.

Result

Smoother channel handling

Operational coordination is easier because retail and partner work no longer compete in one undivided queue.

The partner side works like a B2B wholesalers, and the B2B booking engine page shows how agent bookings are handled.

In their words

What the Tourism Optimizer team says

The refreshed setup made our tour operations easier to manage and quicker to execute.

Tourism Optimizer TeamOperations team
  • 01Tour planningWasSchedule complexityNowClearer scheduling
  • 02Reservation trackingWasBooking state confusionNowImproved booking states
  • 03Operational coordinationWasMixed channel handlingNowSmoother channel handling

Results as reported by Tourism Optimizer. No figures were published for this project.

Under the hood

A self-hosted stack the operator controls

The project runs on PHP and MySQL with a REST API. PHPTRAVELS is self-hosted and ships with its source code under a commercial licence, so a tour operator can keep adjusting its own control layer after launch.

  • PHPApplication
  • MySQLDatabase
  • REST APIIntegrations
{
  "product": "tour",
  "channel": "b2b",
  "departure": { "availability": "open" },
  "booking_status": "confirmed",
  "payment_status": "paid"
}
One reservation as the control layer sees it. Illustrative record that combines the three parts: schedule, booking state and channel.

Streamline your tour operations

Bring clarity to scheduling, booking and fulfilment workflows.

Related solutions

Questions

Tourism Optimizer project FAQ

Short answers about the project, the operator's two channels and what a similar setup involves.

Talk to sales

It describes how Tourism Optimizer, a tour operator in Europe, added a tour booking control layer on PHPTRAVELS to organize its schedule, the status of each reservation and the handling of retail and partner requests.

It is the operational layer between the sales channels and the tours: the departure schedule with its availability, a clear booking state on every reservation, and a separation between retail and partner work.

The operator sells tours directly to travellers (B2C) and through partners who book for their own clients (B2B). Both channels draw on the same departures.

Clearer scheduling, improved booking states and smoother channel handling. The team described these results in its own words; no figures were published for the project.

PHP, MySQL and a REST API. It launched in 2024. PHPTRAVELS is self-hosted and includes the source code under a commercial licence.

Yes. Book a demo to walk through your departures, booking states and channels with the team, then compare the one-time plans on the pricing page: Startup, Agency and Enterprise.