VCDPA コンプライアンス
このサイトの GDPR/LGPD/CCPA-CPRA/VCDPA/APPI/PIPEDA コンプライアンスを確保するために使用されるアプリは、データを処理するために IP と電子メール アドレスを収集します。 詳細については、 プライバシー ポリシーと利用規約 を確認してください。
データ修正
アカウント データが正確でない場合は、以下のリンクを使用して更新できます。
データの移植性
以下のリンクを使用して、保存されているすべてのデータをダウンロードし、ストアでのエクスペリエンスを向上させることができます。
個人データへのアクセス
以下のリンクを使用して、当社が保存するすべての個人情報を含むレポートをリクエストできます。
私の個人情報を売らないでください
個人情報の収集または販売に同意しないことを知らせるリクエストを送信できます。
忘れられる権利
ストアから個人データやその他のデータを削除する場合は、このオプションを使用してください。 このプロセスによりアカウントが削除されるため、アクセスしたり使用したりできなくなります。
';
var vcdpaSendRequest = 関数 (コールバック) {
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')});
もし (windows. ショピファイ。 お客様のプライバシー。 userDataCanBeSold()) {
窓。 ショピファイ。 お客様のプライバシー。 setCCPAConsent(false, () => {});
}
もし(文書。 querySelector(' cc-window')) {
書類。 querySelector(' cc-window') スタイル。 表示 = 'なし';
}
// ポップアップ テキストをリセット
書類。 querySelector('#vcdpa-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 ';
}
フォームデータ。 append('ショップ', Shopify. 店);
フォームデータ。 append('メール', メール);
フォームデータ。 append('タイプ', タイプ);
フォームデータ。 append('sourceOfRequest', 5);
フォームデータ。 append('ipAddress', ipInfo);
フォームデータ。 append('consentGiven', consentGiven);
フォームデータ。 append('ページ', 'vcdpa');
フォームデータ。 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. エラー) {
vcdpaSlideUpAll();
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();
});
書類。 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;
vcdpaSendRequest(関数(応答) {
同意を得た = 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 . ローディング」)。 スタイル。 表示 = 'なし';
// 選択されたリクエスト タイプのボタンにフォーカスします
vcdpaForms = ドキュメントとします。 querySelectorAll('. フォーム-vcdpa-リクエスト');
vcdpaForms. forEach(関数(vcdpaForm) {
if (vcdpaForm. スタイル。 表示 !== "なし") {
vcdpaFormLinks = vcdpaForm とします。 前のElementSibling。 querySelectorAll('li');
if (vcdpaFormLinks. 長さ === 1) {
vcdpaFormLinks[0]. querySelector('ボタン')。 集中();
} そうでなければ (vcdpaFormLinks. 長さ > 1) {
vcdpaFormPickedLinkValue = ドキュメント。 querySelector('#form-vcdpa-data-account-request-request-type')。 価値;
スイッチ (vcdpaFormPickedLinkValue) {
ケース「顧客/リクエスト」:
vcdpaFormLinks[0]. querySelector('ボタン')。 集中();
壊す;
ケース「顧客/個人情報」:
vcdpaFormLinks[1]。 querySelector('ボタン')。 集中();
壊す;
ケース「顧客/注文」:
vcdpaFormLinks[2]。 querySelector('ボタン')。 集中();
壊す;
デフォルト:
壊す;
}
}
}
});
}
書類。 querySelector('#btn-vcdpa-edit-account-request')。 addEventListener('クリック', function(e) {
e. preventDefault();
vcdpaSlideUpAll();
slideDown(ドキュメント. querySelector('#form-vcdpa-edit-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-vcdpa-edit-account-request-submit'). addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-vcdpa-edit-account-request-email')。 価値;
タイプ = '顧客/編集';
openVerificationModal();
});
書類。 querySelectorAll('#btn-vcdpa-requests-request, #btn-vcdpa-personal-information-request, #btn-vcdpa-orders-request'). forEach(要素 => {
エレメント。 addEventListener('クリック', function(e) {
e. preventDefault();
vcdpaSlideUpAll();
タイプ = '';
// ポップアップ メッセージをリセットします
書類。 querySelector('#vcdpa-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 ';
スイッチ(これ。 getAttribute('id')) {
ケース「btn-vcdpa-requests-request」:
タイプ = '顧客/リクエスト';
壊す;
case 'btn-vcdpa-個人情報請求':
タイプ = '顧客/個人情報';
壊す;
ケース「btn-vcdpa-orders-request」:
タイプ = '顧客/注文';
壊す;
}
書類。 querySelector('#form-vcdpa-data-account-request-request-type')。 値 = タイプ;
slideDown(ドキュメント. querySelector('#form-vcdpa-data-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
}))
});
書類。 querySelector('#form-vcdpa-data-account-request-submit')。 addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-vcdpa-data-account-request-email')。 価値;
タイプ=ドキュメント。 querySelector('#form-vcdpa-data-account-request-request-type')。 価値;
openVerificationModal();
});
書類。 querySelector('#btn-vcdpa-personal-data-report-request'). addEventListener('クリック', function(e) {
e. preventDefault();
vcdpaSlideUpAll();
slideDown(ドキュメント. querySelector('#form-vcdpa-personal-data-report-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-vcdpa-personal-data-report-request-submit')。 addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-vcdpa-personal-data-report-request-email')。 価値;
タイプ = '顧客/レポート';
openVerificationModal();
});
書類。 querySelector('#btn-vcdpa-do-not-sell-request')。 addEventListener('クリック', function(e) {
e. preventDefault();
vcdpaSlideUpAll();
slideDown(ドキュメント. querySelector('#form-vcdpa-do-not-sell-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-vcdpa-do-not-sell-request-submit')。 addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-vcdpa-do-not-sell-request-email')。 価値;
type = '顧客/販売禁止';
// 顧客がログインしているかどうかを確認します
もし (__st. cid != 未定義) {
書類。 querySelector('#vcdpa-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 ';
} それ以外 {
書類。 querySelector('#vcdpa-modal-container-text')。 innerHTML = 'このリクエストを処理する目的で、電子メール アドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約。 注: ゲスト ユーザーであるか、アカウントにログインしていない場合、オプトアウトの選択はこのブラウザ セッションでのみ有効です。 ';
}
openVerificationModal();
});
書類。 querySelector('#btn-vcdpa-delete-account-request')。 addEventListener('クリック', function(e) {
e. preventDefault();
vcdpaSlideUpAll();
slideDown(ドキュメント. querySelector('#form-vcdpa-delete-account-request'), 200);
これ。 setAttribute("aria-expanded", "true");
});
書類。 querySelector('#form-vcdpa-delete-account-request-submit')。 addEventListener('クリック', function(e) {
e. preventDefault();
電子メール = ドキュメント。 querySelector('#form-vcdpa-delete-account-request-email')。 価値;
タイプ = '顧客/削除';
openVerificationModal();
});
// コンプライアンス ページのリクエストに対するキーボード ナビゲーション
書類。 querySelector('#vcdpa_page')。 addEventListener('keydown', function(e) {
isTabPressed = e. キーコード === 9 || e. キー === "タブ" || e. コード === "タブ";
// この関数により、e を呼び出す手間が省けます。 フォーカシングごとに preventDefault()
let executeFocus = (focusElement) => {focusElement. focus();e. preventDefault();}
if (isTabPressed) {
vcdpaFormPickedLinkValue = ドキュメントとします。 querySelector('#form-vcdpa-data-account-request-request-type')。 価値;
vcdpaRequestsButton = ドキュメントとします。 querySelector('#btn-vcdpa-requests-request');
個人情報ボタン = ドキュメントとします。 querySelector('#btn-vcdpa-個人情報請求');
ordersButton = ドキュメントとします。 querySelector('#btn-vcdpa-orders-request');
personalDataReportButton = ドキュメントとします。 querySelector('#btn-vcdpa-personal-data-report-request');
dataAccountFormEmailField = ドキュメントとします。 querySelector('#form-vcdpa-data-account-request-email');
let dataAccountFormSubmitButton = ドキュメント。 querySelector('#form-vcdpa-data-account-request-submit');
もし (e. シフトキー) {
if ((ドキュメント。 activeElement === personalInformationButton && vcdpaFormPickedLinkValue === '顧客/リクエスト') ||
(書類。 activeElement === ordersButton && vcdpaFormPickedLinkValue === '顧客/個人情報')) {
executeFocus(dataAccountFormSubmitButton);
} そうでなければ (ドキュメント。 activeElement === dataAccountFormEmailField) {
if (vcdpaFormPickedLinkValue === '顧客/リクエスト') {
executeFocus(vcdpaRequestsButton);
} その他の場合 (vcdpaFormPickedLinkValue === '顧客/個人情報') {
executeFocus(個人情報ボタン);
}
} そうでなければ (ドキュメント。 activeElement === personalDataReportButton) {
if (vcdpaFormPickedLinkValue !== '顧客/注文') {
executeFocus(ordersButton);
}
}
} それ以外 {
if ((ドキュメント。 activeElement === vcdpaRequestsButton && vcdpaFormPickedLinkValue === '顧客/リクエスト') ||
(書類。 activeElement === 個人情報ボタン && vcdpaFormPickedLinkValue === '顧客/個人情報')) {
executeFocus(dataAccountFormEmailField);
} そうでなければ (ドキュメント。 activeElement === dataAccountFormSubmitButton) {
if (vcdpaFormPickedLinkValue === '顧客/リクエスト') {
executeFocus(個人情報ボタン);
} その他の場合 (vcdpaFormPickedLinkValue === '顧客/個人情報') {
executeFocus(ordersButton);
}
} そうでなければ (ドキュメント。 activeElement === ordersButton) {
if (vcdpaFormPickedLinkValue !== '顧客/注文') {
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);
}
}
}
});
このリクエストを処理する目的で、メールアドレスと IP アドレスを収集することに同意します。 詳細については、プライバシー ポリシーと利用規約.