PIPEDAコンプライアンス

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

データ修正

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

データの移植性

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

個人データへのアクセス

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

<スクリプト>// { 目標。 スタイル。 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') === 'form-pipeda-data-account-request') { 書類。 querySelector('#form-pipeda-data-account-request-request-type')。 値 = ''; } } /* スライドダウン */ let slideDown = (ターゲット、期間 = 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 pipedaSlideUpAll = 関数 () { slideUp(ドキュメント. querySelector('#form-pipeda-edit-account-request'), 100); slideUp(ドキュメント. querySelector('#form-pipeda-data-account-request'), 100); slideUp(ドキュメント. querySelector('#form-pipeda-personal-data-report-request'), 100); 書類。 querySelector('#pipeda_page ボタン')。 setAttribute("aria-expanded", "false"); }; var メール、タイプ、consentGiven = false; var validationModalContent = '
​​

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

'; var pipedaSendRequest = 関数 (コールバック) { 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', 4); フォームデータ。 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. エラー) { pipedaSlideUpAll(); if (resp. メッセージ。 長さ) { アラート(それぞれ メッセージ); } それ以外 { alert('リクエストは正常に送信されました。 詳細については、電子メールを確認してください。 '); } } それ以外 { アラート(それぞれ メッセージ); } if (typeof callback == '関数') { コールバック(応答); } })) . キャッチ(エラー=> { アラート(エラー。 メッセージ); })) } それ以外 { アラート(それぞれ メッセージ); } })) } //モーダルをボディに追加します。そうしないと、中央に配置されないためです(位置が固定されていても) 書類。 querySelector("本体")。 insertAdjacentHTML('beforeend', validationModalContent); 書類。 addEventListener("DOMContentLoaded", function () { // ユーザーが (x) をクリックすると、モーダルを閉じます 書類。 querySelector(' data-verification-close')。 addEventListener('クリック', function (e) { e. preventDefault(); closeVerificationModal(); // 選択されたリクエスト タイプのボタンにフォーカスします pipedaForms = ドキュメントとします。 querySelectorAll('. form-pipeda-request'); pipedaForms。 forEach(関数(pipedaForm) { if (pipedaForm. スタイル。 表示 !== "なし") { pipedaFormLinks = pipedaForm とします。 前のElementSibling。 querySelectorAll('li'); if (pipedaFormLinks. 長さ === 1) { pipedaFormLinks[0]. querySelector('ボタン')。 集中(); } そうでなければ (pipedaFormLinks. 長さ > 1) { pipedaFormPickedLinkValue = ドキュメント. querySelector('#form-pipeda-data-account-request-request-type')。 価値; スイッチ (pipedaFormPickedLinkValue) { ケース「顧客/リクエスト」: pipedaFormLinks[0]. querySelector('ボタン')。 集中(); 壊す; ケース「顧客/個人情報」: pipedaFormLinks[1]。 querySelector('ボタン')。 集中(); 壊す; ケース「顧客/注文」: pipedaFormLinks[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; pipedaSendRequest(関数 (応答) { 同意を得た = 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-pipeda-edit-account-request')。 addEventListener('クリック', function (e) { e. preventDefault(); pipedaSlideUpAll(); slideDown(ドキュメント. querySelector('#form-pipeda-edit-account-request'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-pipeda-edit-account-request-submit')。 addEventListener('クリック', function (e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-pipeda-edit-account-request-email')。 価値; タイプ = '顧客/編集'; openVerificationModal(); }); 書類。 querySelectorAll('#btn-pipeda-requests-request, #btn-pipeda-personal-information-request, #btn-pipeda-orders-request'). forEach(要素 => { エレメント。 addEventListener('クリック', function (e) { e. preventDefault(); pipedaSlideUpAll(); タイプ = ''; スイッチ(これ。 getAttribute('id')) { case 'btn-pipeda-requests-request': タイプ = '顧客/リクエスト'; 壊す; case 'btn-pipeda-personal-information-request': タイプ = '顧客/個人情報'; 壊す; case 'btn-pipeda-orders-request': タイプ = '顧客/注文'; 壊す; } 書類。 querySelector('#form-pipeda-data-account-request-request-type')。 値 = タイプ; slideDown(ドキュメント. querySelector('#form-pipeda-data-account-request'), 200); これ。 setAttribute("aria-expanded", "true"); })) }); 書類。 querySelector('#form-pipeda-data-account-request-submit')。 addEventListener('クリック', function (e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-pipeda-data-account-request-email')。 価値; タイプ=ドキュメント。 querySelector('#form-pipeda-data-account-request-request-type')。 価値; openVerificationModal(); }); 書類。 querySelector('#btn-pipeda-personal-data-report-request')。 addEventListener('クリック', function (e) { e. preventDefault(); pipedaSlideUpAll(); slideDown(ドキュメント. querySelector('#form-pipeda-personal-data-report-request'), 200); これ。 setAttribute("aria-expanded", "true"); }); 書類。 querySelector('#form-pipeda-personal-data-report-request-submit')。 addEventListener('クリック', function (e) { e. preventDefault(); 電子メール = ドキュメント。 querySelector('#form-pipeda-personal-data-report-request-email')。 価値; タイプ = '顧客/レポート'; openVerificationModal(); }); // コンプライアンス ページのリクエストに対するキーボード ナビゲーション 書類。 querySelector('#pipeda_page')。 addEventListener('keydown', function(e) { isTabPressed = e. キーコード === 9 || e. キー === "タブ" || e. コード === "タブ"; // この関数により、e を呼び出す手間が省けます。 フォーカシングごとに preventDefault() let executeFocus = (focusElement) => {focusElement. focus();e. preventDefault();} if (isTabPressed) { pipedaFormPickedLinkValue = ドキュメントとします。 querySelector('#form-pipeda-data-account-request-request-type')。 価値; pipedaRequestsButton = ドキュメントとします。 querySelector('#btn-pipeda-requests-request'); 個人情報ボタン = ドキュメントとします。 querySelector('#btn-pipeda-個人情報依頼'); ordersButton = ドキュメントとします。 querySelector('#btn-pipeda-orders-request'); personalDataReportButton = ドキュメントとします。 querySelector('#btn-pipeda-personal-data-report-request'); dataAccountFormEmailField = ドキュメントとします。 querySelector('#form-pipeda-data-account-request-email'); let dataAccountFormSubmitButton = ドキュメント。 querySelector('#form-pipeda-data-account-request-submit'); もし (e. シフトキー) { if ((ドキュメント。 activeElement === personalInformationButton && pipedaFormPickedLinkValue === '顧客/リクエスト') || (書類。 activeElement === ordersButton && pipedaFormPickedLinkValue === '顧客/個人情報')) { executeFocus(dataAccountFormSubmitButton); } そうでなければ (ドキュメント。 activeElement === dataAccountFormEmailField) { if (pipedaFormPickedLinkValue === '顧客/リクエスト') { executeFocus(pipedaRequestsButton); } その他の場合 (pipedaFormPickedLinkValue === '顧客/個人情報') { executeFocus(個人情報ボタン); } } そうでなければ (ドキュメント。 activeElement === personalDataReportButton) { if (pipedaFormPickedLinkValue !== '顧客/注文') { executeFocus(ordersButton); } } } それ以外 { if ((ドキュメント。 activeElement === pipedaRequestsButton && pipedaFormPickedLinkValue === '顧客/リクエスト') || (書類。 activeElement === personalInformationButton && pipedaFormPickedLinkValue === '顧客/個人情報')) { executeFocus(dataAccountFormEmailField); } そうでなければ (ドキュメント。 activeElement === dataAccountFormSubmitButton) { if (pipedaFormPickedLinkValue === '顧客/リクエスト') { executeFocus(個人情報ボタン); } その他の場合 (pipedaFormPickedLinkValue === '顧客/個人情報') { executeFocus(ordersButton); } } そうでなければ (ドキュメント。 activeElement === ordersButton) { if (pipedaFormPickedLinkValue !== '顧客/注文') { 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); } } } }); // ]]>