Iframe - специальная выделенная область на странице вашего сайта, в которой отображается часть сайта ticketland.ru. Благодаря этому пользователи могут выбрать и оплатить билет в нашей системе, оставаясь на вашем сайте. Также можно использовать отдельные страницы (например, схема зала и корзина) в случае интеграции в ваш сайт.
Ticketland предоставляет скрипт, автоматически отображающий iframe, настроенный на заданную страницу сайта www.ticketland.ru. Навигация и покупка билетов будет происходить в рамках iframe без взаимодействия со страницей, в которой он встроен.
В backstage.ticketland.ru вы получите доступ к странице http://backstage.ticketland.ru/frame#/ (на начальной странице кнопка «Настроить продажу билетов на сайте театра»)
Домен указывается согласно используемому протоколу ( http/https ), на главную страницу, например https://site.ru
На той же странице генерируется скрипт для вставки на страницу вашего сайта. Пример такого скрипта:
<div id="tlFrameContainer"></div> <script type="text/javascript"></script> var TLConf = { accessHash: '1111112223334444555', start: '/teatry/building', containerId: 'tlFrameContainer', baseDomain: 'https://www.ticketland.ru' }; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = TLConf.baseDomain + '/site/getLiteFrameJS/'; document.body.appendChild(script); </script>
Для установки фрейма нужно разместить код на вашем сайте. Можно изменить параметр start чтобы открывать в фрейме нужную страницу с сайта ticketland.ru.
Возможные места для установки фрейма:
Важные моменты:
Навигация пользователя может начинаться не со страницы площадки, а сразу со страницы мероприятия. Это подходит тем организаторам, у которых на сайте уже есть афиша со списком мероприятий. Для этого необходимо подставлять параметр start в скрипте. Можно жестко привязать этот параметр в коде страниц или записать необходимый url в базе вашего сайта. Для полной автоматизации можно воспользоваться нашим API, по которому можно получить информацию о мероприятиях.
Адрес API: http://backstage.ticketland.ru/frame/api/shows
Пример данных API:
{ "hall_id": "2244567", "hall_name": "Зал", "performance_id": 9999, "performance_basis_id": 123456, // Если передан GET параметр ?extended=1 "reveal_dt": "2001-01-01 00:00:00", "script": "<script> var TLConf = { accessHash: '1111112223334444555', start: '/teatry/building/show/20170303_1900-11112222/', containerId: 'tlFrameContainer', baseDomain: 'https://www.ticketland.ru' }; var script = document.createElement('script');script.type = 'text/javascript'; script.src = TLConf.baseDomain + '/site/getLiteFrameJS/'; document.body.appendChild(script); </script>", "show_full_url": "https://www.ticketland.ru/teatry/building/show/", "show_id": 111222, "show_name": "Название шоу", "start_date": "2017-03-03 19:00:00", "total_ticket_count": 20 }
Пример PHP – кода для обращения к API – Ticketland:
if (!ini_get('allow_url_fopen')) { error_log("set allow_url_fopen to true or change script to use curl" . PHP_EOL); die(); } $url = 'https://backstage.ticketland.ru/login'; $api = 'https://backstage.ticketland.ru/frame/api/shows'; $params = array( 'username' => '', // указать логин 'password' => '', // указать пароль 'remember' => 'True', ); $result = file_get_contents($url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($params) ) ))); $session; foreach ($http_response_header as $string) { if (preg_match('/^Set\-Cookie: .*?session=([^;]+)/', $string, $matches)) { $session = $matches[1]; break; } } $result = file_get_contents($api, false, stream_context_create(array( 'http' => array( 'method' => 'GET', 'header' => 'Cookie: session=' . $session, ) ))); print $result . PHP_EOL;
Теперь, используя каналы продаж, вы сможете получать заранее список мероприятий, которые еще не вышли в продажу, но дата выхода указана в системе для МДТЗК.
Ссылка для подключения к новому API: https://backstage.ticketland.ru/frame/api/shows?get_future_performances=1 Формат авторизации не изменился и остается актуальным, чтобы получать новые данные достаточно указать для существующих обращений к API параметр «?get_future_performances=1».
Отличия в следующем:
При подключении к новому API необходимо начать учитывать передаваемые в параметре reveal_dt дату и время. Параметр будет говорить, доступны ли сейчас продажи по конкретному мероприятию с установленным каналом продаж. То есть, если текущая дата и время больше указанных в reveal_dt, то продажи по мероприятию активны и клиенту можно давать страницу с виджетом.
Возможны 2 механики:
Ниже возможная схеме регулировки отображения кнопок:
идентификатор счетчика, если на сайте используется несколько счетчиков google аналитики значение по умолчанию '' (пустая строка)
использовать для передачи данных функцию ga значение по умолчанию true
использовать для передачи данных функцию gtag значение по умолчанию false,
указать callback функцию в которую будет передан объект ecommerce по умолчанию function(ecommerce){ window.dataLayer = window.dataLayer || []; window.dataLayer.push(ecommerce); }
Для получения данных электронной торговли есть два способа
TLConf.ecommerceCallback = function(ecommerce){};
ecommerce это объект с данными в формате расширенной электронной торговли https://developers.google.com/tag-manager/enhanced-ecommerce
Покупка
{ "ecommerce": { "purchase": { "actionField": {"id":"52346890","revenue":"600"}, "products":[ { "id":"1353580", "name":"Юные таланты Бразилии, 2020-10-31 19:00:00", "brand":"Театр имени", "category":"Юные таланты Бразилии", "variant":"eticket", "quantity":1, "price":"600" } ] } } }
После этого все готово и все работает