Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagehtml
<body>

...

<button id="wizart-fitting-room-button" onClick="openFittingRoom">
  Fitting room
</button>

<button id="wizart-spec-fitting-room-button" onClick="openSpecificFittingRoom">
  Fitting room Specific Article
</button>

<object 
  id="wizart-fitting-room-object" 
  role="dialog" 
  aria-label="Wizart Fitting Room." 
  type="text/html" 
  class="active">
</object>

<style>
  #wizart-fitting-room-object {
      z-index: 2147483646 !important;
      display: none;
      position: fixed !important;
      top: 0 !important;
      left: 0 !important;
      width: 100vw !important;
      height: 100vh !important;
      background-color: rgba(0, 0, 0, 0.8);
  }
  
  #wizart-fitting-room-object.active {
    display: block;
  }
</style>

<script>
<script src="/wizart-integration.js"></script>

</body>
Code Block
languagejs
// todo get api token from Wizart.

 let api_token = 'CLIENT_SPECIFIC_API_TOKEN';
  let server_address = 'https://pim-client.wizart.tech';

  let fittingRoomObject = document.getElementById('wizart-fitting-room-object');
 
// bba (back button action) param is used to add back button to wizart component
 
let fittingRoomEndpoint = server_address
 
  + '/fitting-room'
    + '?api_token=' + api_token 
 
  + '?bba=true'
  ;

  function openFittingRoom (searchQuery) {
    if (searchQuery) {

      let componentEndpoint = fittingRoomEndpoint + searchQuery;
    } else {
       let componentEndpoint = fittingRoomEndpoint;
 
  }
 
  fittingRoomObject.setAttribute('data', componentEndpoint);
    fittingRoomObject.classList.add('active');
 
}
  


function openSpecificFittingRoom () {
 
  // can be any necessary field supported by search request

   let articleName = 'ARTICLE_NAME_TO_OPEN';
  
      // query can be updated to search for necessary article
    let articleSearchQuery = '&article_query=' 
 
    + '{\"name\": \"' 
 
    + articleName 
 
    + '\"}'
 
  ;
    
      openFittingRoom(articleSearchQuery);
  }

  // bba event - fired when back button is clicked at wizart component
  window.addEventListener('message', function (event) {
 
  if (~event.origin.indexOf(server_address)) {
 
    // exactly 'close_overlay' as it's sent from wizart component

     if (event.data === 'close_overlay') {
        fittingRoomObject.removeAttribute('data');

       fittingRoomObject.innerHTML = '';
        fittingRoomObject.classList.remove('active');
      }
 
  }
  });
</script>

</body>