DELETE FROM KEYWORDS WHERE ID_DOMAINE=36640662DoneDoneDone
URL:i-spa.co.za
Connection: keep-alive
Date: Mon, 04 Nov 2024 18:05:21 GMT
Content-Length: 0
Content-Type: text/html; charset=utf-8
Location: https://i-spa.co.za/
Server: cloudflare
Vary: Accept
x-sorting-hat-podid: 212
x-sorting-hat-shopid: 23548351
x-storefront-renderer-rendered: 1
x-redirect-reason: https_required
x-frame-options: DENY
content-security-policy: frame-ancestors 'none';
x-shopid: 23548351
x-shardid: 212
powered-by: Shopify
server-timing: processing;dur=11;desc="gc:1", db;dur=4, asn;desc="12322", edge;desc="CDG", country;desc="FR", pageType;desc="index", servedBy;desc="w2ht", requestID;desc="29d0b5f8-f461-4082-a699-f6c93a061f3a-1730743521"
x-dc: gcp-europe-west1,gcp-europe-west1,gcp-europe-west1
x-request-id: 29d0b5f8-f461-4082-a699-f6c93a061f3a-1730743521
Alt-Svc: h3=":443"; ma=86400
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=FcZfr6sXKa9%2BWKxqAeI7AweKTdPCBRzZjzWKUfZFaEs1%2Fi30ldRfqOG5yYfCiVUtGx1Vn%2BsE7VFJEvnRHcCTUHIrrU%2BiF4NQ9SU%2FCJwLkRaUdiJDpg7kAUO%2FLZns"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}
Server-Timing: cfRequestDuration;dur=60.000181
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: none
X-Download-Options: noopen
CF-RAY: 8dd6881f5f43d297-CDG
Location => https://i-spa.co.za/
Status => 301
(vide) Tentative en https
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="">
<link rel="canonical" href="https://i-spa.co.za/">
<link rel="preconnect" href="https://cdn.shopify.com" crossorigin><link rel="icon" type="image/png" href="//i-spa.co.za/cdn/shop/files/i-Spa_Logo.png?crop=center&height=48&v=1666938850&width=48"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title>
i-Spa Salon & Spa Supplier: Wholesale Salon, Spa & Beauty Supplies
</title>
<meta name="description" content="South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan, Skin Care, Nails, Beauty supplies, beauty furniture & equipment, waxing, eyelash extensions, uniforms and much more. One stop shop for all your salon & spa needs.">
<meta property="og:site_name" content="i-Spa ">
<meta property="og:url" content="https://i-spa.co.za/">
<meta property="og:title" content="i-Spa Salon & Spa Supplier: Wholesale Salon, Spa & Beauty Supplies">
<meta property="og:type" content="website">
<meta property="og:description" content="South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan, Skin Care, Nails, Beauty supplies, beauty furniture & equipment, waxing, eyelash extensions, uniforms and much more. One stop shop for all your salon & spa needs."><meta property="og:image" content="http://i-spa.co.za/cdn/shop/files/i-Spa_Logo.png?height=628&pad_color=fff&v=1666938850&width=1200">
<meta property="og:image:secure_url" content="https://i-spa.co.za/cdn/shop/files/i-Spa_Logo.png?height=628&pad_color=fff&v=1666938850&width=1200">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="i-Spa Salon & Spa Supplier: Wholesale Salon, Spa & Beauty Supplies">
<meta name="twitter:description" content="South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan, Skin Care, Nails, Beauty supplies, beauty furniture & equipment, waxing, eyelash extensions, uniforms and much more. One stop shop for all your salon & spa needs.">
<script src="//i-spa.co.za/cdn/shop/t/34/assets/constants.js?v=69032263048807321231705001082" defer="defer"></script>
<script src="//i-spa.co.za/cdn/shop/t/34/assets/pubsub.js?v=162490899887979251705001082" defer="defer"></script>
<script src="//i-spa.co.za/cdn/shop/t/34/assets/global.js?v=23102505533994410481705001082" defer="defer"></script>
<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta name="google-site-verification" content="mKTTxw4u1tKPf7b6sbs4oAb2Qqw6MRkc5Z3EIrq2GX8">
<meta name="facebook-domain-verification" content="zqbmbubysg82ojy5yx72snalh5js9i">
<meta name="facebook-domain-verification" content="c96jyhspd628tves420yovadgh3fc1">
<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/23548351/digital_wallets/dialog">
<script async="async" src="/checkouts/internal/preloads.js?locale=en-ZA"></script>
<script id="shopify-features" type="application/json">{"accessToken":"66acec94251935bcb93b3a28ea84f43a","betas":["rich-media-storefront-analytics"],"domain":"i-spa.co.za","predictiveSearch":true,"shopId":23548351,"smart_payment_buttons_url":"https:\/\/i-spa.co.za\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/spb.en.js","dynamic_checkout_cart_url":"https:\/\/i-spa.co.za\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/dynamic-checkout-cart.en.js","locale":"en"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "ispa-products.myshopify.com";
Shopify.locale = "en";
Shopify.currency = {"active":"ZAR","rate":"1.0"};
Shopify.country = "ZA";
Shopify.theme = {"name":"Whisk - Lizel(11\/01\/24)","id":138827235541,"schema_name":"Whisk","schema_version":"6.2.1","theme_store_id":1819,"role":"main"};
Shopify.theme.handle = "null";
Shopify.theme.style = {"id":null,"handle":null};
Shopify.cdnHost = "i-spa.co.za/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";</script>
<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
<script>(function() {
function asyncLoad() {
var urls = ["https:\/\/wishlisthero-assets.revampco.com\/store-front\/bundle2.js?shop=ispa-products.myshopify.com","https:\/\/assets.useinstabuy.com\/assets\/instabuy-client.js?shop=ispa-products.myshopify.com","https:\/\/www.skylitech.com\/production\/quotilio\/storeQuote\/qtl.p.js?shop=ispa-products.myshopify.com","https:\/\/www.skylitech.com\/production\/quotilio\/storeQuote\/qtl.m.js?shop=ispa-products.myshopify.com","https:\/\/wishlisthero-assets.revampco.com\/store-front\/bundle2.js?shop=ispa-products.myshopify.com","https:\/\/wishlisthero-assets.revampco.com\/store-front\/bundle2.js?shop=ispa-products.myshopify.com","https:\/\/wishlisthero-assets.revampco.com\/store-front\/bundle2.js?shop=ispa-products.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-ece5167710481a4f165d68ddc9bda51c.js?shop=ispa-products.myshopify.com","https:\/\/cdn.hextom.com\/js\/freeshippingbar.js?shop=ispa-products.myshopify.com"];
for (var i = 0; i < urls.length; i++) {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = urls[i];
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
};
if(window.attachEvent) {
window.attachEvent('onload', asyncLoad);
} else {
window.addEventListener('load', asyncLoad, false);
}
})();</script>
<script id="__st">var __st={"a":23548351,"offset":7200,"reqid":"53096a5d-f76d-4d41-b8d6-0d28342d4565-1730743521","pageurl":"i-spa.co.za\/","u":"4d2d6cbb4a78","p":"home"};</script>
<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');function s(t,e,n=!1){try{const o=window.sessionStorage;for(const[n,c]of Object.entries(JSON.parse(o.getItem(e))))t.elements[n]&&(t.elements[n].value=c);n&&o.removeItem(e)}catch{}}const a='form_key',i=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response','password'],u=()=>{try{return window.sessionStorage}catch{return}},m=t=>t.elements[a],f='form_type',d='cptcha';function p(t){t.dataset[d]=!0}const l=window,h=l.document,_='Shopify',y='ce_forms',E='captcha';let v=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe','https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js',T={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=l[_][y],c=o.bindForm;if(c)return c(t,g,e,T).then(n);o.q.push([[t,g,e,T],n]),v||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:'https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js'})),v=!0)});var g,T;l[_]=l[_]||{},l[_][y]=l[_][y]||{},l[_][y].q=[],l[_][E]=l[_][E]||{},l[_][E].protect=function(t,e){n(t,void 0,e),p(t)},Object.freeze(l[_][E]),function(t,e,n,l,h,_){const[y,E,v,g]=function(t,e,n){const s=e?o:[],a=t?c:[],i=[...s,...a],u=[...o],m=r(i),f=r(s),d=n&&r(i.filter((([t,e])=>n.includes(e)))),p=r(u),l=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];return[l(m),l(f),l(d),l(p)]}(l,h,_),T=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},S=t=>y().includes(t);t.addEventListener('submit',(t=>{const e=T(t);if(!e)return;const n=S(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=m(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!u())return;!function(t){const e=u();if(!e)return;const n=m(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){m(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:a})),t.elements[a].value=e}(t,e),function(t,e){const n=u();if(!n)return;const o=[...t.querySelectorAll('input[type="password"]')].map((({name:t})=>t)),c=[...i,...o],r={};for(const[s,a]of new FormData(t).entries())c.includes(s)||(r[s]=a);n.setItem(e,JSON.stringify(r))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const w=(t,e)=>{t&&!t.dataset[d]&&(n(t,e.some((e=>e===t))),p(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=T(t);S(e)&&w(e,E())}));const A=e.get('form_key'),b=e.get(f),I=A&&b;t.addEventListener('DOMContentLoaded',(()=>{const t=E();if(I)for(const e of t)e.elements[f].value===b&&s(e,A);[...new Set([...v(),...y().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>w(e,t)))}))}(h,new URLSearchParams(l.location.search),n,!0,!0,['guest_login'])})()}();</script>
<script integrity="sha256-EGCDRYTvIEOXsReXgqGwkAR+5Dl8tickSrieA/ZcQwc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//i-spa.co.za/cdn/shopifycloud/shopify/assets/storefront/load_feature-1060834584ef204397b1179782a1b090047ee4397cb627244ab89e03f65c4307.js" crossorigin="anonymous"></script>
<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://i-spa.co.za/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
</script>
<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("#dynamic-checkout-cart")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
</script>
<script id="sections-script" data-sections="footer" defer="defer" src="//i-spa.co.za/cdn/shop/t/34/compiled_assets/scripts.js?4161"></script>
<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
<style data-shopify>
@font-face {
font-family: Raleway;
font-weight: 400;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.e721da6683e65ea8e217c48c3a4254b0476a6709.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=25332c0291308f56eec71fa46ffdf15e067609e515b68dd0e3f0b4cc711d3075") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.c5b6fdec4157e9fa556f2738e9a48cd93d620789.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=fc62057298ac2b2c15fcce7e49e0379537c7b4d26ea19e454b268efda288c9d2") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 700;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a3667ec66e26be6cf49ad181eaf840ced12b23ee.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b55118e9d54731383e268c57e6b23edd1c935d8f4746034eaa7af30d72e5f7fb") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a13ead3a5457d09b337e2abff1e1b86069507d34.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b76697c5d49ed294442a89778e4037dc7b652877db19fbed9539d004a7770b5f") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 400;
font-style: italic;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_i4.41b3a2a9c9f42636b840169d068a8e0b9287c999.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=12bec2e38ca6633a94c11cd8ac64509910f9dfe609c92e2d6d135d0689bdf1cd") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_i4.72e7ebae137779bde0c424e25a6e62b0a6971d01.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=cbab8ba407875aeba6d543e31e6133d30158d3434f19b56cabfde2b2c3a3e59d") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 700;
font-style: italic;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_i7.f3203d2c168fe76feb9a85072aa9ea62324e0ec3.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=060ec9e716a0d5cd65346d50b40e86dd5d96dd3ce1c28c9e6b9072ec2281c090") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_i7.2ef6b03979ee8a4126f1212ebc0a99278bfa9b66.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=f1283d5278bf0edd2f7a8d0476f89b92517284447e9bd6a65ae5395ff3b9546f") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 400;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.e721da6683e65ea8e217c48c3a4254b0476a6709.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=25332c0291308f56eec71fa46ffdf15e067609e515b68dd0e3f0b4cc711d3075") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.c5b6fdec4157e9fa556f2738e9a48cd93d620789.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=fc62057298ac2b2c15fcce7e49e0379537c7b4d26ea19e454b268efda288c9d2") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 700;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a3667ec66e26be6cf49ad181eaf840ced12b23ee.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b55118e9d54731383e268c57e6b23edd1c935d8f4746034eaa7af30d72e5f7fb") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a13ead3a5457d09b337e2abff1e1b86069507d34.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b76697c5d49ed294442a89778e4037dc7b652877db19fbed9539d004a7770b5f") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 400;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.e721da6683e65ea8e217c48c3a4254b0476a6709.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=25332c0291308f56eec71fa46ffdf15e067609e515b68dd0e3f0b4cc711d3075") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n4.c5b6fdec4157e9fa556f2738e9a48cd93d620789.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=fc62057298ac2b2c15fcce7e49e0379537c7b4d26ea19e454b268efda288c9d2") format("woff");
}
@font-face {
font-family: Raleway;
font-weight: 700;
font-style: normal;
font-display: swap;
src: url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a3667ec66e26be6cf49ad181eaf840ced12b23ee.woff2?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b55118e9d54731383e268c57e6b23edd1c935d8f4746034eaa7af30d72e5f7fb") format("woff2"),
url("//i-spa.co.za/cdn/fonts/raleway/raleway_n7.a13ead3a5457d09b337e2abff1e1b86069507d34.woff?h1=aS1zcGEuY28uemE&h2=aXNwYS1wcm9kdWN0cy5hY2NvdW50Lm15c2hvcGlmeS5jb20&hmac=b76697c5d49ed294442a89778e4037dc7b652877db19fbed9539d004a7770b5f") format("woff");
}
:root {
--border-radius-square: 50%;
--border-radius-pill: 9999px;;
--border-radius: 8px;
--space-xsmall: 0.33rem;
--space-small: 0.66rem;
--space-medium: 1rem;
--space-large: 2rem;
--space-xlarge: 4rem;
--font-body-family: Raleway, sans-serif;
--font-body-style: normal;
--font-body-weight: 400;
--font-body-size: 16px;
--font-body-text-transform: unset;
--font-body-letter-spacing: 0;
--font-heading-family: Raleway, sans-serif;
--font-heading-style: normal;
--font-heading-weight: 400;
--font-heading-base-size: 2.8rem;
--font-heading-text-transform: none;
--font-heading-letter-spacing: 0;
--font-heading-size-large: var(--font-heading-base-size);
--font-heading-size-medium: calc(var(--font-heading-base-size) * 0.8);
--font-heading-size-small: calc(var(--font-heading-base-size) * 0.6);
--font-heading-size-xsmall: 1.3rem;
--font-heading-line-height: 1.15;
--font-copy-size-xlarge: 1.4rem;
--font-copy-size-large: 1.25rem;
--font-copy-size-small: 0.9rem;
--font-copy-size-xsmall: 0.775rem;
--font-copy-size-xxsmall: 0.7rem;
--font-copy-line-height: 1.5;
--font-accent-family: Raleway, sans-serif;
--font-accent-style: normal;
--font-accent-weight: 400;
--font-accent-text-transform: uppercase;
--font-accent-letter-spacing: 0.05em;
--font-accent-line-height: 1.1;
--font-accent-base-size: 0.75rem;
--font-button-family: var(--font-accent-family);
--font-button-letter-spacing: var(--font-accent-letter-spacing);
--font-button-text-transform: var(--font-accent-text-transform);
--font-button-size: 0.7rem;
--product-image-aspect-ratio: 1;
--product-image-aspect-ratio-fallback-padding-top: 100%;
--border-color-opacity: 0.25;
--color-border: #e6e6e6;
--color-background-raw: 0, 0%, 100%;
--color-foreground-raw: 0, 0%, 50%;
--color-primary-raw: 341, 82%, 58%;
--color-secondary-raw: 0, 0%, 50%;
--color-tertiary-raw: 0, 0%, 50%;
--color-quaternary-raw: 341, 82%, 58%;
--color-quinary-raw: 0, 0%, 100%;
--color-senary-raw: 160, 44%, 55%;
--color-primary-contrast-raw: 0, 0%, 100%;
--color-secondary-contrast-raw: 240, 9%, 98%;
--color-tertiary-contrast-raw: 341, 82%, 58%;
--color-quaternary-contrast-raw: 0, 0%, 100%;
--color-quinary-contrast-raw: 160, 44%, 55%;
--color-senary-contrast-raw: 0, 0%, 100%;
--color-site-header-bg: #ffffff;
--color-site-header-border: #e6e6e6;
--color-nav-text: #808080;
--color-nav-text-raw: 0, 0%, 50%;
--color-site-footer-bg: #808080;
--color-site-footer-text-raw: 0, 0%, 100%;
--color-site-footer-text: #ffffff;
--color-site-footer-border: #676767;
--color-badge-default: #e6e6e6;
--color-sale-badge-bg: #ff0000;
--color-sale-badge-text: #ffffff;
--color-sold-out-badge-bg: #808080;
--color-sold-out-badge-text: #ffffff;
--color-coming-soon-badge-bg: #fa0065;
--color-coming-soon-badge-text: #808080;
--color-new-badge-bg: #089771;
--color-new-badge-text: #000000;
--color-foreground: hsl(var(--color-foreground-raw));
--color-background: hsl(var(--color-background-raw));
--color-image-placeholder: ;
--color-primary: hsl(var(--color-primary-raw));
--color-secondary: hsl(var(--color-secondary-raw));
--color-tertiary: hsl(var(--color-tertiary-raw));
--color-quaternary: hsl(var(--color-quaternary-raw));
--color-quinary: hsl(var(--color-quinary-raw));
--color-senary: hsl(var(--color-senary-raw));
--color-primary-contrast: hsl(var(--color-primary-contrast-raw));
--color-secondary-contrast: hsl(var(--color-secondary-contrast-raw));
--color-tertiary-contrast: hsl(var(--color-tertiary-contrast-raw));
--color-quaternary-contrast: hsl(var(--color-quaternary-contrast-raw));
--color-quinary-contrast: hsl(var(--color-quinary-contrast-raw));
--color-senary-contrast: hsl(var(--color-senary-contrast-raw));
--color-box-shadow: hsla(var(--color-foreground-raw), 0.15);
--color-overlay: hsla(var(--color-background-raw), 0.7);
--color-default: var(--color-background);
--color-inverse: var(--color-foreground);
--color-discount-bg: hsla(var(--color-foreground-raw), 0.07);
--border-size--thick: 2px;
--border-size--thin: 1px;
--border--thin: var(--border-size--thin) solid var(--color-border);
--border--thick: var(--border-size--thick) solid var(--color-border);
--border-radius-arch: 120px;
--border-radius-rounded: 50px;
--box-shadow--bottom: 0 12px 20px -15px var(--color-box-shadow);
--box-shadow--all-sides: 0 0 20px var(--color-box-shadow);
--box-shadow--all-sides-small: 0 0 10px var(--color-box-shadow);
--space-drawer-sides: var(--space-medium);
--space-viewport-sides: var(--space-large);
--space-grid-gap: var(--space-large);
--space-between-product-blocks: 15px;
--scrollbar-width: 0px;
--container-max-width-copy: 45rem;
--container-width-form: 38ch;
--container-width-large: 62rem;
--container-width-medium: 40rem;
--container-width-small: 24rem;
--drawer-width: 380px;
--page-width: 100rem;
--drawer-header-height: 5rem;
--pointer-element-min-height: 44px;
--button-tag-height: calc(var(--pointer-element-min-height) * 0.75);
--site-header-height: var(--pointer-element-min-height);
--link-underline-offset: 0.25em;
--transition-duration: 200ms;
--transition-duration-long: 500ms;
--transition-timing-function: ease;
--z-index-hidden: -1;
--z-index-background: 0;
--z-index-base: 1;
--z-index-overlay: 2;
--z-index-overlay-interaction: 3;
--z-index-slideshow-interaction: 5;
--z-index-drawer-footer: 6;
--z-index-header-under-freeze: 10;
--z-index-site-footer: 90;
--z-index-pop-up-open: 92;
--z-index-pop-up-overlay: 93;
--z-index-newsletter-modal: 95;
--z-index-product-quick-add: 100;
--z-index-announcement-bar: 109;
--z-index-site-header: 110;
--z-index-site-header-heading: 111;
--z-index-skip-to-content-link: 115;
--z-index-search-on-mobile: 120;
--z-index-freeze-overlay: 195;
--z-index-header-dropdown: 199;
--z-index-drawer: 200;
--z-index-modal-overlay: 249;
--z-index-modal: 250;
--z-index-age-verifier: 300;
}
@media screen and (max-width: 767px) {
:root {
--space-grid-gap: var(--space-medium);
--space-viewport-sides: var(--space-medium);
--font-heading-size-large: calc(var(--font-heading-base-size) * 0.8);
--font-heading-size-medium: calc(var(--font-heading-base-size) * 0.6);
--font-heading-size-small: calc(var(--font-heading-base-size) * 0.5);
--font-heading-size-xsmall: 1.2rem;
}
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
background-color: var(--color-background);
box-sizing: border-box;
font-size: var(--font-body-size);
min-height: 100%;
}
body {
accent-color: var(--color-primary);
color: var(--color-foreground);
font-family: var(--font-body-family);
font-size: 1rem;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-style: var(--font-body-style);
font-weight: var(--font-body-weight);
height: 100%;
line-height: var(--font-copy-line-height);
margin: 0;
min-height: 100vh;
position: relative;
}
.image-container--product,
.image-container--product img,
.image-container--product svg,
.collection-card__image-container--rounded,
.collection-card__image-container--rounded img,
.collection-card__image-container--rounded svg {
border-radius: 5%;
}
.fade-in-image img {
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 400ms ease-in;
}
.fade-in-image.fade-in-image--loaded img,
.no-js .fade-in-image img,
.product-recommendations .fade-in-image img,
.predictive-search .fade-in-image img,
.cart-items .fade-in-image img,
.shopify-design-mode .fade-in-image img {
opacity: 1 !important;
}
@media screen and (hover: hover) and (pointer: fine) {
.media-gallery__image-container img {
opacity: 0;
transition: opacity 400ms ease-in;
}
.media-gallery__image-container.loaded img {
opacity: 1;
}
}
</style>
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-base.css?v=174809679830244173721705001541" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-buttons.css?v=164262731682714955511705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-age-verifier.css?v=30525180777022793601705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-announcement-bar.css?v=167803782825243531841705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-header.css?v=21206932719130519951705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-banner.css?v=16445593514418834851705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-accordion.css?v=65963200987086808411705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-badge.css?v=160244894907463412341705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-blog-posts.css?v=140441159234158962191705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-button-tabs.css?v=92528919229121098091705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-cards.css?v=183516587141375743071705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-cart-item.css?v=4161290069333201681705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-cart-notification.css?v=104844910849362266481705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-drawer.css?v=23566256000450066111705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-drawer-menu.css?v=52188703653764246081705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-featured-product.css?v=103754847268526083251705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-footer.css?v=154852701788736659361705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-icon-list.css?v=164115194409801822681705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-image-grid-with-text.css?v=178042278919157532701705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-line-items.css?v=159095521068809015891705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-loader.css?v=19355263322091887921705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-logo-list.css?v=8010613449526952041705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-map.css?v=90740567876701648031705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-media-gallery.css?v=167514707292629326841705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-media-with-text.css?v=124507454334224910401705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-model-viewer-ui.css?v=153797878231183032841705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-newsletter.css?v=163971429752775634511705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-pagination.css?v=12704901165428546061705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-product-card.css?v=105640475948832252181705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-promo-popup.css?v=117640515389523967361705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-results-grid.css?v=42358259600526085271705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-slider.css?v=173196918352874282941705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-component-variant-picker.css?v=5250679457463047401705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-align-display.css?v=154952393300895998631705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-animations.css?v=147808754401970877341705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-colors.css?v=105210572258142982511705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-containers.css?v=170236130488024248341705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-element-object.css?v=49985267996281173841705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-flex-grid.css?v=15039491311219373721705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-forms.css?v=72806449672412526911705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-misc.css?v=49231855123433866071705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-typography.css?v=129600671035509585171705001082" rel="stylesheet" type="text/css" media="all" />
<link href="//i-spa.co.za/cdn/shop/t/34/assets/styles-utilities-spacing.css?v=176631333561915135661705001082" rel="stylesheet" type="text/css" media="all" />
<style>
</style>
<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
<!-- BEGIN app block: shopify://apps/rt-terms-and-conditions-box/blocks/app-embed/17661ca5-aeea-41b9-8091-d8f7233e8b22 --><script>
window.roarJs = window.roarJs || {};
roarJs.LegalConfig = {
metafields: {
shop: "ispa-products.myshopify.com",
settings: {"enabled":"1","param":{"message":"I have read and agreed with the {link} ","error_message":"Please agree to the terms and conditions before making a purchase!","error_display":"dialog","greeting":{"enabled":"0","message":"Please agree to the T\u0026C before purchasing!","delay":"1"},"link_order":["link"],"links":{"link":{"label":"terms and conditions","target":"_blank","url":"https:\/\/i-spa.co.za\/pages\/ordering-shipping","policy":"terms-of-service"}},"force_enabled":"0","optional":"0","optional_message_enabled":"0","optional_message_value":"Thank you! The page will be moved to the checkout page.","optional_checkbox_hidden":"0","time_enabled":"1","time_label":"Agreed to the Terms and Conditions on","checkbox":"0"},"popup":{"title":"Terms and Conditions","width":"600","button":"Process to Checkout","icon_color":"#db0a72"},"style":{"checkbox":{"size":"20","color":"#06a63e"},"message":{"font":"inherit","size":"14","customized":{"enabled":"1","color":"#464848","accent":"#e10987","error":"#de3618"},"align":"inherit","padding":{"top":"0","right":"0","bottom":"0","left":"0"}}},"only1":"true","installer":{"138827235541":{"cart":{"selector":"#preview_container","position":"after"},"minicart":null,"product":null}}},
moneyFormat: "\u003cspan class=hidePrice\u003eR {{amount}}\u003c\/span\u003e"
}
}
</script>
<!-- END app app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext --><script type="text/javascript">
if (typeof window.formbuilder_customer != "object") {
window.formbuilder_customer = {}
}
window.FbThemeAppExtSettingsHash = {}
</script>
<!-- END app snippet --><!-- END app app block --><!-- BEGIN app block: shopify://apps/helium-customer-fields/blocks/app-embed/bab58598-3e6a-4377-aaaa-97189b15f131 --><script>
if ('CF' in window) {
window.CF.appEmbedEnabled = true;
} else {
window.CF = {
appEmbedEnabled: true,
};
}
window.CF.editAccountFormId = "";
window.CF.registrationFormId = "M6tDpn";
</script>
<!-- BEGIN app snippet: patch-registration-links --><script>
function patchRegistrationLinks() {
const PATCHABLE_LINKS_SELECTOR = 'a[href*="/account/register"]';
const search = new URLSearchParams(window.location.search);
const checkoutUrl = search.get('checkout_url');
const returnUrl = search.get('return_url');
const redirectUrl = checkoutUrl || returnUrl;
if (!redirectUrl) return;
const registrationLinks = Array.from(document.querySelectorAll(PATCHABLE_LINKS_SELECTOR));
registrationLinks.forEach(link => {
const url = new URL(link.href);
url.searchParams.set('return_url', redirectUrl);
link.href = url.href;
});
}
if (['complete', 'interactive', 'loaded'].includes(document.readyState)) {
patchRegistrationLinks();
} else {
document.addEventListener('DOMContentLoaded', () => patchRegistrationLinks());
}
</script><!-- END app snippet -->
<!-- BEGIN app snippet: monkey-patch-update --><script>
(() => {
/**
* Patches CF.customer.fetchSessionToken to not do anything if the customer is logged in.
* All storefronts should receive this update regardless of embed version.
*/
function monkeyPatchFetchSessionToken() {
if (!CF.customer.isLoggedIn) return;
CF.customer.fetchSessionToken = () => Promise.resolve(null);
}
document.addEventListener('cf:customer_ready', monkeyPatchFetchSessionToken);
})();
</script><!-- END app snippet -->
<!-- BEGIN app snippet: patch-login-grecaptcha-conflict --><script>
// Fixes a problem where both grecaptcha and hcaptcha response fields are included in the /account/login form submission
// resulting in a 404 on the /challenge page.
// This is caused by our triggerShopifyRecaptchaLoad function in initialize-forms.liquid.ejs
// The fix itself just removes the unnecessary g-recaptcha-response input
function patchLoginGrecaptchaConflict() {
Array.from(document.querySelectorAll('form')).forEach(form => {
form.addEventListener('submit', e => {
const grecaptchaResponse = form.querySelector('[name="g-recaptcha-response"]');
const hcaptchaResponse = form.querySelector('[name="h-captcha-response"]');
if (grecaptchaResponse && hcaptchaResponse) {
// Can't use both. Only keep hcaptcha response field.
grecaptchaResponse.parentElement.removeChild(grecaptchaResponse);
}
})
})
}
if (['complete', 'interactive', 'loaded'].includes(document.readyState)) {
patchLoginGrecaptchaConflict();
} else {
document.addEventListener('DOMContentLoaded', () => patchLoginGrecaptchaConflict());
}
</script><!-- END app snippet -->
<!-- BEGIN app snippet: embed-data -->
<script>
window.CF.environment =
{
"domain": "ispa-products.myshopify.com",
"baseApiUrl": "https:\/\/app.customerfields.com",
"captchaSiteKey": "6LfeYloiAAAAAOuEr6SxWJxBIEETMYnUXIJgT7HW",
"captchaEnabled": true,
"proxyPath": "\/tools\/customr",
"countries": [{"name":"Afghanistan","code":"AF"},{"name":"Åland Islands","code":"AX"},{"name":"Albania","code":"AL"},{"name":"Algeria","code":"DZ"},{"name":"Andorra","code":"AD"},{"name":"Angola","code":"AO"},{"name":"Anguilla","code":"AI"},{"name":"Antigua \u0026 Barbuda","code":"AG"},{"name":"Argentina","code":"AR","provinces":[{"name":"Buenos Aires Province","code":"B"},{"name":"Catamarca","code":"K"},{"name":"Chaco","code":"H"},{"name":"Chubut","code":"U"},{"name":"Buenos Aires (Autonomous City)","code":"C"},{"name":"Córdoba","code":"X"},{"name":"Corrientes","code":"W"},{"name":"Entre Ríos","code":"E"},{"name":"Formosa","code":"P"},{"name":"Jujuy","code":"Y"},{"name":"La Pampa","code":"L"},{"name":"La Rioja","code":"F"},{"name":"Mendoza","code":"M"},{"name":"Misiones","code":"N"},{"name":"Neuquén","code":"Q"},{"name":"Río Negro","code":"R"},{"name":"Salta","code":"A"},{"name":"San Juan","code":"J"},{"name":"San Luis","code":"D"},{"name":"Santa Cruz","code":"Z"},{"name":"Santa Fe","code":"S"},{"name":"Santiago del Estero","code":"G"},{"name":"Tierra del Fuego","code":"V"},{"name":"Tucumán","code":"T"}]},{"name":"Armenia","code":"AM"},{"name":"Aruba","code":"AW"},{"name":"Ascension Island","code":"AC"},{"name":"Australia","code":"AU","provinces":[{"name":"Australian Capital Territory","code":"ACT"},{"name":"New South Wales","code":"NSW"},{"name":"Northern Territory","code":"NT"},{"name":"Queensland","code":"QLD"},{"name":"South Australia","code":"SA"},{"name":"Tasmania","code":"TAS"},{"name":"Victoria","code":"VIC"},{"name":"Western Australia","code":"WA"}]},{"name":"Austria","code":"AT"},{"name":"Azerbaijan","code":"AZ"},{"name":"Bahamas","code":"BS"},{"name":"Bahrain","code":"BH"},{"name":"Bangladesh","code":"BD"},{"name":"Barbados","code":"BB"},{"name":"Belarus","code":"BY"},{"name":"Belgium","code":"BE"},{"name":"Belize","code":"BZ"},{"name":"Benin","code":"BJ"},{"name":"Bermuda","code":"BM"},{"name":"Bhutan","code":"BT"},{"name":"Bolivia","code":"BO"},{"name":"Bosnia \u0026 Herzegovina","code":"BA"},{"name":"Botswana","code":"BW"},{"name":"Brazil","code":"BR","provinces":[{"name":"Acre","code":"AC"},{"name":"Alagoas","code":"AL"},{"name":"Amapá","code":"AP"},{"name":"Amazonas","code":"AM"},{"name":"Bahia","code":"BA"},{"name":"Ceará","code":"CE"},{"name":"Federal District","code":"DF"},{"name":"Espírito Santo","code":"ES"},{"name":"Goiás","code":"GO"},{"name":"Maranhão","code":"MA"},{"name":"Mato Grosso","code":"MT"},{"name":"Mato Grosso do Sul","code":"MS"},{"name":"Minas Gerais","code":"MG"},{"name":"Pará","code":"PA"},{"name":"Paraíba","code":"PB"},{"name":"Paraná","code":"PR"},{"name":"Pernambuco","code":"PE"},{"name":"Piauí","code":"PI"},{"name":"Rio Grande do Norte","code":"RN"},{"name":"Rio Grande do Sul","code":"RS"},{"name":"Rio de Janeiro","code":"RJ"},{"name":"Rondônia","code":"RO"},{"name":"Roraima","code":"RR"},{"name":"Santa Catarina","code":"SC"},{"name":"São Paulo","code":"SP"},{"name":"Sergipe","code":"SE"},{"name":"Tocantins","code":"TO"}]},{"name":"British Indian Ocean Territory","code":"IO"},{"name":"British Virgin Islands","code":"VG"},{"name":"Brunei","code":"BN"},{"name":"Bulgaria","code":"BG"},{"name":"Burkina Faso","code":"BF"},{"name":"Burundi","code":"BI"},{"name":"Cambodia","code":"KH"},{"name":"Cameroon","code":"CM"},{"name":"Canada","code":"CA","provinces":[{"name":"Alberta","code":"AB"},{"name":"British Columbia","code":"BC"},{"name":"Manitoba","code":"MB"},{"name":"New Brunswick","code":"NB"},{"name":"Newfoundland and Labrador","code":"NL"},{"name":"Northwest Territories","code":"NT"},{"name":"Nova Scotia","code":"NS"},{"name":"Nunavut","code":"NU"},{"name":"Ontario","code":"ON"},{"name":"Prince Edward Island","code":"PE"},{"name":"Quebec","code":"QC"},{"name":"Saskatchewan","code":"SK"},{"name":"Yukon","code":"YT"}]},{"name":"Cape Verde","code":"CV"},{"name":"Caribbean Netherlands","code":"BQ"},{"name":"Cayman Islands","code":"KY"},{"name":"Central African Republic","code":"CF"},{"name":"Chad","code":"TD"},{"name":"Chile","code":"CL","provinces":[{"name":"Arica y Parinacota","code":"AP"},{"name":"Tarapacá","code":"TA"},{"name":"Antofagasta","code":"AN"},{"name":"Atacama","code":"AT"},{"name":"Coquimbo","code":"CO"},{"name":"Valparaíso","code":"VS"},{"name":"Santiago Metropolitan","code":"RM"},{"name":"Libertador General Bernardo O’Higgins","code":"LI"},{"name":"Maule","code":"ML"},{"name":"Ñuble","code":"NB"},{"name":"Bío Bío","code":"BI"},{"name":"Araucanía","code":"AR"},{"name":"Los Ríos","code":"LR"},{"name":"Los Lagos","code":"LL"},{"name":"Aysén","code":"AI"},{"name":"Magallanes Region","code":"MA"}]},{"name":"China","code":"CN","provinces":[{"name":"Anhui","code":"AH"},{"name":"Beijing","code":"BJ"},{"name":"Chongqing","code":"CQ"},{"name":"Fujian","code":"FJ"},{"name":"Gansu","code":"GS"},{"name":"Guangdong","code":"GD"},{"name":"Guangxi","code":"GX"},{"name":"Guizhou","code":"GZ"},{"name":"Hainan","code":"HI"},{"name":"Hebei","code":"HE"},{"name":"Heilongjiang","code":"HL"},{"name":"Henan","code":"HA"},{"name":"Hubei","code":"HB"},{"name":"Hunan","code":"HN"},{"name":"Inner Mongolia","code":"NM"},{"name":"Jiangsu","code":"JS"},{"name":"Jiangxi","code":"JX"},{"name":"Jilin","code":"JL"},{"name":"Liaoning","code":"LN"},{"name":"Ningxia","code":"NX"},{"name":"Qinghai","code":"QH"},{"name":"Shaanxi","code":"SN"},{"name":"Shandong","code":"SD"},{"name":"Shanghai","code":"SH"},{"name":"Shanxi","code":"SX"},{"name":"Sichuan","code":"SC"},{"name":"Tianjin","code":"TJ"},{"name":"Xinjiang","code":"XJ"},{"name":"Tibet","code":"YZ"},{"name":"Yunnan","code":"YN"},{"name":"Zhejiang","code":"ZJ"}]},{"name":"Christmas Island","code":"CX"},{"name":"Cocos (Keeling) Islands","code":"CC"},{"name":"Colombia","code":"CO","provinces":[{"name":"Capital District","code":"DC"},{"name":"Amazonas","code":"AMA"},{"name":"Antioquia","code":"ANT"},{"name":"Arauca","code":"ARA"},{"name":"Atlántico","code":"ATL"},{"name":"Bolívar","code":"BOL"},{"name":"Boyacá","code":"BOY"},{"name":"Caldas","code":"CAL"},{"name":"Caquetá","code":"CAQ"},{"name":"Casanare","code":"CAS"},{"name":"Cauca","code":"CAU"},{"name":"Cesar","code":"CES"},{"name":"Chocó","code":"CHO"},{"name":"Córdoba","code":"COR"},{"name":"Cundinamarca","code":"CUN"},{"name":"Guainía","code":"GUA"},{"name":"Guaviare","code":"GUV"},{"name":"Huila","code":"HUI"},{"name":"La Guajira","code":"LAG"},{"name":"Magdalena","code":"MAG"},{"name":"Meta","code":"MET"},{"name":"Nariño","code":"NAR"},{"name":"Norte de Santander","code":"NSA"},{"name":"Putumayo","code":"PUT"},{"name":"Quindío","code":"QUI"},{"name":"Risaralda","code":"RIS"},{"name":"San Andrés \u0026 Providencia","code":"SAP"},{"name":"Santander","code":"SAN"},{"name":"Sucre","code":"SUC"},{"name":"Tolima","code":"TOL"},{"name":"Valle del Cauca","code":"VAC"},{"name":"Vaupés","code":"VAU"},{"name":"Vichada","code":"VID"}]},{"name":"Comoros","code":"KM"},{"name":"Congo - Brazzaville","code":"CG"},{"name":"Congo - Kinshasa","code":"CD"},{"name":"Cook Islands","code":"CK"},{"name":"Costa Rica","code":"CR","provinces":[{"name":"Alajuela","code":"CR-A"},{"name":"Cartago","code":"CR-C"},{"name":"Guanacaste","code":"CR-G"},{"name":"Heredia","code":"CR-H"},{"name":"Limón","code":"CR-L"},{"name":"Puntarenas","code":"CR-P"},{"name":"San José","code":"CR-SJ"}]},{"name":"Croatia","code":"HR"},{"name":"Curaçao","code":"CW"},{"name":"Cyprus","code":"CY"},{"name":"Czechia","code":"CZ"},{"name":"Côte d’Ivoire","code":"CI"},{"name":"Denmark","code":"DK"},{"name":"Djibouti","code":"DJ"},{"name":"Dominica","code":"DM"},{"name":"Dominican Republic","code":"DO"},{"name":"Ecuador","code":"EC"},{"name":"Egypt","code":"EG","provinces":[{"name":"6th of October","code":"SU"},{"name":"Al Sharqia","code":"SHR"},{"name":"Alexandria","code":"ALX"},{"name":"Aswan","code":"ASN"},{"name":"Asyut","code":"AST"},{"name":"Beheira","code":"BH"},{"name":"Beni Suef","code":"BNS"},{"name":"Cairo","code":"C"},{"name":"Dakahlia","code":"DK"},{"name":"Damietta","code":"DT"},{"name":"Faiyum","code":"FYM"},{"name":"Gharbia","code":"GH"},{"name":"Giza","code":"GZ"},{"name":"Helwan","code":"HU"},{"name":"Ismailia","code":"IS"},{"name":"Kafr el-Sheikh","code":"KFS"},{"name":"Luxor","code":"LX"},{"name":"Matrouh","code":"MT"},{"name":"Minya","code":"MN"},{"name":"Monufia","code":"MNF"},{"name":"New Valley","code":"WAD"},{"name":"North Sinai","code":"SIN"},{"name":"Port Said","code":"PTS"},{"name":"Qalyubia","code":"KB"},{"name":"Qena","code":"KN"},{"name":"Red Sea","code":"BA"},{"name":"Sohag","code":"SHG"},{"name":"South Sinai","code":"JS"},{"name":"Suez","code":"SUZ"}]},{"name":"El Salvador","code":"SV","provinces":[{"name":"Ahuachapán","code":"SV-AH"},{"name":"Cabañas","code":"SV-CA"},{"name":"Chalatenango","code":"SV-CH"},{"name":"Cuscatlán","code":"SV-CU"},{"name":"La Libertad","code":"SV-LI"},{"name":"La Paz","code":"SV-PA"},{"name":"La Unión","code":"SV-UN"},{"name":"Morazán","code":"SV-MO"},{"name":"San Miguel","code":"SV-SM"},{"name":"San Salvador","code":"SV-SS"},{"name":"San Vicente","code":"SV-SV"},{"name":"Santa Ana","code":"SV-SA"},{"name":"Sonsonate","code":"SV-SO"},{"name":"Usulután","code":"SV-US"}]},{"name":"Equatorial Guinea","code":"GQ"},{"name":"Eritrea","code":"ER"},{"name":"Estonia","code":"EE"},{"name":"Eswatini","code":"SZ"},{"name":"Ethiopia","code":"ET"},{"name":"Falkland Islands","code":"FK"},{"name":"Faroe Islands","code":"FO"},{"name":"Fiji","code":"FJ"},{"name":"Finland","code":"FI"},{"name":"France","code":"FR"},{"name":"French Guiana","code":"GF"},{"name":"French Polynesia","code":"PF"},{"name":"French Southern Territories","code":"TF"},{"name":"Gabon","code":"GA"},{"name":"Gambia","code":"GM"},{"name":"Georgia","code":"GE"},{"name":"Germany","code":"DE"},{"name":"Ghana","code":"GH"},{"name":"Gibraltar","code":"GI"},{"name":"Greece","code":"GR"},{"name":"Greenland","code":"GL"},{"name":"Grenada","code":"GD"},{"name":"Guadeloupe","code":"GP"},{"name":"Guatemala","code":"GT","provinces":[{"name":"Alta Verapaz","code":"AVE"},{"name":"Baja Verapaz","code":"BVE"},{"name":"Chimaltenango","code":"CMT"},{"name":"Chiquimula","code":"CQM"},{"name":"El Progreso","code":"EPR"},{"name":"Escuintla","code":"ESC"},{"name":"Guatemala","code":"GUA"},{"name":"Huehuetenango","code":"HUE"},{"name":"Izabal","code":"IZA"},{"name":"Jalapa","code":"JAL"},{"name":"Jutiapa","code":"JUT"},{"name":"Petén","code":"PET"},{"name":"Quetzaltenango","code":"QUE"},{"name":"Quiché","code":"QUI"},{"name":"Retalhuleu","code":"RET"},{"name":"Sacatepéquez","code":"SAC"},{"name":"San Marcos","code":"SMA"},{"name":"Santa Rosa","code":"SRO"},{"name":"Sololá","code":"SOL"},{"name":"Suchitepéquez","code":"SUC"},{"name":"Totonicapán","code":"TOT"},{"name":"Zacapa","code":"ZAC"}]},{"name":"Guernsey","code":"GG"},{"name":"Guinea","code":"GN"},{"name":"Guinea-Bissau","code":"GW"},{"name":"Guyana","code":"GY"},{"name":"Haiti","code":"HT"},{"name":"Honduras","code":"HN"},{"name":"Hong Kong SAR","code":"HK","provinces":[{"name":"Hong Kong Island","code":"HK"},{"name":"Kowloon","code":"KL"},{"name":"New Territories","code":"NT"}]},{"name":"Hungary","code":"HU"},{"name":"Iceland","code":"IS"},{"name":"India","code":"IN","provinces":[{"name":"Andaman and Nicobar Islands","code":"AN"},{"name":"Andhra Pradesh","code":"AP"},{"name":"Arunachal Pradesh","code":"AR"},{"name":"Assam","code":"AS"},{"name":"Bihar","code":"BR"},{"name":"Chandigarh","code":"CH"},{"name":"Chhattisgarh","code":"CG"},{"name":"Dadra and Nagar Haveli","code":"DN"},{"name":"Daman and Diu","code":"DD"},{"name":"Delhi","code":"DL"},{"name":"Goa","code":"GA"},{"name":"Gujarat","code":"GJ"},{"name":"Haryana","code":"HR"},{"name":"Himachal Pradesh","code":"HP"},{"name":"Jammu and Kashmir","code":"JK"},{"name":"Jharkhand","code":"JH"},{"name":"Karnataka","code":"KA"},{"name":"Kerala","code":"KL"},{"name":"Ladakh","code":"LA"},{"name":"Lakshadweep","code":"LD"},{"name":"Madhya Pradesh","code":"MP"},{"name":"Maharashtra","code":"MH"},{"name":"Manipur","code":"MN"},{"name":"Meghalaya","code":"ML"},{"name":"Mizoram","code":"MZ"},{"name":"Nagaland","code":"NL"},{"name":"Odisha","code":"OR"},{"name":"Puducherry","code":"PY"},{"name":"Punjab","code":"PB"},{"name":"Rajasthan","code":"RJ"},{"name":"Sikkim","code":"SK"},{"name":"Tamil Nadu","code":"TN"},{"name":"Telangana","code":"TS"},{"name":"Tripura","code":"TR"},{"name":"Uttar Pradesh","code":"UP"},{"name":"Uttarakhand","code":"UK"},{"name":"West Bengal","code":"WB"}]},{"name":"Indonesia","code":"ID","provinces":[{"name":"Aceh","code":"AC"},{"name":"Bali","code":"BA"},{"name":"Bangka–Belitung Islands","code":"BB"},{"name":"Banten","code":"BT"},{"name":"Bengkulu","code":"BE"},{"name":"Gorontalo","code":"GO"},{"name":"Jakarta","code":"JK"},{"name":"Jambi","code":"JA"},{"name":"West Java","code":"JB"},{"name":"Central Java","code":"JT"},{"name":"East Java","code":"JI"},{"name":"West Kalimantan","code":"KB"},{"name":"South Kalimantan","code":"KS"},{"name":"Central Kalimantan","code":"KT"},{"name":"East Kalimantan","code":"KI"},{"name":"North Kalimantan","code":"KU"},{"name":"Riau Islands","code":"KR"},{"name":"Lampung","code":"LA"},{"name":"Maluku","code":"MA"},{"name":"North Maluku","code":"MU"},{"name":"North Sumatra","code":"SU"},{"name":"West Nusa Tenggara","code":"NB"},{"name":"East Nusa Tenggara","code":"NT"},{"name":"Papua","code":"PA"},{"name":"West Papua","code":"PB"},{"name":"Riau","code":"RI"},{"name":"South Sumatra","code":"SS"},{"name":"West Sulawesi","code":"SR"},{"name":"South Sulawesi","code":"SN"},{"name":"Central Sulawesi","code":"ST"},{"name":"Southeast Sulawesi","code":"SG"},{"name":"North Sulawesi","code":"SA"},{"name":"West Sumatra","code":"SB"},{"name":"Yogyakarta","code":"YO"}]},{"name":"Iraq","code":"IQ"},{"name":"Ireland","code":"IE","provinces":[{"name":"Carlow","code":"CW"},{"name":"Cavan","code":"CN"},{"name":"Clare","code":"CE"},{"name":"Cork","code":"CO"},{"name":"Donegal","code":"DL"},{"name":"Dublin","code":"D"},{"name":"Galway","code":"G"},{"name":"Kerry","code":"KY"},{"name":"Kildare","code":"KE"},{"name":"Kilkenny","code":"KK"},{"name":"Laois","code":"LS"},{"name":"Leitrim","code":"LM"},{"name":"Limerick","code":"LK"},{"name":"Longford","code":"LD"},{"name":"Louth","code":"LH"},{"name":"Mayo","code":"MO"},{"name":"Meath","code":"MH"},{"name":"Monaghan","code":"MN"},{"name":"Offaly","code":"OY"},{"name":"Roscommon","code":"RN"},{"name":"Sligo","code":"SO"},{"name":"Tipperary","code":"TA"},{"name":"Waterford","code":"WD"},{"name":"Westmeath","code":"WH"},{"name":"Wexford","code":"WX"},{"name":"Wicklow","code":"WW"}]},{"name":"Isle of Man","code":"IM"},{"name":"Israel","code":"IL"},{"name":"Italy","code":"IT","provinces":[{"name":"Agrigento","code":"AG"},{"name":"Alessandria","code":"AL"},{"name":"Ancona","code":"AN"},{"name":"Aosta Valley","code":"AO"},{"name":"Arezzo","code":"AR"},{"name":"Ascoli Piceno","code":"AP"},{"name":"Asti","code":"AT"},{"name":"Avellino","code":"AV"},{"name":"Bari","code":"BA"},{"name":"Barletta-Andria-Trani","code":"BT"},{"name":"Belluno","code":"BL"},{"name":"Benevento","code":"BN"},{"name":"Bergamo","code":"BG"},{"name":"Biella","code":"BI"},{"name":"Bologna","code":"BO"},{"name":"South Tyrol","code":"BZ"},{"name":"Brescia","code":"BS"},{"name":"Brindisi","code":"BR"},{"name":"Cagliari","code":"CA"},{"name":"Caltanissetta","code":"CL"},{"name":"Campobasso","code":"CB"},{"name":"Carbonia-Iglesias","code":"CI"},{"name":"Caserta","code":"CE"},{"name":"Catania","code":"CT"},{"name":"Catanzaro","code":"CZ"},{"name":"Chieti","code":"CH"},{"name":"Como","code":"CO"},{"name":"Cosenza","code":"CS"},{"name":"Cremona","code":"CR"},{"name":"Crotone","code":"KR"},{"name":"Cuneo","code":"CN"},{"name":"Enna","code":"EN"},{"name":"Fermo","code":"FM"},{"name":"Ferrara","code":"FE"},{"name":"Florence","code":"FI"},{"name":"Foggia","code":"FG"},{"name":"Forlì-Cesena","code":"FC"},{"name":"Frosinone","code":"FR"},{"name":"Genoa","code":"GE"},{"name":"Gorizia","code":"GO"},{"name":"Grosseto","code":"GR"},{"name":"Imperia","code":"IM"},{"name":"Isernia","code":"IS"},{"name":"L’Aquila","code":"AQ"},{"name":"La Spezia","code":"SP"},{"name":"Latina","code":"LT"},{"name":"Lecce","code":"LE"},{"name":"Lecco","code":"LC"},{"name":"Livorno","code":"LI"},{"name":"Lodi","code":"LO"},{"name":"Lucca","code":"LU"},{"name":"Macerata","code":"MC"},{"name":"Mantua","code":"MN"},{"name":"Massa and Carrara","code":"MS"},{"name":"Matera","code":"MT"},{"name":"Medio Campidano","code":"VS"},{"name":"Messina","code":"ME"},{"name":"Milan","code":"MI"},{"name":"Modena","code":"MO"},{"name":"Monza and Brianza","code":"MB"},{"name":"Naples","code":"NA"},{"name":"Novara","code":"NO"},{"name":"Nuoro","code":"NU"},{"name":"Ogliastra","code":"OG"},{"name":"Olbia-Tempio","code":"OT"},{"name":"Oristano","code":"OR"},{"name":"Padua","code":"PD"},{"name":"Palermo","code":"PA"},{"name":"Parma","code":"PR"},{"name":"Pavia","code":"PV"},{"name":"Perugia","code":"PG"},{"name":"Pesaro and Urbino","code":"PU"},{"name":"Pescara","code":"PE"},{"name":"Piacenza","code":"PC"},{"name":"Pisa","code":"PI"},{"name":"Pistoia","code":"PT"},{"name":"Pordenone","code":"PN"},{"name":"Potenza","code":"PZ"},{"name":"Prato","code":"PO"},{"name":"Ragusa","code":"RG"},{"name":"Ravenna","code":"RA"},{"name":"Reggio Calabria","code":"RC"},{"name":"Reggio Emilia","code":"RE"},{"name":"Rieti","code":"RI"},{"name":"Rimini","code":"RN"},{"name":"Rome","code":"RM"},{"name":"Rovigo","code":"RO"},{"name":"Salerno","code":"SA"},{"name":"Sassari","code":"SS"},{"name":"Savona","code":"SV"},{"name":"Siena","code":"SI"},{"name":"Syracuse","code":"SR"},{"name":"Sondrio","code":"SO"},{"name":"Taranto","code":"TA"},{"name":"Teramo","code":"TE"},{"name":"Terni","code":"TR"},{"name":"Turin","code":"TO"},{"name":"Trapani","code":"TP"},{"name":"Trentino","code":"TN"},{"name":"Treviso","code":"TV"},{"name":"Trieste","code":"TS"},{"name":"Udine","code":"UD"},{"name":"Varese","code":"VA"},{"name":"Venice","code":"VE"},{"name":"Verbano-Cusio-Ossola","code":"VB"},{"name":"Vercelli","code":"VC"},{"name":"Verona","code":"VR"},{"name":"Vibo Valentia","code":"VV"},{"name":"Vicenza","code":"VI"},{"name":"Viterbo","code":"VT"}]},{"name":"Jamaica","code":"JM"},{"name":"Japan","code":"JP","provinces":[{"name":"Hokkaido","code":"JP-01"},{"name":"Aomori","code":"JP-02"},{"name":"Iwate","code":"JP-03"},{"name":"Miyagi","code":"JP-04"},{"name":"Akita","code":"JP-05"},{"name":"Yamagata","code":"JP-06"},{"name":"Fukushima","code":"JP-07"},{"name":"Ibaraki","code":"JP-08"},{"name":"Tochigi","code":"JP-09"},{"name":"Gunma","code":"JP-10"},{"name":"Saitama","code":"JP-11"},{"name":"Chiba","code":"JP-12"},{"name":"Tokyo","code":"JP-13"},{"name":"Kanagawa","code":"JP-14"},{"name":"Niigata","code":"JP-15"},{"name":"Toyama","code":"JP-16"},{"name":"Ishikawa","code":"JP-17"},{"name":"Fukui","code":"JP-18"},{"name":"Yamanashi","code":"JP-19"},{"name":"Nagano","code":"JP-20"},{"name":"Gifu","code":"JP-21"},{"name":"Shizuoka","code":"JP-22"},{"name":"Aichi","code":"JP-23"},{"name":"Mie","code":"JP-24"},{"name":"Shiga","code":"JP-25"},{"name":"Kyoto","code":"JP-26"},{"name":"Osaka","code":"JP-27"},{"name":"Hyogo","code":"JP-28"},{"name":"Nara","code":"JP-29"},{"name":"Wakayama","code":"JP-30"},{"name":"Tottori","code":"JP-31"},{"name":"Shimane","code":"JP-32"},{"name":"Okayama","code":"JP-33"},{"name":"Hiroshima","code":"JP-34"},{"name":"Yamaguchi","code":"JP-35"},{"name":"Tokushima","code":"JP-36"},{"name":"Kagawa","code":"JP-37"},{"name":"Ehime","code":"JP-38"},{"name":"Kochi","code":"JP-39"},{"name":"Fukuoka","code":"JP-40"},{"name":"Saga","code":"JP-41"},{"name":"Nagasaki","code":"JP-42"},{"name":"Kumamoto","code":"JP-43"},{"name":"Oita","code":"JP-44"},{"name":"Miyazaki","code":"JP-45"},{"name":"Kagoshima","code":"JP-46"},{"name":"Okinawa","code":"JP-47"}]},{"name":"Jersey","code":"JE"},{"name":"Jordan","code":"JO"},{"name":"Kazakhstan","code":"KZ"},{"name":"Kenya","code":"KE"},{"name":"Kiribati","code":"KI"},{"name":"Kosovo","code":"XK"},{"name":"Kuwait","code":"KW","provinces":[{"name":"Al Ahmadi","code":"KW-AH"},{"name":"Al Asimah","code":"KW-KU"},{"name":"Al Farwaniyah","code":"KW-FA"},{"name":"Al Jahra","code":"KW-JA"},{"name":"Hawalli","code":"KW-HA"},{"name":"Mubarak Al-Kabeer","code":"KW-MU"}]},{"name":"Kyrgyzstan","code":"KG"},{"name":"Laos","code":"LA"},{"name":"Latvia","code":"LV"},{"name":"Lebanon","code":"LB"},{"name":"Lesotho","code":"LS"},{"name":"Liberia","code":"LR"},{"name":"Libya","code":"LY"},{"name":"Liechtenstein","code":"LI"},{"name":"Lithuania","code":"LT"},{"name":"Luxembourg","code":"LU"},{"name":"Macao SAR","code":"MO"},{"name":"Madagascar","code":"MG"},{"name":"Malawi","code":"MW"},{"name":"Malaysia","code":"MY","provinces":[{"name":"Johor","code":"JHR"},{"name":"Kedah","code":"KDH"},{"name":"Kelantan","code":"KTN"},{"name":"Kuala Lumpur","code":"KUL"},{"name":"Labuan","code":"LBN"},{"name":"Malacca","code":"MLK"},{"name":"Negeri Sembilan","code":"NSN"},{"name":"Pahang","code":"PHG"},{"name":"Penang","code":"PNG"},{"name":"Perak","code":"PRK"},{"name":"Perlis","code":"PLS"},{"name":"Putrajaya","code":"PJY"},{"name":"Sabah","code":"SBH"},{"name":"Sarawak","code":"SWK"},{"name":"Selangor","code":"SGR"},{"name":"Terengganu","code":"TRG"}]},{"name":"Maldives","code":"MV"},{"name":"Mali","code":"ML"},{"name":"Malta","code":"MT"},{"name":"Martinique","code":"MQ"},{"name":"Mauritania","code":"MR"},{"name":"Mauritius","code":"MU"},{"name":"Mayotte","code":"YT"},{"name":"Mexico","code":"MX","provinces":[{"name":"Aguascalientes","code":"AGS"},{"name":"Baja California","code":"BC"},{"name":"Baja California Sur","code":"BCS"},{"name":"Campeche","code":"CAMP"},{"name":"Chiapas","code":"CHIS"},{"name":"Chihuahua","code":"CHIH"},{"name":"Ciudad de Mexico","code":"DF"},{"name":"Coahuila","code":"COAH"},{"name":"Colima","code":"COL"},{"name":"Durango","code":"DGO"},{"name":"Guanajuato","code":"GTO"},{"name":"Guerrero","code":"GRO"},{"name":"Hidalgo","code":"HGO"},{"name":"Jalisco","code":"JAL"},{"name":"Mexico State","code":"MEX"},{"name":"Michoacán","code":"MICH"},{"name":"Morelos","code":"MOR"},{"name":"Nayarit","code":"NAY"},{"name":"Nuevo León","code":"NL"},{"name":"Oaxaca","code":"OAX"},{"name":"Puebla","code":"PUE"},{"name":"Querétaro","code":"QRO"},{"name":"Quintana Roo","code":"Q ROO"},{"name":"San Luis Potosí","code":"SLP"},{"name":"Sinaloa","code":"SIN"},{"name":"Sonora","code":"SON"},{"name":"Tabasco","code":"TAB"},{"name":"Tamaulipas","code":"TAMPS"},{"name":"Tlaxcala","code":"TLAX"},{"name":"Veracruz","code":"VER"},{"name":"Yucatán","code":"YUC"},{"name":"Zacatecas","code":"ZAC"}]},{"name":"Moldova","code":"MD"},{"name":"Monaco","code":"MC"},{"name":"Mongolia","code":"MN"},{"name":"Montenegro","code":"ME"},{"name":"Montserrat","code":"MS"},{"name":"Morocco","code":"MA"},{"name":"Mozambique","code":"MZ"},{"name":"Myanmar (Burma)","code":"MM"},{"name":"Namibia","code":"NA"},{"name":"Nauru","code":"NR"},{"name":"Nepal","code":"NP"},{"name":"Netherlands","code":"NL"},{"name":"New Caledonia","code":"NC"},{"name":"New Zealand","code":"NZ","provinces":[{"name":"Auckland","code":"AUK"},{"name":"Bay of Plenty","code":"BOP"},{"name":"Canterbury","code":"CAN"},{"name":"Chatham Islands","code":"CIT"},{"name":"Gisborne","code":"GIS"},{"name":"Hawke’s Bay","code":"HKB"},{"name":"Manawatū-Whanganui","code":"MWT"},{"name":"Marlborough","code":"MBH"},{"name":"Nelson","code":"NSN"},{"name":"Northland","code":"NTL"},{"name":"Otago","code":"OTA"},{"name":"Southland","code":"STL"},{"name":"Taranaki","code":"TKI"},{"name":"Tasman","code":"TAS"},{"name":"Waikato","code":"WKO"},{"name":"Wellington","code":"WGN"},{"name":"West Coast","code":"WTC"}]},{"name":"Nicaragua","code":"NI"},{"name":"Niger","code":"NE"},{"name":"Nigeria","code":"NG","provinces":[{"name":"Abia","code":"AB"},{"name":"Federal Capital Territory","code":"FC"},{"name":"Adamawa","code":"AD"},{"name":"Akwa Ibom","code":"AK"},{"name":"Anambra","code":"AN"},{"name":"Bauchi","code":"BA"},{"name":"Bayelsa","code":"BY"},{"name":"Benue","code":"BE"},{"name":"Borno","code":"BO"},{"name":"Cross River","code":"CR"},{"name":"Delta","code":"DE"},{"name":"Ebonyi","code":"EB"},{"name":"Edo","code":"ED"},{"name":"Ekiti","code":"EK"},{"name":"Enugu","code":"EN"},{"name":"Gombe","code":"GO"},{"name":"Imo","code":"IM"},{"name":"Jigawa","code":"JI"},{"name":"Kaduna","code":"KD"},{"name":"Kano","code":"KN"},{"name":"Katsina","code":"KT"},{"name":"Kebbi","code":"KE"},{"name":"Kogi","code":"KO"},{"name":"Kwara","code":"KW"},{"name":"Lagos","code":"LA"},{"name":"Nasarawa","code":"NA"},{"name":"Niger","code":"NI"},{"name":"Ogun","code":"OG"},{"name":"Ondo","code":"ON"},{"name":"Osun","code":"OS"},{"name":"Oyo","code":"OY"},{"name":"Plateau","code":"PL"},{"name":"Rivers","code":"RI"},{"name":"Sokoto","code":"SO"},{"name":"Taraba","code":"TA"},{"name":"Yobe","code":"YO"},{"name":"Zamfara","code":"ZA"}]},{"name":"Niue","code":"NU"},{"name":"Norfolk Island","code":"NF"},{"name":"North Macedonia","code":"MK"},{"name":"Norway","code":"NO"},{"name":"Oman","code":"OM"},{"name":"Pakistan","code":"PK"},{"name":"Palestinian Territories","code":"PS"},{"name":"Panama","code":"PA","provinces":[{"name":"Bocas del Toro","code":"PA-1"},{"name":"Chiriquí","code":"PA-4"},{"name":"Coclé","code":"PA-2"},{"name":"Colón","code":"PA-3"},{"name":"Darién","code":"PA-5"},{"name":"Emberá","code":"PA-EM"},{"name":"Herrera","code":"PA-6"},{"name":"Guna Yala","code":"PA-KY"},{"name":"Los Santos","code":"PA-7"},{"name":"Ngöbe-Buglé","code":"PA-NB"},{"name":"Panamá","code":"PA-8"},{"name":"West Panamá","code":"PA-10"},{"name":"Veraguas","code":"PA-9"}]},{"name":"Papua New Guinea","code":"PG"},{"name":"Paraguay","code":"PY"},{"name":"Peru","code":"PE","provinces":[{"name":"Amazonas","code":"PE-AMA"},{"name":"Ancash","code":"PE-ANC"},{"name":"Apurímac","code":"PE-APU"},{"name":"Arequipa","code":"PE-ARE"},{"name":"Ayacucho","code":"PE-AYA"},{"name":"Cajamarca","code":"PE-CAJ"},{"name":"El Callao","code":"PE-CAL"},{"name":"Cusco","code":"PE-CUS"},{"name":"Huancavelica","code":"PE-HUV"},{"name":"Huánuco","code":"PE-HUC"},{"name":"Ica","code":"PE-ICA"},{"name":"Junín","code":"PE-JUN"},{"name":"La Libertad","code":"PE-LAL"},{"name":"Lambayeque","code":"PE-LAM"},{"name":"Lima (Department)","code":"PE-LIM"},{"name":"Lima (Metropolitan)","code":"PE-LMA"},{"name":"Loreto","code":"PE-LOR"},{"name":"Madre de Dios","code":"PE-MDD"},{"name":"Moquegua","code":"PE-MOQ"},{"name":"Pasco","code":"PE-PAS"},{"name":"Piura","code":"PE-PIU"},{"name":"Puno","code":"PE-PUN"},{"name":"San Martín","code":"PE-SAM"},{"name":"Tacna","code":"PE-TAC"},{"name":"Tumbes","code":"PE-TUM"},{"name":"Ucayali","code":"PE-UCA"}]},{"name":"Philippines","code":"PH","provinces":[{"name":"Abra","code":"PH-ABR"},{"name":"Agusan del Norte","code":"PH-AGN"},{"name":"Agusan del Sur","code":"PH-AGS"},{"name":"Aklan","code":"PH-AKL"},{"name":"Albay","code":"PH-ALB"},{"name":"Antique","code":"PH-ANT"},{"name":"Apayao","code":"PH-APA"},{"name":"Aurora","code":"PH-AUR"},{"name":"Basilan","code":"PH-BAS"},{"name":"Bataan","code":"PH-BAN"},{"name":"Batanes","code":"PH-BTN"},{"name":"Batangas","code":"PH-BTG"},{"name":"Benguet","code":"PH-BEN"},{"name":"Biliran","code":"PH-BIL"},{"name":"Bohol","code":"PH-BOH"},{"name":"Bukidnon","code":"PH-BUK"},{"name":"Bulacan","code":"PH-BUL"},{"name":"Cagayan","code":"PH-CAG"},{"name":"Camarines Norte","code":"PH-CAN"},{"name":"Camarines Sur","code":"PH-CAS"},{"name":"Camiguin","code":"PH-CAM"},{"name":"Capiz","code":"PH-CAP"},{"name":"Catanduanes","code":"PH-CAT"},{"name":"Cavite","code":"PH-CAV"},{"name":"Cebu","code":"PH-CEB"},{"name":"Cotabato","code":"PH-NCO"},{"name":"Davao Occidental","code":"PH-DVO"},{"name":"Davao Oriental","code":"PH-DAO"},{"name":"Compostela Valley","code":"PH-COM"},{"name":"Davao del Norte","code":"PH-DAV"},{"name":"Davao del Sur","code":"PH-DAS"},{"name":"Dinagat Islands","code":"PH-DIN"},{"name":"Eastern Samar","code":"PH-EAS"},{"name":"Guimaras","code":"PH-GUI"},{"name":"Ifugao","code":"PH-IFU"},{"name":"Ilocos Norte","code":"PH-ILN"},{"name":"Ilocos Sur","code":"PH-ILS"},{"name":"Iloilo","code":"PH-ILI"},{"name":"Isabela","code":"PH-ISA"},{"name":"Kalinga","code":"PH-KAL"},{"name":"La Union","code":"PH-LUN"},{"name":"Laguna","code":"PH-LAG"},{"name":"Lanao del Norte","code":"PH-LAN"},{"name":"Lanao del Sur","code":"PH-LAS"},{"name":"Leyte","code":"PH-LEY"},{"name":"Maguindanao","code":"PH-MAG"},{"name":"Marinduque","code":"PH-MAD"},{"name":"Masbate","code":"PH-MAS"},{"name":"Metro Manila","code":"PH-00"},{"name":"Misamis Occidental","code":"PH-MSC"},{"name":"Misamis Oriental","code":"PH-MSR"},{"name":"Mountain","code":"PH-MOU"},{"name":"Negros Occidental","code":"PH-NEC"},{"name":"Negros Oriental","code":"PH-NER"},{"name":"Northern Samar","code":"PH-NSA"},{"name":"Nueva Ecija","code":"PH-NUE"},{"name":"Nueva Vizcaya","code":"PH-NUV"},{"name":"Occidental Mindoro","code":"PH-MDC"},{"name":"Oriental Mindoro","code":"PH-MDR"},{"name":"Palawan","code":"PH-PLW"},{"name":"Pampanga","code":"PH-PAM"},{"name":"Pangasinan","code":"PH-PAN"},{"name":"Quezon","code":"PH-QUE"},{"name":"Quirino","code":"PH-QUI"},{"name":"Rizal","code":"PH-RIZ"},{"name":"Romblon","code":"PH-ROM"},{"name":"Samar","code":"PH-WSA"},{"name":"Sarangani","code":"PH-SAR"},{"name":"Siquijor","code":"PH-SIG"},{"name":"Sorsogon","code":"PH-SOR"},{"name":"South Cotabato","code":"PH-SCO"},{"name":"Southern Leyte","code":"PH-SLE"},{"name":"Sultan Kudarat","code":"PH-SUK"},{"name":"Sulu","code":"PH-SLU"},{"name":"Surigao del Norte","code":"PH-SUN"},{"name":"Surigao del Sur","code":"PH-SUR"},{"name":"Tarlac","code":"PH-TAR"},{"name":"Tawi-Tawi","code":"PH-TAW"},{"name":"Zambales","code":"PH-ZMB"},{"name":"Zamboanga Sibugay","code":"PH-ZSI"},{"name":"Zamboanga del Norte","code":"PH-ZAN"},{"name":"Zamboanga del Sur","code":"PH-ZAS"}]},{"name":"Pitcairn Islands","code":"PN"},{"name":"Poland","code":"PL"},{"name":"Portugal","code":"PT","provinces":[{"name":"Azores","code":"PT-20"},{"name":"Aveiro","code":"PT-01"},{"name":"Beja","code":"PT-02"},{"name":"Braga","code":"PT-03"},{"name":"Bragança","code":"PT-04"},{"name":"Castelo Branco","code":"PT-05"},{"name":"Coimbra","code":"PT-06"},{"name":"Évora","code":"PT-07"},{"name":"Faro","code":"PT-08"},{"name":"Guarda","code":"PT-09"},{"name":"Leiria","code":"PT-10"},{"name":"Lisbon","code":"PT-11"},{"name":"Madeira","code":"PT-30"},{"name":"Portalegre","code":"PT-12"},{"name":"Porto","code":"PT-13"},{"name":"Santarém","code":"PT-14"},{"name":"Setúbal","code":"PT-15"},{"name":"Viana do Castelo","code":"PT-16"},{"name":"Vila Real","code":"PT-17"},{"name":"Viseu","code":"PT-18"}]},{"name":"Qatar","code":"QA"},{"name":"Réunion","code":"RE"},{"name":"Romania","code":"RO","provinces":[{"name":"Alba","code":"AB"},{"name":"Arad","code":"AR"},{"name":"Argeș","code":"AG"},{"name":"Bacău","code":"BC"},{"name":"Bihor","code":"BH"},{"name":"Bistriţa-Năsăud","code":"BN"},{"name":"Botoşani","code":"BT"},{"name":"Brăila","code":"BR"},{"name":"Braşov","code":"BV"},{"name":"Bucharest","code":"B"},{"name":"Buzău","code":"BZ"},{"name":"Caraș-Severin","code":"CS"},{"name":"Cluj","code":"CJ"},{"name":"Constanța","code":"CT"},{"name":"Covasna","code":"CV"},{"name":"Călărași","code":"CL"},{"name":"Dolj","code":"DJ"},{"name":"Dâmbovița","code":"DB"},{"name":"Galați","code":"GL"},{"name":"Giurgiu","code":"GR"},{"name":"Gorj","code":"GJ"},{"name":"Harghita","code":"HR"},{"name":"Hunedoara","code":"HD"},{"name":"Ialomița","code":"IL"},{"name":"Iași","code":"IS"},{"name":"Ilfov","code":"IF"},{"name":"Maramureş","code":"MM"},{"name":"Mehedinți","code":"MH"},{"name":"Mureş","code":"MS"},{"name":"Neamţ","code":"NT"},{"name":"Olt","code":"OT"},{"name":"Prahova","code":"PH"},{"name":"Sălaj","code":"SJ"},{"name":"Satu Mare","code":"SM"},{"name":"Sibiu","code":"SB"},{"name":"Suceava","code":"SV"},{"name":"Teleorman","code":"TR"},{"name":"Timiș","code":"TM"},{"name":"Tulcea","code":"TL"},{"name":"Vâlcea","code":"VL"},{"name":"Vaslui","code":"VS"},{"name":"Vrancea","code":"VN"}]},{"name":"Russia","code":"RU","provinces":[{"name":"Altai Krai","code":"ALT"},{"name":"Altai","code":"AL"},{"name":"Amur","code":"AMU"},{"name":"Arkhangelsk","code":"ARK"},{"name":"Astrakhan","code":"AST"},{"name":"Belgorod","code":"BEL"},{"name":"Bryansk","code":"BRY"},{"name":"Chechen","code":"CE"},{"name":"Chelyabinsk","code":"CHE"},{"name":"Chukotka Okrug","code":"CHU"},{"name":"Chuvash","code":"CU"},{"name":"Irkutsk","code":"IRK"},{"name":"Ivanovo","code":"IVA"},{"name":"Jewish","code":"YEV"},{"name":"Kabardino-Balkar","code":"KB"},{"name":"Kaliningrad","code":"KGD"},{"name":"Kaluga","code":"KLU"},{"name":"Kamchatka Krai","code":"KAM"},{"name":"Karachay-Cherkess","code":"KC"},{"name":"Kemerovo","code":"KEM"},{"name":"Khabarovsk Krai","code":"KHA"},{"name":"Khanty-Mansi","code":"KHM"},{"name":"Kirov","code":"KIR"},{"name":"Komi","code":"KO"},{"name":"Kostroma","code":"KOS"},{"name":"Krasnodar Krai","code":"KDA"},{"name":"Krasnoyarsk Krai","code":"KYA"},{"name":"Kurgan","code":"KGN"},{"name":"Kursk","code":"KRS"},{"name":"Leningrad","code":"LEN"},{"name":"Lipetsk","code":"LIP"},{"name":"Magadan","code":"MAG"},{"name":"Mari El","code":"ME"},{"name":"Moscow","code":"MOW"},{"name":"Moscow Province","code":"MOS"},{"name":"Murmansk","code":"MUR"},{"name":"Nizhny Novgorod","code":"NIZ"},{"name":"Novgorod","code":"NGR"},{"name":"Novosibirsk","code":"NVS"},{"name":"Omsk","code":"OMS"},{"name":"Orenburg","code":"ORE"},{"name":"Oryol","code":"ORL"},{"name":"Penza","code":"PNZ"},{"name":"Perm Krai","code":"PER"},{"name":"Primorsky Krai","code":"PRI"},{"name":"Pskov","code":"PSK"},{"name":"Adygea","code":"AD"},{"name":"Bashkortostan","code":"BA"},{"name":"Buryat","code":"BU"},{"name":"Dagestan","code":"DA"},{"name":"Ingushetia","code":"IN"},{"name":"Kalmykia","code":"KL"},{"name":"Karelia","code":"KR"},{"name":"Khakassia","code":"KK"},{"name":"Mordovia","code":"MO"},{"name":"North Ossetia-Alania","code":"SE"},{"name":"Tatarstan","code":"TA"},{"name":"Rostov","code":"ROS"},{"name":"Ryazan","code":"RYA"},{"name":"Saint Petersburg","code":"SPE"},{"name":"Sakha","code":"SA"},{"name":"Sakhalin","code":"SAK"},{"name":"Samara","code":"SAM"},{"name":"Saratov","code":"SAR"},{"name":"Smolensk","code":"SMO"},{"name":"Stavropol Krai","code":"STA"},{"name":"Sverdlovsk","code":"SVE"},{"name":"Tambov","code":"TAM"},{"name":"Tomsk","code":"TOM"},{"name":"Tula","code":"TUL"},{"name":"Tver","code":"TVE"},{"name":"Tyumen","code":"TYU"},{"name":"Tuva","code":"TY"},{"name":"Udmurt","code":"UD"},{"name":"Ulyanovsk","code":"ULY"},{"name":"Vladimir","code":"VLA"},{"name":"Volgograd","code":"VGG"},{"name":"Vologda","code":"VLG"},{"name":"Voronezh","code":"VOR"},{"name":"Yamalo-Nenets Okrug","code":"YAN"},{"name":"Yaroslavl","code":"YAR"},{"name":"Zabaykalsky Krai","code":"ZAB"}]},{"name":"Rwanda","code":"RW"},{"name":"Samoa","code":"WS"},{"name":"San Marino","code":"SM"},{"name":"São Tomé \u0026 Príncipe","code":"ST"},{"name":"Saudi Arabia","code":"SA"},{"name":"Senegal","code":"SN"},{"name":"Serbia","code":"RS"},{"name":"Seychelles","code":"SC"},{"name":"Sierra Leone","code":"SL"},{"name":"Singapore","code":"SG"},{"name":"Sint Maarten","code":"SX"},{"name":"Slovakia","code":"SK"},{"name":"Slovenia","code":"SI"},{"name":"Solomon Islands","code":"SB"},{"name":"Somalia","code":"SO"},{"name":"South Africa","code":"ZA","provinces":[{"name":"Eastern Cape","code":"EC"},{"name":"Free State","code":"FS"},{"name":"Gauteng","code":"GP"},{"name":"KwaZulu-Natal","code":"NL"},{"name":"Limpopo","code":"LP"},{"name":"Mpumalanga","code":"MP"},{"name":"North West","code":"NW"},{"name":"Northern Cape","code":"NC"},{"name":"Western Cape","code":"WC"}]},{"name":"South Georgia \u0026 South Sandwich Islands","code":"GS"},{"name":"South Korea","code":"KR","provinces":[{"name":"Busan","code":"KR-26"},{"name":"North Chungcheong","code":"KR-43"},{"name":"South Chungcheong","code":"KR-44"},{"name":"Daegu","code":"KR-27"},{"name":"Daejeon","code":"KR-30"},{"name":"Gangwon","code":"KR-42"},{"name":"Gwangju City","code":"KR-29"},{"name":"North Gyeongsang","code":"KR-47"},{"name":"Gyeonggi","code":"KR-41"},{"name":"South Gyeongsang","code":"KR-48"},{"name":"Incheon","code":"KR-28"},{"name":"Jeju","code":"KR-49"},{"name":"North Jeolla","code":"KR-45"},{"name":"South Jeolla","code":"KR-46"},{"name":"Sejong","code":"KR-50"},{"name":"Seoul","code":"KR-11"},{"name":"Ulsan","code":"KR-31"}]},{"name":"South Sudan","code":"SS"},{"name":"Spain","code":"ES","provinces":[{"name":"A Coruña","code":"C"},{"name":"Álava","code":"VI"},{"name":"Albacete","code":"AB"},{"name":"Alicante","code":"A"},{"name":"Almería","code":"AL"},{"name":"Asturias Province","code":"O"},{"name":"Ávila","code":"AV"},{"name":"Badajoz","code":"BA"},{"name":"Balears Province","code":"PM"},{"name":"Barcelona","code":"B"},{"name":"Burgos","code":"BU"},{"name":"Cáceres","code":"CC"},{"name":"Cádiz","code":"CA"},{"name":"Cantabria Province","code":"S"},{"name":"Castellón","code":"CS"},{"name":"Ceuta","code":"CE"},{"name":"Ciudad Real","code":"CR"},{"name":"Córdoba","code":"CO"},{"name":"Cuenca","code":"CU"},{"name":"Girona","code":"GI"},{"name":"Granada","code":"GR"},{"name":"Guadalajara","code":"GU"},{"name":"Gipuzkoa","code":"SS"},{"name":"Huelva","code":"H"},{"name":"Huesca","code":"HU"},{"name":"Jaén","code":"J"},{"name":"La Rioja Province","code":"LO"},{"name":"Las Palmas","code":"GC"},{"name":"León","code":"LE"},{"name":"Lleida","code":"L"},{"name":"Lugo","code":"LU"},{"name":"Madrid Province","code":"M"},{"name":"Málaga","code":"MA"},{"name":"Melilla","code":"ML"},{"name":"Murcia","code":"MU"},{"name":"Navarra","code":"NA"},{"name":"Ourense","code":"OR"},{"name":"Palencia","code":"P"},{"name":"Pontevedra","code":"PO"},{"name":"Salamanca","code":"SA"},{"name":"Santa Cruz de Tenerife","code":"TF"},{"name":"Segovia","code":"SG"},{"name":"Seville","code":"SE"},{"name":"Soria","code":"SO"},{"name":"Tarragona","code":"T"},{"name":"Teruel","code":"TE"},{"name":"Toledo","code":"TO"},{"name":"Valencia","code":"V"},{"name":"Valladolid","code":"VA"},{"name":"Biscay","code":"BI"},{"name":"Zamora","code":"ZA"},{"name":"Zaragoza","code":"Z"}]},{"name":"Sri Lanka","code":"LK"},{"name":"St. Barthélemy","code":"BL"},{"name":"St. Helena","code":"SH"},{"name":"St. Kitts \u0026 Nevis","code":"KN"},{"name":"St. Lucia","code":"LC"},{"name":"St. Martin","code":"MF"},{"name":"St. Pierre \u0026 Miquelon","code":"PM"},{"name":"St. Vincent \u0026 Grenadines","code":"VC"},{"name":"Sudan","code":"SD"},{"name":"Suriname","code":"SR"},{"name":"Svalbard \u0026 Jan Mayen","code":"SJ"},{"name":"Sweden","code":"SE"},{"name":"Switzerland","code":"CH"},{"name":"Taiwan","code":"TW"},{"name":"Tajikistan","code":"TJ"},{"name":"Tanzania","code":"TZ"},{"name":"Thailand","code":"TH","provinces":[{"name":"Amnat Charoen","code":"TH-37"},{"name":"Ang Thong","code":"TH-15"},{"name":"Bangkok","code":"TH-10"},{"name":"Bueng Kan","code":"TH-38"},{"name":"Buri Ram","code":"TH-31"},{"name":"Chachoengsao","code":"TH-24"},{"name":"Chai Nat","code":"TH-18"},{"name":"Chaiyaphum","code":"TH-36"},{"name":"Chanthaburi","code":"TH-22"},{"name":"Chiang Mai","code":"TH-50"},{"name":"Chiang Rai","code":"TH-57"},{"name":"Chon Buri","code":"TH-20"},{"name":"Chumphon","code":"TH-86"},{"name":"Kalasin","code":"TH-46"},{"name":"Kamphaeng Phet","code":"TH-62"},{"name":"Kanchanaburi","code":"TH-71"},{"name":"Khon Kaen","code":"TH-40"},{"name":"Krabi","code":"TH-81"},{"name":"Lampang","code":"TH-52"},{"name":"Lamphun","code":"TH-51"},{"name":"Loei","code":"TH-42"},{"name":"Lopburi","code":"TH-16"},{"name":"Mae Hong Son","code":"TH-58"},{"name":"Maha Sarakham","code":"TH-44"},{"name":"Mukdahan","code":"TH-49"},{"name":"Nakhon Nayok","code":"TH-26"},{"name":"Nakhon Pathom","code":"TH-73"},{"name":"Nakhon Phanom","code":"TH-48"},{"name":"Nakhon Ratchasima","code":"TH-30"},{"name":"Nakhon Sawan","code":"TH-60"},{"name":"Nakhon Si Thammarat","code":"TH-80"},{"name":"Nan","code":"TH-55"},{"name":"Narathiwat","code":"TH-96"},{"name":"Nong Bua Lam Phu","code":"TH-39"},{"name":"Nong Khai","code":"TH-43"},{"name":"Nonthaburi","code":"TH-12"},{"name":"Pathum Thani","code":"TH-13"},{"name":"Pattani","code":"TH-94"},{"name":"Pattaya","code":"TH-S"},{"name":"Phang Nga","code":"TH-82"},{"name":"Phatthalung","code":"TH-93"},{"name":"Phayao","code":"TH-56"},{"name":"Phetchabun","code":"TH-67"},{"name":"Phetchaburi","code":"TH-76"},{"name":"Phichit","code":"TH-66"},{"name":"Phitsanulok","code":"TH-65"},{"name":"Phra Nakhon Si Ayutthaya","code":"TH-14"},{"name":"Phrae","code":"TH-54"},{"name":"Phuket","code":"TH-83"},{"name":"Prachin Buri","code":"TH-25"},{"name":"Prachuap Khiri Khan","code":"TH-77"},{"name":"Ranong","code":"TH-85"},{"name":"Ratchaburi","code":"TH-70"},{"name":"Rayong","code":"TH-21"},{"name":"Roi Et","code":"TH-45"},{"name":"Sa Kaeo","code":"TH-27"},{"name":"Sakon Nakhon","code":"TH-47"},{"name":"Samut Prakan","code":"TH-11"},{"name":"Samut Sakhon","code":"TH-74"},{"name":"Samut Songkhram","code":"TH-75"},{"name":"Saraburi","code":"TH-19"},{"name":"Satun","code":"TH-91"},{"name":"Sing Buri","code":"TH-17"},{"name":"Si Sa Ket","code":"TH-33"},{"name":"Songkhla","code":"TH-90"},{"name":"Sukhothai","code":"TH-64"},{"name":"Suphanburi","code":"TH-72"},{"name":"Surat Thani","code":"TH-84"},{"name":"Surin","code":"TH-32"},{"name":"Tak","code":"TH-63"},{"name":"Trang","code":"TH-92"},{"name":"Trat","code":"TH-23"},{"name":"Ubon Ratchathani","code":"TH-34"},{"name":"Udon Thani","code":"TH-41"},{"name":"Uthai Thani","code":"TH-61"},{"name":"Uttaradit","code":"TH-53"},{"name":"Yala","code":"TH-95"},{"name":"Yasothon","code":"TH-35"}]},{"name":"Timor-Leste","code":"TL"},{"name":"Togo","code":"TG"},{"name":"Tokelau","code":"TK"},{"name":"Tonga","code":"TO"},{"name":"Trinidad \u0026 Tobago","code":"TT"},{"name":"Tristan da Cunha","code":"TA"},{"name":"Tunisia","code":"TN"},{"name":"Turkey","code":"TR"},{"name":"Turkmenistan","code":"TM"},{"name":"Turks \u0026 Caicos Islands","code":"TC"},{"name":"Tuvalu","code":"TV"},{"name":"U.S. Outlying Islands","code":"UM"},{"name":"Uganda","code":"UG"},{"name":"Ukraine","code":"UA"},{"name":"United Arab Emirates","code":"AE","provinces":[{"name":"Abu Dhabi","code":"AZ"},{"name":"Ajman","code":"AJ"},{"name":"Dubai","code":"DU"},{"name":"Fujairah","code":"FU"},{"name":"Ras al-Khaimah","code":"RK"},{"name":"Sharjah","code":"SH"},{"name":"Umm al-Quwain","code":"UQ"}]},{"name":"United Kingdom","code":"GB","provinces":[{"name":"British Forces","code":"BFP"},{"name":"England","code":"ENG"},{"name":"Northern Ireland","code":"NIR"},{"name":"Scotland","code":"SCT"},{"name":"Wales","code":"WLS"}]},{"name":"United States","code":"US","provinces":[{"name":"Alabama","code":"AL"},{"name":"Alaska","code":"AK"},{"name":"American Samoa","code":"AS"},{"name":"Arizona","code":"AZ"},{"name":"Arkansas","code":"AR"},{"name":"California","code":"CA"},{"name":"Colorado","code":"CO"},{"name":"Connecticut","code":"CT"},{"name":"Delaware","code":"DE"},{"name":"Washington DC","code":"DC"},{"name":"Micronesia","code":"FM"},{"name":"Florida","code":"FL"},{"name":"Georgia","code":"GA"},{"name":"Guam","code":"GU"},{"name":"Hawaii","code":"HI"},{"name":"Idaho","code":"ID"},{"name":"Illinois","code":"IL"},{"name":"Indiana","code":"IN"},{"name":"Iowa","code":"IA"},{"name":"Kansas","code":"KS"},{"name":"Kentucky","code":"KY"},{"name":"Louisiana","code":"LA"},{"name":"Maine","code":"ME"},{"name":"Marshall Islands","code":"MH"},{"name":"Maryland","code":"MD"},{"name":"Massachusetts","code":"MA"},{"name":"Michigan","code":"MI"},{"name":"Minnesota","code":"MN"},{"name":"Mississippi","code":"MS"},{"name":"Missouri","code":"MO"},{"name":"Montana","code":"MT"},{"name":"Nebraska","code":"NE"},{"name":"Nevada","code":"NV"},{"name":"New Hampshire","code":"NH"},{"name":"New Jersey","code":"NJ"},{"name":"New Mexico","code":"NM"},{"name":"New York","code":"NY"},{"name":"North Carolina","code":"NC"},{"name":"North Dakota","code":"ND"},{"name":"Northern Mariana Islands","code":"MP"},{"name":"Ohio","code":"OH"},{"name":"Oklahoma","code":"OK"},{"name":"Oregon","code":"OR"},{"name":"Palau","code":"PW"},{"name":"Pennsylvania","code":"PA"},{"name":"Puerto Rico","code":"PR"},{"name":"Rhode Island","code":"RI"},{"name":"South Carolina","code":"SC"},{"name":"South Dakota","code":"SD"},{"name":"Tennessee","code":"TN"},{"name":"Texas","code":"TX"},{"name":"Utah","code":"UT"},{"name":"Vermont","code":"VT"},{"name":"U.S. Virgin Islands","code":"VI"},{"name":"Virginia","code":"VA"},{"name":"Washington","code":"WA"},{"name":"West Virginia","code":"WV"},{"name":"Wisconsin","code":"WI"},{"name":"Wyoming","code":"WY"},{"name":"Armed Forces Americas","code":"AA"},{"name":"Armed Forces Europe","code":"AE"},{"name":"Armed Forces Pacific","code":"AP"}]},{"name":"Uruguay","code":"UY","provinces":[{"name":"Artigas","code":"UY-AR"},{"name":"Canelones","code":"UY-CA"},{"name":"Cerro Largo","code":"UY-CL"},{"name":"Colonia","code":"UY-CO"},{"name":"Durazno","code":"UY-DU"},{"name":"Flores","code":"UY-FS"},{"name":"Florida","code":"UY-FD"},{"name":"Lavalleja","code":"UY-LA"},{"name":"Maldonado","code":"UY-MA"},{"name":"Montevideo","code":"UY-MO"},{"name":"Paysandú","code":"UY-PA"},{"name":"Río Negro","code":"UY-RN"},{"name":"Rivera","code":"UY-RV"},{"name":"Rocha","code":"UY-RO"},{"name":"Salto","code":"UY-SA"},{"name":"San José","code":"UY-SJ"},{"name":"Soriano","code":"UY-SO"},{"name":"Tacuarembó","code":"UY-TA"},{"name":"Treinta y Tres","code":"UY-TT"}]},{"name":"Uzbekistan","code":"UZ"},{"name":"Vanuatu","code":"VU"},{"name":"Vatican City","code":"VA"},{"name":"Venezuela","code":"VE","provinces":[{"name":"Amazonas","code":"VE-Z"},{"name":"Anzoátegui","code":"VE-B"},{"name":"Apure","code":"VE-C"},{"name":"Aragua","code":"VE-D"},{"name":"Barinas","code":"VE-E"},{"name":"Bolívar","code":"VE-F"},{"name":"Carabobo","code":"VE-G"},{"name":"Cojedes","code":"VE-H"},{"name":"Delta Amacuro","code":"VE-Y"},{"name":"Federal Dependencies","code":"VE-W"},{"name":"Capital","code":"VE-A"},{"name":"Falcón","code":"VE-I"},{"name":"Guárico","code":"VE-J"},{"name":"Vargas","code":"VE-X"},{"name":"Lara","code":"VE-K"},{"name":"Mérida","code":"VE-L"},{"name":"Miranda","code":"VE-M"},{"name":"Monagas","code":"VE-N"},{"name":"Nueva Esparta","code":"VE-O"},{"name":"Portuguesa","code":"VE-P"},{"name":"Sucre","code":"VE-R"},{"name":"Táchira","code":"VE-S"},{"name":"Trujillo","code":"VE-T"},{"name":"Yaracuy","code":"VE-U"},{"name":"Zulia","code":"VE-V"}]},{"name":"Vietnam","code":"VN"},{"name":"Wallis \u0026 Futuna","code":"WF"},{"name":"Western Sahara","code":"EH"},{"name":"Yemen","code":"YE"},{"name":"Zambia","code":"ZM"},{"name":"Zimbabwe","code":"ZW"}],
"locale": "en",
"localeRootPath": "\/",
"adminIsLoggedIn": false
}
;
window.CF.countryOptionTags = `<option value="South Africa" data-provinces="[["Eastern Cape","Eastern Cape"],["Free State","Free State"],["Gauteng","Gauteng"],["KwaZulu-Natal","KwaZulu-Natal"],["Limpopo","Limpopo"],["Mpumalanga","Mpumalanga"],["North West","North West"],["Northern Cape","Northern Cape"],["Western Cape","Western Cape"]]">South Africa</option>
<option value="---" data-provinces="[]">---</option>
<option value="Namibia" data-provinces="[]">Namibia</option>
<option value="South Africa" data-provinces="[["Eastern Cape","Eastern Cape"],["Free State","Free State"],["Gauteng","Gauteng"],["KwaZulu-Natal","KwaZulu-Natal"],["Limpopo","Limpopo"],["Mpumalanga","Mpumalanga"],["North West","North West"],["Northern Cape","Northern Cape"],["Western Cape","Western Cape"]]">South Africa</option>`;
</script>
<!-- END app snippet -->
<!-- BEGIN app snippet: initialize-forms -->
<style id="cf-pre-init-styles">
form[action="/account"][method="post"] {
opacity: 0;
}
</style>
<script async>
(() => {
const devToolsEnabled = false;
const latestEmbedVersion = "4.15.20";
const nativeFormContainsErrors = false;
const $preInitStyles = document.querySelector('#cf-pre-init-styles');
let mountedTextEntrypoints = false;
// i.e. ?view=orig, or "email taken" following a form crash
if (onFallbackTemplate() || nativeFormContainsErrors) {
// Reveal the original form
$preInitStyles.parentElement.removeChild($preInitStyles);
return;
}
function start() {
initializeForms();
injectHiddenForms();
// Try for the next 5s to mount any dynamically injected forms.
const intervalId = setInterval(() => {
initializeForms();
}, 100);
setTimeout(() => {
clearInterval(intervalId);
}, 5000);
}
// This fires when a CF form has mounted on the page.
// More reliable than putting this in start(), since developers can manually call
// CF.initializeForms().
window.addEventListener('cf:ready', () => {
injectHiddenForms();
});
if (['interactive', 'complete', 'loaded'].includes(document.readyState)) {
start();
} else {
document.addEventListener('DOMContentLoaded', () => start());
}
window.CF.initializeForms = initializeForms;
async function initializeForms() {
// Semi-hack: Prevents older embed scripts from doing anything.
// Any embed script before 4.12.0 checks only for the presence of this attribute,
// not if it strictly equals "true".
document.documentElement.setAttribute('data-cf-initialized', 'loading');
// Only mount text entrypoints once. This is expensive and causes render blocking time on mobile.
if (!mountedTextEntrypoints) {
mountedTextEntrypoints = true;
mountTextEntrypoints();
}
const reactTarget = `<!-- BEGIN app snippet: react-target-markup --><div class="cf-react-target">
<div class="cf-preload">
<div class="cf-preload-label cf-preload-item"></div>
<div class="cf-preload-field cf-preload-item"></div>
<div class="cf-preload-label cf-preload-item"></div>
<div class="cf-preload-field cf-preload-item"></div>
<div class="cf-preload-label cf-preload-item"></div>
<div class="cf-preload-field cf-preload-item"></div>
<div class="cf-preload-label cf-preload-item"></div>
<div class="cf-preload-field cf-preload-item"></div>
<span class="cf-preload-button cf-preload-item"></span>
<span class="cf-preload-button cf-preload-item"></span>
</div>
</div><!-- END app snippet -->`;
const forms = [{"id":"M6tDpn","name":"Register","version":"4.14.1","updated_at":1681651845},{"id":"j2tneL","name":"Skincare Consultation","version":"4.14.1","updated_at":1681651818}];
const $forms = Array.from(document.querySelectorAll('form:not([data-cf-state])'));
const entrypoints = [];
for (let $form of $forms) {
if (isIgnored($form)) continue;
const id = getFormId($form);
if (!id) continue;
const formData = forms.find(form => form.id === id);
if (!formData) {
console.error(`[Customer Fields] Unable to find form data with id ${id}`);
setFormState($form, 'failed');
continue;
}
const $originalForm = $form.cloneNode(true);
// Shopify's captcha script can bind to the form that CF mounted to.
// Their submit handler eventually calls the submit method after generating
// the captcha response token, causing native submission behavior to occur.
// We do not want this, so we override it to a no-op. See #2092
$form.submit = () => {};
injectReactTarget($form);
setFormState($form, 'loading');
const entrypoint = {
$form,
registration: isRegistrationForm($form),
formId: formData.id,
updatedAt: formData.updated_at,
originalForm: $originalForm,
version: formData.version,
restore: () => restoreEntrypoint(entrypoint),
};
entrypoints.push(entrypoint);
// Required to be backwards compatible with older versions of the JS Form API, and prevent Shopify captcha
$form.setAttribute('data-cf-form', formData.id);
$form.setAttribute('action', '');
}
if ($preInitStyles && $preInitStyles.parentElement) {
$preInitStyles.parentElement.removeChild($preInitStyles);
}
if (!entrypoints.length) return;
initializeEmbedScript();
function initializeEmbedScript() {
if (!window.CF.requestedEmbedJS) {
const $script = document.createElement('script');
$script.src = getAssetUrl('customer-fields.js');
document.head.appendChild($script);
window.CF.requestedEmbedJS = true;
}
if (!window.CF.requestedEmbedCSS) {
const $link = document.createElement('link');
$link.href = getAssetUrl('customer-fields.css');
$link.rel = 'stylesheet';
$link.type = 'text/css';
document.head.appendChild($link);
window.CF.requestedEmbedCSS = true;
}
}
const fullForms = await Promise.all(entrypoints.map(e => getFormData(e.formId, e.updatedAt)));
fullForms.forEach((fullForm, index) => {
const entrypoint = entrypoints[index];
if (!fullForm) {
// fullForm can be null if the request failed one way or another.
restoreEntrypoint(entrypoint);
return;
}
if (entrypoint.formId !== fullForm.form.id) {
console.error('[Customer Fields] Entrypoint to form mismatch', form, entrypoint);
return;
}
entrypoint.form = {
...fullForm.form,
currentRevision: fullForm.revision,
};
});
if (window.CF.entrypoints) {
window.CF.entrypoints.push(...entrypoints);
if (window.CF.mountForm) {
entrypoints.forEach(entrypoint => {
window.CF.mountForm(entrypoint.form);
});
}
} else {
window.CF.entrypoints = entrypoints;
// The Core class has some logic that gets invoked as a result of this event
// that we only want to fire once, so let's not emit this event multiple times.
document.dispatchEvent(new CustomEvent('cf:entrypoints_ready'));
}
function getFormData(formId, updatedAt) {
return fetch(`https://app.customerfields.com/embed_api/v4/forms/${formId}.json?v=${updatedAt}`, {
headers: {
'X-Shopify-Shop-Domain': "ispa-products.myshopify.com"
}
}).then(response => {
if (response.ok) return response.json();
console.error(`[Customer Fields] Received non-OK response from the back-end when fetching form ${formId}`)
return null;
}).catch((err) => {
console.error(`[Customer Fields] Encountered unknown error while fetching form ${formId}`, err);
return null;
});
}
function restoreEntrypoint(entrypoint) {
// This has a side effect of removing the Form class' submit handlers.
// Previously this only replaced the original children within the form, but the submit event
// was still being handled by our script.
entrypoint.$form.replaceWith(entrypoint.originalForm);
// Opacity was set to 0 with the #cf-pre-init-styles element
entrypoint.$form.style.opacity = 1;
console.error(`[Customer Fields] Encountered an issue while mounting form, reverting to original form contents.`, entrypoint);
// Remove from CF.entrypoints so that Core doesn't try to mount to it
entrypoints.splice(entrypoints.indexOf(entrypoint), 1);
}
function getAssetUrl(filename) {
// We changed this to always get the latest embed assets
// 4.15.7 included a crucial hotfix for recaptcha, see #2028
return `https://static.customerfields.com/releases/${latestEmbedVersion}/${filename}`;
}
function injectReactTarget($form) {
const containsReactTarget = !!$form.querySelector('.cf-react-target');
if (containsReactTarget) return;
$form.innerHTML = reactTarget;
}
function isIgnored($form) {
return $form.getAttribute('data-cf-ignore') === 'true';
}
function isEditAccountForm($form) {
return $form.getAttribute('data-cf-edit-account') === 'true';
}
function isVintageRegistrationForm($form) {
return (
window.location.pathname.includes('/account/register')
&& $form.id === 'create_customer'
&& !!$form.getAttribute('data-cf-form')
);
}
function isRegistrationForm($form) {
try {
const isWithinAppBlock = !!$form.closest('.cf-form-block');
if (isWithinAppBlock) return false;
const formActionUrl = new URL($form.action);
const matchesShopDomain = formActionUrl.host === window.location.host;
const hasAccountPath = formActionUrl.pathname.endsWith('/account');
const hasPostMethod = $form.method.toLowerCase() === 'post';
const $formTypeInput = $form.querySelector('[name="form_type"]')
const hasCreateCustomerFormType = $formTypeInput && $formTypeInput.value === 'create_customer';
return (matchesShopDomain && hasAccountPath && hasPostMethod) || hasCreateCustomerFormType;
} catch (err) {
return false;
}
}
function mountTextEntrypoints() {
const tree = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, (node) => {
if (typeof node.data !== 'string' || !node.data) return NodeFilter.FILTER_REJECT;
return node.data.includes('data-cf-form="') ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
});
/**
* Walks through every text node on the document that contains 'data-cf-form="' and attempts to
* splice a form element in place of every shortcode.
*
* @type Node[]
*/
while (tree.nextNode()) {
let node = tree.currentNode;
const parser = new DOMParser();
while (entrypointContent = node.data.match(/<form.*data-cf-form="[a-zA-Z0-9]+".*>.*<\/form>/)) {
const [match] = entrypointContent;
const doc = parser.parseFromString(match, 'text/html');
const $form = doc.body.firstElementChild;
// Substring is better than split here in case the text node contains multiple forms.
const beforeText = node.data.substring(0, node.data.indexOf(match));
const afterText = node.data.substring(node.data.indexOf(match) + match.length);
node.replaceWith($form);
node.data = node.data.replace(match, '');
if (beforeText) $form.insertAdjacentText('beforebegin', beforeText);
if (afterText) {
$form.insertAdjacentText('afterend', afterText);
// Continue scanning the rest of the node text in case there are more forms
node = $form.nextSibling;
}
}
}
}
function getFormId($form) {
const currentFormId = $form.getAttribute('data-cf-form');
let id;
if (isEditAccountForm($form)) {
id = "";
} else if (isVintageRegistrationForm($form) || isRegistrationForm($form)) {
id = "M6tDpn";
}
return id || currentFormId;
}
function setFormState($form, state) {
$form.setAttribute('data-cf-state', state);
}
}
function onFallbackTemplate() {
const params = new URLSearchParams(window.location.search);
return location.pathname.includes('/account/register') && params.get('view') === 'orig';
}
function injectHiddenForms() {
if (!devToolsEnabled && !CF.entrypoints?.length) return;
if (document.querySelector('#cf_hidden_forms')) return;
const container = document.createElement('div');
container.id = "cf_hidden_forms";
container.style.display = 'none';
container.setAttribute('aria-hidden', 'true');
document.body.appendChild(container);
const loginForm = createLoginForm();
const recoverForm = createRecoverPasswordForm();
container.appendChild(loginForm);
container.appendChild(recoverForm);
if (window.Shopify.captcha) {
// Only applicable for grecaptcha shops, but also safe for hcaptcha
triggerShopifyRecaptchaLoad(container);
window.Shopify.captcha.protect(loginForm);
window.Shopify.captcha.protect(recoverForm);
}
}
function triggerShopifyRecaptchaLoad(container) {
if (document.getElementById('cf-hidden-recaptcha-trigger__create_customer')) return;
if (document.getElementById('cf-hidden-recaptcha-trigger__contact')) return;
// Triggering a focus event on a form causes Shopify to load their recaptcha script.
// This allows our Customer class to handle the copying/injecting of `grecaptcha` so we can
// handle multiple `grecaptcha` instances. See methods `injectRecaptchaScript`
// and `captureShopifyGrecaptcha` in `Customer.ts`.
// Note: We have to try both types, in case the merchant has only one of the two recaptcha
// options checked
const $customerRecaptchaForm = createDummyRecaptchaForm('/account', 'create_customer');
container.appendChild($customerRecaptchaForm);
const $contactRecaptchaForm = createDummyRecaptchaForm('/contact', 'contact');
container.appendChild($contactRecaptchaForm);
triggerFocusEvent($customerRecaptchaForm);
triggerFocusEvent($contactRecaptchaForm);
}
function createDummyRecaptchaForm(action, type) {
const dummyRecaptchaForm = document.createElement('form');
dummyRecaptchaForm.action = action;
dummyRecaptchaForm.method = "post";
dummyRecaptchaForm.id = `cf-hidden-recaptcha-trigger__${type}`;
dummyRecaptchaForm.setAttribute('data-cf-ignore', 'true');
dummyRecaptchaForm.setAttribute('aria-hidden', 'true');
dummyRecaptchaForm.style.display = 'none';
const formTypeInput = document.createElement('input');
formTypeInput.name = "form_type"
formTypeInput.setAttribute('value', type);
dummyRecaptchaForm.appendChild(formTypeInput);
return dummyRecaptchaForm;
}
function triggerFocusEvent(element) {
const event = new Event('focusin', { bubbles: true, cancelable: false });
element.dispatchEvent(event);
}
function createLoginForm() {
const form = createDummyRecaptchaForm('/account/login', 'customer_login');
const email = document.createElement('input');
email.name = 'customer[email]';
const password = document.createElement('input');
password.name = 'customer[password]';
const redirect = document.createElement('input');
redirect.name = 'return_to';
form.appendChild(email);
form.appendChild(password);
form.appendChild(redirect);
form.setAttribute('aria-hidden', 'true');
return form;
}
function createRecoverPasswordForm() {
const parser = new DOMParser();
const result = parser.parseFromString(`<form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="✓" /><input name="email" value="" /><input name="return_to" value="" /></form>`, 'text/html');
const form = result.querySelector('form');
form.setAttribute('aria-hidden', 'true');
form.id = "cf_recover_password_form";
return form;
}
})();
</script>
<!-- END app snippet -->
<!-- BEGIN app snippet: theme-data --><script>
document.addEventListener('DOMContentLoaded', async () => {
let theme;
if (window.BOOMR) {
theme = {
name: window.BOOMR.themeName,
version: window.BOOMR.themeVersion,
}
}
if (theme) {
document.documentElement.setAttribute('data-theme-name', theme.name);
document.documentElement.setAttribute('data-theme-version', theme.version);
}
});
</script><!-- END app snippet -->
<!-- BEGIN app snippet: form-preload-style --><style>
.cf-preload {
margin-top: 50px;
opacity: 0.5;
text-align: left;
}
.cf-preload-item {
position: relative;
overflow: hidden;
background: #e2e2e2;
border-radius: 4px;
display: block !important;
}
.cf-preload-item:before {
content: '';
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.5), rgba(255,255,255,0.5), rgba(255,255,255,0));
animation: cf-preload 1s cubic-bezier(0.33, 0.8, 0.85, 0.77) infinite;
z-index: 1;
}
.cf-preload-label {
display: inline-block !important;
width: 50%;
height: 20px;
background: #eee;
margin-bottom: 5px;
}
.cf-preload-field {
margin-bottom: 25px;
height: 40px;
}
.cf-preload-button {
display: inline-block !important;
width: 120px;
margin-right: 15px;
height: 40px;
}
.cf-form-inner {
animation: cf-fadein 500ms cubic-bezier(0.11, 0.33, 0.24, 1);
}
@keyframes cf-preload {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(100%);
opacity: 1;
}
}
@keyframes cf-fadein {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
</style><!-- END app snippet -->
<!-- BEGIN app snippet: inject-edit-link --><!-- END app snippet -->
<!-- BEGIN app snippet: language --><script>
window.CF.language = window.CF.language || {};
window.CF.language.editAccountHeading = "Edit account";
window.CF.language.editAccountBackLinkText = "Back to account";
</script><!-- END app snippet -->
<!-- BEGIN app snippet: developer-tools -->
<script>
(function() {
const callbacksHandled = [];
function handleCallback(callback) {
if (callbacksHandled.indexOf(callback) > -1) return;
callback();
callbacksHandled.push(callback);
};
function domIsReady() {
return /complete|interactive|loaded/.test(document.readyState);
};
function customerExistsInWindow() {
const customerPresent = ('customer' in window.CF);
if (!customerPresent) return false;
const hasCaptchaEnabled = document.body.getAttribute('data-cf-captcha-enabled') === 'true';
if (hasCaptchaEnabled) {
const captchaReady = document.body.getAttribute('data-cf-captcha-ready') === 'true';
if (!captchaReady) return false;
}
return true;
};
function embedFormHasMounted() {
return !!document.querySelector('.cf-form-inner');
};
function customerReady(callback) {
if (customerExistsInWindow()) {
handleCallback(callback);
} else {
function createListener() {
document.addEventListener("cf:customer_ready", function() {
handleCallback(callback);
});
};
if (domIsReady()) {
createListener();
} else {
document.addEventListener("DOMContentLoaded", function() {
if (customerExistsInWindow()) {
handleCallback(callback);
} else {
createListener();
}
});
}
}
}
function formsReady(callback) {
if (embedFormHasMounted()) {
handleCallback(callback);
} else {
function createListener() {
document.addEventListener("cf:ready", function() {
handleCallback(callback);
});
};
if (domIsReady()) {
createListener();
} else {
document.addEventListener("DOMContentLoaded", function() {
if (embedFormHasMounted()) {
handleCallback(callback);
} else {
createListener();
}
});
}
}
};
window.CF.customerReady = customerReady;
window.CF.ready = formsReady;
window.CF.customerReady = () => {
console.warn('[Customer Fields] In order to access CF.customerReady, you need to enable developer tools in the Customer Fields app embed.');
}
function initializeApiScript() {
if (window.CF.requestedAPI) return;
window.CF.requestedAPI = true;
const $script = document.createElement('script');
$script.src = getAssetUrl('cf-api.js');
document.head.appendChild($script);
}
function getAssetUrl(filename) {
return `https://static.customerfields.com/releases/4.15.20/${filename}`;
}
})();
</script>
<!-- END app snippet -->
<!-- END app app block --><!-- BEGIN app block: shopify://apps/wishlist-hero/blocks/app-embed/a9a5079b-59e8-47cb-b659-ecf1c60b9b72 -->
<script type="text/javascript">
window.wishlisthero_buttonProdPageClasses = [];
window.wishlisthero_cartDotClasses = [];
</script>
<!-- BEGIN app snippet: extraStyles -->
<style></style>
<!-- END app snippet -->
<!-- BEGIN app snippet: renderAssets -->
<link
rel="preload"
href="https://cdn.shopify.com/extensions/b0a8d3e3-4142-48b5-aaad-3b4a4de0b7fa/wishlist-hero-63/assets/default.css"
as="style"
onload="this.onload=null;this.rel='stylesheet'">
<noscript><link href="//cdn.shopify.com/extensions/b0a8d3e3-4142-48b5-aaad-3b4a4de0b7fa/wishlist-hero-63/assets/default.css" rel="stylesheet" type="text/css" media="all" /></noscript>
<script defer src="https://cdn.shopify.com/extensions/b0a8d3e3-4142-48b5-aaad-3b4a4de0b7fa/wishlist-hero-63/assets/default.js"></script>
<!-- END app snippet -->
<script type='text/javascript'>
try{
var scr_bdl_path = "https://cdn.shopify.com/extensions/b0a8d3e3-4142-48b5-aaad-3b4a4de0b7fa/wishlist-hero-63/assets/bundle2.js";
window._wh_asset_path = scr_bdl_path.substring(0,scr_bdl_path.lastIndexOf("/")) + "/";
}catch(e){ console.log(e)}
try{
window.WishListHero_setting = {"ButtonColor":"rgba(5, 164, 114, 1)","IconColor":"rgba(255, 255, 255, 1)","IconType":"Heart","ButtonTextBeforeAdding":"ADD TO WISHLIST","ButtonTextAfterAdding":"ADDED TO WISHLIST","AnimationAfterAddition":"Blink","ButtonTextAddToCart":"ADD TO CART","ButtonTextAddAllToCart":"ADD ALL TO CART","ButtonTextRemoveAllToCart":"REMOVE ALL FROM WISHLIST","AddedProductNotificationText":"Product added to wishlist successfully","AddedProductToCartNotificationText":"Product added to cart successfully","ViewCartLinkText":"View Cart","SharePopup_TitleText":"Share My wishlist","SharePopup_shareBtnText":"Share","SharePopup_shareHederText":"Share on Social Networks","SharePopup_shareCopyText":"Or copy Wishlist link to share","SharePopup_shareCancelBtnText":"cancel","SharePopup_shareCopyBtnText":"copy","SendEMailPopup_BtnText":"send email","SendEMailPopup_FromText":"From Name","SendEMailPopup_ToText":"To email","SendEMailPopup_BodyText":"Body","SendEMailPopup_SendBtnText":"send","SendEMailPopup_TitleText":"Send My Wislist via Email","AddProductMessageText":"Are you sure you want to add all items to cart ?","RemoveProductMessageText":"Are you sure you want to remove this item from your wishlist ?","RemoveAllProductMessageText":"Are you sure you want to remove all items from your wishlist ?","RemovedProductNotificationText":"Product removed from wishlist successfully","AddAllOutOfStockProductNotificationText":"There seems to have been an issue adding items to cart, please try again later","RemovePopupOkText":"ok","RemovePopup_HeaderText":"ARE YOU SURE?","ViewWishlistText":"View wishlist","EmptyWishlistText":"there are no items in this wishlist","BuyNowButtonText":"Buy Now","BuyNowButtonColor":"rgb(222, 11, 105)","BuyNowTextButtonColor":"rgb(255, 255, 255)","Wishlist_Title":"My Wishlist","WishlistHeaderTitleAlignment":"Left","WishlistProductImageSize":"Normal","PriceColor":"rgba(255, 0, 103, 1)","HeaderFontSize":"30","PriceFontSize":"18","ProductNameFontSize":"16","LaunchPointType":"header_menu","DisplayWishlistAs":"popup_window","DisplayButtonAs":"button_with_icon","PopupSize":"md","HideAddToCartButton":false,"NoRedirectAfterAddToCart":false,"DisableGuestCustomer":false,"LoginPopupContent":"Please login to save your wishlist across devices.","LoginPopupLoginBtnText":"Login","LoginPopupContentFontSize":"20","NotificationPopupPosition":"center","WishlistButtonTextColor":"rgba(255, 255, 255, 1)","EnableRemoveFromWishlistAfterAddButtonText":"REMOVE FROM WISHLIST","_id":"5f6f097e6a86986de7746943","EnableCollection":true,"EnableShare":true,"RemovePowerBy":true,"EnableFBPixel":true,"DisapleApp":false,"FloatPointPossition":"left","HeartStateToggle":true,"HeaderMenuItemsIndicator":true,"EnableRemoveFromWishlistAfterAdd":true,"ButtonTextOutOfStock":"OUT OF STOCK","SendEMailPopup_SendNotificationText":"email sent successfully","SharePopup_shareCopiedText":"Copied","ThrdParty_Trans_active":false,"Shop":"ispa-products.myshopify.com","shop":"ispa-products.myshopify.com","Status":"Active","Plan":"GOLD_PLUS"};
if(typeof(window.WishListHero_setting_theme_override) != "undefined"){
window.WishListHero_setting = {
...window.WishListHero_setting,
...window.WishListHero_setting_theme_override
};
}
// Done
}catch(e){ console.error('Error loading config',e); }
</script>
<script src="https://cdn.shopify.com/extensions/b0a8d3e3-4142-48b5-aaad-3b4a4de0b7fa/wishlist-hero-63/assets/bundle2.js" defer></script>
<!-- BEGIN app snippet: TransArray -->
<script>
window.WLH_reload_translations = function() {
let _wlh_res = {};
if (window.WishListHero_setting['ThrdParty_Trans_active']) {
window.WishListHero_setting["ButtonTextBeforeAdding"] = "";
_wlh_res["ButtonTextBeforeAdding"] = "";
window.WishListHero_setting["ButtonTextAfterAdding"] = "";
_wlh_res["ButtonTextAfterAdding"] = "";
window.WishListHero_setting["ButtonTextAddToCart"] = "";
_wlh_res["ButtonTextAddToCart"] = "";
window.WishListHero_setting["ButtonTextOutOfStock"] = "";
_wlh_res["ButtonTextOutOfStock"] = "";
window.WishListHero_setting["ButtonTextAddAllToCart"] = "";
_wlh_res["ButtonTextAddAllToCart"] = "";
window.WishListHero_setting["ButtonTextRemoveAllToCart"] = "";
_wlh_res["ButtonTextRemoveAllToCart"] = "";
window.WishListHero_setting["AddedProductNotificationText"] = "";
_wlh_res["AddedProductNotificationText"] = "";
window.WishListHero_setting["AddedProductToCartNotificationText"] = "";
_wlh_res["AddedProductToCartNotificationText"] = "";
window.WishListHero_setting["ViewCartLinkText"] = "";
_wlh_res["ViewCartLinkText"] = "";
window.WishListHero_setting["SharePopup_TitleText"] = "";
_wlh_res["SharePopup_TitleText"] = "";
window.WishListHero_setting["SharePopup_shareBtnText"] = "";
_wlh_res["SharePopup_shareBtnText"] = "";
window.WishListHero_setting["SharePopup_shareHederText"] = "";
_wlh_res["SharePopup_shareHederText"] = "";
window.WishListHero_setting["SharePopup_shareCopyText"] = "";
_wlh_res["SharePopup_shareCopyText"] = "";
window.WishListHero_setting["SharePopup_shareCancelBtnText"] = "";
_wlh_res["SharePopup_shareCancelBtnText"] = "";
window.WishListHero_setting["SharePopup_shareCopyBtnText"] = "";
_wlh_res["SharePopup_shareCopyBtnText"] = "";
window.WishListHero_setting["SendEMailPopup_BtnText"] = "";
_wlh_res["SendEMailPopup_BtnText"] = "";
window.WishListHero_setting["SendEMailPopup_FromText"] = "";
_wlh_res["SendEMailPopup_FromText"] = "";
window.WishListHero_setting["SendEMailPopup_ToText"] = "";
_wlh_res["SendEMailPopup_ToText"] = "";
window.WishListHero_setting["SendEMailPopup_BodyText"] = "";
_wlh_res["SendEMailPopup_BodyText"] = "";
window.WishListHero_setting["SendEMailPopup_SendBtnText"] = "";
_wlh_res["SendEMailPopup_SendBtnText"] = "";
window.WishListHero_setting["SendEMailPopup_SendNotificationText"] = "";
_wlh_res["SendEMailPopup_SendNotificationText"] = "";
window.WishListHero_setting["SendEMailPopup_TitleText"] = "";
_wlh_res["SendEMailPopup_TitleText"] = "";
window.WishListHero_setting["AddProductMessageText"] = "";
_wlh_res["AddProductMessageText"] = "";
window.WishListHero_setting["RemoveProductMessageText"] = "";
_wlh_res["RemoveProductMessageText"] = "";
window.WishListHero_setting["RemoveAllProductMessageText"] = "";
_wlh_res["RemoveAllProductMessageText"] = "";
window.WishListHero_setting["RemovedProductNotificationText"] = "";
_wlh_res["RemovedProductNotificationText"] = "";
window.WishListHero_setting["AddAllOutOfStockProductNotificationText"] = "";
_wlh_res["AddAllOutOfStockProductNotificationText"] = "";
window.WishListHero_setting["RemovePopupOkText"] = "";
_wlh_res["RemovePopupOkText"] = "";
window.WishListHero_setting["RemovePopup_HeaderText"] = "";
_wlh_res["RemovePopup_HeaderText"] = "";
window.WishListHero_setting["ViewWishlistText"] = "";
_wlh_res["ViewWishlistText"] = "";
window.WishListHero_setting["EmptyWishlistText"] = "";
_wlh_res["EmptyWishlistText"] = "";
window.WishListHero_setting["BuyNowButtonText"] = "";
_wlh_res["BuyNowButtonText"] = "";
window.WishListHero_setting["Wishlist_Title"] = "";
_wlh_res["Wishlist_Title"] = "";
window.WishListHero_setting["LoginPopupContent"] = "";
_wlh_res["LoginPopupContent"] = "";
window.WishListHero_setting["LoginPopupLoginBtnText"] = "";
_wlh_res["LoginPopupLoginBtnText"] = "";
window.WishListHero_setting["EnableRemoveFromWishlistAfterAddButtonText"] = "";
_wlh_res["EnableRemoveFromWishlistAfterAddButtonText"] = "";
window.WishListHero_setting["LowStockEmailSubject"] = "";
_wlh_res["LowStockEmailSubject"] = "";
window.WishListHero_setting["OnSaleEmailSubject"] = "";
_wlh_res["OnSaleEmailSubject"] = "";
}
return _wlh_res;
}
window.WLH_reload_translations();
</script><!-- END app snippet -->
<style>
.site-header__container--has-menu {
grid-template-areas: "menu-toggle menu-toggle heading search wishlist cart";
}
.wishlist-hero-header-icon{
align-items: center;
color: var(--button-foreground-color);
display: flex;
justify-content: center;
min-height: var(--pointer-element-min-height);
min-width: var(--pointer-element-min-height);
text-decoration: none;
margin-left: -5px;
}
@media screen and (min-width: 900px){
.site-header__container--has-menu.site-header__container--accounts-enabled.site-header__container--middle-left.site-header__container--has-search {
grid-template-areas: "heading inline-menu search account wishlist cart";
grid-template-columns: max-content minmax(0,1fr) var(--icon-width) var(--icon-width) var(--icon-width);
}
}
#wishlist-hero-product-page-button button{
width: 100%;
}
.site-header__icon span.wishlist-hero-items-count.wishlist-hero-items-count-exists {
display: none !important;
}
@media screen and (max-width: 767px){
.site-header__heading{
margin-right: -30px;
}
.site-header__search{
margin-right: -10px;
}
.site-header__cart{
margin-left: -20px;
}
.wishlist-hero-header-icon{
margin-left: -15px;
}
</style><!-- END app app block --><!-- BEGIN app block: shopify://apps/webpanda-login-to-see-price/blocks/app-embed/e096f673-8110-4907-bc30-a026a34a7e70 -->
<style type="text/css">
.wp-not-logged-wrapper {
padding: 8px !important;
text-align: center !important;
position: relative;
z-index: 2;
}
.wp-not-logged-wrapper p {
margin: 0;
padding: 0;
}
.wp-not-logged-wrapper a {
text-decoration: underline;
cursor: pointer;
}
.price.price--on-sale.show-price-guest .price__sale,
.show-price-guest.price:not(.price--on-sale) .price__regular,
.price.price--on-sale .show-price-guest .price__sale,
.price:not(.price--on-sale) .show-price-guest .price__regular,
.cart__items .hide-price-guest,
.mini-cart .hide-price-guest,
.miniCart .hide-price-guest {
display: block !important;
}
.hide-price-guest, .hidePrice, .current_price.js-current-price .money, .grid-product__price .money, form[action*="/cart/add"] input[type="submit"], form[action*="/cart/add"] button, .shopify-payment-button, .cb_bundles, button.quick-add-btn, .quickshop-button, .atc--button, .cbb-also-bought-add-to-cart-button {
display: none !important;
}
.show-price-guest .hide-price-guest, .show-price-guest .hidePrice, .show-price-guest.product-price .money, .cart__footer .totals .hide-price-guest, .cart__footer .totals .hidePrice, .show-price-guest .grid-product__price .money {
display: inline !important;
} .grid--view-items .full-width-link {margin-bottom: 55px;} .price-separator {display: none;} .show-price-guest.grid-product__price .money, .js-cart-checkout-button .hidePrice, .body--template-cart .hidePrice {display: inline !important;} .js-cart-checkout-button .hidePrice {margin-left: 10px;}
</style>
<script>
var wpCustomerIsLogged = false;
var wpCustomerIsLoggedBasic = false;
let wpHidePriceSettings = {"subscription":2,"hide_price_enabled":true,"message":"{LOGIN} | {REGISTRATION} to view price & buy","message_logged_customers":"The product is not available for your account","label_login":"Login","label_registration":"Register","font_size":14.0,"style_by_page":false,"font_size_listing_page":14.0,"font_size_product_page":14.0,"font_size_search_page":14.0,"text_color":"#fdfdfd","has_background_color":true,"background_color":"#fa0072","has_border":true,"border_width":2.0,"border_color":"#ffffff","border_radius":8.0,"has_custom_login":false,"login_url":null,"has_custom_registration":false,"registration_url":null,"by_product_id":true,"by_product_tags":false,"by_collection":false,"product_tags":"purlés","language_config":"[{\"language\":\"fr\",\"message\":\"\",\"loginText\":\"\",\"registerText\":\"\"}]","by_customer_tags":false,"customer_tags":"","depth":2,"depth_on_search":5,"depth_on_listings":0,"parent_depth":2,"parent_depth_on_search":2,"custom_price_selector":".grid-product__price .money","custom_cart_selector":".cbb-also-bought-add-to-cart-button","force_hide_on_cart":false,"force_price_selector":null,"force_cart_selector":null,"cart_display":null,"quick_view_selector":null,"variant_selector":"variant-selects .variant-picker__buttons-label, variant-selects select option","redirect_after_login":true};
</script>
<!-- END app app block --><script src="https://cdn.shopify.com/extensions/ad953ae4-5a4e-4fb8-a8ea-30d75071d562/1.2.0/assets/legal.js" type="text/javascript" defer="defer"></script>
<link href="https://cdn.shopify.com/extensions/ad953ae4-5a4e-4fb8-a8ea-30d75071d562/1.2.0/assets/legal.css" rel="stylesheet" type="text/css" media="all">
<script src="https://cdn.shopify.com/extensions/b498954a-4fe8-4021-b491-fd259658cd84/hextom-shipping-bar-48/assets/freeshippingbar.js" type="text/javascript" defer="defer"></script>
<script src="https://cdn.shopify.com/extensions/78d1a909-02f9-430b-a819-8b063adf2e65/hulk-form-builder-3/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
<script src="https://cdn.shopify.com/extensions/8227fdb9-cfa9-43f3-980f-4ad41561e841/kb-back-in-stock-50/assets/cartbite-embed.js" type="text/javascript" defer="defer"></script>
<script src="https://cdn.shopify.com/extensions/c7aed416-1f3d-4863-bbe9-b1435bf8107c/omnisend-email-marketing-sms-24/assets/omnisend-in-shop.js" type="text/javascript" defer="defer"></script>
<link href="https://cdn.shopify.com/extensions/bff1caad-974b-4a18-baf8-5cb54be0a6cc/whatsapp-chat-widget-29/assets/whatsapp-style.min.css" rel="stylesheet" type="text/css" media="all">
<script src="https://cdn.shopify.com/extensions/d53887bc-92ab-4399-b40f-e849835b3a34/webpanda-login-to-see-price-76/assets/hide_main.js" type="text/javascript" defer="defer"></script>
<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {var session_token = document.cookie.match(/_shopify_s=([^;]*)/);function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 23548351,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token: session_token && session_token.length === 2 ? session_token[1] : "",page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
<script id="web-pixels-manager-setup">(function d(d,e,r,a,n){var o,i,t,s,l=(i=(o={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,t=o.legacy,s=navigator.userAgent,i.test(s)?"modern":(t.test(s),"legacy"));window.Shopify=window.Shopify||{};var c=window.Shopify;c.analytics=c.analytics||{};var u=c.analytics;u.replayQueue=[],u.publish=function(d,e,r){return u.replayQueue.push([d,e,r]),!0};try{self.performance.mark("wpm:start")}catch(d){}var h=[r,"/wpm","/b",n,l.substring(0,1),".js"].join("");!function(d){var e=d.src,r=d.async,a=void 0===r||r,n=d.onload,o=d.onerror,i=document.createElement("script"),t=document.head,s=document.body;i.async=a,i.src=e,n&&i.addEventListener("load",n),o&&i.addEventListener("error",o),t?t.appendChild(i):s?s.appendChild(i):console.error("Did not find a head or body element to append the script")}({src:h,async:!0,onload:function(){var r=window.webPixelsManager.init(d);e(r);var a=window.Shopify.analytics;a.replayQueue.forEach((function(d){var e=d[0],a=d[1],n=d[2];r.publishCustomEvent(e,a,n)})),a.replayQueue=[],a.publish=r.publishCustomEvent,a.visitor=r.visitor},onerror:function(){var e=d.storefrontBaseUrl.replace(/\/$/,""),r="".concat(e,"/.well-known/shopify/monorail/unstable/produce_batch"),n=JSON.stringify({metadata:{event_sent_at_ms:(new Date).getTime()},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:a||"latest",bundle_target:l,page_url:self.location.href,status:"failed",surface:d.surface,error_msg:"".concat(h," has failed to load")},metadata:{event_created_at_ms:(new Date).getTime()}}]});try{if(self.navigator.sendBeacon.bind(self.navigator)(r,n))return!0}catch(d){}var o=new XMLHttpRequest;try{return o.open("POST",r,!0),o.setRequestHeader("Content-Type","text/plain"),o.send(n),!0}catch(d){console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging a load error.")}return!1}})})({shopId: 23548351,storefrontBaseUrl: "https://i-spa.co.za",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"511705301","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"GT-5TW42GJ\\\",\\\"target_country\\\":\\\"ZA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-CCKSVD6KSL\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-CCKSVD6KSL\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-CCKSVD6KSL\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a46b87f88a4ff97a9490f9aa4799ba7b","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"174686421","configuration":"{\"appURL\":\"https:\/\/app.omnisend.com\",\"brandID\":\"5ca603ad8653ed5a9883c4f0\",\"trackingURL\":\"https:\/\/wt.omnisendlink.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3099e53cfd61847c4de2f403184e2938","type":"APP","apiClientId":186001,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"154566869","configuration":"{\"pixel_id\":\"301276447042262\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"8d894c63179843e74a9691414b5ad83d","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"i-Spa ","paymentSettings":{"currencyCode":"ZAR"},"myshopifyDomain":"ispa-products.myshopify.com","countryCode":"ZA","storefrontUrl":"https:\/\/i-spa.co.za"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"purchasingCompany":null},},function pageEvents(webPixelsManagerAPI) {webPixelsManagerAPI.publish("page_viewed", {});},"https://i-spa.co.za/cdn","e0bf682e79062096790a77fdf186c9fa869971c3","3df7bd1awee0c8715pa9a274ffm8de0ad35",);</script> <script>window['GoogleAnalyticsObject'] = 'ga';
window['ga'] = window['ga'] || function() {
(window['ga'].q = window['ga'].q || []).push(arguments);
};
window['ga'].l = 1 * new Date();</script>
<script>var _gaUTrackerOptions = {'allowLinker': true};ga('create', 'UA-108702445-1', 'auto', _gaUTrackerOptions);ga('send', 'pageview');
(function(){
ga('require', 'linker');
function addListener(element, type, callback) {
if (element.addEventListener) {
element.addEventListener(type, callback);
}
else if (element.attachEvent) {
element.attachEvent('on' + type, callback);
}
}
function decorate(event) {
event = event || window.event;
var target = event.target || event.srcElement;
if (target && (target.action || target.href)) {
ga(function (tracker) {
var linkerParam = tracker.get('linkerParam');
document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';
});
}
}
addListener(window, 'load', function(){
for (var i=0; i<document.forms.length; i++) {
if(document.forms[i].action && document.forms[i].action.indexOf('/cart') >= 0) {
addListener(document.forms[i], 'submit', decorate);
}
}
for (var i=0; i<document.links.length; i++) {
if(document.links[i].href && document.links[i].href.indexOf('/checkout') >= 0) {
addListener(document.links[i], 'click', decorate);
}
}
})
}());
</script>
<script>window.ShopifyAnalytics = window.ShopifyAnalytics || {};
window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
window.ShopifyAnalytics.meta.currency = 'ZAR';
var meta = {"page":{"pageType":"home"}};
for (var attr in meta) {
window.ShopifyAnalytics.meta[attr] = meta[attr];
}</script>
<script>window.ShopifyAnalytics.merchantGoogleAnalytics = function() {
};
</script>
<script class="analytics">(function () {
var customDocumentWrite = function(content) {
var jquery = null;
if (window.jQuery) {
jquery = window.jQuery;
} else if (window.Checkout && window.Checkout.$) {
jquery = window.Checkout.$;
}
if (jquery) {
jquery('body').append(content);
}
};
var hasLoggedConversion = function(token) {
if (token) {
return document.cookie.indexOf('loggedConversion=' + token) !== -1;
}
return false;
}
var setCookieIfConversion = function(token) {
if (token) {
var twoMonthsFromNow = new Date(Date.now());
twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
}
}
var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
if (trekkie.integrations) {
return;
}
trekkie.methods = [
'identify',
'page',
'ready',
'track',
'trackForm',
'trackLink'
];
trekkie.factory = function(method) {
return function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(method);
trekkie.push(args);
return trekkie;
};
};
for (var i = 0; i < trekkie.methods.length; i++) {
var key = trekkie.methods[i];
trekkie[key] = trekkie.factory(key);
}
trekkie.load = function(config) {
trekkie.config = config || {};
trekkie.config.initialDocumentCookie = document.cookie;
var first = document.getElementsByTagName('script')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onerror = function(e) {
var scriptFallback = document.createElement('script');
scriptFallback.type = 'text/javascript';
scriptFallback.onerror = function(error) {
var Monorail = {
produce: function produce(monorailDomain, schemaId, payload) {
var currentMs = new Date().getTime();
var event = {
schema_id: schemaId,
payload: payload,
metadata: {
event_created_at_ms: currentMs,
event_sent_at_ms: currentMs
}
};
return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
},
sendRequest: function sendRequest(endpointUrl, payload) {
// Try the sendBeacon API
if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
var blobData = new window.Blob([payload], {
type: 'text/plain'
});
if (window.navigator.sendBeacon(endpointUrl, blobData)) {
return true;
} // sendBeacon was not successful
} // XHR beacon
var xhr = new XMLHttpRequest();
try {
xhr.open('POST', endpointUrl);
xhr.setRequestHeader('Content-Type', 'text/plain');
xhr.send(payload);
} catch (e) {
console.log(e);
}
return false;
},
isIos12: function isIos12() {
return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
}
};
Monorail.produce('monorail-edge.shopifysvc.com',
'trekkie_storefront_load_errors/1.1',
{shop_id: 23548351,
theme_id: 138827235541,
app_name: "storefront",
context_url: window.location.href,
source_url: "//i-spa.co.za/cdn/s/trekkie.storefront.a8ef5c2c4f1c6e0839c6b8857d0a2edb7d22d961.min.js"});
};
scriptFallback.async = true;
scriptFallback.src = '//i-spa.co.za/cdn/s/trekkie.storefront.a8ef5c2c4f1c6e0839c6b8857d0a2edb7d22d961.min.js';
first.parentNode.insertBefore(scriptFallback, first);
};
script.async = true;
script.src = '//i-spa.co.za/cdn/s/trekkie.storefront.a8ef5c2c4f1c6e0839c6b8857d0a2edb7d22d961.min.js';
first.parentNode.insertBefore(script, first);
};
trekkie.load(
{"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":23548351,"isMerchantRequest":null,"themeId":138827235541,"themeCityHash":"6545833400578189916","contentLanguage":"en","currency":"ZAR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Facebook Pixel":{"pixelIds":["1486821911424833"],"agent":"plshopify1.2"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
);
var loaded = false;
trekkie.ready(function() {
if (loaded) return;
loaded = true;
window.ShopifyAnalytics.lib = window.trekkie;
var originalDocumentWrite = document.write;
document.write = customDocumentWrite;
try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
document.write = originalDocumentWrite;
window.ShopifyAnalytics.lib.page(null,{"pageType":"home"});
var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
var token = match? match[1]: undefined;
if (!hasLoggedConversion(token)) {
setCookieIfConversion(token);
}
});
var eventsListenerScript = document.createElement('script');
eventsListenerScript.async = true;
eventsListenerScript.src = "//i-spa.co.za/cdn/shopifycloud/shopify/assets/shop_events_listener-61fa9e0a912c675e178777d2b27f6cbd482f8912a6b0aa31fa3515985a8cd626.js";
document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
<script class="boomerang">
(function () {
window.BOOMR = window.BOOMR || {};
window.BOOMR.themeName = "Whisk";
window.BOOMR.themeVersion = "6.2.1";
window.BOOMR.shopId = 23548351;
window.BOOMR.themeId = 138827235541;
})();</script>
<script
defer
src="https://i-spa.co.za/cdn/shopifycloud/perf-kit/shopify-perf-kit-1.0.1.min.js"
data-application="storefront-renderer"
data-shop-id="23548351"
data-render-region="gcp-europe-west1"
data-page-type="index"
data-theme-instance-id="138827235541"
data-monorail-region="shop_domain"
data-resource-timing-sampling-rate="10"
></script>
<script async="async" src="https://www.google-analytics.com/analytics.js"></script>
</head>
i-Spa Salon & Spa Supplier: Wholesale Salon, Spa & Beauty Supplies
Recherche META Description de la page
South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan, Skin Care, Nails, Beauty supplies, beauty furniture & equipment, waxing, eyelash extensions, uniforms and much more. One stop shop for all your salon & spa needs.
Recherche META Keywords de la page
UPDATE DOMAINES SET server='cloudflare',redirection='https://i-spa.co.za/',Status='200',err='',[TITRE]=N'
i-Spa Salon & Spa Supplier: Wholesale Salon, Spa & Beauty Supplies
',[DESCRIPTION]=N'South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan, Skin Care, Nails, Beauty supplies, beauty furniture & equipment, waxing, eyelash extensions, uniforms and much more. One stop shop for all your salon & spa needs.',[KEYWORDS]=N'' WHERE id=36640662
0
i-Spa Salon & Spa Supplier: Wholesale Salon Spa & Beauty Supplies
South-Africa's leading salon & spa supplier and beauty wholesaler. Spray Tan Skin Care Nails Beauty supplies beauty furniture & equipment waxing eyelash extensions uniforms and much more. One stop shop for all your salon & spa needs.
0.
(1)--------->0
6. i-Spa (5)--------->0
7. Salon (5)--------->0
8. & (5)--------->0
9. Spa (3)--------->0
10. Supplier: (9)--------->0
11. Wholesale (9)--------->0
16. Beauty (6)--------->0
17. Supplies
(9)--------->0
18. South-Africa's (18)--------->0
19. leading (7)--------->0
23. supplier (8)--------->0
24. and (3)--------->0
26. wholesaler (10)--------->0
27. Spray (5)--------->0
28. Tan (3)--------->0
30. Skin (4)--------->0
31. Care (4)--------->0
33. Nails (5)--------->0
36. supplies (8)--------->0
39. furniture (9)--------->0
41. equipment (9)--------->0
43. waxing (6)--------->0
45. eyelash (7)--------->0
46. extensions (10)--------->0
48. uniforms (8)--------->0
50. much (4)--------->0
51. more (4)--------->0
52. One (3)--------->0
53. stop (4)--------->0
54. shop (4)--------->0
55. for (3)--------->0
56. all (3)--------->0
57. your (4)--------->0
61. needs (5)--------->0
INSERT INTO KEYWORDS (keyword,id_domaine) VALUES (N'
',36640662),(N'i-Spa',36640662),(N'Salon',36640662),(N'&',36640662),(N'Spa',36640662),(N'Supplier:',36640662),(N'Wholesale',36640662),(N'Beauty',36640662),(N'Supplies
',36640662),(N'South-Africa's',36640662),(N'leading',36640662),(N'supplier',36640662),(N'and',36640662),(N'wholesaler',36640662),(N'Spray',36640662),(N'Tan',36640662),(N'Skin',36640662),(N'Care',36640662),(N'Nails',36640662),(N'supplies',36640662),(N'furniture',36640662),(N'equipment',36640662),(N'waxing',36640662),(N'eyelash',36640662),(N'extensions',36640662),(N'uniforms',36640662),(N'much',36640662),(N'more',36640662),(N'One',36640662),(N'stop',36640662),(N'shop',36640662),(N'for',36640662),(N'all',36640662),(N'your',36640662),(N'needs',36640662)