GDPR コンプライアンス
このサイトの GDPR/LGPD/CCPA-CPRA/VCDPA/APPI/PIPEDA コンプライアンスを確保するために使用されるアプリは、データを処理するために IP と電子メール アドレスを収集します。 詳細については、 プライバシー ポリシーと利用規約 を確認してください。
データ修正
アカウント データが正確でない場合は、以下のリンクを使用して更新できます。
データの移植性
以下のリンクを使用して、保存されているすべてのデータをダウンロードし、ストアでのエクスペリエンスを向上させることができます。
個人データへのアクセス
以下のリンクを使用して、当社が保存するすべての個人情報を含むレポートをリクエストできます。
忘れられる権利
ストアから個人データやその他のデータを削除する場合は、このオプションを使用してください。 このプロセスによりアカウントが削除されるため、アカウントにアクセスしたり使用したりできなくなります。
';
var gdprSendRequest = 関数 (コールバック) {
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();
フォームデータ。 append('ショップ', Shopify. 店);
フォームデータ。 append('メール', メール);
フォームデータ。 append('タイプ', タイプ);
フォームデータ。 append('sourceOfRequest', 1);
フォームデータ。 append('ipAddress', ipInfo);
フォームデータ。 append('consentGiven', consentGiven);
フォームデータ。 append('ページ', 'gdpr');
フォームデータ。 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. エラー) {
gdprSlideUpAll();
if (resp. メッセージ。 長さ) {
アラート(それぞれ メッセージ);
} それ以外 {
alert('リクエストは正常に送信されました。 詳細については、電子メールを確認してください。 ');
}
} それ以外 {
アラート(それぞれ メッセージ);
}
if (typeof callback == '関数') {
コールバック(応答);
}
}))
. キャッチ(エラー=> {
アラート(エラー。 メッセージ);
}))
}
それ以外 {
アラート(それぞれ メッセージ);
}
}))
}
//モーダルをボディに追加します。そうしないと、中央に配置されないためです(位置が固定されていても)
書類。 querySelector("本体")。 insertAdjacentHTML('beforeend', validationModalContent);
書類。 addEventListener("DOMContentLoaded", function() {
// ユーザーが (x) をクリックすると、モーダルを閉じます
書類。 querySelector(' data-verification-close')。 addEventListener('クリック', function(e) {
e. preventDefault();
closeVerificationModal();
});
書類。 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;
gdprSendRequest(関数(応答) {
同意を得た = 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 . ローディング」)。 スタイル。 表示 = 'なし';
// 選択されたリクエスト タイプのボタンにフォーカスします
gdprForms = ドキュメントとします。 querySelectorAll('. フォーム-gdpr-リクエスト');
gdprForms. forEach(関数(gdprForm) {
if (gdprForm. スタイル。 表示 !== "なし") {
gdprFormLinks = gdprForm とします。 前のElementSibling。 querySelectorAll('li');
もし (gdprFormLinks. 長さ === 1) {
gdprFormLinks[0]. querySelector('ボタン')。 集中();
} そうでなければ (gdprFormLinks. 長さ > 1) {
gdprFormPickedLinkValue = ドキュメント. querySelector('#form-gdpr-data-account-request-request-type')。 価値;
スイッチ (gdprFormPickedLinkValue) {
ケース「顧客/リクエスト」:
gdprFormLinks[0]. querySelector('ボタン')。 集中();
壊す;
ケース「顧客/個人情報」:
gdprFormLinks[1]. querySelector('ボタン')。 集中();
壊す;
ケース「顧客/注文」:
gdprFormLinks[2]。 querySelector('ボタン')。 集中();
壊す;
デフォルト:
壊す;
}
}
}
});
}
書類。 querySelector('#btn-gdpr-edit-account-request'). addEventListener('クリック', function(e) {
e. preventDefault();
gdprSlideUpAll();
slideDown(ドキュメント. querySelector('#form-gdpr-edit-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-gdpr-edit-account-request-submit'). addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-gdpr-edit-account-request-email'). 価値;
タイプ = '顧客/編集';
openVerificationModal();
});
書類。 querySelectorAll('#btn-gdpr-requests-request, #btn-gdpr-personal-information-request, #btn-gdpr-orders-request'). forEach(要素 => {
エレメント。 addEventListener('クリック', function(e) {
e. preventDefault();
gdprSlideUpAll();
タイプ = '';
スイッチ(これ。 getAttribute('id')) {
ケース「btn-gdpr-requests-request」:
タイプ = '顧客/リクエスト';
壊す;
case 'btn-gdpr-個人情報請求':
タイプ = '顧客/個人情報';
壊す;
ケース「btn-gdpr-orders-request」:
タイプ = '顧客/注文';
壊す;
}
書類。 querySelector('#form-gdpr-data-account-request-request-type')。 値 = タイプ;
slideDown(ドキュメント. querySelector('#form-gdpr-data-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
}))
});
書類。 querySelector('#form-gdpr-data-account-request-submit'). addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-gdpr-data-account-request-email')。 価値;
タイプ=ドキュメント。 querySelector('#form-gdpr-data-account-request-request-type')。 価値;
openVerificationModal();
});
書類。 querySelector('#btn-gdpr-personal-data-report-request'). addEventListener('クリック', function(e) {
e. preventDefault();
gdprSlideUpAll();
slideDown(ドキュメント. querySelector('#form-gdpr-personal-data-report-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-gdpr-personal-data-report-request-submit')。 addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-gdpr-personal-data-report-request-email')。 価値;
タイプ = '顧客/レポート';
openVerificationModal();
});
書類。 querySelector('#btn-gdpr-delete-account-request')。 addEventListener('クリック', function(e) {
e. preventDefault();
gdprSlideUpAll();
slideDown(ドキュメント. querySelector('#form-gdpr-delete-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-gdpr-delete-account-request-submit'). addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-gdpr-delete-account-request-email')。 価値;
タイプ = '顧客/削除';
openVerificationModal();
});
// コンプライアンス ページのリクエストに対するキーボード ナビゲーション
書類。 querySelector('#gdpr_page')。 addEventListener('keydown', function(e) {
isTabPressed = e. キーコード === 9 || e. キー === "タブ" || e. コード === "タブ";
// この関数により、e を呼び出す手間が省けます。 フォーカシングごとに preventDefault()
let executeFocus = (focusElement) => {focusElement. focus();e. preventDefault();}
if (isTabPressed) {
gdprFormPickedLinkValue = ドキュメントとします。 querySelector('#form-gdpr-data-account-request-request-type')。 価値;
gdprRequestsButton = ドキュメントとします。 querySelector('#btn-gdpr-requests-request');
個人情報ボタン = ドキュメントとします。 querySelector('#btn-gdpr-個人情報請求');
ordersButton = ドキュメントとします。 querySelector('#btn-gdpr-orders-request');
personalDataReportButton = ドキュメントとします。 querySelector('#btn-gdpr-personal-data-report-request');
dataAccountFormEmailField = ドキュメントとします。 querySelector('#form-gdpr-data-account-request-email');
let dataAccountFormSubmitButton = ドキュメント。 querySelector('#form-gdpr-data-account-request-submit');
もし (e. シフトキー) {
if ((ドキュメント。 activeElement === personalInformationButton && gdprFormPickedLinkValue === '顧客/リクエスト') ||
(書類。 activeElement === ordersButton && gdprFormPickedLinkValue === '顧客/個人情報')) {
executeFocus(dataAccountFormSubmitButton);
} そうでなければ (ドキュメント。 activeElement === dataAccountFormEmailField) {
if (gdprFormPickedLinkValue === '顧客/リクエスト') {
executeFocus(gdprRequestsButton);
} その他の場合 (gdprFormPickedLinkValue === '顧客/個人情報') {
executeFocus(個人情報ボタン);
}
} そうでなければ (ドキュメント。 activeElement === personalDataReportButton) {
if (gdprFormPickedLinkValue !== '顧客/注文') {
executeFocus(ordersButton);
}
}
} それ以外 {
if ((ドキュメント。 activeElement === gdprRequestsButton && gdprFormPickedLinkValue === '顧客/リクエスト') ||
(書類。 activeElement === personalInformationButton && gdprFormPickedLinkValue === '顧客/個人情報')) {
executeFocus(dataAccountFormEmailField);
} そうでなければ (ドキュメント。 activeElement === dataAccountFormSubmitButton) {
if (gdprFormPickedLinkValue === '顧客/リクエスト') {
executeFocus(個人情報ボタン);
} その他の場合 (gdprFormPickedLinkValue === '顧客/個人情報') {
executeFocus(ordersButton);
}
} そうでなければ (ドキュメント。 activeElement === ordersButton) {
if (gdprFormPickedLinkValue !== '顧客/注文') {
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 (isSpacePressed || isEnterPressed) {
let dataVerificationCheckbox = ドキュメント。 querySelector('#データ検証コンテナ入力');
もし(文書。 activeElement === dataVerificationCheckbox) {
書類。 querySelector('#データ検証コンテナ #データ検証アイコン'). クリック();
}
}
if (isTabPressed) {
もし (e. シフトキー) {
if (dataVerificationCloseButton && document. activeElement === dataVerificationCloseButton) {
executeFocus(dataVerificationLink);
}
} それ以外 {
if (dataVerificationLink && document. activeElement === dataVerificationLink) {
executeFocus(dataVerificationCloseButton);
}
}
}
});
このリクエストを処理する目的で、メールアドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約.