Strukturierte Eventdaten
Die Detailseite einer Veranstaltung veröffentlicht einmalig ein JSON-LD-Objekt nach schema.org/Event. Dies gilt auch bei einer CMS-Erlebniswelt für die Eventseite. Listings, Kundenkonto und Warenkorb erzeugen keine zusätzlichen Event-Objekte.
Automatische Angaben
| Eigenschaft | Quelle |
|---|---|
@context, @type |
https://schema.org, Event |
@id, url, mainEntityOfPage |
Absolute SEO-URL des Events im aktuellen Verkaufskanal |
identifier |
Event-ID |
name, description, keywords |
Übersetzte Eventtexte; Beschreibung ohne HTML, ersatzweise Teaser |
startDate, endDate, duration |
Eventzeiten mit Offset der eingestellten Event-Zeitzone; Dauer nur bei positivem Zeitabstand |
image |
Eventbild, soweit vorhanden |
location |
Veranstaltungsort, Postadresse, Land/Region und vorhandene Koordinaten |
eventStatus, eventAttendanceMode |
Ausgangswerte EventScheduled, OfflineEventAttendanceMode |
offers |
Aktuell öffentliche Tickettypen mit Preis, Währung, Verfügbarkeit und Verkaufsfristen |
maximumAttendeeCapacity, remainingAttendeeCapacity |
Summe der Kontingente bzw. freien Plätze der aktuell öffentlichen Tickettypen |
isAccessibleForFree |
Nur bei vorhandenen Preisen: wahr, wenn alle öffentlichen Tickettypen kostenlos sind |
Preise verwenden dieselbe Preisermittlung wie der Verkauf: Währung, Umrechnungsfaktor und Steueranzeige des Kundenkontexts. Ausverkaufte Angebote werden als SoldOut ausgegeben oder entsprechend der Anzeigeoption ausgeblendet. Interne Tickettypen und Kategorien außerhalb ihres Anzeigezeitraums werden nicht veröffentlicht. Fehlende optionale Daten werden ausgelassen. Es werden keine Kundendaten, Ticketinhaber, E-Mail-Adressen, Handynummern oder Ticket-Tokens übernommen.
Weitere Eigenschaften pflegen
Unter Event → SEO → Strukturierte Eventdaten (schema.org) steht Zusätzliche Event-Eigenschaften (JSON) zur Verfügung. Das übersetzbare Feld schemaOrg akzeptiert ein JSON-Objekt mit beliebigen Eigenschaften des Event-Vokabulars und seiner Oberklasse Thing, einschließlich verschachtelter Objekte und Listen. Es gibt keine auf einzelne Eigenschaften beschränkte Positivliste.
Beispiel:
{
"@type": "MusicEvent",
"organizer": {
"@type": "Organization",
"name": "Stadtpark Veranstaltungen",
"url": "https://example.com"
},
"performer": [
{ "@type": "MusicGroup", "name": "Park Band" }
],
"doorTime": "2027-07-17T17:30:00+02:00",
"inLanguage": "de",
"typicalAgeRange": "16-",
"eventStatus": "https://schema.org/EventScheduled"
}
Damit sind auch about, actor, aggregateRating, attendee, audience, composer, contributor, director, funder, funding, hasParticipationOffer, hasSponsorshipOffer, maximumPhysicalAttendeeCapacity, maximumVirtualAttendeeCapacity, previousStartDate, recordedIn, review, sponsor, subEvent, superEvent, translator, workFeatured und workPerformed sowie geerbte Eigenschaften wie alternateName, sameAs oder potentialAction pflegbar. Solche Angaben werden ausschließlich aus diesem ausdrücklich veröffentlichten Metadatenfeld übernommen, nicht aus privaten Ticketdaten.
Eigene Angaben ersetzen die jeweilige automatische Eigenschaft vollständig. So kann location ein VirtualLocation-Objekt oder eine Liste physischer und virtueller Orte sein. null entfernt eine optionale automatische Eigenschaft. Der schema.org-Kontext bleibt fest vorgegeben. Ein eventSchedule ersetzt in der Ausgabe startDate, endDate und duration; die Zeitangaben stehen dann im Schedule-Objekt. Das erzeugt keine wiederkehrenden Verkaufsveranstaltungen oder Tickets.
Eine leere Eingabe entfernt die Ergänzungen dieser Sprache; Shopwares Sprachfallback bleibt wirksam. Ungültiges JSON oder ein anderer Wurzeltyp als ein Objekt wird im Editor angezeigt und beim Speichern durch die DAL-Typprüfung abgewiesen. Die fachliche Eignung der schema.org-Eigenschaften liegt beim Autor; hierfür den Schema Markup Validator verwenden. Bei Google gelten zusätzlich dessen Event-Richtlinien.
eventStatus ist eine Suchmaschinenangabe für z. B. Absage oder Verschiebung. Sie ersetzt keinen Aktiv-Schalter und verändert weder Verkauf noch Scannerfreigabe. Auch alle anderen Metadaten verändern keine Kontingente, Preise oder Buchungsregeln.
Schema und Deployment
Die bestehende Tabelle moorl_tv_ticket_sale_translation erhält die nullable JSON-Spalte schema_org. Sie wird aus TicketSaleTranslationDefinition mit dem externen Schemawerkzeug erzeugt; keine zusätzliche PHP-Migration. Anschließend Cache leeren und Administration bauen. Das öffentliche Schema und die REST-API stellen das Feld als schemaOrg bereit.