политика конфиденциальности
This commit is contained in:
parent
5d2724581e
commit
6603258474
@ -1,13 +1,13 @@
|
||||
import {Dispatch, SetStateAction, useMemo, useState} from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { deleteProduct, replaceProduct } from '../../api/promoApi';
|
||||
import { useCartPolling } from '../../hooks/useCartPolling';
|
||||
import { declension } from '../../utils/declension';
|
||||
import { formatCurrency } from '../../utils/formatCurrency';
|
||||
import type { Product } from '../../types/cart';
|
||||
import { CartItem } from './CartItem';
|
||||
import { CartFooter } from './CartFooter';
|
||||
import { ProductModal } from './ProductModal';
|
||||
import {deleteProduct, replaceProduct} from '../../api/promoApi';
|
||||
import {useCartPolling} from '../../hooks/useCartPolling';
|
||||
import {declension} from '../../utils/declension';
|
||||
import {formatCurrency} from '../../utils/formatCurrency';
|
||||
import type {Product} from '../../types/cart';
|
||||
import {CartItem} from './CartItem';
|
||||
import {CartFooter} from './CartFooter';
|
||||
import {ProductModal} from './ProductModal';
|
||||
import {useGlobalZustandState} from "../../hooks/useGlobalZustandState";
|
||||
import {NotEnoughPopup} from "./NotEnoughPopup";
|
||||
import {reachGoal} from "../../hooks/useYM";
|
||||
@ -97,11 +97,13 @@ export function Cart({
|
||||
<SummaryDetails $hidden={isLoading}>
|
||||
{products.length > 0 && (
|
||||
<>
|
||||
<span>
|
||||
<div>
|
||||
<span>
|
||||
{products.length} {declension(products.length, ['товар', 'товара', 'товаров'])}
|
||||
</span>
|
||||
<b>•</b>
|
||||
<span>{formattedTotalPrice}</span>
|
||||
<b>•</b>
|
||||
<span>{formattedTotalPrice}</span>
|
||||
</div>
|
||||
<SummaryExcess>
|
||||
с запасами на {stockDays} {declension(stockDays, ['день', 'дня', 'дней'])}
|
||||
</SummaryExcess>
|
||||
@ -138,17 +140,20 @@ export function Cart({
|
||||
</CartList>
|
||||
|
||||
{products.length === 0 && (
|
||||
<EmptyLoader src="/images/empty-cart-loader.svg" alt="сбор корзины" />
|
||||
<EmptyLoader src="/images/empty-cart-loader.svg" alt="сбор корзины"/>
|
||||
)}
|
||||
</ScrollWrapper>
|
||||
|
||||
{remaining > 0 && (
|
||||
<ShowMore type="button" onClick={() => setVisibleCount(products.length)}>
|
||||
Показать ещё <span>{remaining}</span> товаров
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19 9L12 16L5 9" stroke="#5EA12D" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
</svg>
|
||||
</ShowMore>
|
||||
<ShowMoreWrap>
|
||||
<ShowMore type="button" onClick={() => setVisibleCount(products.length)}>
|
||||
Показать ещё <span>{remaining}</span> товаров
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19 9L12 16L5 9" stroke="#5EA12D" strokeWidth="2" strokeLinecap="round"
|
||||
strokeLinejoin="round"/>
|
||||
</svg>
|
||||
</ShowMore>
|
||||
</ShowMoreWrap>
|
||||
)}
|
||||
|
||||
<CartFooter
|
||||
@ -169,13 +174,15 @@ export function Cart({
|
||||
}}
|
||||
/>
|
||||
|
||||
{showNotEnoughPopup && <NotEnoughPopup onClose={() => {setShowNotEnoughPopup(false)}} />}
|
||||
{showNotEnoughPopup && <NotEnoughPopup onClose={() => {
|
||||
setShowNotEnoughPopup(false)
|
||||
}}/>}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const AbsoluteRefreshButton = styled.button`
|
||||
background-color: ${({ theme }) => theme.colors.green};
|
||||
background-color: ${({theme}) => theme.colors.green};
|
||||
height: 32px;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
@ -194,7 +201,7 @@ const AbsoluteRefreshButton = styled.button`
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: ${({ theme }) => theme.colors.greenHover};
|
||||
background-color: ${({theme}) => theme.colors.greenHover};
|
||||
}
|
||||
|
||||
&:active {
|
||||
@ -210,35 +217,51 @@ const Summary = styled.div`
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
> div {
|
||||
width: 100%;
|
||||
}
|
||||
`;
|
||||
|
||||
const SummaryTitle = styled.div`
|
||||
font-size: 20px;
|
||||
line-height: 24px;
|
||||
font-weight: 600;
|
||||
color: ${({ theme }) => theme.colors.darkGreen};
|
||||
color: ${({theme}) => theme.colors.darkGreen};
|
||||
margin-bottom: 8px;
|
||||
`;
|
||||
|
||||
const Green = styled.span`
|
||||
color: ${({ theme }) => theme.colors.green};
|
||||
color: ${({theme}) => theme.colors.green};
|
||||
`;
|
||||
|
||||
const SummaryDetails = styled.div<{ $hidden: boolean }>`
|
||||
min-height: 24px;
|
||||
font-size: 14px;
|
||||
color: ${({ theme }) => theme.colors.gray};
|
||||
color: ${({theme}) => theme.colors.gray};
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
flex: 1 1 100%;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
visibility: ${({ $hidden }) => ($hidden ? 'hidden' : 'visible')};
|
||||
visibility: ${({$hidden}) => ($hidden ? 'hidden' : 'visible')};
|
||||
|
||||
* {
|
||||
color:inherit;
|
||||
}
|
||||
> div:first-child {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: start;
|
||||
gap: 8px;
|
||||
}
|
||||
span {
|
||||
font-weight: 350;
|
||||
white-space: nowrap;
|
||||
color:inherit;
|
||||
}
|
||||
|
||||
b {
|
||||
color:inherit;
|
||||
font-family: initial;
|
||||
font-size: 20px;
|
||||
line-height: 8px;
|
||||
@ -246,12 +269,13 @@ const SummaryDetails = styled.div<{ $hidden: boolean }>`
|
||||
`;
|
||||
|
||||
const SummaryExcess = styled.div`
|
||||
background-color: ${({ theme }) => theme.colors.paleGreen};
|
||||
background-color: ${({theme}) => theme.colors.paleGreen};
|
||||
padding: 3px 6px 5px;
|
||||
color: #6D8982;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
font-weight: 350;
|
||||
justify-content: center;
|
||||
`;
|
||||
|
||||
const Loader = styled.div<{ $hidden: boolean, "data-display-text": string }>`
|
||||
@ -261,8 +285,8 @@ const Loader = styled.div<{ $hidden: boolean, "data-display-text": string }>`
|
||||
color: transparent;
|
||||
background-clip: text;
|
||||
position: absolute;
|
||||
top:32px;
|
||||
visibility: ${({ $hidden }) => ($hidden ? 'hidden' : 'visible')};
|
||||
top: 32px;
|
||||
visibility: ${({$hidden}) => ($hidden ? 'hidden' : 'visible')};
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
@ -290,7 +314,7 @@ const ScrollWrapper = styled.div`
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
padding-right: 4px;
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
||||
@ -322,12 +346,18 @@ const EmptyLoader = styled.img`
|
||||
align-self: center;
|
||||
`;
|
||||
|
||||
const ShowMoreWrap = styled.div`
|
||||
padding: 16px 8px 24px 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
`;
|
||||
const ShowMore = styled.button`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 20px 0 10px;
|
||||
color: ${({ theme }) => theme.colors.green};
|
||||
padding:8px 24px;
|
||||
border-radius: 8px;
|
||||
color: ${({theme}) => theme.colors.green};
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
@ -335,25 +365,37 @@ const ShowMore = styled.button`
|
||||
flex-shrink: 0;
|
||||
gap: 4px;
|
||||
border: 0;
|
||||
height: 52px;
|
||||
background: transparent;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
span {
|
||||
color: ${({ theme }) => theme.colors.green};
|
||||
color: ${({theme}) => theme.colors.green};
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
stroke: ${({ theme }) => theme.colors.green};
|
||||
stroke: ${({theme}) => theme.colors.green};
|
||||
stroke-width: 2;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
span {
|
||||
color: inherit;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #F7FBF6;
|
||||
}
|
||||
|
||||
&:active,
|
||||
&:focus {
|
||||
background-color: #EEF8EB;
|
||||
outline: none;
|
||||
}
|
||||
`;
|
||||
|
||||
const NotEnoughWrapper = styled.div`
|
||||
|
||||
@ -13,12 +13,17 @@ export const FinishPopupContent = ({setShowCompletePopup}: any) => {
|
||||
<img src="/images/broc-gifts.png" alt=""/>
|
||||
<h2>Спасибо!</h2>
|
||||
<p>
|
||||
Вы помогли нам протестировать автокорзину. Сейчас сервис ещё разрабатывается, поэтому оформить заказ пока не получится.
|
||||
Вы помогли нам протестировать автокорзину. Сейчас сервис ещё разрабатывается, поэтому оформить заказ
|
||||
пока нельзя. Оставьте адрес электронной почты, и после запуска мы подарим вам <b>3 бесплатные корзины</b>
|
||||
</p>
|
||||
<p>
|
||||
Если вы оставите адрес электронной почты - после запуска мы подарим вам <strong>3 бесплатные корзины</strong>.
|
||||
</p>
|
||||
<TextInput placeholder={'Почта'} value={email} onChange={setEmail} />
|
||||
<TextInput placeholder={'Почта'} value={email} onChange={setEmail}/>
|
||||
<Confirm>
|
||||
<label>
|
||||
<input type="checkbox"/> <span>Даю согласие на обработку персональных данных в соответствии <br/> с <a
|
||||
href="https://hvatilo.ru/land/cookies_and_recommendations.html" target="_blank">политикой
|
||||
конфиденциальности</a></span>
|
||||
</label>
|
||||
</Confirm>
|
||||
<FinishButton onClick={() => {
|
||||
if (buttonContent === 'Получить подарок') {
|
||||
setButtonContent('...')
|
||||
@ -34,7 +39,7 @@ export const FinishPopupContent = ({setShowCompletePopup}: any) => {
|
||||
})
|
||||
}
|
||||
}}>{buttonContent}</FinishButton>
|
||||
{createPortal(<CelebrationCanvas duration={5000} particleCount={300} />, document.body)}
|
||||
{createPortal(<CelebrationCanvas duration={5000} particleCount={300}/>, document.body)}
|
||||
</FinishPopupContentWrap>;
|
||||
};
|
||||
|
||||
@ -42,11 +47,12 @@ const FinishPopupContentWrap = styled.div`
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 24px;
|
||||
margin-bottom: 8px;
|
||||
@ -55,6 +61,7 @@ const FinishPopupContentWrap = styled.div`
|
||||
font-weight: 450;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 19px;
|
||||
@ -63,8 +70,31 @@ const FinishPopupContentWrap = styled.div`
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
`;
|
||||
const Confirm = styled.div`
|
||||
font-size: 12px;
|
||||
color: ${({theme}) => theme.colors.gray};
|
||||
flex-direction: row;
|
||||
margin-top: 16px;
|
||||
* {
|
||||
color: inherit;
|
||||
}
|
||||
input {
|
||||
width: 11px;
|
||||
margin-right: 5px;
|
||||
accent-color: #4A8D19;
|
||||
}
|
||||
label {
|
||||
align-self: center;
|
||||
margin-bottom: 16px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
`;
|
||||
const FinishButton = styled.button`
|
||||
background-color: ${({ theme }) => theme.colors.green};
|
||||
background-color: ${({theme}) => theme.colors.green};
|
||||
height: 54px;
|
||||
width: 100%;
|
||||
color: #ffffff;
|
||||
@ -80,7 +110,7 @@ const FinishButton = styled.button`
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: ${({ theme }) => theme.colors.greenHover};
|
||||
background-color: ${({theme}) => theme.colors.greenHover};
|
||||
}
|
||||
|
||||
&:active {
|
||||
|
||||
@ -36,10 +36,10 @@ const Overlay = styled.div`
|
||||
`;
|
||||
const Window = styled.div`
|
||||
background-color: #ffffff;
|
||||
border-radius: 12px;
|
||||
border-radius: 20px;
|
||||
width: auto;
|
||||
max-width: 535px;
|
||||
padding: 20px 24px;
|
||||
padding: 20px 20px 40px 20px;
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
@ -74,6 +74,7 @@ const ModalContent = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
text-align: center;
|
||||
> div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -87,7 +88,6 @@ const ModalContent = styled.div`
|
||||
}
|
||||
`;
|
||||
const ButtonBlock = styled.div`
|
||||
margin-top: 24px;
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
flex-direction: column;
|
||||
|
||||
@ -228,7 +228,8 @@ const AddButton = styled.button`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 14px;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 2px;
|
||||
color: ${({ theme }) => theme.colors.green};
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
|
||||
@ -5,9 +5,409 @@
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Рекомендательные технологии и куки</title>
|
||||
<title>Хватило - Рекомендательные технологии и куки</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Политика конфиденциальности</h1>
|
||||
<p><strong class="date">Дата последнего обновления: 05 сентября 2026 г.</strong></p>
|
||||
|
||||
<p>Настоящая Политика конфиденциальности (далее – «Политика») регулирует порядок сбора, использования, хранения и защиты
|
||||
персональных данных пользователей (далее – «Пользователь») сайта и приложения <strong>«Хватило»</strong> (далее –
|
||||
«Сайт», «Приложение»), расположенного по адресу: <a href="https://hvatilo.ru">https://hvatilo.ru</a>,
|
||||
а также мобильного приложения,
|
||||
доступного в Google Play и App Store.</p>
|
||||
|
||||
<p>Автор сайта и Оператор персональных данных: <strong>Самозанятый Телятников Захар Александрович, ИНН
|
||||
502479720182</strong> (далее – «Оператор», «Автор»).</p>
|
||||
|
||||
<p>Настоящая Политика разработана в соответствии с требованиями Федерального закона от 27 июля 2006 г. № 152-ФЗ «О
|
||||
персональных данных», а также требованиями платформ Google Play, App Store и платёжного сервиса Robokassa.</p>
|
||||
|
||||
<p>Используя Сайт и/или Приложение, Пользователь выражает своё полное и безоговорочное согласие с условиями настоящей
|
||||
Политики.</p>
|
||||
|
||||
|
||||
|
||||
<!-- 1. ОБЩИЕ ПОЛОЖЕНИЯ -->
|
||||
<h2>1. Общие положения</h2>
|
||||
<p><strong>1.1.</strong> Настоящая Политика определяет позицию Оператора в отношении обработки персональных данных, а
|
||||
также конкретные цели обработки персональных данных, перечень подлежащих обработке персональных данных, действия с
|
||||
персональными данными, сроки их обработки, условия и порядок их уничтожения.</p>
|
||||
<p><strong>1.2.</strong> Политика действует в отношении всех персональных данных, которые Оператор может получить от
|
||||
Пользователя во время использования им Сайта, Приложения, сервисов, продуктов и услуг.</p>
|
||||
<p><strong>1.3.</strong> Политика является общедоступным документом, размещённым в открытом доступе по адресу: <a
|
||||
href="https://hvatilo.ru/land/cookies_and_recommendations.html">https://hvatilo.ru/land/cookies_and_recommendations.html</a>.</p>
|
||||
|
||||
<!-- 2. ПЕРСОНАЛЬНЫЕ ДАННЫЕ -->
|
||||
<h2>2. Персональные данные, которые мы собираем</h2>
|
||||
<p>Для предоставления доступа к сервисам Сайта и Приложения Оператор может собирать и обрабатывать следующие категории
|
||||
персональных данных Пользователя:</p>
|
||||
|
||||
<h3>2.1. Данные, предоставляемые Пользователем добровольно</h3>
|
||||
<ul>
|
||||
<li>имя, фамилия, отчество (при регистрации);</li>
|
||||
<li>адрес электронной почты;</li>
|
||||
<li>контактный номер телефона;</li>
|
||||
<li>логин и пароль для доступа к личному кабинету;</li>
|
||||
<li>информация о предпочтениях в еде, пищевых привычках, и ограничениях (в рамках использования сервисов
|
||||
составления рациона, меню и «дневника питания»);
|
||||
</li>
|
||||
<li>записи в «дневнике питания»;</li>
|
||||
<li>иная информация, которую Пользователь добровольно вносит в сервисы Сайта.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Оператор не запрашивает и не обрабатывает сведения, относящиеся к специальной категории персональных данных
|
||||
(состояние здоровья). Пользователь обязуется не указывать такую информацию при использовании сервисов.
|
||||
Если Пользователь по собственной инициативе укажет сведения о здоровье, Оператор не несёт ответственности
|
||||
за их обработку, но предпримет меры к их удалению при обнаружении.
|
||||
</p>
|
||||
|
||||
<h3>2.2. Данные, собираемые автоматически</h3>
|
||||
<ul>
|
||||
<li>данные об устройстве (модель, операционная система, уникальные идентификаторы устройства);</li>
|
||||
<li>IP-адрес;</li>
|
||||
<li>данные о местоположении (с согласия Пользователя);</li>
|
||||
<li>файлы cookie и аналогичные технологии;</li>
|
||||
<li>информация о действиях Пользователя на Сайте и в Приложении (просмотренные страницы, использованные функции,
|
||||
время сессии);
|
||||
</li>
|
||||
<li>данные о взаимодействии с рекламными материалами (при наличии).</li>
|
||||
</ul>
|
||||
|
||||
<h3>2.3. Платёжные данные</h3>
|
||||
<ul>
|
||||
<li>Оператор <strong>не собирает и не хранит</strong> полные данные банковских карт Пользователя. Все платёжные
|
||||
операции осуществляются через платёжный шлюз Robokassa.
|
||||
</li>
|
||||
<li>Robokassa может обрабатывать следующие данные: номер банковской карты (в зашифрованном виде), срок действия
|
||||
карты, имя держателя карты, сумму платежа.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 3. ЦЕЛИ ОБРАБОТКИ -->
|
||||
<h2>3. Цели обработки персональных данных</h2>
|
||||
<p>Оператор обрабатывает персональные данные Пользователя в следующих целях:</p>
|
||||
<ul>
|
||||
<li><strong>3.1. Регистрация и идентификация Пользователя</strong> – для создания учётной записи, обеспечения
|
||||
доступа к личному кабинету и сервисам Сайта/Приложения.
|
||||
</li>
|
||||
<li><strong>3.2. Предоставление услуг</strong> – для предоставления доступа к закрытым разделам Сайта, включая:
|
||||
<ul>
|
||||
<li>информацию о продуктах питания и товарах в сетях ритейл;</li>
|
||||
<li>справочную информацию о симптомах нехватки и избытка нутриентов (на основе данных National Institutes
|
||||
of Health – <a href="https://ods.od.nih.gov/factsheets/list-all/" target="_blank">
|
||||
https://ods.od.nih.gov/factsheets/list-all/</a>);
|
||||
</li>
|
||||
<li>авторские статьи;</li>
|
||||
<li>сервисы составления рациона и меню;</li>
|
||||
<li>«дневник питания»;</li>
|
||||
<li>учёт личных предпочтений в еде;</li>
|
||||
<li>сервис автоматического сбора продуктовой корзины.</li>
|
||||
</ul>
|
||||
Сервис носит информационный характер и не является медицинским изделием. Информация не заменяет консультацию
|
||||
врача. Вводя данные в дневник, пользователь не получает диагноз;
|
||||
</li>
|
||||
<li><strong>3.3. Обработка платежей</strong> – для проведения оплаты через платёжный шлюз Robokassa и подтверждения
|
||||
факта оплаты.
|
||||
</li>
|
||||
<li><strong>3.4. Улучшение качества сервисов</strong> – для анализа использования Сайта и Приложения, повышения
|
||||
удобства и функциональности сервисов.
|
||||
</li>
|
||||
<li><strong>3.5. Информирование Пользователя</strong> – для направления уведомлений о статусе услуг, изменениях в
|
||||
тарифах, новостях и обновлениях Сайта (с согласия Пользователя).
|
||||
</li>
|
||||
<li><strong>3.6. Исполнение требований законодательства</strong> – для выполнения обязательств, предусмотренных
|
||||
законодательством Российской Федерации.
|
||||
</li>
|
||||
<li><strong>3.7. Предоставление персонализированного контента и рекомендаций</strong> – для формирования
|
||||
индивидуальных предложений, рецептов и статей на основе предпочтений и истории использования
|
||||
Пользователя (подробнее см. раздел 4 «Использование рекомендательных технологий»).
|
||||
</li>
|
||||
<li><strong>3.8. Анализ посещаемости и улучшение работы Сайта и Приложения</strong> – для сбора и анализа
|
||||
обезличенной статистики о действиях Пользователей, оценки эффективности контента, повышения удобства
|
||||
и функциональности сервисов с использованием сервиса веб-аналитики Яндекс Метрика (подробнее см. раздел
|
||||
4 «Использование рекомендательных технологий и сервисов веб-аналитики»).
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>4. Использование рекомендательных технологий (алгоритмических систем)</h2>
|
||||
<p>
|
||||
<b>4.1.</b> В целях повышения удобства и персонализации сервисов Сайта и Приложения Оператор применяет алгоритмические рекомендательные технологии (далее – «Рекомендательные технологии»). Рекомендательные технологии позволяют предлагать Пользователю контент, меню, статьи, рецепты и информационные материалы, которые с наибольшей вероятностью соответствуют его предпочтениям и истории использования.
|
||||
</p>
|
||||
<p>
|
||||
<b>4.2. </b>Рекомендательные технологии строятся на анализе следующих данных Пользователя:
|
||||
</p>
|
||||
<ul>
|
||||
<li>информация о пищевых предпочтениях и ограничениях, указанных Пользователем;</li>
|
||||
<li>записи в «дневнике питания»;</li>
|
||||
<li>история просмотров страниц, статей и рецептов;</li>
|
||||
<li>взаимодействие с сервисами составления рациона и меню.</li>
|
||||
</ul>
|
||||
<p>
|
||||
На основе этих данных формируются индивидуальные пользовательские профили (модели интересов), которые используются
|
||||
для подбора наиболее релевантных предложений. Все расчёты производятся автоматически с использованием алгоритмов,
|
||||
разработанных Оператором. Решения не принимаются исключительно в автоматическом режиме, если они могут повлиять
|
||||
на права и законные интересы Пользователя.
|
||||
</p>
|
||||
<p>
|
||||
<b>4.3.</b> Права Пользователя в отношении рекомендательных технологий
|
||||
</p>
|
||||
<p>Пользователь вправе:</p>
|
||||
<ul>
|
||||
<li>
|
||||
получить информацию о факте применения Рекомендательных технологий и их основных принципах (настоящий раздел);
|
||||
</li>
|
||||
<li>
|
||||
отключить персонализированные рекомендации в любой момент в личном кабинете (раздел «Настройки» → переключатель «Персональные рекомендации»).
|
||||
После отключения Пользователю будут показываться только общие (неперсонализированные) материалы;
|
||||
</li>
|
||||
<li>
|
||||
удалить свои предпочтения и записи в дневнике питания, что повлияет на рекомендации – после удаления
|
||||
соответствующих данных алгоритм перестанет их учитывать.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>4.4.</b> Рекомендательные технологии не используются для:
|
||||
</p>
|
||||
<ul>
|
||||
<li>принятия решений, имеющих юридические последствия для Пользователя;</li>
|
||||
<li>установления цен или индивидуальных условий оплаты (цены одинаковы для всех пользователей);</li>
|
||||
<li>дискриминации Пользователей по любым признакам.</li>
|
||||
</ul>
|
||||
<h3>4.5. Отказ от ответственности</h3>
|
||||
<p>
|
||||
Предлагаемые рекомендации носят исключительно информационный характер и не являются медицинскими заключениями,
|
||||
не заменяют консультацию врача. Пользователь самостоятельно принимает решение о следовании рекомендациям.
|
||||
</p>
|
||||
<h3>4.6. Сервис веб-аналитики Яндекс Метрика</h3>
|
||||
<p>
|
||||
<strong>4.6.1.</strong> Для сбора и анализа статистики посещаемости, оценки эффективности контента и улучшения работы Сайта Оператор использует сервис веб-аналитики <strong>Яндекс Метрика</strong>, предоставляемый компанией ООО «ЯНДЕКС» (ОГРН 1027700229193, адрес: 119021, г. Москва, ул. Льва Толстого, д. 16).
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.6.2.</strong> Яндекс Метрика использует файлы cookie и аналогичные технологии для сбора обезличенной информации о действиях Пользователя на Сайте. В рамках сервиса могут обрабатываться следующие данные:
|
||||
</p>
|
||||
<ul>
|
||||
<li>IP-адрес Пользователя (в обезличенной форме);</li>
|
||||
<li>тип и версия браузера, операционная система;</li>
|
||||
<li>данные об устройстве (модель, разрешение экрана);</li>
|
||||
<li>информация о местоположении (на основе IP-адреса, с точностью до города);</li>
|
||||
<li>сведения о действиях Пользователя на Сайте (просмотренные страницы, время пребывания, переходы, клики);</li>
|
||||
<li>файлы cookie, устанавливаемые сервисом Яндекс Метрика.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>4.6.3.</strong> Все собираемые данные Яндекс рассматривает как персональные данные и обрабатывает их в соответствии со своей <a href="https://yandex.ru/legal/confidential/" target="_blank">Политикой конфиденциальности</a>. Обработка данных осуществляется на серверах Яндекса, расположенных на территории Российской Федерации.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.6.4.</strong> Оператор <strong>не передаёт</strong> в Яндекс Метрику персональные данные, позволяющие идентифицировать Пользователя (ФИО, адрес электронной почты, номер телефона и т.п.). Пользователь обязуется не указывать такие сведения при использовании сервисов Сайта.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4.6.5. Права Пользователя</strong>:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Пользователь может запретить сбор данных о своих посещениях Сайта сервисом Яндекс Метрика, установив <a href="https://yandex.ru/support/metrica/general/opt-out.html" target="_blank">блокировщик Яндекс Метрики</a> в своём браузере;</li>
|
||||
<li>Пользователь может отключить файлы cookie в настройках своего браузера (это может повлиять на функциональность Сайта);</li>
|
||||
<li>Пользователь имеет право на получение информации об обработке его персональных данных в порядке, предусмотренном разделом 9 настоящей Политики.</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>4.6.6.</strong> Подробнее об условиях обработки данных в Яндекс Метрике можно узнать в <a href="https://yandex.ru/legal/metrica_termsofuse/" target="_blank">Условиях использования сервиса Яндекс Метрика</a>.
|
||||
</p>
|
||||
|
||||
<!-- 5. ПРАВОВЫЕ ОСНОВАНИЯ (бывший 4) -->
|
||||
<h2>5. Правовые основания обработки персональных данных</h2>
|
||||
<p>Обработка персональных данных осуществляется на следующих правовых основаниях:</p>
|
||||
<ul>
|
||||
<li><strong>5.1.</strong> Согласие Пользователя на обработку персональных данных, выраженное при регистрации на
|
||||
Сайте/в Приложении и/или при оформлении заказа.
|
||||
</li>
|
||||
<li><strong>5.2.</strong> Исполнение договора, стороной которого является Пользователь (предоставление доступа к
|
||||
сервисам).
|
||||
</li>
|
||||
<li><strong>5.3.</strong> Исполнение требований Федерального закона № 152-ФЗ «О персональных данных» и иных
|
||||
нормативных правовых актов.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 6. ПОРЯДОК И УСЛОВИЯ (бывший 5) -->
|
||||
<h2>6. Порядок и условия обработки персональных данных</h2>
|
||||
<p><strong>6.1.</strong> Обработка персональных данных осуществляется с использованием средств автоматизации или без
|
||||
использования таких средств.</p>
|
||||
<p><strong>6.2.</strong> Оператор принимает необходимые организационные и технические меры для защиты персональных
|
||||
данных от неправомерного доступа, уничтожения, изменения, блокирования, копирования, распространения, а также от
|
||||
иных неправомерных действий третьих лиц.</p>
|
||||
<p><strong>6.3.</strong> Персональные данные Пользователя не передаются третьим лицам, за исключением случаев, прямо
|
||||
предусмотренных настоящей Политикой или законодательством Российской Федерации.</p>
|
||||
<p>
|
||||
<strong>6.4.</strong>
|
||||
Обработка персональных данных осуществляется Оператором с использованием баз данных, расположенных на технических
|
||||
серверах, физически находящихся на территории Российской Федерации.
|
||||
</p>
|
||||
<p>
|
||||
<strong>6.5.</strong>
|
||||
Обработка персональных данных осуществляется на серверах, расположенных на территории Российской Федерации.
|
||||
Трансграничная передача персональных данных не осуществляется, за исключением случаев, когда это необходимо
|
||||
для исполнения договора с Пользователем (проведение платежа через международные платежные системы в рамках
|
||||
сервиса Робокасса). Перед началом трансграничной передачи Оператор удостоверится в том, что иностранным
|
||||
государством обеспечивается адекватная защита прав субъектов персональных данных.
|
||||
</p>
|
||||
|
||||
<!-- 7. ПЕРЕДАЧА ТРЕТЬИМ ЛИЦАМ (бывший 6) -->
|
||||
<h2>7. Передача персональных данных третьим лицам</h2>
|
||||
<p>Для обеспечения функционирования Сайта и Приложения Оператор может передавать персональные данные Пользователя
|
||||
следующим третьим лицам:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Третье лицо</th>
|
||||
<th>Цель передачи</th>
|
||||
<th>Ссылка на политику конфиденциальности</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>ООО «РОБОКАССА» (ИНН 5047063929, ОГРН 1055009302215)</td>
|
||||
<td>Приём и обработка платежей</td>
|
||||
<td><a href="https://robokassa.com/privacy-policy/" target="_blank">https://robokassa.com/privacy-policy/</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ООО «ЯНДЕКС» (ОГРН 1027700229193, адрес: 119021, г. Москва, ул. Льва Толстого, д. 16)</td>
|
||||
<td>Сбор и обработка обезличенной статистики посещаемости, анализ поведения пользователей (сервис Яндекс Метрика)</td>
|
||||
<td><a href="https://yandex.ru/legal/confidential/" target="_blank">https://yandex.ru/legal/confidential/</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p><strong>7.1.</strong>Передача персональных данных Пользователя платежному сервису ООО «РОБОКАССА» осуществляется
|
||||
исключительно для целей проведения платежа и в объёме, необходимом для этой цели.</p>
|
||||
<p><strong>7.2.</strong> Robokassa обеспечивает конфиденциальность персональных данных и безопасность персональных
|
||||
данных при их обработке в соответствии с международным стандартом PCI DSS.</p>
|
||||
<p><strong>7.3.</strong> Оператор не передаёт персональные данные Пользователя иным третьим лицам без согласия
|
||||
Пользователя, за исключением случаев, предусмотренных законодательством Российской Федерации.</p>
|
||||
<p><strong>7.4.</strong> Для обработки платежей по банковским картам данные также могут передаваться банку-эквайеру
|
||||
и банку-эмитенту (банку, выпустившему карту Пользователя). Дальнейшая передача данных банку-эквайеру и
|
||||
платёжным системам осуществляется платёжным сервисом Робокасса самостоятельно.
|
||||
Оператор не участвует в этой передаче и не контролирует её, однако выбрал Робокассу как сервис,
|
||||
обеспечивающий соответствие стандарту PCI DSS</p>
|
||||
<p><strong>7.5.</strong> Оператор не контролирует и не несет ответственности за обработку данных Пользователя банками
|
||||
и платежными системами, однако прикладывает разумные усилия для выбора надежных партнеров.</p>
|
||||
<p><strong>7.6.</strong> Передача автоматически собираемых данных сервису Яндекс Метрика.</p>
|
||||
<p>
|
||||
Оператор передаёт обезличенные автоматически собираемые данные (IP-адрес, сведения о браузере и устройстве, данные о местоположении, файлы cookie, информация о действиях на Сайте) сервису веб-аналитики <strong>Яндекс Метрика</strong> (ООО «ЯНДЕКС») для сбора статистики и улучшения работы Сайта. Передача осуществляется на основании договора с Яндексом и в соответствии с его <a href="https://yandex.ru/legal/confidential/" target="_blank">Политикой конфиденциальности</a>.
|
||||
</p>
|
||||
<p>
|
||||
При этом Оператор <strong>не передаёт</strong> в Яндекс Метрику персональные данные, позволяющие прямо идентифицировать Пользователя (ФИО, email, телефон). Все данные обезличиваются на стороне Оператора перед передачей или обрабатываются Яндексом как обезличенные в соответствии с условиями сервиса.
|
||||
</p>
|
||||
<p>
|
||||
Иные автоматически собираемые данные (кроме переданных в Яндекс Метрику) не передаются третьим лицам, за исключением случаев, предусмотренных законодательством Российской Федерации.
|
||||
</p>
|
||||
|
||||
<!-- 8. СРОКИ ХРАНЕНИЯ (бывший 7) -->
|
||||
<h2>8. Сроки обработки и хранения персональных данных</h2>
|
||||
<p><strong>8.1.</strong> Персональные данные Пользователя хранятся не дольше, чем этого требуют цели их обработки, если
|
||||
иной срок не предусмотрен законодательством Российской Федерации или договором.</p>
|
||||
<p><strong>8.2.</strong> Срок хранения персональных данных:</p>
|
||||
<ul>
|
||||
<li><strong>Данные учётной записи</strong> – хранятся до момента удаления учётной записи Пользователем;</li>
|
||||
<li><strong>Данные о платежах</strong> – Оператор не хранит на своих серверах полные данные банковских карт и
|
||||
детали транзакций. Информация о факте оплаты и сроке действия подписки хранится до момента удаления учетной
|
||||
записи Пользователя. Хранение фискальных документов (чеков) осуществляется платежным агентом (Робокасса)
|
||||
в соответствии с требованиями 54-ФЗ. Оператор получает от Робокассы только обезличенный идентификатор
|
||||
платежа для автоматической активации доступа;
|
||||
</li>
|
||||
<li><strong>Данные «дневников» и предпочтений</strong> – хранятся до момента удаления учётной записи Пользователем;
|
||||
</li>
|
||||
<li><strong>Логи и технические данные</strong> – хранятся не более 6 месяцев.</li>
|
||||
</ul>
|
||||
<p><strong>8.3.</strong> После истечения срока хранения или при отзыве согласия Пользователя персональные данные
|
||||
подлежат уничтожению или обезличиванию.</p>
|
||||
|
||||
<!-- 9. ПРАВА ПОЛЬЗОВАТЕЛЯ (бывший 8) -->
|
||||
<h2>9. Права Пользователя</h2>
|
||||
<p>Пользователь имеет право:</p>
|
||||
<ul>
|
||||
<li><strong>9.1. На доступ к своим персональным данным</strong> – получить информацию, подтверждающую факт обработки
|
||||
персональных данных Оператором.
|
||||
</li>
|
||||
<li><strong>9.2. На уточнение персональных данных</strong> – требовать уточнения своих персональных данных, их
|
||||
блокирования или уничтожения в случае, если данные являются неполными, устаревшими, неточными или получены
|
||||
незаконно.
|
||||
</li>
|
||||
<li><strong>9.3. На отзыв согласия</strong> – отозвать своё согласие на обработку персональных данных в любое время
|
||||
в личном кабинете путём нажатия кнопки «Удалить аккаунт» или направления письменного уведомления Оператору
|
||||
по адресу электронной почты: <a href="mailto:info@hvatilo.ru">info@hvatilo.ru</a>.
|
||||
Требование об уничтожении или уточнении данных будет выполнено в срок, не превышающий 30 дней с момента
|
||||
получения запроса (ст. 21 152-ФЗ). Если в запросе не указаны идентифицирующие признаки субъекта, Оператор
|
||||
вправе запросить дополнительные сведения.
|
||||
</li>
|
||||
<li><strong>9.4. На удаление данных</strong> – требовать удаления своих персональных данных, за исключением случаев,
|
||||
когда их обработка необходима для исполнения требований законодательства.
|
||||
</li>
|
||||
<li><strong>9.5. На обжалование</strong> – обжаловать действия или бездействие Оператора в уполномоченный орган по
|
||||
защите прав субъектов персональных данных (Роскомнадзор) или в судебном порядке.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 10. УНИЧТОЖЕНИЕ (бывший 9) -->
|
||||
<h2>10. Порядок уничтожения персональных данных</h2>
|
||||
<p><strong>10.1.</strong> Уничтожение персональных данных осуществляется в следующих случаях:</p>
|
||||
<ul>
|
||||
<li>при отзыве Пользователем согласия на обработку персональных данных;</li>
|
||||
<li>по истечении установленного срока хранения;</li>
|
||||
<li>при удалении учётной записи Пользователем;</li>
|
||||
<li>по требованию уполномоченных органов в случаях, предусмотренных законодательством.</li>
|
||||
</ul>
|
||||
<p><strong>10.2.</strong> Уничтожение персональных данных осуществляется способом, исключающим возможность их дальнейшего
|
||||
восстановления.</p>
|
||||
|
||||
<!-- 11. ОПЛАТА (бывший 10) -->
|
||||
<h2>11. Оплата услуг</h2>
|
||||
<p>
|
||||
Приложение «Хватило» предоставляется бесплатно. Доступ к расширенным функциям оформляется посредством оплаты
|
||||
на официальном сайте Оператора (hvatilo.ru). Оплата производится через платёжный сервис Робокасса.
|
||||
Оплата внутри приложения не осуществляется.
|
||||
</p>
|
||||
|
||||
<!-- 12. COOKIE (бывший 11) -->
|
||||
<h2>12. Использование файлов cookie</h2>
|
||||
<p><strong>12.1.</strong> Сайт и Приложение могут использовать файлы cookie и аналогичные технологии для:</p>
|
||||
<ul>
|
||||
<li>аутентификации Пользователя;</li>
|
||||
<li>сохранения настроек и предпочтений;</li>
|
||||
<li>анализа использования Сайта и Приложения;</li>
|
||||
<li>улучшения качества предоставляемых услуг.</li>
|
||||
</ul>
|
||||
<p><strong>12.2.</strong> Пользователь может отключить файлы cookie в настройках своего браузера, однако это может
|
||||
повлиять на функциональность Сайта и Приложения.</p>
|
||||
|
||||
<!-- 13. БЕЗОПАСНОСТЬ ПЛАТЕЖЕЙ (бывший 12) -->
|
||||
<h2>13. Безопасность платежей</h2>
|
||||
<p><strong>13.1.</strong> Все платежи на Сайте обрабатываются через платёжный шлюз Robokassa.</p>
|
||||
<p><strong>13.2.</strong> Robokassa обеспечивает обработку платёжных данных в соответствии с международным стандартом
|
||||
безопасности PCI DSS (Payment Card Industry Data Security Standard).</p>
|
||||
<p><strong>13.3.</strong> Оператор <strong>не хранит</strong> на своих серверах полные данные банковских карт
|
||||
Пользователя (номер карты, CVV-код, срок действия).</p>
|
||||
<p><strong>13.4.</strong> Передача информации о платежах осуществляется в зашифрованном виде с использованием протокола
|
||||
TLS (Transport Layer Security).</p>
|
||||
|
||||
<!-- 14. ИЗМЕНЕНИЕ ПОЛИТИКИ (бывший 13) -->
|
||||
<h2>14. Изменение Политики конфиденциальности</h2>
|
||||
<p><strong>14.1.</strong> Оператор оставляет за собой право вносить изменения в настоящую Политику в одностороннем
|
||||
порядке.</p>
|
||||
<p><strong>14.2.</strong> Изменения вступают в силу с момента опубликования новой редакции Политики на Сайте.</p>
|
||||
<p><strong>14.3.</strong> Пользователь обязуется самостоятельно отслеживать изменения в Политике. Продолжение
|
||||
использования Сайта и/или Приложения после внесения изменений означает согласие Пользователя с новой редакцией
|
||||
Политики.</p>
|
||||
<p><strong>14.4.</strong> О существенных изменениях Оператор уведомляет Пользователя через Сайт или по электронной почте
|
||||
не менее чем за 7 (семь) дней до вступления изменений в силу.</p>
|
||||
|
||||
<!-- 15. КОНТАКТНАЯ ИНФОРМАЦИЯ (бывший 14) -->
|
||||
<h2>15. Контактная информация</h2>
|
||||
<p>По всем вопросам, связанным с настоящей Политикой конфиденциальности, обработкой персональных данных, а также для
|
||||
отзыва согласия, удаления данных или реализации иных прав Пользователь может обратиться к Оператору:</p>
|
||||
<p><strong>Автор сайта:</strong> Самозанятый Телятников Захар Александрович<br>
|
||||
<strong>ИНН:</strong> 502479720182<br>
|
||||
<strong>Электронная почта:</strong> <a href="mailto:info@hvatilo.ru">info@hvatilo.ru</a></p>
|
||||
</body>
|
||||
</html>
|
||||
@ -22,6 +22,7 @@ export default defineConfig(({mode}) => ({
|
||||
name: 'copy-html-root',
|
||||
closeBundle() {
|
||||
fs.copyFileSync('dist/src/template.html', 'auto_cart.html');
|
||||
fs.copyFileSync('dist/src_static/cookies_and_recommendations.html', 'land/cookies_and_recommendations.html');
|
||||
fs.writeFileSync('autocart.js', JavascriptObfuscator.obfuscate(fs.readFileSync('dist/autocart.js').toString()
|
||||
.replace('https://local.hvatilo.ru:8055', 'https://hvatilo.ru')
|
||||
).getObfuscatedCode());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user