Skip to content

Key concepts ​

Once you understand a handful of objects and how they connect, the rest of BagEvent falls into place. This page is the mental model behind everything in the Quick start: what each object is, what it owns, and how they reference one another.

Here is the shape of it at a glance:

ObjectWhat it isBelongs to
OrganizationYour account's workspace — team, billing, and events live inside it.—
EventA single happening people register for. Can be a main event or a language version of one.Organization
TicketA type of admission or registration slot, with a price and inventory.Event
Registration formThe questions each registrant answers.Event
OrderOne checkout transaction: who paid, for what, at what total.Event
AttendeeOne person holding one ticket, with a barcode / e-ticket.Order

Events ​

An event is the central object. It carries the title, summary, dates, time zone, location, currency, and the language its public page and emails are shown in.

Every event has a status:

  • Draft — the default when you create an event. Nothing is public; you can freely edit tickets, the form, and content.
  • Published — the public event page is live at its URL. To publish you need at least one active ticket type and a registration form with at least one field.

Two settings shape how registration behaves and are worth knowing early:

  • Registration mode — TICKET (attendees pick tickets first) or FORM (the ticket step is skipped and a default ticket is locked automatically behind the scenes). Either way, tickets exist under the hood.
  • Attendee information — BUYER_ONLY (one form for the whole order) or PER_ATTENDEE (the buyer plus each participant fills in the form). This is what decides whether an order can meaningfully hold more than one distinct person.

TIP

An event is referenced in URLs and the API by its opaque event key, not its numeric id — that is the string you see in public links.

Main event vs. language version ​

An event is either a main event (also called the parent) or a language version of a main event. A language version is a real child event whose parent is the main event; it exists so the same happening can be presented in another language. It is not a separate event you manage independently — most of its commerce is read-only and driven by the main event.

This split is important enough to have its own guide: Multi-language events.

Tickets & inventory ​

A ticket is a type of admission — General, Early Bird, VIP, Student, a free RSVP, and so on. Each ticket type carries:

  • a price and currency (free tickets are price 0),
  • an inventory — the total quantity available,
  • optional sale window, min/max per order, an unlock code for hidden tickets, whether it requires audit (organizer approval), and the identity it confers (attendee, VIP, speaker, exhibitor, staff, and so on).

Inventory is tracked with three numbers that always add up:

NumberMeaning
Total quantityThe cap you set (blank means unlimited).
SoldTickets in confirmed/paid orders.
AvailableWhat is still on sale right now.

Between "available" and "sold" sits a short-lived lock: when someone starts checkout, the tickets they picked are reserved so two buyers can't claim the last seat at once. If they don't finish, the lock expires (governed by the event's order-lock TTL) and the inventory returns to "available."

WARNING

Once any ticket has sold, the event's currency is locked and can no longer be changed. Set your currency before you start selling.

See Tickets & inventory for the full field-by-field walkthrough.

Orders vs. attendees ​

This is the distinction people most often trip over.

  • An order is one checkout transaction. It records the buyer (name and email), the currency and total, any discount applied, its order status and payment status, and the line items purchased.
  • An attendee is one person occupying one ticket. Each attendee has a barcode — the thing that becomes an e-ticket and gets scanned at check-in.

One order can contain several attendees. If someone buys four tickets, that is one order with four attendees. Refunds, payment, and the buyer's receipt live at the order level; the e-ticket, the form answers, approval, and check-in status live at the attendee level.

Whether each attendee is a distinct named person depends on the event's attendee information setting:

  • Buyer only — the order collects one set of answers; the buyer is effectively the registrant.
  • Per attendee — the buyer identifies each participant, and every attendee carries their own name, email, and form answers.
Order  (buyer: [email protected], total, pay status)
├── Attendee 1  — barcode, name, answers, check-in status
├── Attendee 2  — barcode, name, answers, check-in status
└── Attendee 3  — barcode, name, answers, check-in status

Registration vs. purchase ​

BagEvent treats registration and purchase as the same flow with different economics, not two separate systems.

  • A free event still produces orders and attendees — the order total is simply 0 and no payment step runs. This is "registration."
  • A paid event runs the identical flow and adds a payment step; the order isn't confirmed until payment succeeds. This is "purchase."

Because the flow is one and the same, everything downstream — the registration form, e-tickets, approvals, check-in, exports — works the same whether your tickets are free or paid. The only extra requirement for paid tickets is a connected payment provider.

Language versions ​

A language version lets the same event appear in another language. It is a child of the main event, so it deliberately does not own its own tickets, inventory, schedule, or dates — those are managed on the main event and shown through the version, translated. What a version does own is its translated text: titles, summaries, page content, and translated ticket and form labels.

The short version:

  • Shared from the main event: tickets, inventory, prices, sale windows, schedule, dates.
  • Translated per version: title, summary, page content, and the display text of tickets and form fields.

Full mechanics, the supported languages, and step-by-step instructions are in Multi-language events.

BagEvent Help Center