Реалізація регіональних правових документів (Privacy Policy по країнах)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація регіональних правових документів (Privacy Policy по країнах)
Середня
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація регіональних правових документів (Privacy Policy за країнами)

Сайт, який працює в кількох юрисдикціях, зобов'язаний надавати правові документи відповідно до місцевого законодавства. GDPR в ЄС, CCPA в Каліфорнії, 152-ФЗ в Росії, PIPEDA в Канаді — вимоги різні, документи різні.

Виявлення юрисдикції користувача

class UserJurisdiction
{
    public function detect(Request $request): string
    {
        // Спочатку перевіряємо явний вибір користувача (куки)
        if ($country = $request->cookie('user_country')) {
            return $country;
        }

        // Геолокація за IP через MaxMind GeoIP2
        $reader  = new \GeoIp2\Database\Reader(storage_path('geoip/GeoLite2-Country.mmdb'));
        $record  = $reader->country($request->ip());
        $isoCode = $record->country->isoCode;

        return $isoCode ?? 'DEFAULT';
    }

    public function getRegulation(string $countryCode): string
    {
        return match(true) {
            in_array($countryCode, EU_COUNTRIES)          => 'gdpr',
            $countryCode === 'US'                         => 'ccpa',
            $countryCode === 'RU'                         => 'rfz152',
            in_array($countryCode, ['UA', 'BY', 'KZ'])    => 'cis',
            default                                       => 'default',
        };
    }
}

Структура документів

resources/legal/
├── privacy-policy/
│   ├── gdpr.{en,ru,de}.md
│   ├── ccpa.en.md
│   ├── rfz152.ru.md
│   └── default.{en,ru}.md
├── cookie-policy/
│   └── ...
└── terms-of-service/
    └── ...

Маршрутизація та відображення

Route::get('/legal/privacy-policy', function (Request $request) {
    $jurisdiction = app(UserJurisdiction::class)->detect($request);
    $regulation   = app(UserJurisdiction::class)->getRegulation($jurisdiction);
    $locale       = app()->getLocale();

    $document = LegalDocument::where([
        'type'       => 'privacy-policy',
        'regulation' => $regulation,
        'locale'     => $locale,
    ])->first()
    ?? LegalDocument::where([
        'type'       => 'privacy-policy',
        'regulation' => 'default',
        'locale'     => $locale,
    ])->first();

    return view('legal.document', ['document' => $document, 'regulation' => $regulation]);
});

Версіонування документів

CREATE TABLE legal_documents (
    id           BIGSERIAL PRIMARY KEY,
    type         TEXT,         -- privacy-policy, terms, cookie-policy
    regulation   TEXT,         -- gdpr, ccpa, rfz152, default
    locale       CHAR(2),
    version      TEXT,         -- 2.3.1
    content      TEXT,
    effective_at DATE,
    is_current   BOOLEAN DEFAULT false,
    created_at   TIMESTAMPTZ DEFAULT NOW()
);

При оновленні документа — нова запис з effective_at у майбутньому. Автоматично переключається на нову версію у дату набуття чинності.

Згода та зберігання

Користувачі з ЄС (GDPR) повинні явно прийняти документи. Зберігання:

UserConsent::create([
    'user_id'      => auth()->id(),
    'document_id'  => $document->id,
    'ip_address'   => request()->ip(),
    'user_agent'   => request()->userAgent(),
    'accepted_at'  => now(),
]);

Терміни

Система регіональних документів із виявленням юрисдикції та версіонуванням: 4–6 робочих днів.