Компаниям по продаже авиабилетов

Письма, которые клиенты получают от вас, могут быть оформлены специальным образом в списке входящих сообщений. Для этого необходимо добавить в письмо информацию о бронировании или билете с помощью разметки Schema.org.

  1. Как разметить письма
  2. Примеры разметки
  3. Свойства типа FlightReservation, которые поддерживает Яндекс.Почта

Как разметить письма

Чтобы разметить письма:
  1. Учтите требования Яндекса к массовым рассылкам.

  2. Используйте тип FlightReservation стандарта Schema.org, который поддерживает Яндекс.Почта, и один из форматов описания данных: Microdata и JSON-LD.

  3. Проверьте правильность разметки с помощью валидатора.

Если вы выполнили все действия, но разметка не работает, напишите в службу поддержки (форма обратной связи внизу страницы, в списке проблем выберите «письмо отображается некорректно»).

Примеры разметки

Вы можете использовать проверенные примеры для разметки ваших писем:

  • Примеры в формате JSON-LD следует вставлять в элемент head в HTML-коде письма.

  • Микроразметку добавьте как дополнительные атрибуты к элементам в HTML-коде письма.

  1. Подтверждение покупки билета
  2. Посадочный талон
  3. Изменение расписания
  4. Отмена рейса
  5. Рейс с несколькими сегментами

Подтверждение покупки билета

Письмо с подтверждением покупки билета обычно содержит маршрутную квитанцию.

JSON-LD
<script type="application/ld+json">
{  
  "@context": "http://schema.org",  
  "@type": "FlightReservation",  
  "reservationId": "RXJ34P",  
  "reservationStatus": "http://schema.org/Confirmed",  
  "reservationFor": 
  {    
    "@type": "Flight",    
    "flightNumber": "110",    
    "provider":     
    {            
     "@type": "Airline",            
     "name": "Aeroflot",            
     "iataCode": "SU"        
    },       
    "departureAirport": 
    {      
      "@type": "Airport",      
      "name": "Domodedovo",      
      "iataCode": "DME"    
    },    
    "departureTime": "2017-03-04T20:15:00-08:00",    
    "arrivalAirport": 
    {      
      "@type": "Airport",      
      "name": "Simferopol",      
      "iataCode": "SIP"    
    },    
    "arrivalTime": "2017-03-05T06:30:00-05:00"  
  }
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/FlightReservation">  
  <meta itemprop="reservationId" content="RXJ34P"/>  
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">    
    <meta itemprop="flightNumber" content="110"/>    
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">      
      <meta itemprop="name" content="Aeroflot"/>      
      <meta itemprop="iataCode" content="SU"/>    
    </div>    
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Domodedovo"/>      
      <meta itemprop="iataCode" content="DME"/>    
    </div>    
    <meta itemprop="departureTime" content="2017-03-04T20:15:00-08:00"/>    
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Simferopol"/>      
      <meta itemprop="iataCode" content="SIP"/>    
    </div>    
    <meta itemprop="arrivalTime" content="2017-03-05T06:30:00-05:00"/>  
  </div>
</div>

Посадочный талон

Подтверждение покупки билета можно дополнить информацией о посадочном талоне.

JSON-LD
<script type="application/ld+json">
{    
  "@context": "http://schema.org",    
  "@type": "FlightReservation",    
  "reservationId": "RXJ34P",    
  "reservationStatus": "http://schema.org/Confirmed", 
  "reservationFor":   
  {        
    "@type": "Flight",        
    "flightNumber": "110",        
    "provider":     
    {            
      "@type": "Airline",            
      "name": "Aeroflot",            
      "iataCode": "SU"        
    },            
    "departureAirport":     
    {            
      "@type": "Airport",            
      "name": "Domodedovo",            
      "iataCode": "DME"        
    },        
    "departureTime": "2017-03-04T20:15:00-08:00",        
    "arrivalAirport":     
    {            
      "@type": "Airport",            
      "name": "Simferopol",            
      "iataCode": "SIP"        
    },        
    "arrivalTime": "2017-03-05T06:30:00-05:00"    
  }, 
  "reservedTicket": 
  {    
    "@type": "Ticket",    
    "ticketNumber": "ABC1234",    
    "ticketToken": "qrCode:AB34",    
    "ticketedSeat": 
    {      
      "@type": "Seat",      
      "seatRow": "A",      
      "seatNumber": "9",      
      "seatSection": "101"   
    }  
  }   
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/FlightReservation">
  <meta itemprop="reservationId" content="RXJ34P"/>
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">
    <meta itemprop="flightNumber" content="110"/>
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">
      <meta itemprop="name" content="Aeroflot"/>
      <meta itemprop="iataCode" content="SU"/>
    </div>
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">
      <meta itemprop="name" content="Domodedovo"/>
      <meta itemprop="iataCode" content="DME"/>
    </div>
    <meta itemprop="departureTime" content="2017-03-04T20:15:00-08:00"/>
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">
      <meta itemprop="name" content="Simferopol"/>
      <meta itemprop="iataCode" content="SIP"/>
    </div>
    <meta itemprop="arrivalTime" content="2017-03-05T06:30:00-05:00"/>
  </div>
  <div itemprop="reservedTicket" itemscope itemtype="http://schema.org/Ticket">
    <span itemprop="ticketNumber">ABC1234</span>
    <meta itemprop="ticketToken" content="qrCode:AB34">  
    <div itemprop="ticketedSeat"  itemscope itemtype="http://schema.org/Seat">
      <span itemprop="seatRow">A</span>
      <span ipemprop="seatNumber">9</span>
    </div>
  </div>
</div>

Изменение расписания

В письме с обновлением информации о рейсе можно разметить новые данные и время их последней проверки.

JSON-LD
<script type="application/ld+json">
{  
  "@context": "http://schema.org",  
  "@type": "FlightReservation",  
  "reservationId": "RXJ34P",  
  "reservationStatus": "http://schema.org/Confirmed",
  "reservationFor": 
  {    
    "@type": "Flight",    
    "flightNumber": "110",
    "provider":     
    {            
      "@type": "Airline",            
      "name": "Aeroflot",            
      "iataCode": "SU"        
    },        
    "departureAirport": 
    {      
      "@type": "Airport",      
      "name": "Domodedovo",      
      "iataCode": "DME"    
    },    
    "departureTime": "2017-03-04T20:15:00-08:00",    
    "arrivalAirport": 
    {      
      "@type": "Airport",      
      "name": "Simferopol",      
      "iataCode": "SIP"    
    },    
    "arrivalTime": "2017-03-05T06:30:00-05:00"  
  },  
  "modifiedTime": "2013-05-01T08:30:00-08:00"
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/FlightReservation">  
  <meta itemprop="reservationId" content="RXJ34P"/>  
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">    
    <meta itemprop="flightNumber" content="110"/>    
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">      
      <meta itemprop="name" content="Aeroflot"/>      
      <meta itemprop="iataCode" content="SU"/>    
    </div>    
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Domodedovo"/>      
      <meta itemprop="iataCode" content="DME"/>    
    </div>    
    <meta itemprop="departureTime" content="2017-03-04T20:15:00-08:00"/>    
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Simferopol"/>      
      <meta itemprop="iataCode" content="SIP"/>    
    </div>    
    <meta itemprop="arrivalTime" content="2017-03-05T06:30:00-05:00"/>  
  </div>  
  <meta itemprop="modifiedTime" content="2013-05-01T08:30:00-08:00"/>
</div>

Отмена рейса

Чтобы уведомить клиента об отмене рейса, укажите в разметке письма свойство reservationStatus со значением http://schema.org/Cancelled.

JSON-LD
<script type="application/ld+json">
{  
  "@context": "http://schema.org",  
  "@type": "FlightReservation",  
  "reservationId": "RXJ34P",  
  "reservationStatus": "http://schema.org/Cancelled", 
  "reservationFor": 
  {    
    "@type": "Flight",    
    "flightNumber": "110",    
    "provider":     
    {            
      "@type": "Airline",            
      "name": "Aeroflot",            
      "iataCode": "SU"        
    },        
    "departureAirport": 
    {      
      "@type": "Airport",      
      "name": "Domodedovo",      
      "iataCode": "DME"    
    },    
    "departureTime": "2017-03-04T20:15:00-08:00",    
    "arrivalAirport": 
    {      
      "@type": "Airport",      
      "name": "Simferopol",      
      "iataCode": "SIP"    
    },    
    "arrivalTime": "2017-03-05T06:30:00-05:00"  
  }
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/FlightReservation">  
  <meta itemprop="reservationId" content="RXJ34P"/>  
  <link itemprop="reservationStatus" href="http://schema.org/Cancelled"/>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">    
    <meta itemprop="flightNumber" content="110"/>    
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">      
      <meta itemprop="name" content="Aeroflot"/>      
      <meta itemprop="iataCode" content="SU"/>    
    </div>    
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Domodedovo"/>      
      <meta itemprop="iataCode" content="DME"/>    
    </div>    
    <meta itemprop="departureTime" content="2017-03-04T20:15:00-08:00"/>    
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Simferopol"/>      
      <meta itemprop="iataCode" content="SIP"/>    
    </div>    
    <meta itemprop="arrivalTime" content="2017-03-05T06:30:00-05:00"/>  
  </div>
</div>

Рейс с несколькими сегментами

Каждый сегмент рейса нужно описывать в отдельном элементе типа FlightReservation.

JSON-LD
<script type="application/ld+json">
[  
  {    
    "@context": "http://schema.org",    
    "@type": "FlightReservation",    
    "reservationId": "RXJ34P",    
    "reservationStatus": "http://schema.org/Confirmed", 
    "reservationFor": 
    {      
      "@type": "Flight",      
      "flightNumber": "201",      
      "provider":     
      {            
        "@type": "Airline",            
        "name": "Aeroflot",            
        "iataCode": "SU"        
      },          
      "departureAirport": 
      {        
        "@type": "Airport",        
        "name": "Domodedovo",        
        "iataCode": "DME"      
      },      
      "departureTime": "2017-03-04T11:00:00-05:00",      
      "arrivalAirport": 
      {        
        "@type": "Airport",        
        "name": "Simferopol",        
        "iataCode": "SIP"      
      },      
      "arrivalTime": "2017-03-05T13:25:00-06:00"    
    }  
  },  
  {    
    "@context": "http://schema.org",    
    "@type": "FlightReservation",    
    "reservationId": "RXJ34P",    
    "reservationStatus": "http://schema.org/Confirmed",    
    "reservationFor": 
    {      
      "@type": "Flight",      
      "flightNumber": "1050",      
      "provider":     
      {            
        "@type": "Airline",            
        "name": "Aeroflot",            
        "iataCode": "SU"        
      },          
      "departureAirport": 
      {        
        "@type": "Airport",        
        "name": "Domodedovo",        
        "iataCode": "DME"      
      },      
      "departureTime": "2017-03-05T14:55:00-06:00",      
      "arrivalAirport": 
      {        
        "@type": "Airport",        
        "name": "Simferopol",        
        "iataCode": "SIP"      
      },      
      "arrivalTime": "2017-03-05T15:15:00-08:00"    
    }  
  }
]
</script>
Microdata
<div itemscope itemtype="http://schema.org/FlightReservation">  
  <meta itemprop="reservationId" content="RXJ34P"/>  
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">    
    <meta itemprop="flightNumber" content="201"/>    
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">      
      <meta itemprop="name" content="Aeroflot"/>      
      <meta itemprop="iataCode" content="SU"/>    
    </div>    
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Domodedovo"/>      
      <meta itemprop="iataCode" content="DME"/>    
    </div>    
    <meta itemprop="departureTime" content="2017-03-04T11:00:00-05:00"/>    
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Simferopol"/>      
      <meta itemprop="iataCode" content="SIP"/>    
    </div>    
    <meta itemprop="arrivalTime" content="2017-03-05T13:25:00-06:00"/>  
  </div>
</div>
<div itemscope itemtype="http://schema.org/FlightReservation">  
  <meta itemprop="reservationId" content="RXJ34P"/>  
  <link itemprop="reservationStatus" href="http://schema.org/Confirmed"/>  
  <div itemprop="reservationFor" itemscope itemtype="http://schema.org/Flight">    
    <meta itemprop="flightNumber" content="1050"/>    
    <div itemprop="provider" itemscope itemtype="http://schema.org/Airline">      
      <meta itemprop="name" content="Aeroflot"/>      
      <meta itemprop="iataCode" content="SU"/>    
    </div>    
    <div itemprop="departureAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Domodedovo"/>      
      <meta itemprop="iataCode" content="DME"/>    
    </div>    
    <meta itemprop="departureTime" content="2017-03-05T14:55:00-06:00"/>    
    <div itemprop="arrivalAirport" itemscope itemtype="http://schema.org/Airport">      
      <meta itemprop="name" content="Simferopol"/>      
      <meta itemprop="iataCode" content="SIP"/>    
    </div>    
    <meta itemprop="arrivalTime" content="2017-03-05T15:15:00-08:00"/>  
  </div>
</div>

Свойства типа FlightReservation, которые поддерживает Яндекс.Почта

СвойствоТипОписание
Обязательные
reservationIdText

Номер бронирования.

reservationStatusReservationStatusСтатус бронирования.

Возможные значения

reservationForFlight

Информация о рейсе, на который пассажир забронировал билет.

reservationFor.arrivalAirportAirport

Информация об аэропорте назначения.

Поле может содержать также значение типа Text (например, «Domodedovo»).

reservationFor.arrivalAirport.iataCodeText

Код IATA аэропорта назначения (например, «SU»).

reservationFor.arrivalAirport.nameText

Название аэропорта назначения.

reservationFor.arrivalTimeDateTime

Время прибытия рейса в аэропорт назначения.

reservationFor.departureAirportAirport

Информация об аэропорте отправления.

Поле может содержать также значение типа Text (например, «Domodedovo»).

reservationFor.departureAirport.iataCodeText

Код IATA аэропорта вылета рейса (например, «SU»).

reservationFor.departureAirport.nameText

Название аэропорта отправления.

reservationFor.departureTimeDateTime

Время отправления рейса.

reservationFor.flightNumberText

Номер рейса.

Необязательные
additionalTicketTextText

Дополнительная информация о посадочном талоне.

boardingGroupText

Информация о посадке, специфическая для авиакомпании.

bookingAgentOrganization или Person

Информация об агенте, который бронирует билет.

bookingAgent.nameText

Название или имя агента, который бронирует билет.

bookingAgent.urlURL

Адрес сайта агента, который бронирует билет.

bookingTimeDateTime

Время бронирования билета.

modifiedTimeDateTime

Время последнего обновления данных рейса.

potentialActionConfirmAction, CancelAction или CheckInAction

Возможные действия с бронью (например, подтверждение, отмена или регистрация).

potentialAction.targetEntryPoint

Указатель на действие при бронировании билета (обычно это ссылка на сайт).

reservationFor.providerAirline

Информация об авиакомпании, которая выполняет рейс.

reservationFor.provider.nameText

Название авиакомпании.

reservationFor.provider.iataCodeText

IATA-код авиакомпании.

reservationFor.arrivalGateText

Номер выхода в аэропорте прибытия.

reservationFor.arrivalTerminalText

Терминал аэропорта прибытия .

reservationFor.boardingTimeDateTime

Время начала посадки на рейс.

reservationFor.departureGateText

Номер выхода в аэропорте отправления.

reservationFor.departureTerminalText

Терминал аэропорта отправления.

reservationFor.webCheckinTimeDateTime

Время начала онлайн-регистрации на рейс.

ticketDownloadUrlURL

Адрес страницы, на которой можно загрузить посадочный талон.

ticketNumberText

Номер билета.

ticketPrintUrlURL

Адрес страницы, на которой можно распечатать посадочный талон.

urlURL

Адрес страницы с информацией о бронировании.

Значения свойства reservationStatus

  • "http://schema.org/ReservationConfirmed" — покупка билета подтверждена;
  • "http://schema.org/ReservationCancelled" — рейс отменен;
  • "http://schema.org/ReservationHold" — бронирование ожидает оплаты;
  • "http://schema.org/ReservationPending" — бронирование ожидает подтверждения.