APPI Compliance
Data Rectification
You can use the link below to update your account data if it is not accurate.
Data Portability
You can use the links below to download all the data we store and use for a better experience in our store.
Access to Personal Data
You can use the link below to request a report which will contain all personal information that we store for you.
Do not Sell My Personal Information to Third Party
You can submit a request to let us know that you do not agree for your personal information to be collected or sold to a third party.
Right to be Forgotten
Use this option if you want to remove your personal and other data from our store. Keep in mind that this process will delete your account, so you will no longer be able to access or use it anymore.
I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy & Terms of Service.
'; var appiSendRequest = function(callback) { fetch('https://www.cloudflare.com/cdn-cgi/trace', { method: 'GET' , headers: { 'Content-Type': 'text/plain', }, }) .then(resp => resp.text()) .then(resp => { if (!resp.error) { let ipInfo = resp; let formData = new FormData(); if (type === 'customer/do-not-sell') { isenseGDPR.Cookies.set('cookieconsent_preferences_disabled', 'analytics,marketing,functionality,', { expires: 365 }); isenseGDPR.Cookies.set('cookieconsent_status', 'accept_selected', { expires: 365 }); window.Shopify.trackingConsent.setTrackingConsent(false,function() { console.log('setTrackingConsent false')}); if (document.querySelector('.cc-window')) { document.querySelector('.cc-window').style.display = 'none'; } // reset popup text document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy & Terms of Service.'; } formData.append('shop', Shopify.shop); formData.append('email', email); formData.append('type', type); formData.append('sourceOfRequest', 3); formData.append('ipAddress', ipInfo); formData.append('consentGiven', consentGiven); formData.append('page', 'appi'); formData.append('lang', Shopify.locale ? Shopify.locale : ''); formData.append('gtranslateLang', isenseGDPR.Cookies.get('googtrans') ? isenseGDPR.Cookies.get('googtrans') : ''); fetch('https://gdpr.apps.isenselabs.com/gdprRequests/submitRequest', { method: 'POST', body: formData }) .then(resp => resp.json()) .then(resp => { if (!resp.error) { appiSlideUpAll(); if (resp.message.length) { alert(resp.message); } else { alert('Your request has been submitted successfully. Please check your email for more information.'); } } else { alert(resp.message); } if (typeof callback == 'function') { callback(resp); } }) .catch(error => { alert(error.message); }) } else { alert(resp.message); } }) } //Append modal to body, because otherwise it will not stay centered(even if position is fixed) document.querySelector("body").insertAdjacentHTML( 'beforeend', verificationModalContent); document.addEventListener("DOMContentLoaded", function() { let searchParams = new URLSearchParams(window.location.search); let param = searchParams.get('id'); if(param) { document.getElementById(param).scrollIntoView(); } // When the user clicks on (x), close the modal document.querySelector('.data-verification-close').addEventListener('click', function(e) { e.preventDefault(); closeVerificationModal(); // Focus the button of the request type that was picked let appiForms = document.querySelectorAll('.form-appi-request'); appiForms.forEach(function(appiForm) { if (appiForm.style.display !== "none") { let appiFormLinks = appiForm.previousElementSibling.querySelectorAll('li'); if (appiFormLinks.length === 1) { appiFormLinks[0].querySelector('button').focus(); } else if (appiFormLinks.length > 1) { appiFormPickedLinkValue = document.querySelector('#form-appi-data-account-request-request-type').value; switch (appiFormPickedLinkValue) { case 'customer/requests': appiFormLinks[0].querySelector('button').focus(); break; case 'customer/personal_info': appiFormLinks[1].querySelector('button').focus(); break; case 'customer/orders': appiFormLinks[2].querySelector('button').focus(); break; default: break; } } } }); }); document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e) { e.preventDefault(); // Detect a href's click, because it is overwritten. if(e.target.tagName === "A") { window.open(e.target.href, '_blank'); return; } document.querySelector('#data-verification-icon').classList.add("clicked"); setTimeout(()=>{ toggleFadeiSense(document.querySelector("#data-verification-modal"), false); document.querySelector('#data-verification-background .loading').style.display = 'inline-block'; consentGiven = true; appiSendRequest(function(resp) { consentGiven = false; closeVerificationModal(); }); }, 400); }); }); function openVerificationModal(){ toggleFadeiSense(document.querySelector("#data-verification-modal"), true); toggleFadeiSense(document.querySelector('#data-verification-background'), true); document.querySelector('#data-verification-container input').focus(); } function closeVerificationModal(){ toggleFadeiSense(document.querySelector("#data-verification-background"), false); document.querySelector('#data-verification-icon').classList.remove("clicked"); document.querySelector('#data-verification-background .loading').style.display = 'none'; } document.querySelector('#btn-appi-edit-account-request').addEventListener('click', function(e) { e.preventDefault(); appiSlideUpAll(); slideDown(document.querySelector('#form-appi-edit-account-request'), 200); this.setAttribute("aria-expanded", "true"); }); document.querySelector('#form-appi-edit-account-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-edit-account-request-email').value; type = 'customer/edit'; openVerificationModal(); }); document.querySelectorAll('#btn-appi-requests-request, #btn-appi-personal-information-request, #btn-appi-orders-request').forEach(element => { element.addEventListener('click', function(e) { e.preventDefault(); appiSlideUpAll(); type = ''; // Reset the popup message document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy & Terms of Service.'; switch(this.getAttribute('id')) { case 'btn-appi-requests-request': type = 'customer/requests'; break; case 'btn-appi-personal-information-request': type = 'customer/personal_info'; break; case 'btn-appi-orders-request': type = 'customer/orders'; break; } document.querySelector('#form-appi-data-account-request-request-type').value = type; slideDown(document.querySelector('#form-appi-data-account-request'), 200); this.setAttribute("aria-expanded", "true"); }) }); document.querySelector('#form-appi-data-account-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-data-account-request-email').value; type = document.querySelector('#form-appi-data-account-request-request-type').value; openVerificationModal(); }); document.querySelector('#btn-appi-personal-data-report-request').addEventListener('click', function(e) { e.preventDefault(); appiSlideUpAll(); slideDown(document.querySelector('#form-appi-personal-data-report-request'), 200); this.setAttribute("aria-expanded", "true"); }); document.querySelector('#form-appi-personal-data-report-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-personal-data-report-request-email').value; type = 'customer/report'; openVerificationModal(); }); document.querySelector('#btn-appi-do-not-sell-request').addEventListener('click', function(e) { e.preventDefault(); appiSlideUpAll(); slideDown(document.querySelector('#form-appi-do-not-sell-request'), 200); this.setAttribute("aria-expanded", "true"); }); document.querySelector('#form-appi-do-not-sell-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-do-not-sell-request-email').value; type = 'customer/do-not-sell'; // Check if customer is logged in if (__st.cid != undefined) { document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy & Terms of Service.'; } else { document.querySelector('#appi-modal-container-text').innerHTML = 'I give my consent on collecting my email and IP address for the purpose of processing this request. For more check Privacy Policy & Terms of Service. Note: If you are a guest user or you are not logged into your account, your opt-out choice will only be effective for this browser session.'; } openVerificationModal(); }); document.querySelector('#btn-appi-delete-account-request').addEventListener('click', function(e) { e.preventDefault(); appiSlideUpAll(); slideDown(document.querySelector('#form-appi-delete-account-request'), 200); this.setAttribute("aria-expanded", "true"); }); document.querySelector('#form-appi-delete-account-request-submit').addEventListener('click', function(e) { e.preventDefault(); email = document.querySelector('#form-appi-delete-account-request-email').value; type = 'customer/delete'; openVerificationModal(); }); // Keyboard navigation for the compliance page's requests document.querySelector('#appi_page').addEventListener('keydown', function(e) { let isTabPressed = e.keyCode === 9 || e.key === "Tab" || e.code === "Tab"; // This function saves us the trouble of calling e.preventDefault() after every focusing let executeFocus = (focusElement) => {focusElement.focus();e.preventDefault();} if (isTabPressed) { let appiFormPickedLinkValue = document.querySelector('#form-appi-data-account-request-request-type').value; let appiRequestsButton = document.querySelector('#btn-appi-requests-request'); let personalInformationButton = document.querySelector('#btn-appi-personal-information-request'); let ordersButton = document.querySelector('#btn-appi-orders-request'); let personalDataReportButton = document.querySelector('#btn-appi-personal-data-report-request'); let dataAccountFormEmailField = document.querySelector('#form-appi-data-account-request-email'); let dataAccountFormSubmitButton = document.querySelector('#form-appi-data-account-request-submit'); if (e.shiftKey) { if ((document.activeElement === personalInformationButton && appiFormPickedLinkValue === 'customer/requests') || (document.activeElement === ordersButton && appiFormPickedLinkValue === 'customer/personal_info')) { executeFocus(dataAccountFormSubmitButton); } else if (document.activeElement === dataAccountFormEmailField) { if (appiFormPickedLinkValue === 'customer/requests') { executeFocus(appiRequestsButton); } else if (appiFormPickedLinkValue === 'customer/personal_info') { executeFocus(personalInformationButton); } } else if (document.activeElement === personalDataReportButton) { if (appiFormPickedLinkValue !== 'customer/orders') { executeFocus(ordersButton); } } } else { if ((document.activeElement === appiRequestsButton && appiFormPickedLinkValue === 'customer/requests') || (document.activeElement === personalInformationButton && appiFormPickedLinkValue === 'customer/personal_info')) { executeFocus(dataAccountFormEmailField); } else if (document.activeElement === dataAccountFormSubmitButton) { if (appiFormPickedLinkValue === 'customer/requests') { executeFocus(personalInformationButton); } else if (appiFormPickedLinkValue === 'customer/personal_info') { executeFocus(ordersButton); } } else if (document.activeElement === ordersButton) { if (appiFormPickedLinkValue !== 'customer/orders') { executeFocus(personalDataReportButton); } } } } }); // Keyboard navigation in data verification modal for accesibility document.querySelector('#data-verification-modal').addEventListener('keydown', function(e) { let isTabPressed = e.keyCode === 9 || e.key === "Tab" || e.code === "Tab"; let isEscapePressed = e.keyCode === 27 || e.key === "Escape" || e.code === "Escape"; let isSpacePressed = event.keyCode === 32 || e.key === " " || event.code === "Space"; let isEnterPressed = event.keyCode === 13 || e.key === "Enter" || event.code === "Enter"; let dataVerificationCloseButton = document.querySelector('.data-verification-close'); let dataVerificationCheckbox = document.querySelector('#data-verification-container input'); let dataVerificationLink = document.querySelector('#data-verification-container a'); // This function saves us the trouble of calling e.preventDefault() after every focusing let executeFocus = (focusElement) => {focusElement.focus();e.preventDefault();} if (isEscapePressed) { if (dataVerificationCloseButton) { dataVerificationCloseButton.click(); } } if (isSpacePressed || isEnterPressed) { if (document.activeElement === dataVerificationCheckbox) { document.querySelector('#data-verification-container #data-verification-icon').click(); } } if (isTabPressed) { if (e.shiftKey) { if (dataVerificationCloseButton && document.activeElement === dataVerificationCloseButton) { executeFocus(dataVerificationLink); } } else { if (dataVerificationLink && document.activeElement === dataVerificationLink) { executeFocus(dataVerificationCloseButton); } } } });