Cumplimiento de PIPEDA

La aplicación utilizada para garantizar el cumplimiento de GDPR/LGPD/CCPA-CPRA/VCDPA/APPI/PIPEDA de este sitio, recopila su IP y la dirección de correo electrónico para procesar los datos. Para obtener más información, consulte Política de privacidad y Términos de servicio

Rectificación de datos

Puede usar el enlace a continuación para actualizar los datos de su cuenta si no son precisos.

Portabilidad de datos

Puede usar los enlaces a continuación para descargar todos los datos que almacenamos y usar para una mejor experiencia en nuestra tienda.

Acceso a datos personales

Puede usar el enlace a continuación para solicitar un informe que contendrá toda la información personal que almacenamos para usted.

// { objetivo. estilo. propiedadtransición = 'altura, margen, relleno'; objetivo. estilo. transiciónDuración = duración + 'ms'; objetivo. estilo. tamaño de cuadro = 'cuadro de borde'; objetivo. estilo. altura = objetivo. altura de compensación + 'px'; objetivo. altura de compensación; objetivo. estilo. desbordamiento = 'oculto'; objetivo. estilo. altura = 0; objetivo. estilo. rellenoTop = 0; objetivo. estilo. relleno inferior = 0; objetivo. estilo. margen superior = 0; objetivo. estilo. margen inferior = 0; ventana. establecerTiempo de espera(() => { objetivo. estilo. mostrar = 'ninguno'; objetivo. estilo. removeProperty('altura'); objetivo. estilo. removeProperty('relleno-superior'); objetivo. estilo. removeProperty('relleno-fondo'); objetivo. estilo. removeProperty('margin-top'); objetivo. estilo. removeProperty('margen inferior'); objetivo. estilo. removeProperty('desbordamiento'); objetivo. estilo. removeProperty('transición-duración'); objetivo. estilo. removeProperty('propiedad-transición'); }, duración); // Al cerrar la sección Portabilidad de datos, establezca el valor del tipo de solicitud de nuevo en una cadena vacía si (objetivo. getAttribute('id') === 'formulario-pipeda-datos-cuenta-solicitud') { documento. querySelector('#form-pipeda-data-account-request-request-type'). valor = ''; } } /* BAJAR DESLIZÁNDOSE */ let slideDown = (objetivo, duración = 500) => { establecerTiempo de espera (función () { objetivo. estilo. removeProperty('mostrar'); dejar mostrar = ventana. getComputedStyle(objetivo). mostrar; if (mostrar === 'ninguno') mostrar = 'bloquear'; objetivo. estilo. pantalla = pantalla; sea ​​altura = objetivo. altura de compensación; objetivo. estilo. desbordamiento = 'oculto'; objetivo. estilo. altura = 0; objetivo. estilo. rellenoTop = 0; objetivo. estilo. relleno inferior = 0; objetivo. estilo. margen superior = 0; objetivo. estilo. margen inferior = 0; objetivo. altura de compensación; objetivo. estilo. tamaño de cuadro = 'cuadro de borde'; objetivo. estilo. propiedadtransición = "altura, margen, relleno"; objetivo. estilo. transiciónDuración = duración + 'ms'; objetivo. estilo. altura = altura + 'px'; objetivo. estilo. removeProperty('relleno-superior'); objetivo. estilo. removeProperty('relleno-fondo'); objetivo. estilo. removeProperty('margin-top'); objetivo. estilo. removeProperty('margen inferior'); ventana. establecerTiempo de espera(() => { objetivo. estilo. removeProperty('altura'); objetivo. estilo. removeProperty('desbordamiento'); objetivo. estilo. removeProperty('transición-duración'); objetivo. estilo. removeProperty('propiedad-transición'); }, duración); }, 100) } /* TOOGLE */ var slideToggle = (objetivo, duración = 500) => { si (ventana. getComputedStyle(objetivo). mostrar === 'ninguno') { return slideDown(objetivo, duración); } demás { return slideUp(objetivo, duración); } } /* DESTEÑIR */ var toggleFadeiSense = (elemento, mostrar) => { si (mostrar) { elemento estilo. mostrar = "bloquear"; establecerTiempo de espera (función () { elemento Lista de clase. add('mostrar-isense'); elemento Lista de clase. remove('ocultar-isense'); }, 20) } demás { elemento Lista de clase. remove('mostrar-isense'); elemento Lista de clase. add('ocultar-isense'); establecerTiempo de espera(() => { elemento estilo. mostrar = 'ninguno'; }, 400) } } var pipedaSlideUpAll = función () { deslizar hacia arriba (documento. querySelector('#form-pipeda-edit-account-request'), 100); deslizar hacia arriba (documento. querySelector('#form-pipeda-data-account-request'), 100); deslizar hacia arriba (documento. querySelector('#form-pipeda-personal-data-report-request'), 100); documento. querySelector('botón #pipeda_page'). setAttribute("aria-expandida", "falso"); }; var email, type, consentGiven = false; varificationModalContent = '

Doy mi consentimiento para recopilar mi correo electrónico y dirección IP con el fin de procesar esta solicitud. Para obtener más información, consulta Política de privacidad y términos de servicio.

'; var pipedaSendRequest = función (devolución de llamada) { buscar('https://www. llamarada de nube com/cdn-cgi/trace', { método: 'OBTENER', encabezados: { 'Tipo de contenido': 'texto/sin formato', }, }) . entonces(resp => resp. texto()) . entonces(resp => { si (!resp. error) { let ipInfo = resp; let formData = new FormData(); formularioDatos. append('comprar', Shopify. comercio); formularioDatos. agregar ('correo electrónico', correo electrónico); formularioDatos. agregar('tipo', tipo); formularioDatos. agregar ('origen de la solicitud', 4); formularioDatos. append('direcciónip', informaciónip); formularioDatos. append('consentimientoGiven', consentimientoGiven); formularioDatos. append('pagina', 'pipeda'); formularioDatos. agregar ('idioma', Shopify. lugar? Shopify. configuración regional: ''); formularioDatos. append('gtranslateLang', isenseGDPR. Galletas. get('googtrans') ? isenseGDPR. Galletas. get('googtrans') : ''); buscar('https://gdpr. aplicaciones isenselabs. com/gdprRequests/submitRequest', { método: 'POST', cuerpo: formData }) . entonces(resp => resp. json()) . entonces(resp => { si (!resp. error) { pipedaSlideUpAll(); si (resp. mensaje. longitud) { alerta (resp. mensaje); } demás { alert('Su solicitud ha sido enviada con éxito. Por favor revise su correo electrónico para más información. '); } } demás { alerta (resp. mensaje); } if (tipo de devolución de llamada == 'función') { devolución de llamada (respuesta); } }) . atrapar(error => { alerta (error. mensaje); }) } demás { alerta (resp. mensaje); } }) } // Agregar modal al cuerpo, porque de lo contrario no permanecerá centrado (incluso si la posición es fija) documento. querySelector("cuerpo"). insertAdjacentHTML('antes de', verificaciónModalContent); documento. addEventListener("DOMContentLoaded", función () { // Cuando el usuario hace clic en (x), cierra el modal documento. selector de consulta(' cierre de verificación de datos'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); closeVerificationModal(); // Enfoque el botón del tipo de solicitud que se eligió let pipedaForms = documento. querySelectorAll('. formulario-pipeda-solicitud'); pipedaForms. forEach(function(pipedaForm) { si (pipedaForm. estilo. mostrar !== "ninguno") { let pipedaFormLinks = pipedaForm. anteriorElementoSibling. consultaSelectorAll('li'); si (pipedaFormLinks. longitud === 1) { pipedaFormLinks[0]. querySelector('botón'). enfocar(); } más si (pipedaFormLinks. longitud > 1) { pipedaFormPickedLinkValue = documento. querySelector('#form-pipeda-data-account-request-request-type'). valor; cambiar (pipedaFormPickedLinkValue) { caso 'cliente/solicitudes': pipedaFormLinks[0]. querySelector('botón'). enfocar(); romper; caso 'cliente/información_personal': pipedaFormLinks[1]. querySelector('botón'). enfocar(); romper; caso 'cliente/pedidos': pipedaFormLinks[2]. querySelector('botón'). enfocar(); romper; por defecto: romper; } } } }); }); documento. querySelector('#icono-de-verificación-de-datos, #contenedor-de-verificación-de-datos p'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); // Detectar el clic de un href, porque se sobrescribe. si (ej. objetivo nombre de la etiqueta === "A") { ventana. abierto (ej. objetivo href, '_en blanco'); devolver; } documento. querySelector('#icono-de-verificación-de-datos'). Lista de clase. add("hizo clic"); establecerTiempo de espera(() => { alternarFadeiSense(document. querySelector("#data-verification-modal"), false); documento. querySelector('#fondo-de-verificación-de-datos. cargando'). estilo. display = 'bloque en línea'; consentGiven = verdadero; pipedaSendRequest(función (resp) { consentGiven = false; closeVerificationModal(); }); }, 400); }); }); función abrirVerificaciónModal() { alternarFadeiSense(document. querySelector("#data-verification-modal"), true); alternarFadeiSense(document. querySelector('#data-verification-background'), true); documento. querySelector('#data-verification-container input'). enfocar(); } función cerrarVerificaciónModal() { alternarFadeiSense(document. querySelector("#data-verification-background"), false); documento. querySelector('#icono-de-verificación-de-datos'). Lista de clase. remove("hizo clic"); documento. querySelector('#fondo-de-verificación-de-datos. cargando'). estilo. mostrar = 'ninguno'; } documento. querySelector('#btn-pipeda-editar-solicitud-de-cuenta'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); pipedaSlideUpAll(); deslizar hacia abajo (documento. querySelector('#form-pipeda-editar-cuenta-solicitud'), 200); este. setAttribute("aria-expandida", "verdadero"); }); documento. querySelector('#form-pipeda-editar-cuenta-solicitud-enviar'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); correo electrónico = documento. querySelector('#form-pipeda-edit-account-request-email'). valor; type = 'cliente/editar'; openVerificationModal(); }); documento. querySelectorAll('#btn-pipeda-requests-request, #btn-pipeda-personal-information-request, #btn-pipeda-orders-request'). paraCada(elemento => { elemento. addEventListener('clic', función (e) { mi. prevenirPredeterminado(); pipedaSlideUpAll(); tipo = ''; interruptor (esto. getAttribute('id')) { caso 'btn-pipeda-solicitudes-solicitud': type = 'cliente/solicitudes'; romper; case 'btn-pipeda-solicitud-de-información-personal': type = 'cliente/info_personal'; romper; case 'btn-pipeda-orders-request': type = 'cliente/pedidos'; romper; } documento. querySelector('#form-pipeda-data-account-request-request-type'). valor = tipo; deslizar hacia abajo (documento. querySelector('#form-pipeda-data-account-request'), 200); este. setAttribute("aria-expandida", "verdadero"); }) }); documento. querySelector('#form-pipeda-data-account-request-submit'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); correo electrónico = documento. querySelector('#form-pipeda-data-account-request-email'). valor; tipo = documento. querySelector('#form-pipeda-data-account-request-request-type'). valor; openVerificationModal(); }); documento. querySelector('#btn-pipeda-personal-data-report-request'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); pipedaSlideUpAll(); deslizar hacia abajo (documento. querySelector('#form-pipeda-personal-data-report-request'), 200); este. setAttribute("aria-expandida", "verdadero"); }); documento. querySelector('#form-pipeda-personal-data-report-request-submit'). addEventListener('clic', función (e) { mi. prevenirPredeterminado(); correo electrónico = documento. querySelector('#form-pipeda-personal-data-report-request-email'). valor; tipo = 'cliente/informe'; openVerificationModal(); }); // Navegación por teclado para las solicitudes de la página de cumplimiento documento. querySelector('#pipeda_page'). addEventListener('teclado', function(e) { let isTabPressed = e. código clave === 9 || mi. tecla === "Tab" || mi. código === "Tab"; // Esta función nos ahorra la molestia de llamar a e. preventDefault() después de cada enfoque vamos a ejecutarFocus = (focusElement) => {focusElement.focus();e.preventDefault();} si (está presionada) { let pipedaFormPickedLinkValue = documento. querySelector('#form-pipeda-data-account-request-request-type'). valor; let pipedaRequestsButton = documento. querySelector('#btn-pipeda-requests-request'); let personalInformationButton = documento. querySelector('#btn-pipeda-solicitud-de-información-personal'); let ordersButton = documento. querySelector('#btn-pipeda-orders-request'); let personalDataReportButton = documento. querySelector('#btn-pipeda-personal-data-report-request'); let dataAccountFormEmailField = documento. querySelector('#form-pipeda-data-account-request-email'); let dataAccountFormSubmitButton = documento. querySelector('#form-pipeda-data-account-request-submit'); si (ej. tecla Shift) { si ((documento. activeElement === botón de información personal && pipedaFormPickedLinkValue === 'cliente/solicitudes') || (documento. activeElement === botón de pedidos && pipedaFormPickedLinkValue === 'cliente/info_personal')) { ejecutarFocus(dataAccountFormSubmitButton); } más si (documento. activeElement === dataAccountFormEmailField) { if (pipedaFormPickedLinkValue === 'cliente/solicitudes') { ejecutarFocus(pipedaRequestsButton); } else if (pipedaFormPickedLinkValue === 'cliente/info_personal') { ejecutarFocus(botonInformacionPersonal); } } más si (documento. activeElement === botón de informe de datos personales) { if (pipedaFormPickedLinkValue !== 'cliente/pedidos') { ejecutarFocus(botonpedidos); } } } demás { si ((documento. activeElement === pipedaRequestsButton && pipedaFormPickedLinkValue === 'cliente/solicitudes') || (documento. activeElement === botónInformaciónpersonal && pipedaFormPickedLinkValue === 'cliente/info_personal')) { ejecutarFocus(dataAccountFormEmailField); } más si (documento. activeElement === dataAccountFormSubmitButton) { if (pipedaFormPickedLinkValue === 'cliente/solicitudes') { ejecutarFocus(botonInformacionPersonal); } else if (pipedaFormPickedLinkValue === 'cliente/info_personal') { ejecutarFocus(botonpedidos); } } más si (documento. activeElement === botón de pedidos) { if (pipedaFormPickedLinkValue !== 'cliente/pedidos') { ejecutarFocus(botón de informe de datos personales); } } } } }); // Navegación con teclado en modo de verificación de datos para accesibilidad documento. querySelector('#data-verification-modal'). addEventListener('teclado', function(e) { let isTabPressed = e. código clave === 9 || mi. tecla === "Tab" || mi. código === "La tableta está presionada Escape = e. código clave === 27 || mi. tecla === "Escape" || mi. código === "Escape"; let isSpacePressed = evento. código clave === 32 || mi. clave === " " || evento. código === "Espacio"; let isEnterPressed = evento. código clave === 13 || mi. tecla === "Entrar" || evento. código === "Entrar"; let dataVerificationCloseButton = documento. selector de consulta(' cierre de verificación de datos'); let dataVerificationCheckbox = documento. querySelector('#data-verification-container input'); let dataVerificationLink = documento. querySelector('#contenedor de verificación de datos a'); // Esta función nos ahorra la molestia de llamar a e. preventDefault() después de cada enfoque vamos a ejecutarFocus = (focusElement) => {focusElement.focus();e.preventDefault();} si (estáEscapePresionado) { if (botón de cierre de verificación de datos) { Botón de cierre de verificación de datos. hacer clic(); } } if (Espacio presionado || es Enter presionado) { of (document. activeElement === checkbox de verificación de datos) { documento. querySelector('#contenedor-de-verificación-de-datos #icono-de-verificación-de-datos'). hacer clic(); } } si (está presionada) { si (ej. tecla Shift) { if (dataVerificationCloseButton && document. activeElement === dataVerificationCloseButton) { ejecutarFocus(enlace de verificación de datos); } } demás { if (enlace de verificación de datos && documento. elemento activo === enlace de verificación de datos) { ejecutarFocus(dataVerificationCloseButton); } } } }); // ]]>