Inventory Types
When you fetch inventory for an occurrence, each item contains an inventoryVariant with a _type field that determines what kind of ticket it represents. This guide explains the two types and how to handle them.
The Two Types
Discriminator Pattern
Both types share a common base (id, _type, name, attributes) and the _type field tells you which one you’re dealing with. Only AssignedSeat adds extra fields.
Key rule: switch on _type to determine your rendering and quantity logic. Treat unknown _type values gracefully — new types may be added in the future.
AssignedSeat
Represents a specific seat in a venue. Has three additional fields:
Quantity is always 1 — each seat is a separate inventory item. To let a customer buy multiple seats, add multiple items to the cart.
GeneralAdmission
Represents entry to a general admission area. No additional fields beyond the base.
Quantity can be 1 to quantityAvailable — a single inventory item covers multiple people. To buy 3 GA tickets, set quantity: 3 on one cart item.
On the order, you’ll receive one ticket per person (3 tickets in this example), each with its own barcode.
Inventory Attributes
Both types can carry attributes[] — tags that describe characteristics of the inventory. Use these for display purposes (badges, filters, icons).
Each attribute has:
Attribute Categories
Example with attributes:
Price Options
Each inventory item has one or more priceOptions[] — the available price categories for that item (e.g., Adult, Child, Senior).
When listPrice is present, the customer is getting a deal:
Display: ~~125.00** — Early Bird
When there’s no discount, listPrice and promotion are null — just show sellPrice.
Stable Variant IDs
Inventory variant id values are stable across all occurrences of the same event. The same seat returns the same variant id regardless of which date the customer picks. This is important if you’re building seating charts or caching seat metadata.