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

Письма, которые клиенты получают от вас, могут быть оформлены специальным образом в списке входящих сообщений. Для этого необходимо добавить в письмо информацию о бронировании или билете с помощью разметки 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, которые поддерживает Яндекс.Почта

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

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

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

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

reservationFor Flight

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

reservationFor.arrivalAirport Airport

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

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

reservationFor.arrivalAirport.iataCode Text

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

reservationFor.arrivalAirport.name Text

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

reservationFor.arrivalTime DateTime

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

reservationFor.departureAirport Airport

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

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

reservationFor.departureAirport.iataCode Text

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

reservationFor.departureAirport.name Text

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

reservationFor.departureTime DateTime

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

reservationFor.flightNumber Text

Номер рейса.

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

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

boardingGroup Text

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

bookingAgent Organization или Person

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

bookingAgent.name Text

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

bookingAgent.url URL

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

bookingTime DateTime

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

modifiedTime DateTime

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

potentialAction ConfirmAction, CancelAction или CheckInAction

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

potentialAction.target EntryPoint

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

reservationFor.provider Airline

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

reservationFor.provider.name Text

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

reservationFor.provider.iataCode Text

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

reservationFor.arrivalGate Text

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

reservationFor.arrivalTerminal Text

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

reservationFor.boardingTime DateTime

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

reservationFor.departureGate Text

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

reservationFor.departureTerminal Text

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

reservationFor.webCheckinTime DateTime

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

ticketDownloadUrl URL

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

ticketNumber Text

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

ticketPrintUrl URL

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

url URL

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

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

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