Trip Module

The trip module is used to combine multiple products into a single thing which can be used for quotes or bookings. The packages are essentially a FIT collection of services which can then be sold into a quote, or onto a booking. This can also be used for scheduled departures.

The structure is that there is a trip/package header, and then a list of components which are then included as part of the trip/package. There is also a departure table which stores the dates and sell prices for the trip and the modules.

The packages do not take any supplier allocation from the blocks, they are simply a place holder with the suggested sell prices.

The trip module has the concept of trip combinations. These are figured out from the module sharing of the services. There will probably need to be some processing that's done and a cached lookup table to link the trips as it can be computationally expensive to figure this out on demand.

There should be the concept of linked trips. This is essentially a higher level trip which links to other trips. So you would use the high level trip, and it would automatically sell in the other trips. The capacity here would be based on the overall capacity of all the trips.

More specifically the following features should have the following features:

  • There should be alerts on the trip as well as the products.
  • Trips should have fixed price for the inclusive products.
  • Trip inclusive pricing should have the commission associated with it.
  • Trips should be a header record with a set of departure dates. The departure dates should have a status and pricing attached to it.
  • Trips are made up of products. The products can be inclusive (mandatory) or optional.
  • The products are known as components and the components need to track the number of places taken (confirmed and unconfirmed).
  • Trips are associated with brochures.
  • Trips should be able to be associated together.
  • Trips should be able to be linked together so that one trip being sold in sells in another.
  • Trips should be linked together as suggestions for related add-on tours.
  • Trips should be linked together as suggestions as alternatives if this tour is not available.
  • Trips should be linked to products for suggested add-ons. This will be categorised to help the selling staff.
  • You should be able to copy a trip.
  • Trips should be associated with locations.
  • Store content management system content about trips including images.
  • Assign the trip to a user/user group.
  • Assign a trip to a contact. This could be used for communication.
  • Trips can be assigned to brochures.
  • Trips should have the latest day to join the trip, and the earliest day to leave the trip. This would allow for cross-over in quotes/bookings.
  • Should have maximum group size.
  • Should have the language of the tour that it's presented in.
  • Should have a field for passport required.
  • Should have a field for insurance required.
  • There should be a field for suggested kitty, and suggested pax budget and which currencies.
  • You should be able to configure trips with upgrades.
  • You should be able to specify the minimum passengers (to run the trip), and the maximum passengers which is the package capacity. The capacity should be the minimum of the maximum passenger, or the service capacity.
  • There should be a days to departure field which is used to trigger events (such as close a trip when it's 10 days from departure).

There should be a costing calculator to try and help with the pricing of the trip. There should be rounding tools, extra cost (free places, tour leader costs) which is taken into account when suggesting a sell price.

Trips should automatically derive the starting location and finishing location. These can be overridden if required.

Capacity should be controlled by the minimum of the number of passenger on products, or the minimum of the capacity of the trip.

The tours should be able to be searched based on location, type, and price amongst other things.

Think about having an airline costing model for the pricing where the price of a departure is dependent on the days out when you book it. This would add a days to departure dimension to the pricing. You would then need to store minimum price and maximum price for the trip departure per currency.