политика конфиденциальности

This commit is contained in:
Zakhar 2026-09-05 13:19:49 +03:00
parent 5d2724581e
commit 6603258474
6 changed files with 526 additions and 52 deletions

View File

@ -97,11 +97,13 @@ export function Cart({
<SummaryDetails $hidden={isLoading}> <SummaryDetails $hidden={isLoading}>
{products.length > 0 && ( {products.length > 0 && (
<> <>
<div>
<span> <span>
{products.length} {declension(products.length, ['товар', 'товара', 'товаров'])} {products.length} {declension(products.length, ['товар', 'товара', 'товаров'])}
</span> </span>
<b>&bull;</b> <b>&bull;</b>
<span>{formattedTotalPrice}</span> <span>{formattedTotalPrice}</span>
</div>
<SummaryExcess> <SummaryExcess>
с запасами на {stockDays} {declension(stockDays, ['день', 'дня', 'дней'])} с запасами на {stockDays} {declension(stockDays, ['день', 'дня', 'дней'])}
</SummaryExcess> </SummaryExcess>
@ -143,12 +145,15 @@ export function Cart({
</ScrollWrapper> </ScrollWrapper>
{remaining > 0 && ( {remaining > 0 && (
<ShowMoreWrap>
<ShowMore type="button" onClick={() => setVisibleCount(products.length)}> <ShowMore type="button" onClick={() => setVisibleCount(products.length)}>
Показать ещё <span>{remaining}</span> товаров Показать ещё <span>{remaining}</span> товаров
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <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"/> <path d="M19 9L12 16L5 9" stroke="#5EA12D" strokeWidth="2" strokeLinecap="round"
strokeLinejoin="round"/>
</svg> </svg>
</ShowMore> </ShowMore>
</ShowMoreWrap>
)} )}
<CartFooter <CartFooter
@ -169,7 +174,9 @@ export function Cart({
}} }}
/> />
{showNotEnoughPopup && <NotEnoughPopup onClose={() => {setShowNotEnoughPopup(false)}} />} {showNotEnoughPopup && <NotEnoughPopup onClose={() => {
setShowNotEnoughPopup(false)
}}/>}
</> </>
); );
} }
@ -210,6 +217,9 @@ const Summary = styled.div`
flex-shrink: 0; flex-shrink: 0;
width: 100%; width: 100%;
position: relative; position: relative;
> div {
width: 100%;
}
`; `;
const SummaryTitle = styled.div` const SummaryTitle = styled.div`
@ -229,16 +239,29 @@ const SummaryDetails = styled.div<{ $hidden: boolean }>`
font-size: 14px; font-size: 14px;
color: ${({theme}) => theme.colors.gray}; color: ${({theme}) => theme.colors.gray};
display: flex; display: flex;
justify-content: start; flex: 1 1 100%;
justify-content: space-between;
align-items: center; align-items: center;
gap: 8px; 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 { span {
font-weight: 350; font-weight: 350;
white-space: nowrap;
color:inherit;
} }
b { b {
color:inherit;
font-family: initial; font-family: initial;
font-size: 20px; font-size: 20px;
line-height: 8px; line-height: 8px;
@ -252,6 +275,7 @@ const SummaryExcess = styled.div`
border-radius: 4px; border-radius: 4px;
font-size: 14px; font-size: 14px;
font-weight: 350; font-weight: 350;
justify-content: center;
`; `;
const Loader = styled.div<{ $hidden: boolean, "data-display-text": string }>` const Loader = styled.div<{ $hidden: boolean, "data-display-text": string }>`
@ -290,7 +314,7 @@ const ScrollWrapper = styled.div`
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
padding-right: 4px; padding-right: 4px;
margin-bottom: 10px; margin-bottom: 0;
position: relative; position: relative;
display: flex; display: flex;
@ -322,11 +346,17 @@ const EmptyLoader = styled.img`
align-self: center; align-self: center;
`; `;
const ShowMoreWrap = styled.div`
padding: 16px 8px 24px 8px;
display: flex;
justify-content: center;
`;
const ShowMore = styled.button` const ShowMore = styled.button`
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 20px 0 10px; padding:8px 24px;
border-radius: 8px;
color: ${({theme}) => theme.colors.green}; color: ${({theme}) => theme.colors.green};
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;
@ -335,12 +365,9 @@ const ShowMore = styled.button`
flex-shrink: 0; flex-shrink: 0;
gap: 4px; gap: 4px;
border: 0; border: 0;
height: 52px;
background: transparent; background: transparent;
&:hover {
opacity: 0.8;
}
span { span {
color: ${({theme}) => theme.colors.green}; color: ${({theme}) => theme.colors.green};
} }
@ -354,6 +381,21 @@ const ShowMore = styled.button`
stroke-linejoin: round; stroke-linejoin: round;
margin-left: 6px; margin-left: 6px;
} }
span {
color: inherit;
font-weight: inherit;
}
&:hover {
background-color: #F7FBF6;
}
&:active,
&:focus {
background-color: #EEF8EB;
outline: none;
}
`; `;
const NotEnoughWrapper = styled.div` const NotEnoughWrapper = styled.div`

View File

@ -13,12 +13,17 @@ export const FinishPopupContent = ({setShowCompletePopup}: any) => {
<img src="/images/broc-gifts.png" alt=""/> <img src="/images/broc-gifts.png" alt=""/>
<h2>Спасибо!</h2> <h2>Спасибо!</h2>
<p> <p>
Вы помогли нам протестировать автокорзину. Сейчас сервис ещё разрабатывается, поэтому оформить заказ пока не получится. Вы помогли нам протестировать автокорзину. Сейчас сервис ещё разрабатывается, поэтому оформить заказ
</p> пока нельзя. Оставьте адрес электронной почты, и после запуска мы подарим вам <b>3 бесплатные корзины</b>
<p>
Если вы оставите адрес электронной почты - после запуска мы подарим вам <strong>3 бесплатные корзины</strong>.
</p> </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={() => { <FinishButton onClick={() => {
if (buttonContent === 'Получить подарок') { if (buttonContent === 'Получить подарок') {
setButtonContent('...') setButtonContent('...')
@ -47,6 +52,7 @@ const FinishPopupContentWrap = styled.div`
max-width: 100%; max-width: 100%;
display: flex; display: flex;
} }
h2 { h2 {
margin-top: 24px; margin-top: 24px;
margin-bottom: 8px; margin-bottom: 8px;
@ -55,6 +61,7 @@ const FinishPopupContentWrap = styled.div`
font-weight: 450; font-weight: 450;
text-align: center; text-align: center;
} }
p { p {
font-size: 16px; font-size: 16px;
line-height: 19px; line-height: 19px;
@ -63,6 +70,29 @@ const FinishPopupContentWrap = styled.div`
margin-bottom: 24px; 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` const FinishButton = styled.button`
background-color: ${({theme}) => theme.colors.green}; background-color: ${({theme}) => theme.colors.green};
height: 54px; height: 54px;

View File

@ -36,10 +36,10 @@ const Overlay = styled.div`
`; `;
const Window = styled.div` const Window = styled.div`
background-color: #ffffff; background-color: #ffffff;
border-radius: 12px; border-radius: 20px;
width: auto; width: auto;
max-width: 535px; max-width: 535px;
padding: 20px 24px; padding: 20px 20px 40px 20px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
position: relative; position: relative;
z-index: 9; z-index: 9;
@ -74,6 +74,7 @@ const ModalContent = styled.div`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 24px; gap: 24px;
text-align: center;
> div { > div {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -87,7 +88,6 @@ const ModalContent = styled.div`
} }
`; `;
const ButtonBlock = styled.div` const ButtonBlock = styled.div`
margin-top: 24px;
display: flex; display: flex;
gap: 16px; gap: 16px;
flex-direction: column; flex-direction: column;

View File

@ -228,7 +228,8 @@ const AddButton = styled.button`
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-top: 14px; margin-top: 16px;
margin-bottom: 2px;
color: ${({ theme }) => theme.colors.green}; color: ${({ theme }) => theme.colors.green};
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;

View File

@ -5,9 +5,409 @@
<meta name="viewport" <meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 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"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Рекомендательные технологии и куки</title> <title>Хватило - Рекомендательные технологии и куки</title>
</head> </head>
<body> <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> </body>
</html> </html>

View File

@ -22,6 +22,7 @@ export default defineConfig(({mode}) => ({
name: 'copy-html-root', name: 'copy-html-root',
closeBundle() { closeBundle() {
fs.copyFileSync('dist/src/template.html', 'auto_cart.html'); 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() fs.writeFileSync('autocart.js', JavascriptObfuscator.obfuscate(fs.readFileSync('dist/autocart.js').toString()
.replace('https://local.hvatilo.ru:8055', 'https://hvatilo.ru') .replace('https://local.hvatilo.ru:8055', 'https://hvatilo.ru')
).getObfuscatedCode()); ).getObfuscatedCode());