Seat Preevue developer docs

Migrating from initSeatPreevue

The older Seat Preevue scripts are called with initSeatPreevue(container, venueKey, seatId) and load images from our old address, unsigned. Seat Preevue v1 signs every image, chooses imagery per layout, and is set up per venue on our side. There are two ways to move, and you can do them one after the other.

Step 1: the shim (one URL, no code change)

Swap your script URL for https://assets.seatpreevue.com/sdk/v1/seatpreevue-legacy-shim.js and register your domain: the shim. Your existing calls keep working; each view comes from v1 when the venue is there, and the old way when it isn't yet, so nothing gets worse.

Step 2: the core (or your platform's script)

When you next touch the code, replace the calls with the core, or with your ticketing platform's script if there is one (Spektrix, TNEW, Criterion, Viadukt).

Before After
<script src="…/seatpreevue.js"> <script src="https://assets.seatpreevue.com/sdk/v1/seatpreevue-core.js" crossorigin="anonymous">
A venue key per auditorium, in your code SeatPreevue.init({ context: { venueRef, … } }): what your page knows; we map it to the venue and its layout
initSeatPreevue(container, venueKey, seatId) SeatPreevue.show(container, { tokens: { section, row, seat } }), or our seat key
A seat id built in your code (lower case, spaces to hyphens…) The raw tokens: each venue's own rules build the key
baseUrl and SeatPreevue.baseUrlCache Gone: the session carries the signed imagery
Your own Pannellum tag Not needed: the core loads its viewer, with Subresource Integrity

See Quickstart: your own button.

What changes for your visitors

Nothing they'd notice, except that a seat without a view now says so ("No view for this seat yet.") instead of showing nothing or an error, and that the views keep working through layout changes we set up on our side.

Content Security Policy

Add our two hosts (CSP); remove the old host only once no view falls back to it (with the core, none does).