Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
backstage:6-nastroit-prodazhu-biletov-na-sayte-teatra [2020/09/18 09:32]
v.voronin
backstage:6-nastroit-prodazhu-biletov-na-sayte-teatra [2023/05/29 11:51] (текущий)
i.abramov
Строка 17: Строка 17:
  
 На той же странице генерируется скрипт для вставки на страницу вашего сайта. Пример такого скрипта: На той же странице генерируется скрипт для вставки на страницу вашего сайта. Пример такого скрипта:
 +<code html>
 <div id="tlFrameContainer"></div> <div id="tlFrameContainer"></div>
             <script type="text/javascript"></script>             <script type="text/javascript"></script>
Строка 31: Строка 31:
             document.body.appendChild(script);             document.body.appendChild(script);
             </script>             </script>
-          +</code>
    
  
Строка 66: Строка 66:
 Пример данных API: Пример данных API:
  
 +<code json>
         {         {
             "hall_id": "2244567",             "hall_id": "2244567",
             "hall_name": "Зал",             "hall_name": "Зал",
             "performance_id": 9999,             "performance_id": 9999,
 +            "performance_basis_id": 123456, // Если передан GET параметр ?extended=1
             "reveal_dt": "2001-01-01 00:00:00",             "reveal_dt": "2001-01-01 00:00:00",
             "script": "<script> var TLConf = {             "script": "<script> var TLConf = {
Строка 87: Строка 89:
             "total_ticket_count": 20             "total_ticket_count": 20
         }         }
 +</code>
  
   * //script// – готовый код для разворачивания фрейма Ticketland. В нем указана ссылка на схему зала  мероприятия по заданной дате.   * //script// – готовый код для разворачивания фрейма Ticketland. В нем указана ссылка на схему зала  мероприятия по заданной дате.
Строка 96: Строка 98:
 Пример PHP – кода для обращения к API – Ticketland: Пример PHP – кода для обращения к API – Ticketland:
  
 +<code php>
      if (!ini_get('allow_url_fopen')) {      if (!ini_get('allow_url_fopen')) {
         error_log("set allow_url_fopen to true or change script to use curl" . PHP_EOL);         error_log("set allow_url_fopen to true or change script to use curl" . PHP_EOL);
Строка 132: Строка 135:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
             print $result . PHP_EOL;             print $result . PHP_EOL;
 +</code>
  
  
Строка 137: Строка 141:
   * //password// – пароль от сервиса backstage.ticketland.ru   * //password// – пароль от сервиса backstage.ticketland.ru
   * //$result// – JSON – объект содержащий всю информацию из API – Ticketland   * //$result// – JSON – объект содержащий всю информацию из API – Ticketland
 +
 +----
 +
 +=== Расширенный Iframe (новая версия) ===
 +Теперь, используя каналы продаж, вы сможете получать заранее список мероприятий, которые еще не вышли в продажу, но дата выхода указана в системе для МДТЗК.
 +
 +Ссылка для подключения к новому API: https://backstage.ticketland.ru/frame/api/shows?get_future_performances=1
 +Формат авторизации не изменился и остается актуальным, чтобы получать новые данные достаточно указать для существующих обращений к API параметр «?get_future_performances=1».
 +
 +**Отличия в следующем:** 
 +  * В JSON-ответ будут попадать также мероприятия/фреймы, дата старта продаж по которым в будущем.
 +  * Для мероприятий, у которых в билетной системе установлена дата старта продаж, в параметре reveal_dt будет передаваться дата и время старта продаж. Для мероприятий, где это дата не установлена, передается значение для reveal_dt по умолчанию «2001-01-01 00:00:00».
 +
 +При подключении к новому API необходимо начать учитывать передаваемые в параметре reveal_dt дату и время. Параметр будет говорить, доступны ли сейчас продажи по конкретному мероприятию с установленным каналом продаж. То есть, если текущая дата и время больше указанных в reveal_dt, то продажи по мероприятию активны и клиенту можно давать страницу с виджетом.
 +
 +**Возможны 2 механики:**
 +  - Выводить на сайте мероприятия, чья дата продаж в будущем с неактивной кнопкой и информацией о старте продаж.
 +  - Не выводить на сайте мероприятие, чья дата старта продаж еще не началась.
 +
 +**Ниже возможная схеме регулировки отображения кнопок:**
 +{{:backstage:reguliprovka_knopok_api.png|}}
 +
 +----
  
 === Параметры TLConf === === Параметры TLConf ===
-**googleAnalytics**+  * **googleAnalytics**
 идентификатор счетчика, если на сайте используется несколько счетчиков google аналитики идентификатор счетчика, если на сайте используется несколько счетчиков google аналитики
 значение по умолчанию '' (пустая строка) значение по умолчанию '' (пустая строка)
  
-**useEcommerceGa**+  * **useEcommerceGa**
 использовать для передачи данных функцию ga использовать для передачи данных функцию ga
 значение по умолчанию true значение по умолчанию true
  
-**useEcommerceGtag**+  * **useEcommerceGtag**
 использовать для передачи данных функцию gtag использовать для передачи данных функцию gtag
 значение по умолчанию false, значение по умолчанию false,
  
-**ecommerceCallback**+  * **ecommerceCallback**
 указать callback функцию в которую будет передан объект ecommerce по умолчанию function(ecommerce){ указать callback функцию в которую будет передан объект ecommerce по умолчанию function(ecommerce){
 window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
Строка 160: Строка 187:
 Для получения данных электронной торговли есть два способа Для получения данных электронной торговли есть два способа
  
-подписаться на событие передаваемое из "фрейма" через механизм postMessage. +  - подписаться на событие передаваемое из "фрейма" через механизм postMessage. Пример window.addEventListener('message', function(event){try{var json = JSON.parse(event.data)} catch(){}}, false); Документация https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener 
-Пример window.addEventListener('message', function(event){try{var json = JSON.parse(event.data)} catch(){}}, false); +  в конфиге переопределить функцию. <code js>TLConf.ecommerceCallback = function(ecommerce){};</code> ecommerce это объект с данными в формате расширенной электронной торговли https://developers.google.com/tag-manager/enhanced-ecommerce 
-Документация https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener + 
-в конфиге переопределить функцию. TLConf.ecommerceCallback = function(ecommerce){}; ecommerce это объект с данными в формате расширенной электронной торговли https://developers.google.com/tag-manager/enhanced-ecommerce+** Покупка ** 
 + 
 +<code JSON> 
 +
 +  "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" 
 +            } 
 +          ] 
 +        } 
 +    } 
 +
 +</code> 
 + 
 +---- 
 + 
 +=== Фрейм в Вконтакте === 
 + 
 +== Для организации продаж в социальной сети вконтакте нужно == 
 + 
 +  * Профиль социальной сети ВКонтакте 
 +  * Группа или публичная страница, где вы являетесь администратором 
 +  * доступ к номеру мобильного телефона, который привязан к вашему аккаунту ВКонтактe 
 + 
 +  - Запросите у саппорта личный iframe-hash(1) для vk.com 
 +  - Перейдите на страницу создания приложения https://vk.com/editapp?act=create  
 +    - Введите название вашего приложения, например «Купить билет» 
 +    - Выберите платформу: Встраиваемое приложение 
 +    - Нажмите кнопку "Перейти к настройке приложения" {{:backstage:vk-4-create-application.png?600|}} 
 +  - Выполните Подтверждение действия через SMS {{:backstage:vk-4-mobile-sms.png?400|}} 
 +  - В разделе 'Информация' поля 'Название', 'Описание', 'Краткое описание', 'Категория' заполнить на свое усмотрение. Иконку можете использовать свою, или нашу (если такая имеется) {{:backstage:vk-6-editapp.png?400|}} 
 +  - После этого смело нажимайте на кнопку 'Сохранить изменения' (не имеет значения под каким из блоков вы нажмете, сохранять все изменения во всех блоках) 
 +  - Далее переходим во вкладку настройки. Поле 'Состояние' выставить в 'Приложение включено и видно всем' 
 +  - Во всех блоках, где есть поле 'Url' вставить урл формата https://www.ticketland.ru/site/internalFrame/?iframe-internal=1&lite-layout=1&iframe-hash='iframe-hash(1)'в этом месте должен быть access hash фрейма, который вы запросили у саппорта&start-url=тут относительный урл на мероприятие на сайте тикетленда. Нажимаем 'Сохранить изменения'  {{:backstage:vk-7-com-editapp-settings.png?400|}} 
 +  - Переходим в сообщество, где вы являетесь администратором и нажимаем на кнопку 'Управление' {{:backstage:vk-8-community-settings.png?400|}} 
 +  - Переходим во вкладку 'Приложения' {{:backstage:vk-9-community-setting-app.png?400|}} и листаем в самый вниз, где видим наше приложение. {{:backstage:vk-10-my-app.png?400|}}Добавляем его и настраиваем так, как нам нужно. {{:backstage:vk-11-my-app-settings.png?400|}} Не забываем нажать кнопку Сохранить. 
 + 
 +После этого все готово и все работает 
  

backstage/6-nastroit-prodazhu-biletov-na-sayte-teatra.1600410757.txt.gz · Последнее изменение: 2020/09/18 09:32 — v.voronin