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).