APPI コンプライアンス

このサイトの GDPR/LGPD/CCPA-CPRA/VCDPA/APPI/PIPEDA コンプライアンスを確保するために使用されるアプリは、データを処理するために IP と電子メール アドレスを収集します。 詳細については、 プライバシー ポリシーと利用規約 を確認してください。

データ修正

アカウント データが正確でない場合は、以下のリンクを使用して更新できます。

データの移植性

以下のリンクを使用して、保存されているすべてのデータをダウンロードし、ストアでのエクスペリエンスを向上させることができます。

個人データへのアクセス

以下のリンクを使用して、当社が保存するすべての個人情報を含むレポートをリクエストできます。

私の個人情報を第三者に販売しない

お客様の個人情報の収集または第三者への販売に同意しないことを当社に通知するリクエストを送信できます。

忘れられる権利

ストアから個人データやその他のデータを削除する場合は、このオプションを使用してください。 このプロセスによりアカウントが削除されるため、アクセスしたり使用したりできなくなります

<スクリプト> /* 上にスライドします */ let slideUp = (target, duration=500) => { 目標。 スタイル。 transitionProperty = '高さ、マージン、パディング'; 目標。 スタイル。 transitionDuration = 期間 + 'ミリ秒'; 目標。 スタイル。 box Size = 'border-box';目標。 スタイル。 高さ=目標。 オフセット高さ + 'px'; 目標。 オフセット高さ; 目標。 スタイル。 オーバーフロー = '隠し'; 目標。 スタイル。 高さ = 0; 目標。 スタイル。 パディングトップ = 0; 目標。 スタイル。 paddingBottom = 0; 目標。 スタイル。 マージントップ = 0; 目標。 スタイル。 marginBottom = 0; 窓。 setTimeout( () => { 目標。 スタイル。 表示 = 'なし'; 目標。 スタイル。 removeProperty('高さ'); 目標。 スタイル。 removeProperty('パディングトップ'); 目標。 スタイル。 removeProperty('パディング-ボトム'); 目標。 スタイル。 removeProperty('マージントップ'); 目標。 スタイル。 removeProperty('margin-bottom'); 目標。 スタイル。 removeProperty('オーバーフロー'); 目標。 スタイル。 removeProperty('transition-duration'); 目標。 スタイル。 removeProperty('transition-property'); }、 間隔); // Data Portability セクションを閉じるときに、リクエスト タイプの値を空の文字列に戻します もし(対象。 getAttribute('id') === 'フォームアプリデータアカウントリクエスト') { 書類。 querySelector('#form-appi-data-account-request-request-type'). 値 = ''; } } /* スライドダウン */ let slideDown = (target, duration=500) => { setTimeout(関数(){ 目標。 スタイル。 removeProperty('表示'); ディスプレイ = ウィンドウとします。 getComputedStyle(ターゲット). 画面; if (表示 === 'なし') 表示 = 'ブロック'; 目標。 スタイル。 表示 = 表示; 高さ = ターゲットとします。 オフセット高さ; 目標。 スタイル。 オーバーフロー = '隠し'; 目標。 スタイル。 高さ = 0; 目標。 スタイル。 パディングトップ = 0; 目標。 スタイル。 paddingBottom = 0; 目標。 スタイル。 マージントップ = 0; 目標。 スタイル。 marginBottom = 0; 目標。 オフセット高さ; 目標。 スタイル。 box Size = 'border-box';目標。 スタイル。 transitionProperty = "高さ、マージン、パディング"; 目標。 スタイル。 transitionDuration = 期間 + 'ミリ秒'; 目標。 スタイル。 高さ = 高さ + 'px'; 目標。 スタイル。 removeProperty('パディングトップ'); 目標。 スタイル。 removeProperty('パディング-ボトム'); 目標。 スタイル。 removeProperty('マージントップ'); 目標。 スタイル。 removeProperty('margin-bottom'); 窓。 setTimeout( () => { 目標。 スタイル。 removeProperty('高さ'); 目標。 スタイル。 removeProperty('オーバーフロー'); 目標。 スタイル。 removeProperty('transition-duration'); 目標。 スタイル。 removeProperty('transition-property'); }、 間隔); }, 100) } /* トゥーグル */ var slideToggle = (ターゲット、期間 = 500) => { もし (windows. getComputedStyle(ターゲット). 表示 === 'なし') { スライドダウン(ターゲット、期間)を返します。 } それ以外 { スライドアップ(ターゲット、期間)を返します。 } } /* フェード */ var toggleFadeiSense = (elem, show) => { もし (表示) { アイテム。 スタイル。 表示 = "ブロック"; setTimeout(関数(){ アイテム。 クラスリスト。 add('show-isense'); アイテム。 クラスリスト。 remove('hide-isense'); },20) } それ以外 { アイテム。 クラスリスト。 remove('show-isense'); アイテム。 クラスリスト。 add('hide-isense'); setTimeout(() => { アイテム。 スタイル。 表示 = 'なし'; }、400) } } var appiSlideUpAll = function() { slideUp(ドキュメント. querySelector('#form-appi-edit-account-request'), 100); slideUp(ドキュメント. querySelector('#form-appi-data-account-request'), 100); slideUp(ドキュメント. querySelector('#フォームアプリ個人データ報告依頼'), 100); slideUp(ドキュメント. querySelector('#form-appi-do-not-sell-request'), 100); slideUp(ドキュメント. querySelector('#form-appi-delete-account-request'), 100); 書類。 querySelector('#appi_page ボタン')。 setAttribute("aria-expanded", "false"); }; var メール、タイプ、consentGiven = false; var validationModalContent = '
​​

このリクエストを処理する目的で、メールアドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約.

'; var appiSendRequest = 関数 (コールバック) { fetch('https://www. クラウドフレア。 com/cdn-cgi/trace', { メソッド: 'GET' , ヘッダー: { 'Content-Type': 'text/plain', }、 })) . then(resp => resp. 文章()) . その後(resp => { if (!resp. エラー) { let ipInfo = resp; let formData = new FormData(); if (type === '顧客/販売禁止') { isenseGDPR。 クッキー。 set('cookieconsent_preferences_disabled', 'analytics,marketing,functionality,', { 有効期限: 365 }); isenseGDPR。 クッキー。 set('cookieconsent_status', 'accept_selected', { 有効期限: 365 }); 窓。 ショピファイ。 追跡同意。 setTrackingConsent(false, function() { console. log('setTrackingConsent false')}); もし(文書。 querySelector(' cc-window')) { 書類。 querySelector(' cc-window') スタイル。 表示 = 'なし'; } // ポップアップ テキストをリセット 書類。 querySelector('#appi-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 '; } フォームデータ。 append('ショップ', Shopify. 店); フォームデータ。 append('メール', メール); フォームデータ。 append('タイプ', タイプ); フォームデータ。 append('sourceOfRequest', 3); フォームデータ。 append('ipAddress', ipInfo); フォームデータ。 append('consentGiven', consentGiven); フォームデータ。 append('ページ', 'アプリ'); フォームデータ。 append('lang', Shopify. 地元 ?ショピファイ。 地元 : ''); フォームデータ。 append('gtranslateLang', isenseGDPR. クッキー。 get('googtrans') ? isenseGDPR。 クッキー。 get('googtrans'): ''); fetch('https://gdpr. アプリ。 isenselabs。 com/gdprRequests/submitRequest', { メソッド: 'POST', 本体:フォームデータ })) . then(resp => resp. json()) . その後(resp => { if (!resp. エラー) { appiSlideUpAll(); if (resp. メッセージ。 長さ) { アラート(それぞれ メッセージ); } それ以外 { alert('リクエストは正常に送信されました。 詳細については、電子メールを確認してください。 '); } } それ以外 { アラート(それぞれ メッセージ); } if (typeof callback == '関数') { コールバック(応答); } })) . キャッチ(エラー=> { アラート(エラー。 メッセージ); })) } それ以外 { アラート(それぞれ メッセージ); } })) } //モーダルをボディに追加します。そうしないと、中央に配置されないためです(位置が固定されていても) 書類。 querySelector("本体")。 insertAdjacentHTML('beforeend', validationModalContent); 書類。 addEventListener("DOMContentLoaded", function() { let searchParams = new URLSearchParams(window. リース。 検索); param = searchParams とします。 get('id'); if(パラメータ) { 書類。 getElementById(param)。 scrollIntoView(); } // ユーザーが (x) をクリックすると、モーダルを閉じます 書類。 querySelector(' data-verification-close')。 addEventListener('クリック', function(e) { e. preventDefault(); closeVerificationModal(); // 選択されたリクエスト タイプのボタンにフォーカスします appiForms = ドキュメントとします。 querySelectorAll('. フォーム API リクエスト'); API フォーム。 forEach(関数(appiForm) { if (appiForm. スタイル。 表示 !== "なし") { appiFormLinks = appiForm とします。 前のElementSibling。 querySelectorAll('li'); if (appiFormLinks. 長さ === 1) { appiFormLinks[0]. querySelector('ボタン')。 集中(); } そうでなければ (appiFormLinks. 長さ > 1) { appiFormPickedLinkValue = ドキュメント。 querySelector('#form-appi-data-account-request-request-type'). 価値; スイッチ (appiFormPickedLinkValue) { ケース「顧客/リクエスト」: appiFormLinks[0]. querySelector('ボタン')。 集中(); 壊す; ケース「顧客/個人情報」: appiFormLinks[1]。 querySelector('ボタン')。 集中(); 壊す; ケース「顧客/注文」: appiFormLinks[2]。 querySelector('ボタン')。 集中(); 壊す; デフォルト: 壊す; } } } }); }); 書類。 querySelector('#data-verification-icon, #data-verification-container p'). addEventListener('クリック', function(e) { e. preventDefault(); // 上書きされるため、href のクリックを検出します。 もし(e. 目標 tagName === "A") { 窓。 開く(e. 目標 href, '_blank'); 戻る; } 書類。 querySelector('#データ検証アイコン')。 クラスリスト。 add("クリック"); setTimeout(()=>{ toggleFadeiSense(document. querySelector("#data-verification-modal"), false); 書類。 querySelector('#data-verification-background . ローディング」)。 スタイル。 表示 = 'インライン ブロック'; 同意を得た = true; appiSendRequest(関数(応答) { 同意を得た = false; closeVerificationModal(); }); }、400); }); }); 関数 openVerificationModal(){ toggleFadeiSense(document. querySelector("#data-verification-modal"), true); toggleFadeiSense(document. querySelector('#data-verification-background'), true); 書類。 querySelector('#データ検証コンテナ入力'). 集中(); } 関数closeVerificationModal(){ toggleFadeiSense(document. querySelector("#data-verification-background"), false); 書類。 querySelector('#データ検証アイコン')。 クラスリスト。 remove("クリック"); 書類。 querySelector('#data-verification-background . ローディング」)。 スタイル。 表示 = 'なし'; } 書類。 querySelector('#btn-appi-edit-account-request'). addEventListener('クリック', function(e) { e. preventDefault(); appiSlideUpAll(); slideDown(ドキュメント. querySelector('#form-appi-edit-account-request'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-appi-edit-account-request-submit'). addEventListener('クリック', function(e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-appi-edit-account-request-email'). 価値; タイプ = '顧客/編集'; openVerificationModal(); }); 書類。 querySelectorAll('#btn-appi-requests-request, #btn-appi-personal-information-request, #btn-appi-orders-request'). forEach(要素 => { エレメント。 addEventListener('クリック', function(e) { e. preventDefault(); appiSlideUpAll(); タイプ = ''; // ポップアップ メッセージをリセットします 書類。 querySelector('#appi-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 '; スイッチ(これ。 getAttribute('id')) { case 'btn-appi-requests-request': タイプ = '顧客/リクエスト'; 壊す; case 'btn-appi-個人情報請求': タイプ = '顧客/個人情報'; 壊す; case 'btn-appi-orders-request': タイプ = '顧客/注文'; 壊す; } 書類。 querySelector('#form-appi-data-account-request-request-type'). 値 = タイプ; slideDown(ドキュメント. querySelector('#form-appi-data-account-request'), 200); これ。 setAttribute("aria-expanded", "true"); })) }); 書類。 querySelector('#form-appi-data-account-request-submit'). addEventListener('クリック', function(e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-appi-data-account-request-email'). 価値; タイプ=ドキュメント。 querySelector('#form-appi-data-account-request-request-type'). 価値; openVerificationModal(); }); 書類。 querySelector('#btn-appi-personal-data-report-request'). addEventListener('クリック', function(e) { e. preventDefault(); appiSlideUpAll(); slideDown(ドキュメント. querySelector('#フォームアプリ個人データ報告依頼'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-appi-personal-data-report-request-submit'). addEventListener('クリック', function(e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-appi-personal-data-report-request-email')。 価値; タイプ = '顧客/レポート'; openVerificationModal(); }); 書類。 querySelector('#btn-appi-do-not-sell-request'). addEventListener('クリック', function(e) { e. preventDefault(); appiSlideUpAll(); slideDown(ドキュメント. querySelector('#form-appi-do-not-sell-request'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-appi-do-not-sell-request-submit'). addEventListener('クリック', function(e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-appi-do-not-sell-request-email')。 価値; type = '顧客/販売禁止'; // 顧客がログインしているかどうかを確認します もし (__st. cid != 未定義) { 書類。 querySelector('#appi-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 '; } それ以外 { 書類。 querySelector('#appi-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約
注: ゲスト ユーザーであるか、アカウントにログインしていない場合、オプトアウトの選択はこのブラウザ セッションでのみ有効です。 '; } openVerificationModal(); }); 書類。 querySelector('#btn-appi-delete-account-request'). addEventListener('クリック', function(e) { e. preventDefault(); appiSlideUpAll(); slideDown(ドキュメント. querySelector('#form-appi-delete-account-request'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-appi-delete-account-request-submit'). addEventListener('クリック', function(e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-appi-delete-account-request-email')。 価値; タイプ = '顧客/削除'; openVerificationModal(); }); // コンプライアンス ページのリクエストに対するキーボード ナビゲーション 書類。 querySelector('#appi_page')。 addEventListener('keydown', function(e) { isTabPressed = e. キーコード === 9 || e. キー === "タブ" || e. コード === "タブ"; // この関数により、e を呼び出す手間が省けます。 フォーカシングごとに preventDefault() let executeFocus = (focusElement) => {focusElement. focus();e. preventDefault();} if (isTabPressed) { appiFormPickedLinkValue = ドキュメントとします。 querySelector('#form-appi-data-account-request-request-type'). 価値; appiRequestsButton = ドキュメントとします。 querySelector('#btn-appi-requests-request'); 個人情報ボタン = ドキュメントとします。 querySelector('#btn-appi-個人情報依頼'); ordersButton = ドキュメントとします。 querySelector('#btn-appi-orders-request'); personalDataReportButton = ドキュメントとします。 querySelector('#btn-appi-personal-data-report-request'); dataAccountFormEmailField = ドキュメントとします。 querySelector('#form-appi-data-account-request-email'); let dataAccountFormSubmitButton = ドキュメント。 querySelector('#form-appi-data-account-request-submit'); もし (e. シフトキー) { if ((ドキュメント。 activeElement === personalInformationButton && appiFormPickedLinkValue === '顧客/リクエスト') || (書類。 activeElement === ordersButton && appiFormPickedLinkValue === '顧客/個人情報')) { executeFocus(dataAccountFormSubmitButton); } そうでなければ (ドキュメント。 activeElement === dataAccountFormEmailField) { if (appiFormPickedLinkValue === '顧客/リクエスト') { executeFocus(appiRequestsButton); } そうでなければ (appiFormPickedLinkValue === '顧客/個人情報') { executeFocus(個人情報ボタン); } } そうでなければ (ドキュメント。 activeElement === personalDataReportButton) { if (appiFormPickedLinkValue !== '顧客/注文') { executeFocus(ordersButton); } } } それ以外 { if ((ドキュメント。 activeElement === appiRequestsButton && appiFormPickedLinkValue === '顧客/リクエスト') || (書類。 activeElement === personalInformationButton && appiFormPickedLinkValue === '顧客/個人情報')) { executeFocus(dataAccountFormEmailField); } そうでなければ (ドキュメント。 activeElement === dataAccountFormSubmitButton) { if (appiFormPickedLinkValue === '顧客/リクエスト') { executeFocus(個人情報ボタン); } そうでなければ (appiFormPickedLinkValue === '顧客/個人情報') { executeFocus(ordersButton); } } そうでなければ (ドキュメント。 activeElement === ordersButton) { if (appiFormPickedLinkValue !== '顧客/注文') { executeFocus(personalDataReportButton); } } } } }); // アクセシビリティのためのデータ検証モーダルでのキーボード ナビゲーション 書類。 querySelector('#data-verification-modal')。 addEventListener('keydown', function(e) { isTabPressed = e. キーコード === 9 || e. キー === "タブ" || e. コード === "タブ"; isEscapePressed=e とします。 キーコード === 27 || e. キー === "エスケープ" || e. code === "エスケープ"; let isSpacePressed = イベント。 キーコード === 32 || e. キー === " " ||イベント。 コード === "スペース"; let isEnterPressed = イベント。 キーコード === 13 || e. キー === "エンター" ||イベント。 code === "入力"; let dataVerificationCloseButton = ドキュメント。 querySelector(' データ検証クローズ'); let dataVerificationCheckbox = ドキュメント。 querySelector('#データ検証コンテナ入力'); dataVerificationLink = ドキュメントとします。 querySelector('#data-verification-container a'); // この関数により、e を呼び出す手間が省けます。 フォーカシングごとに preventDefault() let executeFocus = (focusElement) => {focusElement. focus();e. preventDefault();} if (isEscapePressed) { if (dataVerificationCloseButton) { dataVerificationCloseButton。 クリック(); } } if (Space Pressed || is Enter Pressed) { of (document. activeElement === dataVerificationCheckbox) { 書類。 querySelector('#データ検証コンテナ #データ検証アイコン'). クリック(); } } if (isTabPressed) { もし (e. シフトキー) { if (dataVerificationCloseButton && document. activeElement === dataVerificationCloseButton) { executeFocus(dataVerificationLink); } } それ以外 { if (dataVerificationLink && document. activeElement === dataVerificationLink) { executeFocus(dataVerificationCloseButton); } } } });