custom/static-plugins/GlobusSW6/src/Resources/views/storefront/layout/meta.html.twig line 1

Open in your IDE?
  1. {% sw_extends '@Storefront/storefront/layout/meta.html.twig' %}
  2. {% block layout_head_inner %}
  3.     {{ parent() }}
  4.     <script>
  5.         function loadSessionData(isApp,salesChannelId) {
  6.             var xhttp = new XMLHttpRequest();
  7.             var base_url = window.location.origin;
  8.             xhttp.open("POST", base_url + "/ianeo/get-sessiondata", true);
  9.             xhttp.send();
  10.             xhttp.onload = function () {
  11.                 var result = JSON.parse(this.response);
  12.                 // Ist nur dann nicht undefined wenn beim Laden der Seite session.ianeoCurrentStore noch undefined war
  13.                 // siehe SessionSubscriber
  14.                 if(result.session.setFallbackStoreInProgress !== undefined){
  15.                     if(result.session.setFallbackStoreInProgress === 'start'){
  16.                         loadSessionData(isApp,salesChannelId);
  17.                     }else if(result.session.setFallbackStoreInProgress === 'end'){
  18.                         if (result.session.isFallbackStore !== undefined && result.session.isFallbackStore){
  19.                             // TODO-NGS: need to check if customer has a standard store which we can select
  20.                             // try to set store using browser geolocation
  21.                             if (navigator.geolocation) {
  22.                                 let constSalesChannelHitseller = "{{ constant('GlobusSW6\\Core\\IaneoDefaults::SALES_CHANNEL_HITSELLER') }}";
  23.                                 if (salesChannelId !== constSalesChannelHitseller) {
  24.                                     navigator.geolocation.getCurrentPosition(showLocation, showLocation);
  25.                                 }
  26.                             } else {
  27.                                 // geolocation is not supported by browser
  28.                                 showLocation();
  29.                             }
  30.                         }
  31.                     }
  32.                 }
  33.             }
  34.         }
  35.         window.addEventListener('load', function() {
  36.             var isApp = '{{ page.ianeoHitsellerIsApp }}';
  37.             var salesChannelId = '{{ context.salesChannelId }}';
  38.             if (!isApp) {
  39.                 loadSessionData(isApp,salesChannelId);
  40.             }
  41.         });
  42.         function getCookie(name) {
  43.             let value = ';' + document.cookie;
  44.             let parts = value.split(';' + name + '=');
  45.             if (parts.length === 2) return parts.pop().split(';').shift();
  46.         }
  47.         function showLocation(position) {
  48.             var base_url = window.location.origin;
  49.             var page_url = window.location.href;
  50.             var xhttp = new XMLHttpRequest();
  51.             if (position.coords) { // browser geolocation success case
  52.                 var latitude = position.coords.latitude;
  53.                 var longitude = position.coords.longitude;
  54.                 var json_upload = JSON.stringify({latitude: latitude, longitude: longitude, page_url: page_url});
  55.                 xhttp.open("POST", base_url + "/ianeo/get-geolocation", true);
  56.                 xhttp.addEventListener('load', reloadPage);
  57.                 xhttp.send(json_upload);
  58.             } else { // browser geolocation not allowed/not supported
  59.                 xhttp.open("POST", base_url + "/ianeo/get-geolocation", true);
  60.                 xhttp.addEventListener('load', reloadPage);
  61.                 xhttp.send();
  62.             }
  63.         }
  64.         function reloadPage(event) {
  65.             window.location.reload();
  66.         }
  67.     </script>
  68. {% endblock %}