Configure tickets
After a draft event has its dates and location, set up the ticket specifications people will buy. This workflow walks through adding two SKUs, fixing a price you weren't happy with, and activating them so they go on sale.
All steps require a JWT — get one from the homepage first.
1. Add a member ticket
price is in øre / cents — 25000 = 250 DKK. Activate at create time (isActive: true) only if you're confident in the price; otherwise keep it inactive so you can edit later.
mutation addMemberTicket($input: AddTicketSpecificationInput!) {
addTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
isActive
}
}
}
Save the returned ticketSpecification.id — you'll need it for step 2 if you decide to edit the price.
2. Add a guest ticket
A second SKU at a higher price for non-members.
mutation addGuestTicket($input: AddTicketSpecificationInput!) {
addTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
}
}
}
3. (Optional) Adjust the price before activation
editTicketSpecification is allowed only while the spec is inactive. Pass null for any field you want to leave unchanged.
mutation lowerMemberPrice($input: EditTicketSpecificationInput!) {
editTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
}
}
}
4. Activate
Flip isActive: true to make the spec purchasable. Run this once per spec.
mutation activateSpec($input: EditTicketSpecificationActiveStateInput!) {
editTicketSpecificationActiveState(input: $input) {
ticketSpecification {
id
isActive
}
}
}
Once active, the only field you can change is
isActiveitself (toggle back tofalseto allow editing). Sold tickets prevent the spec from being removed entirely.
5. Verify
Pull every spec back on the event to double-check.
query verifyTicketSpecs($id: UUID!) {
events(where: { id: { eq: $id } }, first: 1) {
nodes {
id
name
ticketSpecifications {
id
name
price
includeVat
numberOfTicketsForSale
maximumNumberOfTicketsPerUser
numberOfTicketsSold
isActive
}
}
}
}
Next: assign inspectors — see Assign inspectors.