wiki:XTS2Baskets

Baskets are a generic facility that manage the grouping of items of a given value. Items with positive value are generally goods that are being supplied to the customer, such as tickets or food. Items with negative value are generally payments by the customer.

Baskets can be closed when they have a value of 0, indicating that a sale is complete.

The point of a basket is usually to have a value of 0, indicating that goods in the basket have been exchanged for money.

Baskets are used to represent ephemeral sales, reservations, bookings and tabs all in one go.

Here's a guide to how concrete concepts are mapped onto generic baskets in XTS2.

Ephemeral sales

An ephemeral sale is a non-persistent, unnamed basket that may contain tickets and food at the same time. The sale is in progress while the basket is open. The sale has been completed once the basket is closed.

Online bookings

Online bookings are named closed baskets that contain uncollected tickets, a booking fee and an online payment.

Reservations

Reservations are named open baskets that contain only tickets but (usually) no payment.

Tabs

Tabs are named open baskets that contain only food and payments.

Reservations vs Tabs

Reservations and tabs are virtually equivalent, except that it doesn't make sense to the theatre to allow tickets to be collected before they've been sold, and tickets are only sold when the basket is closed. Essentially it is *possible* for a customer to put a ticket on their tab, collect it, see the show and only buy the ticket afterwards. However it's not recommended that the theatre actually let anyone do this, even though XTS can.