Your Cart

  • Your cart is empty!
Free shipping for orders under 10km
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Snap Finance</title>

  <style>
    @font-face {
      font-family: 'Aeonik-Regular';
      src: url('https://assets.snapfinance.co.uk/retailerGenerator/Aeonik-Regular.woff') format('woff');
    }
    @font-face {
      font-family: 'Aeonik-Bold';
      src: url('https://assets.snapfinance.co.uk/retailerGenerator/Aeonik-Bold.woff') format('woff');
    }

    .snap__loading {
      position: absolute;
      width: 100%;
      height: 1000px;
      background: white;
      z-index: 1;
      font-family: 'Aeonik-Regular';
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .snap__loading h2 {
      color: #0ba797;
      font-size: 1.5rem;
    }
  </style>
</head>
<body>

  <div id="snapfinance-page" style="margin: 0 !important; display: block !important; width: 100%; max-width: 100%; height: 800px;"></div>

  <script>
    (function () {
      const snapContainer = document.getElementById('snapfinance-page');
      const shadow = snapContainer.attachShadow({ mode: 'open' });

      const loadingDiv = document.createElement('div');
      loadingDiv.className = 'snap__loading';
      loadingDiv.innerHTML = '<h2>Loading Snap Finance widget...</h2>';
      shadow.appendChild(loadingDiv);

      fetch('https://developer.snapfinance.co.uk/api/retailer-page?data=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7Ik1FUkNIQU5UX0lEIjoiMTk3MTM4MzgiLCJNRVJDSEFOVF9OQU1FIjoiUHJpbWUgQ2FycGV0cyBhbmQgRnVybml0dXJlIn0sImlhdCI6MTc1MDAwMTAxOH0.2awW8e6mvv55FtNnvt3IxrpNSYJu0ite85a12Y4sECo')
        .then(async (res) => {
          const { template, scriptTemplate } = await res.json();

          const widgetDiv = document.createElement('div');
          widgetDiv.innerHTML = template;
          shadow.appendChild(widgetDiv);

          const widgetScript = document.createElement('script');
          widgetScript.innerHTML = scriptTemplate;
          shadow.appendChild(widgetScript);
        })
        .catch(() => {
          const errorDiv = document.createElement('div');
          errorDiv.className = 'snap__loading';
          errorDiv.innerHTML = '<h2>Unable to load Snap Finance. Please refresh the page.</h2>';
          shadow.appendChild(errorDiv);
        })
        .finally(() => {
          shadow.removeChild(shadow.firstChild);
        });
    })();
  </script>

</body>
</html>