Appearance
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:
| Object | What it is | Belongs to |
|---|---|---|
| Organization | Your account's workspace — team, billing, and events live inside it. | — |
| Event | A single happening people register for. Can be a main event or a language version of one. | Organization |
| Ticket | A type of admission or registration slot, with a price and inventory. | Event |
| Registration form | The questions each registrant answers. | Event |
| Order | One checkout transaction: who paid, for what, at what total. | Event |
| Attendee | One 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) orFORM(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) orPER_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:
| Number | Meaning |
|---|---|
| Total quantity | The cap you set (blank means unlimited). |
| Sold | Tickets in confirmed/paid orders. |
| Available | What 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 statusRegistration 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
0and 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.
Related
- Quick start — go from zero to a live event.
- Tickets & inventory — configure ticket types and stock.
- Registration forms — decide what to collect.
- Multi-language events — reach a global audience.
- FAQ