{
    "schemaVersion": 1,
    "revision": 245,
    "updatedAt": "2026-10-14T08:47:32+00:00",
    "data": {
        "products": [
            {
                "id": "sheet-p1",
                "name": "Розничный сайт",
                "team": "Команда №1 · Розничный сайт и Партком Клуб",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [
                    {
                        "id": "retail-offer",
                        "name": "1. Расширение предложения",
                        "date": "",
                        "kind": "stage",
                        "completed": true,
                        "unscheduled": true,
                        "projectOrder": [
                            "site-pdp",
                            "offer28-cross",
                            "roadmap-offer",
                            "retail27-suppliers"
                        ],
                        "dateSource": "Плановые интервалы из ганта за 2026 год. Отчёт на слайдах охватывает II квартал и июль; поздние интервалы требуют сверки с фактическим завершением."
                    },
                    {
                        "id": "retail-catalog",
                        "name": "2. Каталог, фильтры и бренды",
                        "date": "",
                        "kind": "stage",
                        "completed": false,
                        "unscheduled": true,
                        "projectOrder": [
                            "integration32-import",
                            "roadmap-catalog",
                            "release-exchange",
                            "integration32-products",
                            "roadmap-attributes",
                            "integration32-attributes",
                            "roadmap-brands"
                        ]
                    },
                    {
                        "id": "retail-selection",
                        "name": "3. Подбор товара",
                        "date": "",
                        "kind": "stage",
                        "unscheduled": true,
                        "projectOrder": [
                            "site-search",
                            "site-pricing",
                            "retail27-reviews",
                            "retail27-certificates"
                        ],
                        "completed": false
                    },
                    {
                        "id": "retail-purchase",
                        "name": "4. Покупка, оплата, доставка",
                        "date": "",
                        "kind": "stage",
                        "unscheduled": true,
                        "projectOrder": [
                            "retail27-payment",
                            "roadmap-delivery",
                            "site-delivery",
                            "payment40-digital",
                            "payment40-widget"
                        ]
                    },
                    {
                        "id": "retail-information",
                        "name": "5. Информационные разделы",
                        "date": "",
                        "kind": "stage",
                        "unscheduled": true,
                        "projectOrder": [
                            "retail27-stores",
                            "retail27-trust",
                            "retail27-chat"
                        ]
                    },
                    {
                        "id": "retail-fitment",
                        "name": "6. Подбор по автомобилю",
                        "date": "",
                        "kind": "stage",
                        "completed": false,
                        "unscheduled": true,
                        "projectOrder": [
                            "roadmap-fitment-site"
                        ]
                    },
                    {
                        "id": "retail-growth",
                        "name": "7. Рекомендации и персонализация",
                        "date": "",
                        "kind": "stage",
                        "unscheduled": true,
                        "projectOrder": [
                            "release-42",
                            "release-61"
                        ]
                    },
                    {
                        "id": "retail-analytics",
                        "name": "Аналитика и эффективность",
                        "date": "",
                        "kind": "ongoing",
                        "unscheduled": true,
                        "projectOrder": [
                            "site-analytics"
                        ]
                    }
                ],
                "sourceRow": 4,
                "directions": []
            },
            {
                "id": "sheet-p5",
                "name": "Партком Клуб",
                "team": "Команда №1 · Розничный сайт и Партком Клуб",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [],
                "sourceRow": 77,
                "directions": []
            },
            {
                "id": "sheet-p4",
                "name": "Платформа производителей",
                "team": "Команда №2 · Производители, Гараж и СТО",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [],
                "sourceRow": 144,
                "directions": []
            },
            {
                "id": "sheet-p3",
                "name": "Гараж и жизненный цикл автомобиля",
                "team": "Команда №2 · Производители, Гараж и СТО",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [
                    {
                        "id": "garage-account",
                        "name": "1. Личный кабинет клиента",
                        "kind": "stage",
                        "date": "",
                        "unscheduled": true,
                        "projectOrder": [
                            "garage40-orders"
                        ]
                    }
                ],
                "sourceRow": 206,
                "directions": []
            },
            {
                "id": "sheet-p6",
                "name": "СТО и сервисы",
                "team": "Команда №2 · Производители, Гараж и СТО",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [],
                "sourceRow": 252,
                "directions": []
            },
            {
                "id": "sheet-p2",
                "name": "ПИМ и экспертность каталога (основа SEO)",
                "team": "Команда №3 · ПИМ и экспертность каталога",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [
                    {
                        "id": "pim-base",
                        "name": "1. Основа ПИМ",
                        "date": "",
                        "unscheduled": true,
                        "projectOrder": [
                            "retail27-dashboard",
                            "retail27-pim"
                        ]
                    },
                    {
                        "id": "pim-structure",
                        "date": "",
                        "unscheduled": true,
                        "name": "2. Структура каталога",
                        "projectOrder": [
                            "epic30-pim-tree",
                            "retail27-classification-v2"
                        ]
                    },
                    {
                        "id": "pim-distribution",
                        "date": "",
                        "unscheduled": true,
                        "name": "3. Загрузка и распределение",
                        "projectOrder": [
                            "retail27-classification"
                        ]
                    },
                    {
                        "id": "pim-quality",
                        "name": "4. Качество данных",
                        "date": "",
                        "unscheduled": true,
                        "projectOrder": [
                            "retail27-photos",
                            "retail27-names",
                            "epic30-pim-attributes"
                        ]
                    },
                    {
                        "id": "pim-fitment",
                        "name": "5. Применимость",
                        "date": "",
                        "unscheduled": true,
                        "projectOrder": [
                            "roadmap-fitment-data"
                        ]
                    },
                    {
                        "id": "pim-integration",
                        "date": "",
                        "unscheduled": true,
                        "name": "6. Интеграция с сайтом",
                        "kind": "stage",
                        "projectOrder": [
                            "release-exchange",
                            "integration32-import",
                            "integration32-products",
                            "integration32-attributes"
                        ],
                        "dateSource": "Период рассчитывается по отдельным проектам интеграции."
                    }
                ],
                "sourceRow": 338,
                "directions": []
            },
            {
                "id": "sheet-p7",
                "name": "ИИ-помощник",
                "team": "Команда №4 · ИИ-подбор",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [],
                "sourceRow": 397,
                "directions": []
            },
            {
                "id": "sheet-p8",
                "name": "Мобильное приложение",
                "team": "Без выделенной команды · Требуется оценка",
                "desc": "Из управленческого плана «Партком. Большой гант 2»",
                "icon": "layers",
                "versions": [],
                "sourceRow": 399,
                "directions": []
            }
        ],
        "projects": [
            {
                "id": "site-pdp",
                "code": "PRJ-PDP",
                "name": "Лучшие предложения в PDP",
                "goal": "На карточке видны лучшие предложения, все варианты и аналоги; покупатель может выбрать подходящий вариант и добавить его в корзину.",
                "goalProposed": true,
                "owner": "",
                "status": "Готово",
                "start": "2026-05-04",
                "end": "2026-06-14",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-pdp"
                ],
                "planOrder": 0,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-offer"
                    }
                ],
                "targetStart": "2026-05-01",
                "targetEnd": "2026-06-17",
                "sourceSheetRows": [
                    7,
                    10,
                    8,
                    9
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "completed": true,
                "descriptionHtml": "<p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Товар без местного остатка выглядел отсутствующим, хотя был доступен кроссовый остаток. Покупателю было сложно выбрать предложение.<\/p><h2>Результат<\/h2><p>На карточке видны лучшие предложения, все варианты и аналоги; покупатель может выбрать подходящий вариант и добавить его в корзину.<\/p><h2>Что сделано<\/h2><ul><li>Лучшие предложения и сортировка<\/li><li>Все предложения и аналоги<\/li><\/ul><h2>Результат по презентации<\/h2><p>По слайдам более 150 тыс. товаров с остатком стали доступны для индексации. Это результат, заявленный в презентации, а не отдельное измерение влияния интерфейса.<\/p><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p>",
                "description": "Краткий эпик по презентации и исходному ганту.\nПроблема\nТовар без местного остатка выглядел отсутствующим, хотя был доступен кроссовый остаток. Покупателю было сложно выбрать предложение.\nРезультат\nНа карточке видны лучшие предложения, все варианты и аналоги; покупатель может выбрать подходящий вариант и добавить его в корзину.\nЧто сделано\nЛучшие предложения и сортировка\nВсе предложения и аналоги\nРезультат по презентации\nПо слайдам более 150 тыс. товаров с остатком стали доступны для индексации. Это результат, заявленный в презентации, а не отдельное измерение влияния интерфейса.\nСроки\nИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.",
                "epicDraftSource": "Презентация и исходный гант; черновик V28",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "sourcePlanRange": [
                    "2026-05-12",
                    "2026-06-02"
                ],
                "previousTargetV29": [
                    "2026-05-12",
                    "2026-06-02"
                ]
            },
            {
                "id": "roadmap-offer",
                "code": "PRJ-OFFER",
                "name": "Покупка из любых регионов",
                "goal": "Предложения разных складов видны и доступны для заказа; цены, остатки, сортировки и фильтры работают с предложениями.",
                "goalProposed": true,
                "owner": "",
                "status": "Готово",
                "start": "2026-05-18",
                "end": "2026-09-20",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-pdp"
                ],
                "planOrder": 1,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-offer"
                    }
                ],
                "targetStart": "2026-05-20",
                "targetEnd": "2026-09-08",
                "sourceSheetRows": [
                    18,
                    19,
                    26,
                    27,
                    28,
                    29,
                    21,
                    22,
                    23,
                    24
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "completed": true,
                "attachments": [],
                "descriptionHtml": "<p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Наличие определялось по региону: товары с остатками в других регионах могли отображаться как недоступные.<\/p><h2>Результат<\/h2><p>Предложения разных складов видны и доступны для заказа; цены, остатки, сортировки и фильтры работают с предложениями.<\/p><h2>Что сделано<\/h2><ul><li>Индекс предложений и обновление остатков<\/li><li>Доступность независимо от региона<\/li><li>Сортировка и фильтрация предложений<\/li><\/ul><h2>Результат по презентации<\/h2><p>По презентации более 60 тыс. товаров с остатком в другом регионе стали доступны для индексации.<\/p><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p><h2>Корзина: покупка конкретных предложений<\/h2><p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Расширение предложения потребовало работать в корзине с выбранным предложением, а не только с товаром.<\/p><h2>Результат<\/h2><p>Корзина сохраняет выбранное предложение и позволяет продолжить оформление покупки.<\/p><h2>Что сделано<\/h2><ul><li>Работа корзины с предложениями<\/li><\/ul><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p><h2>Оформление комбинированного заказа<\/h2>Ntcn",
                "description": "Краткий эпик по презентации и исходному ганту.ПроблемаНаличие определялось по региону: товары с остатками в других регионах могли отображаться как недоступные.РезультатПредложения разных складов видны и доступны для заказа; цены, остатки, сортировки и фильтры работают с предложениями.Что сделаноИндекс предложений и обновление остатковДоступность независимо от регионаСортировка и фильтрация предложенийРезультат по презентацииПо презентации более 60 тыс. товаров с остатком в другом регионе стали доступны для индексации.СрокиИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.Корзина: покупка конкретных предложенийКраткий эпик по презентации и исходному ганту.ПроблемаРасширение предложения потребовало работать в корзине с выбранным предложением, а не только с товаром.РезультатКорзина сохраняет выбранное предложение и позволяет продолжить оформление покупки.Что сделаноРабота корзины с предложениямиСрокиИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.Оформление комбинированного заказаNtcn",
                "epicDraftSource": "Презентация и исходный гант; черновик V28",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "sourcePlanRange": [
                    "2026-05-20",
                    "2026-09-08"
                ],
                "previousTargetV29": [
                    "2026-05-20",
                    "2026-09-08"
                ]
            },
            {
                "id": "offer28-cross",
                "code": "OFFER-3",
                "owner": "",
                "start": "2026-05-12",
                "end": "2026-06-16",
                "name": "Индексация кросс-товаров",
                "goal": "Страницы доступных товаров открыты для индексации; карта сайта и фид отражают расширенное предложение.",
                "status": "Готово",
                "completed": true,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-offer"
                    }
                ],
                "planOrder": 2,
                "descriptionHtml": "<p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Доступные для покупки кроссовые товары были закрыты от индексации.<\/p><h2>Результат<\/h2><p>Страницы доступных товаров открыты для индексации; карта сайта и фид отражают расширенное предложение.<\/p><h2>Что сделано<\/h2><ul><li>Правила индексации и поисковые выгрузки<\/li><\/ul><h2>Результат по презентации<\/h2><p>По презентации доработаны и обогащены страницы кроссовых товаров; более 900 тыс. новых страниц стали доступны Яндексу. Доступность для индексации не означает, что все страницы уже попали в индекс.<\/p><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p>",
                "description": "Краткий эпик по презентации и исходному ганту.\nПроблема\nДоступные для покупки кроссовые товары были закрыты от индексации.\nРезультат\nСтраницы доступных товаров открыты для индексации; карта сайта и фид отражают расширенное предложение.\nЧто сделано\nПравила индексации и поисковые выгрузки\nРезультат по презентации\nПо презентации доработаны и обогащены страницы кроссовых товаров; более 900 тыс. новых страниц стали доступны Яндексу. Доступность для индексации не означает, что все страницы уже попали в индекс.\nСроки\nИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.",
                "epicDraftSource": "Презентация и исходный гант; черновик V28",
                "targetStart": "2026-05-01",
                "targetEnd": "2026-06-28",
                "unscheduled": false,
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "sourceSheetRows": [
                    12,
                    13,
                    14
                ],
                "sourcePlanRange": [
                    "2026-05-12",
                    "2026-06-16"
                ],
                "previousTargetV29": [
                    "2026-05-12",
                    "2026-06-16"
                ]
            },
            {
                "id": "retail27-suppliers",
                "code": "SITE-03",
                "owner": "",
                "goal": "Ограничение снято; настроены загрузка прайсов и процесс подключения новых поставщиков.",
                "start": "2026-06-17",
                "end": "2026-11-03",
                "name": "Новые поставщики",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-offer"
                    }
                ],
                "planOrder": 3,
                "sourceSheetRows": [
                    31,
                    32,
                    33
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "completed": true,
                "descriptionHtml": "<p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Техническое ограничение мешало увеличивать число поставщиков и объём их предложений на сайте.<\/p><h2>Результат<\/h2><p>Ограничение снято; настроены загрузка прайсов и процесс подключения новых поставщиков.<\/p><h2>Что сделано<\/h2><ul><li>Масштабирование загрузки предложений<\/li><li>Процесс подключения поставщиков<\/li><\/ul><h2>Результат по презентации<\/h2><p>На слайде: загружено 12 поставщиков, потенциально доступно более 1000. Фактический прирост товаров не указан; потенциал не считаем достигнутым результатом.<\/p><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p>",
                "description": "Краткий эпик по презентации и исходному ганту.\nПроблема\nТехническое ограничение мешало увеличивать число поставщиков и объём их предложений на сайте.\nРезультат\nОграничение снято; настроены загрузка прайсов и процесс подключения новых поставщиков.\nЧто сделано\nМасштабирование загрузки предложений\nПроцесс подключения поставщиков\nРезультат по презентации\nНа слайде: загружено 12 поставщиков, потенциально доступно более 1000. Фактический прирост товаров не указан; потенциал не считаем достигнутым результатом.\nСроки\nИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.",
                "epicDraftSource": "Презентация и исходный гант; черновик V28",
                "targetStart": "2026-06-17",
                "targetEnd": "2026-11-19",
                "unscheduled": false,
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "sourcePlanRange": [
                    "2026-06-17",
                    "2026-11-03"
                ],
                "previousTargetV29": [
                    "2026-06-17",
                    "2026-11-03"
                ]
            },
            {
                "id": "retail27-dashboard",
                "code": "SITE-08",
                "owner": "",
                "goal": "Команда видит ключевые показатели каталога и динамику; в дашборд добавлены данные о категориях и фотографиях.",
                "start": "2026-06-03",
                "end": "2026-07-28",
                "name": "Аналитика каталога",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-base"
                    }
                ],
                "planOrder": 6,
                "sourceSheetRows": [
                    35,
                    36
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "completed": true,
                "descriptionHtml": "<p><em>Краткий эпик по презентации и исходному ганту.<\/em><\/p><h2>Проблема<\/h2><p>Для расширения предложения нужен инструмент контроля состава каталога и изменений доступного ассортимента.<\/p><h2>Результат<\/h2><p>Команда видит ключевые показатели каталога и динамику; в дашборд добавлены данные о категориях и фотографиях.<\/p><h2>Что сделано<\/h2><ul><li>Ключевые показатели каталога<\/li><li>Категории и фотографии в дашборде<\/li><\/ul><h2>Результат по презентации<\/h2><p>На слайдах общий результат этапа: индекс Яндекса вырос с 90 до 270 тыс. товаров, поисковый трафик — в 2,5 раза, пик — 2000 переходов в сутки. Эти показатели не приписываем одному дашборду. Характеристики, применимость и описания на слайде обозначены как планы развития инструмента.<\/p><h2>Сроки<\/h2><p>Интервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.<\/p>",
                "description": "Краткий эпик по презентации и исходному ганту.\nПроблема\nДля расширения предложения нужен инструмент контроля состава каталога и изменений доступного ассортимента.\nРезультат\nКоманда видит ключевые показатели каталога и динамику; в дашборд добавлены данные о категориях и фотографиях.\nЧто сделано\nКлючевые показатели каталога\nКатегории и фотографии в дашборде\nРезультат по презентации\nНа слайдах общий результат этапа: индекс Яндекса вырос с 90 до 270 тыс. товаров, поисковый трафик — в 2,5 раза, пик — 2000 переходов в сутки. Эти показатели не приписываем одному дашборду. Характеристики, применимость и описания на слайде обозначены как планы развития инструмента.\nСроки\nИнтервалы работ перенесены из исходного ганта за 2026 год. Это периоды в плане, а не подтверждённые даты приёмки.",
                "epicDraftSource": "Презентация и исходный гант; черновик V28",
                "targetStart": "2026-06-03",
                "targetEnd": "2026-07-28",
                "unscheduled": false,
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "sourcePlanRange": [
                    "2026-06-03",
                    "2026-07-28"
                ],
                "previousTargetV29": [
                    "2026-06-03",
                    "2026-07-28"
                ]
            },
            {
                "id": "roadmap-catalog",
                "code": "PRJ-CATALOG",
                "name": "Страницы каталога",
                "goal": "Категории и навигация каталога соответствуют согласованной структуре.",
                "goalProposed": true,
                "owner": "",
                "status": "В работе",
                "start": "2026-06-17",
                "end": "2026-09-06",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-25"
                ],
                "planOrder": 8,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    }
                ],
                "targetStart": "2026-06-10",
                "targetEnd": "2026-09-14",
                "sourceSheetRows": [
                    39,
                    40,
                    41,
                    42,
                    43,
                    46,
                    47,
                    48,
                    49,
                    51,
                    52,
                    53,
                    54,
                    55
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "mergedProjectsV33": [
                    {
                        "id": "epic30-sitemap",
                        "name": "Карта каталога",
                        "code": "EPIC30-epic30-sitemap",
                        "owner": "",
                        "goal": "",
                        "status": "Запланирован",
                        "start": "",
                        "end": "",
                        "targetStart": "",
                        "targetEnd": "",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-catalog"
                            }
                        ],
                        "descriptionHtml": "<p>Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.<\/p><h2>Эпик 7. Актуализация XML-карты сайта<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 7. Актуализация XML-карты сайта<\/p><p>Цель и результат<\/p><p>Обеспечить корректное включение в существующую XML-карту категорий, фильтрованных подборок, общего списка брендов и страниц брендов. Карточки товаров и остальные разделы сайта в этот эпик не входят; их правила и состав карты не изменять.<\/p><p>Ключевые правила<\/p><p>Включать<\/p><p>\tИсключать<\/p><p>\tКанонические индексируемые страницы каталога<\/p><p>\tДубли URL, страницы с noindex, редиректы, ошибки и URL тестового домена.<\/p><p>\tРазрешённые подборки и страницы брендов<\/p><p>\tПодборки, не прошедшие правила эпика 4; отключённые страницы брендов; служебные варианты URL.<\/p><p>1. Состав карты<\/p><p>Включать<\/p><p>Категории: основной URL каждой опубликованной категории, которой разрешена индексация по правилам сайта.<\/p><p>Фильтрованные подборки: только первая страница, если категория конечная, выбрано 1–3 разрешённых фильтра по одному значению, во всей подборке ≥3 разных артикулов и нет сортировки. Бренд не требует флага разрешения.<\/p><p>Бренды: общий список \/brands\/ и отдельные страницы нескрытых брендов, которым разрешена индексация.<\/p><p>Для каждого включённого адреса: HTTP 200, нет noindex, один абсолютный URL на part-kom.ru, совпадающий с canonical. Повторно URL не добавлять.<\/p><p>Не включать<\/p><p>Страницы 2 и далее категорий и фильтрованных подборок. В карту включается только их первая страница без параметра номера, даже если последующим страницам разрешена индексация.<\/p><p>Подборки с noindex: 0–2 артикула; несколько значений одного фильтра; 4 и более фильтра; обычный фильтр без разрешения индексации; фильтрация в родительской категории.<\/p><p>URL с сортировкой, поиском по списку брендов, служебными параметрами и метками перехода; дубли с другим порядком параметров.<\/p><p>Скрытые страницы брендов, неопубликованные категории, страницы с запретом индексации, редиректы и ошибочные URL. Тестовые адреса не включать.<\/p><p>Важные исключения<\/p><p>Отсутствие остатка не исключает допустимую подборку из ≥3 артикулов: её первая страница остаётся в карте.<\/p><p>Скрытие бренда удаляет из карты отдельную страницу бренда, но не запрещает допустимые подборки с фильтром этого бренда.<\/p><p>Отсутствие в sitemap не заменяет noindex. Страницы пагинации исключаются из карты отдельно от решения об их индексации.<\/p><p>2. Обновление<\/p><p>После применения выгрузки PIM пересчитать карту с учётом созданных категорий, привязок товаров и значений характеристик.<\/p><p>После изменения разрешения индексации фильтра включить или исключить затронутые подборки по общему алгоритму.<\/p><p>Число артикулов выросло с 2 до 3 при остальных допустимых условиях — добавить URL. Снизилось с 3 до 2 — удалить URL.<\/p><p>Бренд скрыт — удалить URL его отдельной страницы. Бренд восстановлен — вернуть индексируемый URL. Категории с фильтром этого бренда проверяются независимо и не удаляются только из-за скрытия бренда.<\/p><p>Способ генерации, расписание обновления и защиту от публикации неполной карты определяет команда. После завершения обновления опубликованный состав соответствует текущим данным и настройкам сайта.<\/p><p>Если используется lastmod, менять его при существенном изменении соответствующей страницы, а не при каждом запуске генерации.<\/p><p>3. Публикация и контроль<\/p><p>Использовать существующую карту с точкой входа https:\/\/part-kom.ru\/sitemap.xml. Способ размещения URL в отдельных файлах определяет команда.<\/p><p>Проверять состав только в пределах этого эпика: категории, фильтрованные подборки, список и страницы брендов. URL остальных разделов не считать лишними и не удалять.<\/p><p>Сформировать ожидаемый набор URL этих четырёх типов по данным сайта и правилам раздела 1. Из опубликованных XML-карт собрать URL тех же типов. Сравнить наборы: пропущенных = 0, лишних в этой области = 0, повторов = 0.<\/p><p>Проверить, что добавленные URL доступны роботам, возвращают HTTP 200 и совпадают со своим canonical. Существующий механизм публикации XML-карт должен оставаться работоспособным.<\/p><p>Связанные эпики<\/p><p>* Эпик 1 — изменения каталога после обмена PIM.<\/p><p>* Эпик 2 — управление индексацией обычных фильтров.<\/p><p>* Эпик 4 — единые правила разрешения URL для индексации.<\/p><p>* Эпик 6 — список брендов, страницы брендов и скрытие.<\/p><p>4. Порядок проверки<\/p><p>☐ Категория. После обмена PIM и публикации индексируемой категории найти её основной URL в карте → присутствует один раз.<\/p><p>☐ Подборки. Найти первые страницы с 1, 2 и 3 разрешёнными фильтрами, по одному значению, ≥3 артикула → все три нормализованных URL есть.<\/p><p>☐ Запреты. Проверить подборки с 2 значениями, 4 фильтрами, неразрешённым фильтром, брендом у родителя и 2 артикулами → URL отсутствуют.<\/p><p>☐ Пагинация. Проверить категорию и допустимую подборку с несколькими страницами → первая есть, страницы 2+ и вариант с явным номером 1 отсутствуют.<\/p><p>☐ Порог. Изменить состав подборки 2 → 3 → 2 артикула; после обновлений → URL отсутствует, появляется, снова отсутствует.<\/p><p>☐ Без остатка. Найти допустимую подборку из ≥3 артикулов, все без остатка и возможности заказа → первая страница есть. Предложения не отключать; без примера проверку не отмечать.<\/p><p>☐ Бренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.<\/p><p>☐ Служебные URL. Проверить сортировку, поиск по брендам, метки перехода и ненормализованные дубли → в карте их нет.<\/p><p>☐ Полнота. Сравнить расчётный и опубликованный наборы только категорий, подборок и брендов → 0 пропущенных, 0 лишних, 0 повторов; прочие разделы сохранены.<\/p>",
                        "description": "Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.\nЭпик 7. Актуализация XML-карты сайтаОткрыть оригинал эпика\n﻿Эпик 7. Актуализация XML-карты сайта\nЦель и результат\nОбеспечить корректное включение в существующую XML-карту категорий, фильтрованных подборок, общего списка брендов и страниц брендов. Карточки товаров и остальные разделы сайта в этот эпик не входят; их правила и состав карты не изменять.\nКлючевые правила\nВключать\n\tИсключать\n\tКанонические индексируемые страницы каталога\n\tДубли URL, страницы с noindex, редиректы, ошибки и URL тестового домена.\n\tРазрешённые подборки и страницы брендов\n\tПодборки, не прошедшие правила эпика 4; отключённые страницы брендов; служебные варианты URL.\n1. Состав карты\nВключать\nКатегории: основной URL каждой опубликованной категории, которой разрешена индексация по правилам сайта.\nФильтрованные подборки: только первая страница, если категория конечная, выбрано 1–3 разрешённых фильтра по одному значению, во всей подборке ≥3 разных артикулов и нет сортировки. Бренд не требует флага разрешения.\nБренды: общий список \/brands\/ и отдельные страницы нескрытых брендов, которым разрешена индексация.\nДля каждого включённого адреса: HTTP 200, нет noindex, один абсолютный URL на part-kom.ru, совпадающий с canonical. Повторно URL не добавлять.\nНе включать\nСтраницы 2 и далее категорий и фильтрованных подборок. В карту включается только их первая страница без параметра номера, даже если последующим страницам разрешена индексация.\nПодборки с noindex: 0–2 артикула; несколько значений одного фильтра; 4 и более фильтра; обычный фильтр без разрешения индексации; фильтрация в родительской категории.\nURL с сортировкой, поиском по списку брендов, служебными параметрами и метками перехода; дубли с другим порядком параметров.\nСкрытые страницы брендов, неопубликованные категории, страницы с запретом индексации, редиректы и ошибочные URL. Тестовые адреса не включать.\nВажные исключения\nОтсутствие остатка не исключает допустимую подборку из ≥3 артикулов: её первая страница остаётся в карте.\nСкрытие бренда удаляет из карты отдельную страницу бренда, но не запрещает допустимые подборки с фильтром этого бренда.\nОтсутствие в sitemap не заменяет noindex. Страницы пагинации исключаются из карты отдельно от решения об их индексации.\n2. Обновление\nПосле применения выгрузки PIM пересчитать карту с учётом созданных категорий, привязок товаров и значений характеристик.\nПосле изменения разрешения индексации фильтра включить или исключить затронутые подборки по общему алгоритму.\nЧисло артикулов выросло с 2 до 3 при остальных допустимых условиях — добавить URL. Снизилось с 3 до 2 — удалить URL.\nБренд скрыт — удалить URL его отдельной страницы. Бренд восстановлен — вернуть индексируемый URL. Категории с фильтром этого бренда проверяются независимо и не удаляются только из-за скрытия бренда.\nСпособ генерации, расписание обновления и защиту от публикации неполной карты определяет команда. После завершения обновления опубликованный состав соответствует текущим данным и настройкам сайта.\nЕсли используется lastmod, менять его при существенном изменении соответствующей страницы, а не при каждом запуске генерации.\n3. Публикация и контроль\nИспользовать существующую карту с точкой входа https:\/\/part-kom.ru\/sitemap.xml. Способ размещения URL в отдельных файлах определяет команда.\nПроверять состав только в пределах этого эпика: категории, фильтрованные подборки, список и страницы брендов. URL остальных разделов не считать лишними и не удалять.\nСформировать ожидаемый набор URL этих четырёх типов по данным сайта и правилам раздела 1. Из опубликованных XML-карт собрать URL тех же типов. Сравнить наборы: пропущенных = 0, лишних в этой области = 0, повторов = 0.\nПроверить, что добавленные URL доступны роботам, возвращают HTTP 200 и совпадают со своим canonical. Существующий механизм публикации XML-карт должен оставаться работоспособным.\nСвязанные эпики\n* Эпик 1 — изменения каталога после обмена PIM.\n* Эпик 2 — управление индексацией обычных фильтров.\n* Эпик 4 — единые правила разрешения URL для индексации.\n* Эпик 6 — список брендов, страницы брендов и скрытие.\n4. Порядок проверки\n☐ Категория. После обмена PIM и публикации индексируемой категории найти её основной URL в карте → присутствует один раз.\n☐ Подборки. Найти первые страницы с 1, 2 и 3 разрешёнными фильтрами, по одному значению, ≥3 артикула → все три нормализованных URL есть.\n☐ Запреты. Проверить подборки с 2 значениями, 4 фильтрами, неразрешённым фильтром, брендом у родителя и 2 артикулами → URL отсутствуют.\n☐ Пагинация. Проверить категорию и допустимую подборку с несколькими страницами → первая есть, страницы 2+ и вариант с явным номером 1 отсутствуют.\n☐ Порог. Изменить состав подборки 2 → 3 → 2 артикула; после обновлений → URL отсутствует, появляется, снова отсутствует.\n☐ Без остатка. Найти допустимую подборку из ≥3 артикулов, все без остатка и возможности заказа → первая страница есть. Предложения не отключать; без примера проверку не отмечать.\n☐ Бренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.\n☐ Служебные URL. Проверить сортировку, поиск по брендам, метки перехода и ненормализованные дубли → в карте их нет.\n☐ Полнота. Сравнить расчётный и опубликованный наборы только категорий, подборок и брендов → 0 пропущенных, 0 лишних, 0 повторов; прочие разделы сохранены.\n",
                        "epicUrl": "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit",
                        "epicSources": [
                            "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit"
                        ],
                        "unscheduled": true
                    }
                ],
                "descriptionHtml": "<p><\/p><h2>Карта каталога<\/h2><p>Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.<\/p><h2>Эпик 7. Актуализация XML-карты сайта<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 7. Актуализация XML-карты сайта<\/p><p>Цель и результат<\/p><p>Обеспечить корректное включение в существующую XML-карту категорий, фильтрованных подборок, общего списка брендов и страниц брендов. Карточки товаров и остальные разделы сайта в этот эпик не входят; их правила и состав карты не изменять.<\/p><p>Ключевые правила<\/p><p>Включать<\/p><p>\tИсключать<\/p><p>\tКанонические индексируемые страницы каталога<\/p><p>\tДубли URL, страницы с noindex, редиректы, ошибки и URL тестового домена.<\/p><p>\tРазрешённые подборки и страницы брендов<\/p><p>\tПодборки, не прошедшие правила эпика 4; отключённые страницы брендов; служебные варианты URL.<\/p><p>1. Состав карты<\/p><p>Включать<\/p><p>Категории: основной URL каждой опубликованной категории, которой разрешена индексация по правилам сайта.<\/p><p>Фильтрованные подборки: только первая страница, если категория конечная, выбрано 1–3 разрешённых фильтра по одному значению, во всей подборке ≥3 разных артикулов и нет сортировки. Бренд не требует флага разрешения.<\/p><p>Бренды: общий список \/brands\/ и отдельные страницы нескрытых брендов, которым разрешена индексация.<\/p><p>Для каждого включённого адреса: HTTP 200, нет noindex, один абсолютный URL на part-kom.ru, совпадающий с canonical. Повторно URL не добавлять.<\/p><p>Не включать<\/p><p>Страницы 2 и далее категорий и фильтрованных подборок. В карту включается только их первая страница без параметра номера, даже если последующим страницам разрешена индексация.<\/p><p>Подборки с noindex: 0–2 артикула; несколько значений одного фильтра; 4 и более фильтра; обычный фильтр без разрешения индексации; фильтрация в родительской категории.<\/p><p>URL с сортировкой, поиском по списку брендов, служебными параметрами и метками перехода; дубли с другим порядком параметров.<\/p><p>Скрытые страницы брендов, неопубликованные категории, страницы с запретом индексации, редиректы и ошибочные URL. Тестовые адреса не включать.<\/p><p>Важные исключения<\/p><p>Отсутствие остатка не исключает допустимую подборку из ≥3 артикулов: её первая страница остаётся в карте.<\/p><p>Скрытие бренда удаляет из карты отдельную страницу бренда, но не запрещает допустимые подборки с фильтром этого бренда.<\/p><p>Отсутствие в sitemap не заменяет noindex. Страницы пагинации исключаются из карты отдельно от решения об их индексации.<\/p><p>2. Обновление<\/p><p>После применения выгрузки PIM пересчитать карту с учётом созданных категорий, привязок товаров и значений характеристик.<\/p><p>После изменения разрешения индексации фильтра включить или исключить затронутые подборки по общему алгоритму.<\/p><p>Число артикулов выросло с 2 до 3 при остальных допустимых условиях — добавить URL. Снизилось с 3 до 2 — удалить URL.<\/p><p>Бренд скрыт — удалить URL его отдельной страницы. Бренд восстановлен — вернуть индексируемый URL. Категории с фильтром этого бренда проверяются независимо и не удаляются только из-за скрытия бренда.<\/p><p>Способ генерации, расписание обновления и защиту от публикации неполной карты определяет команда. После завершения обновления опубликованный состав соответствует текущим данным и настройкам сайта.<\/p><p>Если используется lastmod, менять его при существенном изменении соответствующей страницы, а не при каждом запуске генерации.<\/p><p>3. Публикация и контроль<\/p><p>Использовать существующую карту с точкой входа https:\/\/part-kom.ru\/sitemap.xml. Способ размещения URL в отдельных файлах определяет команда.<\/p><p>Проверять состав только в пределах этого эпика: категории, фильтрованные подборки, список и страницы брендов. URL остальных разделов не считать лишними и не удалять.<\/p><p>Сформировать ожидаемый набор URL этих четырёх типов по данным сайта и правилам раздела 1. Из опубликованных XML-карт собрать URL тех же типов. Сравнить наборы: пропущенных = 0, лишних в этой области = 0, повторов = 0.<\/p><p>Проверить, что добавленные URL доступны роботам, возвращают HTTP 200 и совпадают со своим canonical. Существующий механизм публикации XML-карт должен оставаться работоспособным.<\/p><p>Связанные эпики<\/p><p>* Эпик 1 — изменения каталога после обмена PIM.<\/p><p>* Эпик 2 — управление индексацией обычных фильтров.<\/p><p>* Эпик 4 — единые правила разрешения URL для индексации.<\/p><p>* Эпик 6 — список брендов, страницы брендов и скрытие.<\/p><p>4. Порядок проверки<\/p><p>☐ Категория. После обмена PIM и публикации индексируемой категории найти её основной URL в карте → присутствует один раз.<\/p><p>☐ Подборки. Найти первые страницы с 1, 2 и 3 разрешёнными фильтрами, по одному значению, ≥3 артикула → все три нормализованных URL есть.<\/p><p>☐ Запреты. Проверить подборки с 2 значениями, 4 фильтрами, неразрешённым фильтром, брендом у родителя и 2 артикулами → URL отсутствуют.<\/p><p>☐ Пагинация. Проверить категорию и допустимую подборку с несколькими страницами → первая есть, страницы 2+ и вариант с явным номером 1 отсутствуют.<\/p><p>☐ Порог. Изменить состав подборки 2 → 3 → 2 артикула; после обновлений → URL отсутствует, появляется, снова отсутствует.<\/p><p>☐ Без остатка. Найти допустимую подборку из ≥3 артикулов, все без остатка и возможности заказа → первая страница есть. Предложения не отключать; без примера проверку не отмечать.<\/p><p>☐ Бренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.<\/p><p>☐ Служебные URL. Проверить сортировку, поиск по брендам, метки перехода и ненормализованные дубли → в карте их нет.<\/p><p>☐ Полнота. Сравнить расчётный и опубликованный наборы только категорий, подборок и брендов → 0 пропущенных, 0 лишних, 0 повторов; прочие разделы сохранены.<\/p><p><a href=\"https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit\">Оригинал эпика<\/a><\/p>",
                "description": "Карта каталогаТребования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.Эпик 7. Актуализация XML-карты сайтаОткрыть оригинал эпика﻿Эпик 7. Актуализация XML-карты сайтаЦель и результатОбеспечить корректное включение в существующую XML-карту категорий, фильтрованных подборок, общего списка брендов и страниц брендов. Карточки товаров и остальные разделы сайта в этот эпик не входят; их правила и состав карты не изменять.Ключевые правилаВключать\tИсключать\tКанонические индексируемые страницы каталога\tДубли URL, страницы с noindex, редиректы, ошибки и URL тестового домена.\tРазрешённые подборки и страницы брендов\tПодборки, не прошедшие правила эпика 4; отключённые страницы брендов; служебные варианты URL.1. Состав картыВключатьКатегории: основной URL каждой опубликованной категории, которой разрешена индексация по правилам сайта.Фильтрованные подборки: только первая страница, если категория конечная, выбрано 1–3 разрешённых фильтра по одному значению, во всей подборке ≥3 разных артикулов и нет сортировки. Бренд не требует флага разрешения.Бренды: общий список \/brands\/ и отдельные страницы нескрытых брендов, которым разрешена индексация.Для каждого включённого адреса: HTTP 200, нет noindex, один абсолютный URL на part-kom.ru, совпадающий с canonical. Повторно URL не добавлять.Не включатьСтраницы 2 и далее категорий и фильтрованных подборок. В карту включается только их первая страница без параметра номера, даже если последующим страницам разрешена индексация.Подборки с noindex: 0–2 артикула; несколько значений одного фильтра; 4 и более фильтра; обычный фильтр без разрешения индексации; фильтрация в родительской категории.URL с сортировкой, поиском по списку брендов, служебными параметрами и метками перехода; дубли с другим порядком параметров.Скрытые страницы брендов, неопубликованные категории, страницы с запретом индексации, редиректы и ошибочные URL. Тестовые адреса не включать.Важные исключенияОтсутствие остатка не исключает допустимую подборку из ≥3 артикулов: её первая страница остаётся в карте.Скрытие бренда удаляет из карты отдельную страницу бренда, но не запрещает допустимые подборки с фильтром этого бренда.Отсутствие в sitemap не заменяет noindex. Страницы пагинации исключаются из карты отдельно от решения об их индексации.2. ОбновлениеПосле применения выгрузки PIM пересчитать карту с учётом созданных категорий, привязок товаров и значений характеристик.После изменения разрешения индексации фильтра включить или исключить затронутые подборки по общему алгоритму.Число артикулов выросло с 2 до 3 при остальных допустимых условиях — добавить URL. Снизилось с 3 до 2 — удалить URL.Бренд скрыт — удалить URL его отдельной страницы. Бренд восстановлен — вернуть индексируемый URL. Категории с фильтром этого бренда проверяются независимо и не удаляются только из-за скрытия бренда.Способ генерации, расписание обновления и защиту от публикации неполной карты определяет команда. После завершения обновления опубликованный состав соответствует текущим данным и настройкам сайта.Если используется lastmod, менять его при существенном изменении соответствующей страницы, а не при каждом запуске генерации.3. Публикация и контрольИспользовать существующую карту с точкой входа https:\/\/part-kom.ru\/sitemap.xml. Способ размещения URL в отдельных файлах определяет команда.Проверять состав только в пределах этого эпика: категории, фильтрованные подборки, список и страницы брендов. URL остальных разделов не считать лишними и не удалять.Сформировать ожидаемый набор URL этих четырёх типов по данным сайта и правилам раздела 1. Из опубликованных XML-карт собрать URL тех же типов. Сравнить наборы: пропущенных = 0, лишних в этой области = 0, повторов = 0.Проверить, что добавленные URL доступны роботам, возвращают HTTP 200 и совпадают со своим canonical. Существующий механизм публикации XML-карт должен оставаться работоспособным.Связанные эпики* Эпик 1 — изменения каталога после обмена PIM.* Эпик 2 — управление индексацией обычных фильтров.* Эпик 4 — единые правила разрешения URL для индексации.* Эпик 6 — список брендов, страницы брендов и скрытие.4. Порядок проверки☐ Категория. После обмена PIM и публикации индексируемой категории найти её основной URL в карте → присутствует один раз.☐ Подборки. Найти первые страницы с 1, 2 и 3 разрешёнными фильтрами, по одному значению, ≥3 артикула → все три нормализованных URL есть.☐ Запреты. Проверить подборки с 2 значениями, 4 фильтрами, неразрешённым фильтром, брендом у родителя и 2 артикулами → URL отсутствуют.☐ Пагинация. Проверить категорию и допустимую подборку с несколькими страницами → первая есть, страницы 2+ и вариант с явным номером 1 отсутствуют.☐ Порог. Изменить состав подборки 2 → 3 → 2 артикула; после обновлений → URL отсутствует, появляется, снова отсутствует.☐ Без остатка. Найти допустимую подборку из ≥3 артикулов, все без остатка и возможности заказа → первая страница есть. Предложения не отключать; без примера проверку не отмечать.☐ Бренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.☐ Служебные URL. Проверить сортировку, поиск по брендам, метки перехода и ненормализованные дубли → в карте их нет.☐ Полнота. Сравнить расчётный и опубликованный наборы только категорий, подборок и брендов → 0 пропущенных, 0 лишних, 0 повторов; прочие разделы сохранены.Оригинал эпика"
            },
            {
                "id": "retail27-pim",
                "code": "SITE-11",
                "owner": "",
                "goal": "",
                "start": "2026-06-17",
                "end": "2026-07-14",
                "name": "Основа ПИМ",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-base"
                    }
                ],
                "planOrder": 10,
                "sourceSheetRows": [
                    95,
                    96
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-06-17",
                "targetEnd": "2026-07-14",
                "unscheduled": false,
                "previousTargetV29": [
                    "2027-02-21",
                    "2027-08-21"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-classification",
                "code": "SITE-12",
                "owner": "",
                "goal": "",
                "start": "2026-07-01",
                "end": "2026-08-11",
                "name": "Загрузка и распределение",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-distribution"
                    }
                ],
                "planOrder": 11,
                "sourceSheetRows": [
                    98,
                    99,
                    100,
                    101,
                    102,
                    103,
                    104
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-01",
                "targetEnd": "2026-08-11",
                "unscheduled": false,
                "previousTargetV29": [
                    "2027-03-06",
                    "2027-09-18"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-names",
                "code": "SITE-13",
                "owner": "",
                "goal": "",
                "start": "2026-07-29",
                "end": "2026-09-08",
                "name": "Названия товаров",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-quality"
                    }
                ],
                "planOrder": 12,
                "sourceSheetRows": [
                    106,
                    107
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-29",
                "targetEnd": "2026-09-08",
                "unscheduled": false,
                "previousTargetV29": [
                    "2027-02-18",
                    "2027-08-20"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-photos",
                "code": "SITE-14",
                "owner": "",
                "goal": "",
                "start": "2026-07-15",
                "end": "2026-09-08",
                "name": "Фотографии товаров",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-quality"
                    }
                ],
                "planOrder": 13,
                "sourceSheetRows": [
                    114,
                    115
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-15",
                "targetEnd": "2026-09-08",
                "unscheduled": false,
                "previousTargetV29": [
                    "2027-02-10",
                    "2027-08-19"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-classification-v2",
                "code": "SITE-15",
                "owner": "",
                "goal": "",
                "start": "2026-08-26",
                "end": "2026-09-22",
                "name": "Развитие категорий",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-structure"
                    }
                ],
                "planOrder": 14,
                "sourceSheetRows": [
                    109,
                    110,
                    111,
                    112
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2027-05-10",
                "targetEnd": "2027-11-26",
                "unscheduled": false,
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "roadmap-attributes",
                "code": "PRJ-26",
                "name": "Характеристики и фильтры",
                "goal": "Характеристики хранятся в ПИМ, наполнены для согласованного набора товаров и доступны в фильтрах сайта.",
                "owner": "",
                "status": "Запланирован",
                "start": "2026-08-26",
                "end": "2026-09-22",
                "sourceGrouping": true,
                "goalProposed": true,
                "unscheduled": false,
                "planOrder": 17,
                "description": "Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.\nЭпик 2. Глобальное управление фильтрами каталогаОткрыть оригинал эпика\n﻿Эпик 2. Глобальное управление фильтрами каталога\nЦель и результат\nДать администратору управление показом обычных фильтров и разрешением их индексации из параметров самого фильтра. Фильтр «Бренд» исключён из этого управления. Настройки действуют глобально, без ручного обхода категорий.\nКлючевые правила\nНастройка\n\tПоведение\n\tПоказывать в каталоге\n\tРазрешает показ обычного фильтра в применимых конечных категориях. К фильтру «Бренд» настройка не применяется.\n\tРазрешить индексацию\n\tРазрешает индексацию страниц всех одиночных значений фильтра на последнем уровне. Итоговое разрешение рассчитывается по правилам эпика 4.\n1. Правила управления\n* Оба параметра находятся в карточке обычного фильтра в админке сайта. У фильтра «Бренд» этих параметров нет. Настройки не задаются отдельно для каждой категории или каждого значения.[a][b]\n* Обычные фильтры отображаются только на последнем уровне. Фильтр «Бренд» показывается всегда, включая родительские категории; его нельзя отключить или скрыть через настройки. Для страниц с брендом действуют общие SEO-ограничения эпика 4: последний уровень, число фильтров и порог товаров.\n* Настройка показа определяет доступность фильтра в интерфейсе. Настройка индексации определяет SEO-разрешение; сам по себе показ фильтра не разрешает индексацию.\n* Обычный фильтр применяется только там, где у товаров есть соответствующие характеристики и значения. Набор доступных значений зависит от выборки товаров. Новая характеристика или значение, полученные в составе выгрузки товаров из PIM, автоматически появляются в структуре сайта и доступны в админке. Для новой характеристики доступны флаги показа и индексации фильтра; отдельные флаги для значений не создаются. Эти характеристики служат только для фильтрации и не отображаются на детальной странице товара.\n* Разрешение индексации распространяется на все одиночные значения. Отдельный список разрешённых значений не создаётся.\n* Сохранённые настройки используются каталогом, расчётом индексации, внутренними ссылками и картой сайта. Обмен PIM не должен перезаписывать настройки, которыми управляет администратор сайта.\n2. Схема интерфейса\n3. Связанные эпики\n* Эпик 1 — правила обмена характеристиками с PIM.\n* Эпик 3 — характеристики и фильтры на PLP.\n* Эпик 4 — правила индексации страниц с фильтрами.\n* Эпик 6 — скрытие бренда только в разделе «Бренды».\n* Эпик 7 — включение и исключение подборок из sitemap.\n4. Порядок проверки\nГалочку ставить после выполнения действия и подтверждения ожидаемого результата.\n* Показ включён. Передать с товаром из PIM новую характеристику и значение; после обмена найти их в админке сайта и включить показ фильтра → фильтр доступен в применимых конечных категориях, отбирает переданные товары; в родительских категориях и на детальной странице товара характеристика не отображается.\n* Показ выключен. Выключить фильтр → он не отображается в интерфейсе каталога после применения настройки.\n* Бренд. Открыть родительскую и конечную категорию → фильтр «Бренд» показан без включения флагов; в админке отсутствует возможность его отключить.\n* Индексация включена. Разрешить фильтр → каждое его одиночное значение проверяется по единому SEO-алгоритму; отдельное разрешение значения не требуется. Подробная проверка — в эпике 4.\n* Индексация выключена. Снять разрешение обычного фильтра → страницы с ним содержат в исходном HTML &lt;meta name=&quot;robots&quot; content=&quot;noindex, follow&quot;&gt; и исключены из sitemap; сам фильтр может оставаться видимым. Подробная проверка — в эпике 4.\n* Глобальность. Изменить один флаг → настройка действует в разных категориях без их ручной настройки.\n* Сохранение. Переоткрыть карточку фильтра и выполнить обмен PIM → настройки администратора сохранены.\n[a]Получается кнопки показать в каталоге и разрешить индексацию должны относиться к фильтру, а не к фильтру + категория?\nИ после включения этот фильтр показывается по всех категориях где есть товар с данной характеристикой?\n[b]ДА\nЭпик 3. Фильтрация и навигация на страницах каталогаОткрыть оригинал эпика\n﻿Эпик 3. Фильтрация и навигация на страницах каталога\nЦель и результат\nСогласовать выдачу товаров, значения фильтров и плашки подразделов с текущей выборкой. Убрать переходы в заведомо пустые подборки и сброс бренда при переходе в подраздел.\nКлючевые правила\nЭлемент PLP\n\tОжидаемое поведение\n\tПлашки подразделов\n\tПоказываются только подразделы с товарами, соответствующими текущим фильтрам. Переход сохраняет выбранный бренд.\n\tЗначения фильтров\n\tДоступность и счётчики соответствуют текущему отбору. Выбранные значения остаются доступными для снятия, даже если результат пуст.\n1. Товары и фильтры\n* Товары, которые нельзя заказать, остаются на PLP. Недоступность заказа сама по себе не делает подраздел или подборку пустой.\n* Обычные фильтры следуют настройкам эпика 2 и показываются только в конечных категориях. Фильтр «Бренд» показан всегда, в том числе в родительских категориях; скрытие страницы бренда не удаляет его из фильтра.\n* После выбора или снятия значения обновляются карточки, счётчики, доступные значения и плашки подразделов. Не предлагать переход, который даст пустой результат; выбранное значение с нулевым результатом оставить доступным для снятия.[a][b]\n* Выбор двух значений одного фильтра и более трёх разных фильтров остаётся доступным пользователю. Ограничение до трёх фильтров относится к индексации, а не к возможности подбора.\n2. Навигация и ссылки\n* При переходе по плашке подраздела сохранять выбранный бренд. Пример: «Масла и жидкости» + LUKOIL → «Моторные масла» + LUKOIL; товары других брендов в результате не появляются.[c]\n* Значения, ведущие на индексируемые подборки, содержат обычную ссылку с href на нормализованный URL. Ссылка и выбор значения должны давать одну и ту же подборку.[d][e]\n* Не генерировать ссылки на заведомо пустые подборки. Формирование URL и проверка разрешения индексации используют общий алгоритм эпика 4.\n* Изменение фильтров сбрасывает текущую страницу пагинации на первую. Переход по страницам выдачи сохраняет выбранные фильтры.\n* Снятие одного фильтра и полный сброс обновляют выдачу и SEO-состояние страницы. После полного сброса не остаются метаданные и запреты прежней комбинации.\n3. Пустая выдача и границы\n* При пустом результате показать сообщение и дать снять выбранные условия или сбросить фильтры. Активные условия не исчезают из интерфейса.\nСвязанные эпики\n* Эпик 1 — товары, привязки и характеристики из PIM.\n* Эпик 2 — настройки показа обычных фильтров.\n* Эпик 4 — адреса, метатеги и индексация подборок.\n* Эпик 6 — переходы со страниц брендов в каталог.\n4. Порядок проверки\nГалочку ставить после выполнения действия и подтверждения ожидаемого результата.\n* Родительская категория. Открыть «Масла и жидкости» → фильтр «Бренд» отображается без условий включения; обычные характеристики отсутствуют.[f]\n* Динамические подразделы. Выбрать бренд → остаются только подразделы, в которых есть товары выбранного бренда.[g][h]\n* Переход. Из родительской категории с LUKOIL перейти в «Моторные масла» → бренд сохранён, товары соответствуют отбору.\n* Счётчики. Выбрать и снять характеристику → карточки, значения и счётчики согласованы с результатом.\n* Недоступные товары. В существующем каталоге найти PLP с товарами без остатка, записать URL и артикулы, проверить отсутствие остатка по данным сайта → карточки этих товаров отображаются в списке; отсутствие остатка не делает подборку пустой. Предложения вручную не отключать. Если подходящий пример не найден, проверка остаётся непройденной.\n* Несколько значений. Выбрать два значения одного фильтра и четыре разных фильтра → отбор работает, SEO-ограничения применяются отдельно.\n* Пустой результат. Открыть комбинацию без товаров → условия видны и снимаются; сброс восстанавливает выдачу.\n* Ссылки. Проверить значение, ведущее на индексируемую подборку → есть href; прямая загрузка даёт тот же результат, что выбор в интерфейсе.\n* Пагинация. Перейти на вторую страницу, затем изменить фильтр → открывается первая страница новой выборки.\n* Сброс. Сбросить фильтры → URL, выдача и метаданные соответствуют базовой категории.\n[a]Это не работает, нужно добавить?\n[b]https:\/\/jira.part-kom.ru\/browse\/WEB-10066\n[c]Такая логика должна быть - фильтровать категории (подразделы) при выборе фильтра бренда.\n[d]уточнить\n[e]ссылка при наведении на фильтр. учитывть что фильтр должен быть индексируемымм. (и только в конечной категории.)\n[f]почему обычные характеристики должны отсутствовать, если выбрали фильтр бренда у масел?\n[g]А если выбрать 2 или 3 бранеда, то категории также продолжать фильтровать?\n[h]да\nРанее сохранённое описаниеПример эпика для обсуждения.\n\nПокупатель может сравнить товары по характеристикам и сузить каталог фильтрами. Характеристики хранятся в ПИМ, передаются на сайт и наполняются контент-командой.\n\nУчаствуют розничный сайт, ПИМ и контент. Запуск начинаем с согласованного набора категорий, затем расширяем покрытие.\n",
                "requirements": "1. В ПИМ доступны справочники характеристик, значения и привязка к товарам.\n2. Обмен передаёт значения на сайт; ошибки видны ответственному.\n3. На сайте работают отображение, фильтрация и согласованные правила SEO.\n4. Есть ручное наполнение, автоматические механизмы и инструкция для контент-команды.\n5. До запуска согласованы категории пилота, критерии полноты и метрики использования фильтров.\n\nЭто пример требований, целевые значения и критерии приёмки нужно согласовать.",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    }
                ],
                "targetStart": "2026-08-18",
                "targetEnd": "2026-11-13",
                "sourceSheetRows": [
                    76,
                    77,
                    78,
                    79,
                    80,
                    81,
                    82,
                    83,
                    85,
                    86,
                    87,
                    88,
                    89,
                    90,
                    91,
                    92,
                    117
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "descriptionHtml": "<p>Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.<\/p><h2>Эпик 2. Глобальное управление фильтрами каталога<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 2. Глобальное управление фильтрами каталога<\/p><p>Цель и результат<\/p><p>Дать администратору управление показом обычных фильтров и разрешением их индексации из параметров самого фильтра. Фильтр «Бренд» исключён из этого управления. Настройки действуют глобально, без ручного обхода категорий.<\/p><p>Ключевые правила<\/p><p>Настройка<\/p><p>\tПоведение<\/p><p>\tПоказывать в каталоге<\/p><p>\tРазрешает показ обычного фильтра в применимых конечных категориях. К фильтру «Бренд» настройка не применяется.<\/p><p>\tРазрешить индексацию<\/p><p>\tРазрешает индексацию страниц всех одиночных значений фильтра на последнем уровне. Итоговое разрешение рассчитывается по правилам эпика 4.<\/p><p>1. Правила управления<\/p><p>* Оба параметра находятся в карточке обычного фильтра в админке сайта. У фильтра «Бренд» этих параметров нет. Настройки не задаются отдельно для каждой категории или каждого значения.[a][b]<\/p><p>* Обычные фильтры отображаются только на последнем уровне. Фильтр «Бренд» показывается всегда, включая родительские категории; его нельзя отключить или скрыть через настройки. Для страниц с брендом действуют общие SEO-ограничения эпика 4: последний уровень, число фильтров и порог товаров.<\/p><p>* Настройка показа определяет доступность фильтра в интерфейсе. Настройка индексации определяет SEO-разрешение; сам по себе показ фильтра не разрешает индексацию.<\/p><p>* Обычный фильтр применяется только там, где у товаров есть соответствующие характеристики и значения. Набор доступных значений зависит от выборки товаров. Новая характеристика или значение, полученные в составе выгрузки товаров из PIM, автоматически появляются в структуре сайта и доступны в админке. Для новой характеристики доступны флаги показа и индексации фильтра; отдельные флаги для значений не создаются. Эти характеристики служат только для фильтрации и не отображаются на детальной странице товара.<\/p><p>* Разрешение индексации распространяется на все одиночные значения. Отдельный список разрешённых значений не создаётся.<\/p><p>* Сохранённые настройки используются каталогом, расчётом индексации, внутренними ссылками и картой сайта. Обмен PIM не должен перезаписывать настройки, которыми управляет администратор сайта.<\/p><p>2. Схема интерфейса<\/p><p>3. Связанные эпики<\/p><p>* Эпик 1 — правила обмена характеристиками с PIM.<\/p><p>* Эпик 3 — характеристики и фильтры на PLP.<\/p><p>* Эпик 4 — правила индексации страниц с фильтрами.<\/p><p>* Эпик 6 — скрытие бренда только в разделе «Бренды».<\/p><p>* Эпик 7 — включение и исключение подборок из sitemap.<\/p><p>4. Порядок проверки<\/p><p>Галочку ставить после выполнения действия и подтверждения ожидаемого результата.<\/p><p>* Показ включён. Передать с товаром из PIM новую характеристику и значение; после обмена найти их в админке сайта и включить показ фильтра → фильтр доступен в применимых конечных категориях, отбирает переданные товары; в родительских категориях и на детальной странице товара характеристика не отображается.<\/p><p>* Показ выключен. Выключить фильтр → он не отображается в интерфейсе каталога после применения настройки.<\/p><p>* Бренд. Открыть родительскую и конечную категорию → фильтр «Бренд» показан без включения флагов; в админке отсутствует возможность его отключить.<\/p><p>* Индексация включена. Разрешить фильтр → каждое его одиночное значение проверяется по единому SEO-алгоритму; отдельное разрешение значения не требуется. Подробная проверка — в эпике 4.<\/p><p>* Индексация выключена. Снять разрешение обычного фильтра → страницы с ним содержат в исходном HTML &lt;meta name=&quot;robots&quot; content=&quot;noindex, follow&quot;&gt; и исключены из sitemap; сам фильтр может оставаться видимым. Подробная проверка — в эпике 4.<\/p><p>* Глобальность. Изменить один флаг → настройка действует в разных категориях без их ручной настройки.<\/p><p>* Сохранение. Переоткрыть карточку фильтра и выполнить обмен PIM → настройки администратора сохранены.<\/p><p>[a]Получается кнопки показать в каталоге и разрешить индексацию должны относиться к фильтру, а не к фильтру + категория?<\/p><p>И после включения этот фильтр показывается по всех категориях где есть товар с данной характеристикой?<\/p><p>[b]ДА<\/p><h2>Эпик 3. Фильтрация и навигация на страницах каталога<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 3. Фильтрация и навигация на страницах каталога<\/p><p>Цель и результат<\/p><p>Согласовать выдачу товаров, значения фильтров и плашки подразделов с текущей выборкой. Убрать переходы в заведомо пустые подборки и сброс бренда при переходе в подраздел.<\/p><p>Ключевые правила<\/p><p>Элемент PLP<\/p><p>\tОжидаемое поведение<\/p><p>\tПлашки подразделов<\/p><p>\tПоказываются только подразделы с товарами, соответствующими текущим фильтрам. Переход сохраняет выбранный бренд.<\/p><p>\tЗначения фильтров<\/p><p>\tДоступность и счётчики соответствуют текущему отбору. Выбранные значения остаются доступными для снятия, даже если результат пуст.<\/p><p>1. Товары и фильтры<\/p><p>* Товары, которые нельзя заказать, остаются на PLP. Недоступность заказа сама по себе не делает подраздел или подборку пустой.<\/p><p>* Обычные фильтры следуют настройкам эпика 2 и показываются только в конечных категориях. Фильтр «Бренд» показан всегда, в том числе в родительских категориях; скрытие страницы бренда не удаляет его из фильтра.<\/p><p>* После выбора или снятия значения обновляются карточки, счётчики, доступные значения и плашки подразделов. Не предлагать переход, который даст пустой результат; выбранное значение с нулевым результатом оставить доступным для снятия.[a][b]<\/p><p>* Выбор двух значений одного фильтра и более трёх разных фильтров остаётся доступным пользователю. Ограничение до трёх фильтров относится к индексации, а не к возможности подбора.<\/p><p>2. Навигация и ссылки<\/p><p>* При переходе по плашке подраздела сохранять выбранный бренд. Пример: «Масла и жидкости» + LUKOIL → «Моторные масла» + LUKOIL; товары других брендов в результате не появляются.[c]<\/p><p>* Значения, ведущие на индексируемые подборки, содержат обычную ссылку с href на нормализованный URL. Ссылка и выбор значения должны давать одну и ту же подборку.[d][e]<\/p><p>* Не генерировать ссылки на заведомо пустые подборки. Формирование URL и проверка разрешения индексации используют общий алгоритм эпика 4.<\/p><p>* Изменение фильтров сбрасывает текущую страницу пагинации на первую. Переход по страницам выдачи сохраняет выбранные фильтры.<\/p><p>* Снятие одного фильтра и полный сброс обновляют выдачу и SEO-состояние страницы. После полного сброса не остаются метаданные и запреты прежней комбинации.<\/p><p>3. Пустая выдача и границы<\/p><p>* При пустом результате показать сообщение и дать снять выбранные условия или сбросить фильтры. Активные условия не исчезают из интерфейса.<\/p><p>Связанные эпики<\/p><p>* Эпик 1 — товары, привязки и характеристики из PIM.<\/p><p>* Эпик 2 — настройки показа обычных фильтров.<\/p><p>* Эпик 4 — адреса, метатеги и индексация подборок.<\/p><p>* Эпик 6 — переходы со страниц брендов в каталог.<\/p><p>4. Порядок проверки<\/p><p>Галочку ставить после выполнения действия и подтверждения ожидаемого результата.<\/p><p>* Родительская категория. Открыть «Масла и жидкости» → фильтр «Бренд» отображается без условий включения; обычные характеристики отсутствуют.[f]<\/p><p>* Динамические подразделы. Выбрать бренд → остаются только подразделы, в которых есть товары выбранного бренда.[g][h]<\/p><p>* Переход. Из родительской категории с LUKOIL перейти в «Моторные масла» → бренд сохранён, товары соответствуют отбору.<\/p><p>* Счётчики. Выбрать и снять характеристику → карточки, значения и счётчики согласованы с результатом.<\/p><p>* Недоступные товары. В существующем каталоге найти PLP с товарами без остатка, записать URL и артикулы, проверить отсутствие остатка по данным сайта → карточки этих товаров отображаются в списке; отсутствие остатка не делает подборку пустой. Предложения вручную не отключать. Если подходящий пример не найден, проверка остаётся непройденной.<\/p><p>* Несколько значений. Выбрать два значения одного фильтра и четыре разных фильтра → отбор работает, SEO-ограничения применяются отдельно.<\/p><p>* Пустой результат. Открыть комбинацию без товаров → условия видны и снимаются; сброс восстанавливает выдачу.<\/p><p>* Ссылки. Проверить значение, ведущее на индексируемую подборку → есть href; прямая загрузка даёт тот же результат, что выбор в интерфейсе.<\/p><p>* Пагинация. Перейти на вторую страницу, затем изменить фильтр → открывается первая страница новой выборки.<\/p><p>* Сброс. Сбросить фильтры → URL, выдача и метаданные соответствуют базовой категории.<\/p><p>[a]Это не работает, нужно добавить?<\/p><p>[b]https:\/\/jira.part-kom.ru\/browse\/WEB-10066<\/p><p>[c]Такая логика должна быть - фильтровать категории (подразделы) при выборе фильтра бренда.<\/p><p>[d]уточнить<\/p><p>[e]ссылка при наведении на фильтр. учитывть что фильтр должен быть индексируемымм. (и только в конечной категории.)<\/p><p>[f]почему обычные характеристики должны отсутствовать, если выбрали фильтр бренда у масел?<\/p><p>[g]А если выбрать 2 или 3 бранеда, то категории также продолжать фильтровать?<\/p><p>[h]да<\/p><h2>Ранее сохранённое описание<\/h2><p>Пример эпика для обсуждения.\n\nПокупатель может сравнить товары по характеристикам и сузить каталог фильтрами. Характеристики хранятся в ПИМ, передаются на сайт и наполняются контент-командой.\n\nУчаствуют розничный сайт, ПИМ и контент. Запуск начинаем с согласованного набора категорий, затем расширяем покрытие.<\/p>",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit",
                "epicSources": [
                    "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit",
                    "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
                ]
            },
            {
                "id": "roadmap-brands",
                "code": "PRJ-BRANDS",
                "name": "Бренды",
                "goal": "Доступны список, поиск, страница бренда и брендовые категории.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "2026-09-07",
                "end": "2026-11-15",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-25"
                ],
                "planOrder": 18,
                "description": "Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.Эпик 6. Список брендов и страницы брендовОткрыть оригинал эпика﻿Эпик 6. Список брендов и страницы брендовЦель и результатСоздать раздел «Бренды»: общий список, отдельные страницы брендов, переходы в каталог и управление скрытием бренда в админке. Требования ниже описывают конечный результат независимо от текущего состояния сайта.Ключевые правилаОбъект\tПравило\tОбщий список брендов\tСоздать страницу \/brands\/ с поиском по названию и алфавитной группировкой. Показывать только нескрытые бренды.\tСкрытый бренд\tНе показывается в общем списке; отдельная страница бренда возвращает HTTP 404. Товары, название бренда и фильтрация по нему сохраняются.1. Общий списокСоздать страницу общего списка по адресу https:\/\/part-kom.ru\/brands\/. Из навигации сайта должна быть доступна ссылка «Бренды» на эту страницу.Показать названия нескрытых брендов, сгруппированные по первой букве. Внутри группы — алфавитный порядок. Для названий, начинающихся с цифр, использовать группу «0–9».Добавить поиск по названию: искать по введённой части строки без учёта регистра. Поддержать названия на кириллице и латинице. Искать только среди нескрытых брендов.Если совпадений нет, показать «Бренды не найдены». Очистка поиска возвращает полный список нескрытых брендов. Нажатие на название открывает отдельную страницу бренда.Метатеги общего списка:H1: БрендыTitle: Каталог производителей автозапчастей на сайте ПарткомDescription: Купить запчасти в Партком. Каталоги оригинальных и неоригинальных автозапчастей. Поиск производителей по названию.Canonical: https:\/\/part-kom.ru\/brands\/Основная страница списка: HTTP 200, index, follow. Вариант \/brands без завершающего слеша перенаправляется HTTP 301 на \/brands\/. Если поиск формирует отдельный URL с параметрами, такой URL получает noindex, follow и не включается в sitemap.2. Страница брендаДля каждого нескрытого бренда создать отдельную страницу. Использовать закреплённый URL бренда вида \/brands\/{код_бренда}; уже существующие адреса, например \/brands\/ZIC, сохранить. Переименование отображаемого названия не меняет закреплённый URL.На странице показать название бренда и ссылки на категории с его товарами. Ссылки ведут в соответствующую категорию с выбранным фильтром «Бренд». Не показывать ссылки на категории, где у бренда нет товаров; товары без остатка учитывать.Добавить переход в общий список брендов. Все ссылки ведут на part-kom.ru и используют нормализованные адреса.Предлагаемые шаблоны страницы бренда для согласования:H1: {Бренд}Title: {Бренд} — каталог товаров | ПарткомDescription: Товары {Бренд} в каталоге Партком. Выберите категорию и подберите товары бренда с помощью фильтров.Пример Title: ZIC — каталог товаров | ПарткомПример Description: Товары ZIC в каталоге Партком. Выберите категорию и подберите товары бренда с помощью фильтров.{Бренд} — актуальное отображаемое название, с сохранением его написания. Не подставлять технический код вместо названия. Шаблоны не обещают наличие, цену или возможность заказа.Страница нескрытого бренда: HTTP 200, index, follow, один canonical на собственный абсолютный URL. H1, Title, Description, robots и canonical доступны при прямом открытии в исходном HTML. У ZIC, LADA и других брендов не должны оставаться тексты другого бренда.3. Управление скрытием и схема интерфейсаВ админке создать управление брендами: список → поиск по названию → карточка бренда.В карточке: чекбокс «Скрыть бренд из списка и отключить страницу бренда» и кнопка «Сохранить». Под чекбоксом: «Товары и фильтр бренда останутся доступны». При повторном открытии показывать сохранённое значение.Флаг включён: бренд отсутствует в общем списке и поиске; его отдельная страница возвращает HTTP 404. Текст ошибки при HTTP 200 не считается выполнением требования.Удалить ссылки сайта на отключённую страницу и её URL из sitemap. В детальной карточке товара название скрытого бренда остаётся ссылкой: она ведёт в единственную непосредственную категорию этого товара с выбранным фильтром бренда.Флаг не удаляет товары, не скрывает бренд в фильтрах и не запрещает допустимые подборки по этому бренду. Фильтр «Бренд» не имеет настроек скрытия или разрешения индексации.Флаг выключен: бренд возвращается в список и поиск; отдельная страница снова доступна по прежнему URL; ссылка из товара снова ведёт на страницу бренда. Её индексируемый URL возвращается в sitemap после обновления.Скрытие — настройка сайта. Переименование и удаление брендов в PIM в этот эпик не входят. Техническое применение настроек и обновление кешей определяет команда.4. Связанные эпики* Эпик 3 — переходы в категории с выбранным брендом.* Эпик 4 — нормализованные URL и технические SEO-директивы.* Эпик 7 — добавление и удаление страниц брендов из sitemap.5. Порядок проверки☐ Список. Открыть \/brands\/ и перейти через навигацию сайта → список доступен, бренды сгруппированы и отсортированы, скрытых нет.☐ Поиск. Проверить видимые бренды с кириллицей и латиницей, часть названия, другой регистр, неизвестное имя и очистку → выдача соответствует запросу; при очистке возвращается список.☐ Переход. Из списка открыть ZIC, затем «Моторные масла» → категория открыта с выбранным ZIC и товарами этого бренда.☐ Метатеги. В исходном HTML \/brands\/ и двух разных брендов сравнить H1, Title и Description с шаблонами; проверить HTTP 200, index, follow и canonical на собственный URL.☐ Скрытие. В админке включить флаг → бренд исчез из списка и поиска; прежний URL даёт HTTP 404 в Network → Document → Headers.☐ Каталог. После скрытия бренд остаётся в фильтре, товары доступны. Нажать бренд в карточке товара → открывается непосредственная категория товара с выбранным брендом.☐ Ссылки и карта. После скрытия нет ссылок на отдельную страницу и её URL во всех sitemap. Допустимые подборки с этим брендом остаются.☐ Восстановление. Снять флаг → список, поиск, страница по прежнему URL и ссылка из товара восстановлены; URL страницы бренда вернулся в sitemap.Ранее сохранённое описаниеПример эпика для обсуждения.\n\nСоздать брендовый раздел: список брендов, поиск и страницу бренда с товарами. Покупатель может найти нужный бренд и перейти к его ассортименту.Развитие страниц брендовПартнёрские бренды",
                "requirements": "1. Список брендов поддерживает поиск по названию.\n2. Страница бренда показывает описание и доступные товары.\n3. Переход в категорию сохраняет выбранный бренд.\n4. Контент и SEO-поля доступны для редактирования; правила индексации согласованы.\n5. Проверены пустые результаты, мобильная версия и события аналитики.\n\nЭто пример; состав первого выпуска уточняется владельцем проекта.",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    }
                ],
                "targetStart": "2026-08-25",
                "targetEnd": "2026-12-26",
                "descriptionHtml": "<p>Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.<\/p><h2>Эпик 6. Список брендов и страницы брендов<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 6. Список брендов и страницы брендов<\/p><p>Цель и результат<\/p><p>Создать раздел «Бренды»: общий список, отдельные страницы брендов, переходы в каталог и управление скрытием бренда в админке. Требования ниже описывают конечный результат независимо от текущего состояния сайта.<\/p><p>Ключевые правила<\/p><p>Объект<\/p><p>\tПравило<\/p><p>\tОбщий список брендов<\/p><p>\tСоздать страницу \/brands\/ с поиском по названию и алфавитной группировкой. Показывать только нескрытые бренды.<\/p><p>\tСкрытый бренд<\/p><p>\tНе показывается в общем списке; отдельная страница бренда возвращает HTTP 404. Товары, название бренда и фильтрация по нему сохраняются.<\/p><p>1. Общий список<\/p><p>Создать страницу общего списка по адресу https:\/\/part-kom.ru\/brands\/. Из навигации сайта должна быть доступна ссылка «Бренды» на эту страницу.<\/p><p>Показать названия нескрытых брендов, сгруппированные по первой букве. Внутри группы — алфавитный порядок. Для названий, начинающихся с цифр, использовать группу «0–9».<\/p><p>Добавить поиск по названию: искать по введённой части строки без учёта регистра. Поддержать названия на кириллице и латинице. Искать только среди нескрытых брендов.<\/p><p>Если совпадений нет, показать «Бренды не найдены». Очистка поиска возвращает полный список нескрытых брендов. Нажатие на название открывает отдельную страницу бренда.<\/p><p>Метатеги общего списка:<\/p><p>H1: Бренды<\/p><p>Title: Каталог производителей автозапчастей на сайте Партком<\/p><p>Description: Купить запчасти в Партком. Каталоги оригинальных и неоригинальных автозапчастей. Поиск производителей по названию.<\/p><p>Canonical: https:\/\/part-kom.ru\/brands\/<\/p><p>Основная страница списка: HTTP 200, index, follow. Вариант \/brands без завершающего слеша перенаправляется HTTP 301 на \/brands\/. Если поиск формирует отдельный URL с параметрами, такой URL получает noindex, follow и не включается в sitemap.<\/p><p>2. Страница бренда<\/p><p>Для каждого нескрытого бренда создать отдельную страницу. Использовать закреплённый URL бренда вида \/brands\/{код_бренда}; уже существующие адреса, например \/brands\/ZIC, сохранить. Переименование отображаемого названия не меняет закреплённый URL.<\/p><p>На странице показать название бренда и ссылки на категории с его товарами. Ссылки ведут в соответствующую категорию с выбранным фильтром «Бренд». Не показывать ссылки на категории, где у бренда нет товаров; товары без остатка учитывать.<\/p><p>Добавить переход в общий список брендов. Все ссылки ведут на part-kom.ru и используют нормализованные адреса.<\/p><p>Предлагаемые шаблоны страницы бренда для согласования:<\/p><p>H1: {Бренд}<\/p><p>Title: {Бренд} — каталог товаров | Партком<\/p><p>Description: Товары {Бренд} в каталоге Партком. Выберите категорию и подберите товары бренда с помощью фильтров.<\/p><p>Пример Title: ZIC — каталог товаров | Партком<\/p><p>Пример Description: Товары ZIC в каталоге Партком. Выберите категорию и подберите товары бренда с помощью фильтров.<\/p><p>{Бренд} — актуальное отображаемое название, с сохранением его написания. Не подставлять технический код вместо названия. Шаблоны не обещают наличие, цену или возможность заказа.<\/p><p>Страница нескрытого бренда: HTTP 200, index, follow, один canonical на собственный абсолютный URL. H1, Title, Description, robots и canonical доступны при прямом открытии в исходном HTML. У ZIC, LADA и других брендов не должны оставаться тексты другого бренда.<\/p><p>3. Управление скрытием и схема интерфейса<\/p><p>В админке создать управление брендами: список → поиск по названию → карточка бренда.<\/p><p>В карточке: чекбокс «Скрыть бренд из списка и отключить страницу бренда» и кнопка «Сохранить». Под чекбоксом: «Товары и фильтр бренда останутся доступны». При повторном открытии показывать сохранённое значение.<\/p><p>Флаг включён: бренд отсутствует в общем списке и поиске; его отдельная страница возвращает HTTP 404. Текст ошибки при HTTP 200 не считается выполнением требования.<\/p><p>Удалить ссылки сайта на отключённую страницу и её URL из sitemap. В детальной карточке товара название скрытого бренда остаётся ссылкой: она ведёт в единственную непосредственную категорию этого товара с выбранным фильтром бренда.<\/p><p>Флаг не удаляет товары, не скрывает бренд в фильтрах и не запрещает допустимые подборки по этому бренду. Фильтр «Бренд» не имеет настроек скрытия или разрешения индексации.<\/p><p>Флаг выключен: бренд возвращается в список и поиск; отдельная страница снова доступна по прежнему URL; ссылка из товара снова ведёт на страницу бренда. Её индексируемый URL возвращается в sitemap после обновления.<\/p><p>Скрытие — настройка сайта. Переименование и удаление брендов в PIM в этот эпик не входят. Техническое применение настроек и обновление кешей определяет команда.<\/p><p>4. Связанные эпики<\/p><p>* Эпик 3 — переходы в категории с выбранным брендом.<\/p><p>* Эпик 4 — нормализованные URL и технические SEO-директивы.<\/p><p>* Эпик 7 — добавление и удаление страниц брендов из sitemap.<\/p><p>5. Порядок проверки<\/p><p>☐ Список. Открыть \/brands\/ и перейти через навигацию сайта → список доступен, бренды сгруппированы и отсортированы, скрытых нет.<\/p><p>☐ Поиск. Проверить видимые бренды с кириллицей и латиницей, часть названия, другой регистр, неизвестное имя и очистку → выдача соответствует запросу; при очистке возвращается список.<\/p><p>☐ Переход. Из списка открыть ZIC, затем «Моторные масла» → категория открыта с выбранным ZIC и товарами этого бренда.<\/p><p>☐ Метатеги. В исходном HTML \/brands\/ и двух разных брендов сравнить H1, Title и Description с шаблонами; проверить HTTP 200, index, follow и canonical на собственный URL.<\/p><p>☐ Скрытие. В админке включить флаг → бренд исчез из списка и поиска; прежний URL даёт HTTP 404 в Network → Document → Headers.<\/p><p>☐ Каталог. После скрытия бренд остаётся в фильтре, товары доступны. Нажать бренд в карточке товара → открывается непосредственная категория товара с выбранным брендом.<\/p><p>☐ Ссылки и карта. После скрытия нет ссылок на отдельную страницу и её URL во всех sitemap. Допустимые подборки с этим брендом остаются.<\/p><p>☐ Восстановление. Снять флаг → список, поиск, страница по прежнему URL и ссылка из товара восстановлены; URL страницы бренда вернулся в sitemap.<\/p><h2>Ранее сохранённое описание<\/h2><p>Пример эпика для обсуждения.\n\nСоздать брендовый раздел: список брендов, поиск и страницу бренда с товарами. Покупатель может найти нужный бренд и перейти к его ассортименту.<\/p><h2>Развитие страниц брендов<\/h2><p><\/p><h2>Партнёрские бренды<\/h2><p><\/p>",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit",
                "attachments": [
                    {
                        "id": "e4781de36b280f5fa4fc381fe99d3502",
                        "name": "9f404253-3bad-4bf2-84a6-5c392f651b66.png",
                        "size": 1415290
                    }
                ],
                "sourceSheetRows": [
                    58,
                    60,
                    61,
                    62,
                    63,
                    64,
                    65,
                    66,
                    67
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "epicSources": [
                    "https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit"
                ],
                "mergedProjectsV33": [
                    {
                        "id": "epic30-brands-next",
                        "name": "Развитие страниц брендов",
                        "code": "EPIC30-epic30-brands-next",
                        "owner": "",
                        "goal": "",
                        "status": "Запланирован",
                        "start": "2026-09-09",
                        "end": "2026-11-03",
                        "targetStart": "",
                        "targetEnd": "",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-catalog"
                            }
                        ],
                        "unscheduled": false
                    },
                    {
                        "id": "retail27-brand-partners",
                        "code": "SITE-20",
                        "owner": "",
                        "goal": "",
                        "start": "2026-09-23",
                        "end": "2026-11-17",
                        "name": "Партнёрские бренды",
                        "status": "Запланирован",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-catalog"
                            }
                        ],
                        "planOrder": 19,
                        "sourceSheetRows": [
                            69,
                            70,
                            71,
                            72,
                            73
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "2027-05-26",
                        "targetEnd": "2027-12-20",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-09-23",
                            "2026-11-17"
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
                    }
                ]
            },
            {
                "id": "roadmap-fitment-data",
                "code": "SITE-21",
                "owner": "",
                "goal": "",
                "start": "",
                "end": "",
                "name": "Данные применимости",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-fitment"
                    }
                ],
                "planOrder": 20,
                "sourceSheetRows": [
                    124,
                    126
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "",
                "targetEnd": ""
            },
            {
                "id": "roadmap-fitment-site",
                "code": "PRJ-FITMENT",
                "name": "Подбор по автомобилю",
                "goal": "Покупатель находит подходящие товары по автомобилю.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-25"
                ],
                "planOrder": 21,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-fitment"
                    }
                ],
                "targetStart": "2027-01-01",
                "targetEnd": "2027-03-31",
                "sourceSheetRows": [
                    165,
                    166,
                    167,
                    170,
                    172,
                    174,
                    176
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "sourcePlanRange": [
                    "2026-08-26",
                    "2026-10-06"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-stores",
                "code": "SITE-23",
                "owner": "",
                "goal": "",
                "start": "2026-07-29",
                "end": "2026-09-08",
                "name": "Страницы магазинов",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-information"
                    }
                ],
                "planOrder": 22,
                "sourceSheetRows": [
                    180,
                    181,
                    182,
                    183
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-29",
                "targetEnd": "2026-09-08",
                "unscheduled": false,
                "sourcePlanRange": [
                    "2026-07-29",
                    "2026-09-08"
                ],
                "previousTargetV29": [
                    "",
                    ""
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "retail27-payment",
                "code": "SITE-26",
                "owner": "",
                "goal": "",
                "start": "",
                "end": "",
                "name": "Авторизация",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "planOrder": 25,
                "sourceSheetRows": [
                    189,
                    190,
                    191,
                    192
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "",
                "targetEnd": "",
                "unscheduled": true,
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "mergedProjectsV39": [
                    {
                        "id": "retail27-auth",
                        "code": "SITE-24",
                        "owner": "",
                        "goal": "",
                        "start": "2026-07-01",
                        "end": "2026-07-28",
                        "name": "Авторизация в заказе",
                        "status": "Готово",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-purchase"
                            }
                        ],
                        "planOrder": 23,
                        "sourceSheetRows": [
                            186
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "2026-07-01",
                        "targetEnd": "2026-07-28",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-07-01",
                            "2026-07-28"
                        ],
                        "previousTargetV29": [
                            "",
                            ""
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
                    },
                    {
                        "id": "retail27-alpha",
                        "code": "SITE-25",
                        "owner": "",
                        "goal": "",
                        "start": "",
                        "end": "",
                        "name": "Оплата Альфа",
                        "status": "Запланирован",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-purchase"
                            }
                        ],
                        "planOrder": 24,
                        "sourceSheetRows": [
                            188
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "",
                        "targetEnd": "",
                        "unscheduled": true
                    }
                ],
                "previousScheduleV40": [
                    "2026-07-01",
                    "2026-10-06",
                    "2026-07-01",
                    "2026-07-28"
                ]
            },
            {
                "id": "retail27-reviews",
                "code": "SITE-28",
                "owner": "",
                "goal": "",
                "start": "2026-07-15",
                "end": "2026-11-17",
                "name": "Отзывы покупателей",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "planOrder": 27,
                "sourceSheetRows": [
                    198,
                    200,
                    201,
                    203
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-15",
                "targetEnd": "2026-08-25",
                "unscheduled": false,
                "sourcePlanRange": [
                    "2026-07-29",
                    "2026-11-17"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "integrationSources": [
                    "Оптовый сайт",
                    "Ozon"
                ],
                "mergedProjectsV39": [
                    {
                        "id": "retail27-reviews-base",
                        "code": "SITE-27",
                        "owner": "",
                        "goal": "",
                        "start": "2026-07-15",
                        "end": "2026-08-25",
                        "name": "Запуск отзывов",
                        "status": "Готово",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-selection"
                            }
                        ],
                        "planOrder": 26,
                        "sourceSheetRows": [
                            196,
                            197,
                            199
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "2026-07-15",
                        "targetEnd": "2026-08-25",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-07-15",
                            "2026-08-25"
                        ],
                        "previousTargetV29": [
                            "",
                            ""
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                        "integrationSources": [
                            "Оптовый сайт",
                            "Ozon"
                        ]
                    }
                ]
            },
            {
                "id": "retail27-certificates",
                "code": "SITE-30",
                "owner": "",
                "goal": "",
                "start": "2026-08-26",
                "end": "2026-09-22",
                "name": "Сертификаты товаров",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "planOrder": 29,
                "sourceSheetRows": [
                    207,
                    209
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-08-26",
                "targetEnd": "2026-09-08",
                "unscheduled": false,
                "sourcePlanRange": [
                    "2026-08-26",
                    "2026-09-22"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "mergedProjectsV39": [
                    {
                        "id": "retail27-certificate-base",
                        "code": "SITE-29",
                        "owner": "",
                        "goal": "",
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "name": "Сертификаты в PDP",
                        "status": "Готово",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-selection"
                            }
                        ],
                        "planOrder": 28,
                        "sourceSheetRows": [
                            208
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "2026-08-26",
                        "targetEnd": "2026-09-08",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-08-26",
                            "2026-09-08"
                        ],
                        "previousTargetV29": [
                            "",
                            ""
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
                    }
                ]
            },
            {
                "id": "retail27-trust",
                "code": "SITE-31",
                "owner": "",
                "goal": "",
                "start": "2026-07-29",
                "end": "2026-08-25",
                "name": "О компании",
                "status": "Готово",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-information"
                    }
                ],
                "planOrder": 30,
                "sourceSheetRows": [
                    212
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-07-29",
                "targetEnd": "2026-08-25",
                "unscheduled": false,
                "sourcePlanRange": [
                    "2026-07-29",
                    "2026-08-25"
                ],
                "previousTargetV29": [
                    "",
                    ""
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "site-delivery",
                "code": "PRJ-DELIVERY",
                "name": "Подключение служб доставки",
                "goal": "Покупатель выбирает доступный способ доставки или получения.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "2026-07-29",
                "end": "2026-10-06",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5"
                ],
                "planOrder": 32,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "targetStart": "",
                "targetEnd": "",
                "sourceSheetRows": [
                    216,
                    217,
                    220
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "mergedProjectsV39": [
                    {
                        "id": "retail27-express",
                        "code": "SITE-34",
                        "owner": "",
                        "goal": "",
                        "start": "2026-07-29",
                        "end": "2026-08-25",
                        "name": "Яндекс Экспресс",
                        "status": "Запланирован",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-purchase"
                            }
                        ],
                        "planOrder": 33,
                        "sourceSheetRows": [
                            222
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "",
                        "targetEnd": "",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-07-29",
                            "2026-08-25"
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
                    }
                ],
                "previousScheduleV40": [
                    "2026-07-29",
                    "2026-09-22",
                    "2026-10-01",
                    "2026-12-31"
                ]
            },
            {
                "id": "retail27-chat",
                "code": "SITE-35",
                "owner": "",
                "goal": "",
                "start": "",
                "end": "",
                "name": "Онлайн-чат",
                "status": "Запланирован",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-information"
                    }
                ],
                "planOrder": 34,
                "sourceSheetRows": [
                    223
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "",
                "targetEnd": "",
                "unscheduled": true
            },
            {
                "id": "site-analytics",
                "code": "PRJ-ANALYTICS",
                "name": "Аналитика продаж",
                "goal": "Воронка покупки измеряется; команда может проверять улучшения экспериментами.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "2026-08-26",
                "end": "2026-09-22",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-42"
                ],
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-analytics"
                    }
                ],
                "targetStart": "2026-10-01",
                "targetEnd": "2027-12-31",
                "planOrder": 35,
                "sourceSheetRows": [
                    130,
                    131,
                    133,
                    134,
                    135,
                    137,
                    138,
                    139,
                    141,
                    142,
                    143,
                    144,
                    145,
                    147,
                    148,
                    149,
                    150,
                    152,
                    153,
                    154,
                    155,
                    157,
                    158,
                    159,
                    160,
                    162,
                    163
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "sourcePlanRange": [
                    "2026-08-26",
                    "2026-09-22"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "site-pricing",
                "code": "PRJ-PRICING",
                "name": "Ценообразование",
                "goal": "Цены на сайте рассчитываются и показываются по согласованным правилам.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "2026-06-03",
                "end": "2026-06-30",
                "unscheduled": false,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5"
                ],
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "targetStart": "2026-07-01",
                "targetEnd": "2026-12-31",
                "planOrder": 36,
                "sourceSheetRows": [
                    17
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "sourcePlanRange": [
                    "2026-06-03",
                    "2026-06-30"
                ],
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
            },
            {
                "id": "roadmap-delivery",
                "code": "SITE-38",
                "owner": "",
                "goal": "",
                "start": "",
                "end": "",
                "name": "Расчёт стоимости доставки",
                "status": "В работе",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "planOrder": 37,
                "sourceSheetRows": [],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "targetStart": "2026-08-31",
                "targetEnd": "2026-12-03"
            },
            {
                "id": "release-42",
                "code": "PRJ-03",
                "name": "Рекомендации и комплекты",
                "goal": "В выборе товара и корзине доступны аналоги, рекомендации и комплекты; предусмотрены измерение конверсии и эксперименты.",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "sourceGrouping": true,
                "goalProposed": true,
                "unscheduled": true,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-growth"
                    }
                ],
                "targetStart": "2027-04-01",
                "targetEnd": "2027-09-30",
                "planOrder": 43
            },
            {
                "id": "release-61",
                "code": "PRJ-04",
                "name": "Персонализация сайта",
                "goal": "Каталог, поиск, рекомендации и коммуникации учитывают автомобиль и историю покупателя.",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "sourceGrouping": true,
                "goalProposed": true,
                "unscheduled": true,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-growth"
                    }
                ],
                "targetStart": "2028-01-01",
                "targetEnd": "2028-06-30",
                "planOrder": 44
            },
            {
                "id": "site-search",
                "code": "PRJ-SEARCH",
                "name": "Поиск товаров",
                "goal": "Покупатель находит нужный товар через поиск.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5"
                ],
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "targetStart": "2027-01-01",
                "targetEnd": "2027-03-31",
                "planOrder": 50
            },
            {
                "id": "epic30-pim-tree",
                "name": "Новая структура каталога",
                "code": "EPIC30-epic30-pim-tree",
                "owner": "",
                "goal": "",
                "status": "Готово",
                "start": "2026-06-17",
                "end": "2026-06-30",
                "targetStart": "",
                "targetEnd": "",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-structure"
                    }
                ],
                "unscheduled": false
            },
            {
                "id": "epic30-pim-attributes",
                "name": "Характеристики товаров",
                "code": "EPIC30-epic30-pim-attributes",
                "owner": "",
                "goal": "",
                "status": "Запланирован",
                "start": "2026-08-26",
                "end": "2026-10-20",
                "targetStart": "",
                "targetEnd": "",
                "placements": [
                    {
                        "product": "sheet-p2",
                        "version": "pim-quality"
                    }
                ],
                "unscheduled": false
            },
            {
                "id": "release-exchange",
                "code": "PRJ-27",
                "name": "Обмен категориями с ПИМ",
                "goal": "Структура и параметры категорий передаются из ПИМ на сайт; адреса категорий сохраняются.",
                "owner": "",
                "status": "Запланирован",
                "start": "2026-08-26",
                "end": "2026-09-22",
                "sourceGrouping": true,
                "goalProposed": true,
                "unscheduled": false,
                "planOrder": 0,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    },
                    {
                        "product": "sheet-p2",
                        "version": "pim-integration"
                    }
                ],
                "targetStart": "2026-07-30",
                "targetEnd": "2026-11-09",
                "sourceSheetRows": [
                    121
                ],
                "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки.",
                "attachments": [],
                "descriptionHtml": "<p>Структура и параметры категорий передаются из ПИМ на сайт; адреса категорий сохраняются.<\/p><p>Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.<\/p><h2>Сохранённый общий эпик интеграции<\/h2><p>Требования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.<\/p><h2>Эпик 1. Интеграция каталога сайта с PIM<\/h2><p><a href=\"https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit\">Открыть оригинал эпика<\/a><\/p><p>﻿Эпик 1. Интеграция каталога сайта с PIM<\/p><p>Цель и результат<\/p><p>Настроить ежедневную передачу из PIM на сайт структуры категорий, их параметров, данных товаров и характеристик. После применения изменений сайт отображает актуальные данные PIM по правилам ниже.<\/p><p>1. Когда и куда передаются данные<\/p><p>* Направление обмена: PIM → сайт.<\/p><p>* Автоматический запуск — ежедневно в 03:00 по московскому времени.<\/p><p>* После успешного применения данных изменения появляются на сайте сразу, по текущим правилам публикации, без отдельного ручного подтверждения.<\/p><p>2. Состав передаваемых данных<\/p><p>Передаются заполненные значения следующих полей:<\/p><p>Объект<\/p><p>\tДанные из PIM → применение на сайте<\/p><p>\tКатегория<\/p><p>\tНазвание → название категории.<\/p><p>Название для меню → пункт меню.<\/p><p>H1 → заголовок страницы категории.<\/p><p>Title → метатег title страницы категории.<\/p><p>Description → метатег description страницы категории.<\/p><p>Родитель → положение категории в структуре каталога.<\/p><p>SEO текст → SEO текст на странице PLP.<\/p><p>\tТовар<\/p><p>\tНазвание → название товара.<\/p><p>Описание → описание товара.<\/p><p>Привязка к разделу → категория товара.<\/p><p>Список характеристик в составе выгрузки товаров → характеристики и значения для фильтрации, связанные с товаром.<\/p><p>3. Правила обновления категорий<\/p><p>* Новая категория из PIM передаётся на сайт с указанным родителем. Категория без товаров остаётся активной, не закрывается, не деактивируется и участвует в обмене. Её отображение определяется текущими правилами сайта: как только появляются товары, категория появляется на сайте.<\/p><p>* Изменения названия, названия для меню, H1, Title и Description обновляют соответствующие значения на сайте.<\/p><p>* Изменение родителя переносит категорию в структуре сайта. Отображение структуры и родительских подборок товаров должно соответствовать новому положению категории.<\/p><p>* URL новой категории формирует сайт. У каждой категории свой уникальный URL. Уже существующий URL сохраняется при последующих обменах, переименовании и смене родителя.<\/p><p>* Удаление категорий из PIM и обработка такого удаления на сайте в этот эпик не входят: в текущем процессе категории из PIM не удаляются.<\/p><p>4. Правила обновления товаров и характеристик<\/p><p>* Для товара обновляются название, описание, привязка к категории и заполненные значения характеристик, переданные из PIM.<\/p><p>* Товар непосредственно привязан только к одной категории. Он отображается в этой категории и во всех её родительских категориях.<\/p><p>* При смене категории новая привязка заменяет прежнюю. Товар исчезает из прежней категории и её родителей, если они не являются также родителями новой категории.<\/p><p>* Характеристики и их значения передаются из PIM вместе со списком товаров, в данных каждого товара. На сайте они используются только для фильтрации и не выводятся на детальной странице товара. При каждой выгрузке сайт сопоставляет переданные характеристики и значения со своей структурой: новую характеристику или новое значение создаёт, затем связывает их с соответствующим товаром. Уже существующие характеристики и значения повторно не создаются. Созданная характеристика и её значения становятся доступны в админке сайта; показ и разрешение индексации управляются на уровне фильтра, без отдельных флагов у значений. Управление показом и индексацией фильтров реализуется отдельным эпиком.<\/p><p>5. Пустые значения<\/p><p>Записываются только заполненные значения. Пустое или отсутствующее поле в переданных данных не очищает ранее сохранённое значение на сайте. Это правило применяется к параметрам категорий, данным товаров, привязке к категории и характеристикам. Очистка значения в PIM сама по себе не удаляет его с сайта.<\/p><p>6. Технические решения<\/p><p>Команда определяет способ обмена, полный или частичный состав выгрузки, сопоставление записей PIM и сайта, формат характеристик и их значений, а также длительность обработки. Требования и решения по защите от потери данных, обработке ошибок и восстановлению обмена — на усмотрение команды.<\/p><p>Связанные эпики<\/p><p>* Эпик 2 — управление показом и индексацией фильтров.<\/p><p>* Эпик 3 — использование характеристик и товаров на PLP.<\/p><p>* Эпик 7 — обновление sitemap после обмена.<\/p><p>7. Порядок проверки<\/p><p>Каждый сценарий проверяется после завершения обмена, в который вошло изменение. Галочку ставить после подтверждения ожидаемого результата.<\/p><p>* Плановый обмен. Внести изменение в PIM до 03:00 МСК → обмен запускается автоматически в 03:00; после обработки изменение доступно на сайте.<\/p><p>* Создание пустой категории. Создать раздел в PIM с заполненными параметрами и родителем, без товаров → раздел передан на сайт, активен и участвует в дальнейших обменах; без товаров не отображается по правилам сайта.<\/p><p>* Появление товаров. Привязать товар к созданному разделу → после обмена раздел появляется на сайте; товар отображается в нём и во всех родительских категориях.<\/p><p>* Название категории. Изменить название в PIM → название на сайте обновлено, URL категории сохранён.<\/p><p>* Название для меню. Изменить только название для меню → соответствующий пункт меню обновлён; название категории, H1 и URL не изменились.<\/p><p>* H1. Изменить H1 категории в PIM → заголовок страницы категории обновлён, URL сохранён.<\/p><p>* Title. Изменить Title категории в PIM → title страницы содержит переданное значение.<\/p><p>* Description. Изменить Description категории в PIM → метатег description страницы содержит переданное значение.<\/p><p>* Родитель категории. Перенести категорию к другому родителю в PIM → структура сайта и родительские подборки обновлены, URL перенесённой категории сохранён.<\/p><p>* Название товара. Изменить название товара в PIM → на сайте отображается новое название.<\/p><p>* Описание товара. Изменить описание товара в PIM → на сайте отображается новое описание.<\/p><p>* Характеристики. В PIM передать с товарами новую характеристику, новое значение существующей характеристики и изменённое значение товара → сайт создаёт недостающие элементы структуры без дублей и связывает значения с товарами. В админке доступны характеристика, её значения и управление показом\/индексацией фильтра; после включения фильтра отбор на PLP использует новые данные. На детальной странице товара эти характеристики не отображаются.<\/p><p>* Категория товара. Перенести товар в другой раздел в PIM → одна непосредственная привязка; товар виден в новом разделе и его родителях, прежние связи удалены, кроме общих родителей.<\/p><p>* Пустые значения. Передать пустые и отсутствующие поля категории, товара, привязки и характеристик → прежние заполненные значения на сайте сохранены.<\/p><p>* Повторный обмен. Повторно передать те же данные → категории, товары, характеристики и их значения не дублируются, связи с товарами сохраняются, URL категорий не меняются.<\/p>",
                "description": "Структура и параметры категорий передаются из ПИМ на сайт; адреса категорий сохраняются.Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.Сохранённый общий эпик интеграцииТребования из эпиков второго этапа. Приёмка новых требований пока не подтверждена; выполненные ранее работы сохранены отдельно.Эпик 1. Интеграция каталога сайта с PIMОткрыть оригинал эпика﻿Эпик 1. Интеграция каталога сайта с PIMЦель и результатНастроить ежедневную передачу из PIM на сайт структуры категорий, их параметров, данных товаров и характеристик. После применения изменений сайт отображает актуальные данные PIM по правилам ниже.1. Когда и куда передаются данные* Направление обмена: PIM → сайт.* Автоматический запуск — ежедневно в 03:00 по московскому времени.* После успешного применения данных изменения появляются на сайте сразу, по текущим правилам публикации, без отдельного ручного подтверждения.2. Состав передаваемых данныхПередаются заполненные значения следующих полей:Объект\tДанные из PIM → применение на сайте\tКатегория\tНазвание → название категории.Название для меню → пункт меню.H1 → заголовок страницы категории.Title → метатег title страницы категории.Description → метатег description страницы категории.Родитель → положение категории в структуре каталога.SEO текст → SEO текст на странице PLP.\tТовар\tНазвание → название товара.Описание → описание товара.Привязка к разделу → категория товара.Список характеристик в составе выгрузки товаров → характеристики и значения для фильтрации, связанные с товаром.3. Правила обновления категорий* Новая категория из PIM передаётся на сайт с указанным родителем. Категория без товаров остаётся активной, не закрывается, не деактивируется и участвует в обмене. Её отображение определяется текущими правилами сайта: как только появляются товары, категория появляется на сайте.* Изменения названия, названия для меню, H1, Title и Description обновляют соответствующие значения на сайте.* Изменение родителя переносит категорию в структуре сайта. Отображение структуры и родительских подборок товаров должно соответствовать новому положению категории.* URL новой категории формирует сайт. У каждой категории свой уникальный URL. Уже существующий URL сохраняется при последующих обменах, переименовании и смене родителя.* Удаление категорий из PIM и обработка такого удаления на сайте в этот эпик не входят: в текущем процессе категории из PIM не удаляются.4. Правила обновления товаров и характеристик* Для товара обновляются название, описание, привязка к категории и заполненные значения характеристик, переданные из PIM.* Товар непосредственно привязан только к одной категории. Он отображается в этой категории и во всех её родительских категориях.* При смене категории новая привязка заменяет прежнюю. Товар исчезает из прежней категории и её родителей, если они не являются также родителями новой категории.* Характеристики и их значения передаются из PIM вместе со списком товаров, в данных каждого товара. На сайте они используются только для фильтрации и не выводятся на детальной странице товара. При каждой выгрузке сайт сопоставляет переданные характеристики и значения со своей структурой: новую характеристику или новое значение создаёт, затем связывает их с соответствующим товаром. Уже существующие характеристики и значения повторно не создаются. Созданная характеристика и её значения становятся доступны в админке сайта; показ и разрешение индексации управляются на уровне фильтра, без отдельных флагов у значений. Управление показом и индексацией фильтров реализуется отдельным эпиком.5. Пустые значенияЗаписываются только заполненные значения. Пустое или отсутствующее поле в переданных данных не очищает ранее сохранённое значение на сайте. Это правило применяется к параметрам категорий, данным товаров, привязке к категории и характеристикам. Очистка значения в PIM сама по себе не удаляет его с сайта.6. Технические решенияКоманда определяет способ обмена, полный или частичный состав выгрузки, сопоставление записей PIM и сайта, формат характеристик и их значений, а также длительность обработки. Требования и решения по защите от потери данных, обработке ошибок и восстановлению обмена — на усмотрение команды.Связанные эпики* Эпик 2 — управление показом и индексацией фильтров.* Эпик 3 — использование характеристик и товаров на PLP.* Эпик 7 — обновление sitemap после обмена.7. Порядок проверкиКаждый сценарий проверяется после завершения обмена, в который вошло изменение. Галочку ставить после подтверждения ожидаемого результата.* Плановый обмен. Внести изменение в PIM до 03:00 МСК → обмен запускается автоматически в 03:00; после обработки изменение доступно на сайте.* Создание пустой категории. Создать раздел в PIM с заполненными параметрами и родителем, без товаров → раздел передан на сайт, активен и участвует в дальнейших обменах; без товаров не отображается по правилам сайта.* Появление товаров. Привязать товар к созданному разделу → после обмена раздел появляется на сайте; товар отображается в нём и во всех родительских категориях.* Название категории. Изменить название в PIM → название на сайте обновлено, URL категории сохранён.* Название для меню. Изменить только название для меню → соответствующий пункт меню обновлён; название категории, H1 и URL не изменились.* H1. Изменить H1 категории в PIM → заголовок страницы категории обновлён, URL сохранён.* Title. Изменить Title категории в PIM → title страницы содержит переданное значение.* Description. Изменить Description категории в PIM → метатег description страницы содержит переданное значение.* Родитель категории. Перенести категорию к другому родителю в PIM → структура сайта и родительские подборки обновлены, URL перенесённой категории сохранён.* Название товара. Изменить название товара в PIM → на сайте отображается новое название.* Описание товара. Изменить описание товара в PIM → на сайте отображается новое описание.* Характеристики. В PIM передать с товарами новую характеристику, новое значение существующей характеристики и изменённое значение товара → сайт создаёт недостающие элементы структуры без дублей и связывает значения с товарами. В админке доступны характеристика, её значения и управление показом\/индексацией фильтра; после включения фильтра отбор на PLP использует новые данные. На детальной странице товара эти характеристики не отображаются.* Категория товара. Перенести товар в другой раздел в PIM → одна непосредственная привязка; товар виден в новом разделе и его родителях, прежние связи удалены, кроме общих родителей.* Пустые значения. Передать пустые и отсутствующие поля категории, товара, привязки и характеристик → прежние заполненные значения на сайте сохранены.* Повторный обмен. Повторно передать те же данные → категории, товары, характеристики и их значения не дублируются, связи с товарами сохраняются, URL категорий не меняются.",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit",
                "epicSources": [
                    "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
                ],
                "previousIntegrationTargetV32": [
                    "2026-07-01",
                    "2026-09-29"
                ]
            },
            {
                "id": "integration32-import",
                "code": "INT-2",
                "owner": "",
                "status": "Готово",
                "start": "2026-07-01",
                "end": "2026-07-14",
                "name": "Загрузка товаров в ПИМ",
                "goal": "Товары сайта загружены в ПИМ для обработки и распределения.",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    },
                    {
                        "product": "sheet-p2",
                        "version": "pim-integration"
                    }
                ],
                "previousIntegrationTargetV32": [
                    "2026-07-01",
                    "2026-09-29"
                ],
                "targetStart": "",
                "targetEnd": "",
                "descriptionHtml": "<p>Товары сайта загружены в ПИМ для обработки и распределения.<\/p><p>Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.<\/p>",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit",
                "requirements": "Применить относящиеся к этому результату требования общего эпика: расписание, сохранение заполненных полей, отсутствие дублей и проверка после обмена.",
                "description": "Товары сайта загружены в ПИМ для обработки и распределения.Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.",
                "unscheduled": false,
                "planOrder": 1,
                "sourceGrouping": true
            },
            {
                "id": "integration32-products",
                "code": "INT-3",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "name": "Обновление товаров из ПИМ",
                "goal": "Из ПИМ обновляются товары, привязки к категориям, названия и описания.",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    },
                    {
                        "product": "sheet-p2",
                        "version": "pim-integration"
                    }
                ],
                "previousIntegrationTargetV32": [
                    "2026-07-01",
                    "2026-09-29"
                ],
                "targetStart": "2026-07-21",
                "targetEnd": "2026-10-22",
                "descriptionHtml": "<p>Из ПИМ обновляются товары, привязки к категориям, названия и описания.<\/p><p>Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.<\/p>",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit",
                "requirements": "Применить относящиеся к этому результату требования общего эпика: расписание, сохранение заполненных полей, отсутствие дублей и проверка после обмена.",
                "description": "Из ПИМ обновляются товары, привязки к категориям, названия и описания.Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.",
                "unscheduled": true,
                "planOrder": 2,
                "sourceGrouping": true
            },
            {
                "id": "integration32-attributes",
                "code": "INT-4",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "name": "Обмен характеристиками с ПИМ",
                "goal": "Характеристики и значения передаются с товарами на сайт без дублей и доступны для фильтрации.",
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-catalog"
                    },
                    {
                        "product": "sheet-p2",
                        "version": "pim-integration"
                    }
                ],
                "previousIntegrationTargetV32": [
                    "2026-07-01",
                    "2026-09-29"
                ],
                "targetStart": "2026-08-25",
                "targetEnd": "2026-11-14",
                "descriptionHtml": "<p>Характеристики и значения передаются с товарами на сайт без дублей и доступны для фильтрации.<\/p><p>Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.<\/p>",
                "epicUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit",
                "requirements": "Применить относящиеся к этому результату требования общего эпика: расписание, сохранение заполненных полей, отсутствие дублей и проверка после обмена.",
                "description": "Характеристики и значения передаются с товарами на сайт без дублей и доступны для фильтрации.Регулярное выполнение и проверки обмена входят в этот результат. Срок и приёмка определяются отдельно от остальных проектов интеграции.",
                "unscheduled": true,
                "planOrder": 3,
                "sourceGrouping": true
            },
            {
                "id": "payment40-digital",
                "name": "Цифровой рубль",
                "code": "",
                "goal": "",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "previousScheduleV40": [
                    "",
                    "",
                    "",
                    ""
                ],
                "targetStart": "",
                "targetEnd": ""
            },
            {
                "id": "payment40-widget",
                "name": "Виджет оплаты",
                "code": "",
                "goal": "",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "previousScheduleV40": [
                    "",
                    "",
                    "",
                    ""
                ],
                "targetStart": "",
                "targetEnd": ""
            },
            {
                "id": "garage40-orders",
                "name": "История заказов",
                "code": "",
                "goal": "",
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "placements": [
                    {
                        "product": "sheet-p3",
                        "version": "garage-account"
                    }
                ],
                "targetStart": "",
                "targetEnd": ""
            }
        ],
        "stages": [
            {
                "id": "i31-step-1",
                "name": "Структура категорий",
                "project": "release-exchange",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": false,
                "sequenceOrder": 1,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22"
            },
            {
                "id": "i31-step-2",
                "name": "Товары: сайт → ПИМ",
                "project": "integration32-import",
                "product": "sheet-p2",
                "version": "pim-integration",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "sequenceOrder": 2,
                "startDate": "2026-06-15",
                "endDate": "2026-07-26",
                "sprintPlan": [
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "roles": [],
                        "completed": true
                    }
                ],
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-06-15",
                        "end": "2026-06-28",
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "end": "2026-07-12",
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "end": "2026-07-26",
                        "completed": true
                    }
                ]
            },
            {
                "id": "i31-step-3",
                "name": "Товары: ПИМ → сайт",
                "project": "integration32-products",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "sequenceOrder": 3
            },
            {
                "id": "i31-step-4",
                "name": "Привязки к категориям",
                "project": "integration32-products",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "sequenceOrder": 4
            },
            {
                "id": "i31-step-5",
                "name": "Названия и описания",
                "project": "integration32-products",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "sequenceOrder": 5
            },
            {
                "id": "i31-step-6",
                "name": "Характеристики товаров",
                "project": "integration32-attributes",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "sequenceOrder": 6
            },
            {
                "id": "i31-step-7",
                "name": "Регулярный обмен",
                "project": "integration32-products",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "sequenceOrder": 7
            },
            {
                "id": "offer28-pdp-1",
                "name": "Лучшие предложения и сортировка",
                "project": "site-pdp",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-pdp-2",
                "name": "Все предложения и аналоги",
                "project": "site-pdp",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-visibility-1",
                "name": "Индекс предложений и обновление остатков",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-20",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-visibility-2",
                "name": "Доступность независимо от региона",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-06-03",
                "endDate": "2026-07-28",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-visibility-3",
                "name": "Сортировка и фильтрация предложений",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-06-17",
                "endDate": "2026-09-08",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-cross-1",
                "name": "Правила индексации и поисковые выгрузки",
                "project": "offer28-cross",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-12",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-suppliers-1",
                "name": "Масштабирование загрузки предложений",
                "project": "retail27-suppliers",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-suppliers-2",
                "name": "Процесс подключения поставщиков",
                "project": "retail27-suppliers",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-07-15",
                "endDate": "2026-11-03",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-cart-1",
                "name": "Работа корзины с предложениями",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-20",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-checkout-1",
                "name": "Доставка и единая оплата",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-05-20",
                "endDate": "2026-07-14",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-checkout-2",
                "name": "История заказов",
                "project": "roadmap-offer",
                "product": "sheet-p1",
                "version": "retail-offer",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-06-03",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-analytics-1",
                "name": "Ключевые показатели каталога",
                "project": "retail27-dashboard",
                "product": "sheet-p2",
                "version": "pim-base",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-06-03",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "offer28-analytics-2",
                "name": "Категории и фотографии в дашборде",
                "project": "retail27-dashboard",
                "product": "sheet-p2",
                "version": "pim-base",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "unscheduled": false,
                "datePrecision": "source-plan"
            },
            {
                "id": "e30-filter-admin",
                "name": "Управление фильтрами",
                "project": "roadmap-attributes",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "e30-filter-plp",
                "name": "Подбор товаров на PLP",
                "project": "roadmap-attributes",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "e30-filter-next",
                "name": "Дополнительные элементы фильтров",
                "project": "roadmap-attributes",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": false,
                "startDate": "2026-08-24",
                "endDate": "2026-10-04",
                "sprintPlan": [
                    {
                        "start": "2026-08-24",
                        "roles": [
                            "pm"
                        ],
                        "completed": false
                    },
                    {
                        "start": "2026-09-07",
                        "roles": [],
                        "completed": false
                    },
                    {
                        "start": "2026-09-21",
                        "roles": [],
                        "completed": false
                    }
                ],
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-08-24",
                        "end": "2026-09-06",
                        "completed": false
                    },
                    {
                        "start": "2026-09-07",
                        "end": "2026-09-20",
                        "completed": false
                    },
                    {
                        "start": "2026-09-21",
                        "end": "2026-10-04",
                        "completed": false
                    }
                ]
            },
            {
                "id": "e30-brands",
                "name": "Список и страницы брендов",
                "project": "roadmap-brands",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "e30-sitemap",
                "name": "Карта страниц каталога",
                "project": "roadmap-catalog",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "e30-catalog-base",
                "name": "Страницы и навигация каталога",
                "project": "roadmap-catalog",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-06-17",
                "endDate": "2026-08-25"
            },
            {
                "id": "e30-catalog-seo",
                "name": "Первый запуск SEO каталога",
                "project": "roadmap-catalog",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-07-01",
                "endDate": "2026-08-25"
            },
            {
                "id": "e30-pim-tree",
                "name": "Проектирование структуры",
                "project": "epic30-pim-tree",
                "product": "sheet-p2",
                "version": "pim-structure",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-06-17",
                "endDate": "2026-06-30"
            },
            {
                "id": "e30-pim-base",
                "name": "Модель каталога",
                "project": "retail27-pim",
                "product": "sheet-p2",
                "version": "pim-base",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-06-17",
                "endDate": "2026-07-14"
            },
            {
                "id": "e30-pim-load",
                "name": "Загрузка товаров",
                "project": "retail27-classification",
                "product": "sheet-p2",
                "version": "pim-distribution",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14"
            },
            {
                "id": "e30-pim-distribute",
                "name": "Распределение товаров",
                "project": "retail27-classification",
                "product": "sheet-p2",
                "version": "pim-distribution",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-07-01",
                "endDate": "2026-08-11"
            },
            {
                "id": "e30-pim-categories-next",
                "name": "Уточнение структуры",
                "project": "retail27-classification-v2",
                "product": "sheet-p2",
                "version": "pim-structure",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": false,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22"
            },
            {
                "id": "e30-pim-names",
                "name": "Обогащение названий",
                "project": "retail27-names",
                "product": "sheet-p2",
                "version": "pim-quality",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-07-29",
                "endDate": "2026-09-08"
            },
            {
                "id": "e30-pim-photos",
                "name": "Загрузка фотографий",
                "project": "retail27-photos",
                "product": "sheet-p2",
                "version": "pim-quality",
                "start": 0,
                "span": 1,
                "status": "Готово",
                "unscheduled": false,
                "startDate": "2026-07-15",
                "endDate": "2026-09-08"
            },
            {
                "id": "e30-pim-attributes",
                "name": "Подготовка характеристик",
                "project": "epic30-pim-attributes",
                "product": "sheet-p2",
                "version": "pim-quality",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": false,
                "startDate": "2026-08-26",
                "endDate": "2026-10-20"
            },
            {
                "id": "e30-brands-next",
                "name": "Дальнейшее наполнение брендов",
                "project": "roadmap-brands",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "startDate": "",
                "endDate": "",
                "sprintPlan": [],
                "datePrecision": "sprint",
                "sourcePeriods": []
            },
            {
                "id": "catalog33-retail27-brand-partners",
                "name": "Партнёрские бренды",
                "project": "roadmap-brands",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true,
                "startDate": "",
                "endDate": "",
                "sprintPlan": [],
                "datePrecision": "sprint",
                "sourcePeriods": []
            },
            {
                "id": "catalog33-filter-map",
                "name": "Карта фильтрованных страниц",
                "project": "roadmap-attributes",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "catalog33-brand-map",
                "name": "Карта страниц брендов",
                "project": "roadmap-brands",
                "product": "sheet-p1",
                "version": "retail-catalog",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "catalog33-fitment-map",
                "name": "Карта страниц подбора",
                "project": "roadmap-fitment-site",
                "product": "sheet-p1",
                "version": "retail-fitment",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "journey39-retail27-reviews-base",
                "name": "Запуск отзывов",
                "project": "retail27-reviews",
                "product": "sheet-p1",
                "version": "retail-selection",
                "status": "Готово",
                "start": 0,
                "span": 1,
                "unscheduled": true
            },
            {
                "id": "journey39-retail27-certificate-base",
                "name": "Сертификаты в PDP",
                "project": "retail27-certificates",
                "product": "sheet-p1",
                "version": "retail-selection",
                "status": "Готово",
                "start": 0,
                "span": 1,
                "unscheduled": true
            },
            {
                "id": "source40-auth",
                "name": "Авторизация покупателя",
                "project": "retail27-payment",
                "product": "sheet-p1",
                "version": "retail-purchase",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "source40-widget",
                "name": "Форма оплаты Альфа",
                "project": "payment40-widget",
                "product": "sheet-p1",
                "version": "retail-purchase",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "source40-digital",
                "name": "Оплата цифровым рублём",
                "project": "payment40-digital",
                "product": "sheet-p1",
                "version": "retail-purchase",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            },
            {
                "id": "source40-delivery",
                "name": "Работы со службами доставки",
                "project": "site-delivery",
                "product": "sheet-p1",
                "version": "retail-purchase",
                "start": 0,
                "span": 1,
                "status": "Запланирован",
                "unscheduled": true
            }
        ],
        "tasks": [
            {
                "id": "offer28-row-7",
                "name": "Блок \"Лучшие предложения\"",
                "stage": "offer28-pdp-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "sourceGanttRow": 7,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-10",
                "name": "Сортировка предложений",
                "stage": "offer28-pdp-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "sourceGanttRow": 10,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-8",
                "name": "Блок \"Все предложения\"",
                "stage": "offer28-pdp-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "sourceGanttRow": 8,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-9",
                "name": "Блок \"Аналоги\"",
                "stage": "offer28-pdp-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-02",
                "unscheduled": false,
                "sourceGanttRow": 9,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-18",
                "name": "Хранение предложений в индексе",
                "stage": "offer28-visibility-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-20",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "sourceGanttRow": 18,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-19",
                "name": "Обновление индекса (цены и остатки)",
                "stage": "offer28-visibility-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-20",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "sourceGanttRow": 19,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-26",
                "name": "Доступность всех предложений на PDP без учета региона",
                "stage": "offer28-visibility-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-03",
                "endDate": "2026-07-28",
                "unscheduled": false,
                "sourceGanttRow": 26,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    },
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    },
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "backend",
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-27",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-27",
                "name": "Сортировка товаров по цене",
                "stage": "offer28-visibility-3",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-17",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "sourceGanttRow": 27,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-28",
                "name": "Фильтрация товаров по цене, сроку и бренду",
                "stage": "offer28-visibility-3",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "unscheduled": false,
                "sourceGanttRow": 28,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "frontend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-27",
                        "roles": [
                            "frontend"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-29",
                "name": "Фильтрация товаров сроку и фильтрация предложений",
                "stage": "offer28-visibility-3",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-07-29",
                "endDate": "2026-09-08",
                "unscheduled": false,
                "sourceGanttRow": 29,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🛠️ BK"
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "roleText": "🛠️ FR"
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "completed": true
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-07-27",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-08-10",
                        "roles": [
                            "backend",
                            "frontend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-08-24",
                        "roles": [
                            "frontend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-09-07",
                        "roles": [
                            "frontend"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-12",
                "name": "Товары с любым остатком открыты для индексации",
                "stage": "offer28-cross-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "sourceGanttRow": 12,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-13",
                "name": "Актуализация карты сайта",
                "stage": "offer28-cross-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "sourceGanttRow": 13,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-14",
                "name": "Актуализация фида Яндекс",
                "stage": "offer28-cross-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-12",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "sourceGanttRow": 14,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-12",
                        "end": "2026-05-19",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-04",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-31",
                "name": "Оптимизация архитектуры",
                "stage": "offer28-suppliers-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "unscheduled": false,
                "sourceGanttRow": 31,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ BK"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-32",
                "name": "Загрузка прайсов поставщиков",
                "stage": "offer28-suppliers-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "unscheduled": false,
                "sourceGanttRow": 32,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [
                            "pm",
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-33",
                "name": "Настроить процесс по добавлению на сайт новых поставщиков (в рамках общего чата)",
                "stage": "offer28-suppliers-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-07-15",
                "endDate": "2026-11-03",
                "unscheduled": false,
                "sourceGanttRow": 33,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-10-21",
                        "end": "2026-11-03",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": true
                    },
                    {
                        "start": "2026-10-21",
                        "end": "2026-11-03",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-27",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-08-24",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-09-07",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-10-19",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-11-02",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-21",
                "name": "Оптимизация корзины (продаем предложения, а не товары)",
                "stage": "offer28-cart-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-20",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "sourceGanttRow": 21,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "PM, DZN"
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm",
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm",
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-22",
                "name": "Комбинированный чекаут (способы доставки)",
                "stage": "offer28-checkout-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-05-20",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "sourceGanttRow": 22,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "roleText": "PM, DZN"
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-05-20",
                        "end": "2026-06-02",
                        "completed": true
                    },
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-05-18",
                        "roles": [
                            "pm",
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm",
                            "design"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-23",
                "name": "Чекаут. Единая оплата для комбинированного заказа",
                "stage": "offer28-checkout-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-03",
                "endDate": "2026-07-14",
                "unscheduled": false,
                "sourceGanttRow": 23,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-07-13",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-24",
                "name": "Страница История заказов",
                "stage": "offer28-checkout-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-03",
                "endDate": "2026-06-16",
                "unscheduled": false,
                "sourceGanttRow": 24,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-01",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-35",
                "name": "Разработка дашборда по ключевым метрикам",
                "stage": "offer28-analytics-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-06-03",
                "endDate": "2026-06-30",
                "unscheduled": false,
                "sourceGanttRow": 35,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-03",
                        "end": "2026-06-16",
                        "completed": true
                    },
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-06-01",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-15",
                        "roles": [
                            "pm"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-06-29",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "offer28-row-36",
                "name": "Категории и фотки в дашборд",
                "stage": "offer28-analytics-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "unscheduled": false,
                "sourceGanttRow": 36,
                "datePrecision": "source-plan",
                "dateSource": "Исходный гант, 2026. Плановые интервалы; фактическая дата завершения не указана.",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ DEV"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "sprintPlan": [
                    {
                        "start": "2026-07-13",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-07-27",
                        "roles": [],
                        "completed": true
                    }
                ]
            },
            {
                "id": "e30-exchange-export-1",
                "name": "Ежедневная выгрузка в 03:00 МСК",
                "stage": "i31-step-7",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПлановый обмен. Внести изменение в PIM до 03:00 МСК → обмен запускается автоматически в 03:00; после обработки изменение доступно на сайте.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    1
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-export-2",
                "name": "Категории и их параметры",
                "stage": "i31-step-1",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСоздание пустой категории. Создать раздел в PIM с заполненными параметрами и родителем, без товаров → раздел передан на сайт, активен и участвует в дальнейших обменах; без товаров не отображается по правилам сайта.\n\nНазвание категории. Изменить название в PIM → название на сайте обновлено, URL категории сохранён.\n\nНазвание для меню. Изменить только название для меню → соответствующий пункт меню обновлён; название категории, H1 и URL не изменились.\n\nH1. Изменить H1 категории в PIM → заголовок страницы категории обновлён, URL сохранён.\n\nTitle. Изменить Title категории в PIM → title страницы содержит переданное значение.\n\nDescription. Изменить Description категории в PIM → метатег description страницы содержит переданное значение.\n\nРодитель категории. Перенести категорию к другому родителю в PIM → структура сайта и родительские подборки обновлены, URL перенесённой категории сохранён.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    2,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-export-3",
                "name": "Товары, привязки и характеристики",
                "stage": "i31-step-3",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПоявление товаров. Привязать товар к созданному разделу → после обмена раздел появляется на сайте; товар отображается в нём и во всех родительских категориях.\n\nНазвание товара. Изменить название товара в PIM → на сайте отображается новое название.\n\nОписание товара. Изменить описание товара в PIM → на сайте отображается новое описание.\n\nХарактеристики. В PIM передать с товарами новую характеристику, новое значение существующей характеристики и изменённое значение товара → сайт создаёт недостающие элементы структуры без дублей и связывает значения с товарами. В админке доступны характеристика, её значения и управление показом\/индексацией фильтра; после включения фильтра отбор на PLP использует новые данные. На детальной странице товара эти характеристики не отображаются.\n\nКатегория товара. Перенести товар в другой раздел в PIM → одна непосредственная привязка; товар виден в новом разделе и его родителях, прежние связи удалены, кроме общих родителей.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    3,
                    10,
                    11,
                    12,
                    13
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-import-1",
                "name": "Категории и постоянные URL",
                "stage": "i31-step-1",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСоздание пустой категории. Создать раздел в PIM с заполненными параметрами и родителем, без товаров → раздел передан на сайт, активен и участвует в дальнейших обменах; без товаров не отображается по правилам сайта.\n\nНазвание категории. Изменить название в PIM → название на сайте обновлено, URL категории сохранён.\n\nНазвание для меню. Изменить только название для меню → соответствующий пункт меню обновлён; название категории, H1 и URL не изменились.\n\nH1. Изменить H1 категории в PIM → заголовок страницы категории обновлён, URL сохранён.\n\nTitle. Изменить Title категории в PIM → title страницы содержит переданное значение.\n\nDescription. Изменить Description категории в PIM → метатег description страницы содержит переданное значение.\n\nРодитель категории. Перенести категорию к другому родителю в PIM → структура сайта и родительские подборки обновлены, URL перенесённой категории сохранён.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    2,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-import-2",
                "name": "Товары и родительские категории",
                "stage": "i31-step-4",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПоявление товаров. Привязать товар к созданному разделу → после обмена раздел появляется на сайте; товар отображается в нём и во всех родительских категориях.\n\nНазвание товара. Изменить название товара в PIM → на сайте отображается новое название.\n\nОписание товара. Изменить описание товара в PIM → на сайте отображается новое описание.\n\nКатегория товара. Перенести товар в другой раздел в PIM → одна непосредственная привязка; товар виден в новом разделе и его родителях, прежние связи удалены, кроме общих родителей.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    3,
                    10,
                    11,
                    13
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-import-3",
                "name": "Характеристики без дублей",
                "stage": "i31-step-6",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nХарактеристики. В PIM передать с товарами новую характеристику, новое значение существующей характеристики и изменённое значение товара → сайт создаёт недостающие элементы структуры без дублей и связывает значения с товарами. В админке доступны характеристика, её значения и управление показом\/индексацией фильтра; после включения фильтра отбор на PLP использует новые данные. На детальной странице товара эти характеристики не отображаются.\n\nПовторный обмен. Повторно передать те же данные → категории, товары, характеристики и их значения не дублируются, связи с товарами сохраняются, URL категорий не меняются.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    12,
                    15
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-import-4",
                "name": "Сохранение заполненных данных",
                "stage": "i31-step-7",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПустые значения. Передать пустые и отсутствующие поля категории, товара, привязки и характеристик → прежние заполненные значения на сайте сохранены.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    14
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-exchange-import-5",
                "name": "Повторный обмен без дублей",
                "stage": "i31-step-7",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПовторный обмен. Повторно передать те же данные → категории, товары, характеристики и их значения не дублируются, связи с товарами сохраняются, URL категорий не меняются.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1,
                "acceptanceChecks": [
                    15
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1YEnqD29J_L9ryki7uIqpJrO7VcMFVOt1j8thQXTK-Iw\/edit"
            },
            {
                "id": "e30-source-120",
                "name": "Выгрузка разделов (PIM -> Сайт)",
                "stage": "i31-step-1",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 120,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🛠️ BK"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": true
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-filter-admin-1",
                "name": "Глобальные настройки фильтра",
                "stage": "e30-filter-admin",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПоказ включён. Передать с товаром из PIM новую характеристику и значение; после обмена найти их в админке сайта и включить показ фильтра → фильтр доступен в применимых конечных категориях, отбирает переданные товары; в родительских категориях и на детальной странице товара характеристика не отображается.\n\nПоказ выключен. Выключить фильтр → он не отображается в интерфейсе каталога после применения настройки.\n\nГлобальность. Изменить один флаг → настройка действует в разных категориях без их ручной настройки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 2,
                "acceptanceChecks": [
                    1,
                    2,
                    6
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit"
            },
            {
                "id": "e30-filter-admin-2",
                "name": "Бренд без выключателя",
                "stage": "e30-filter-admin",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nБренд. Открыть родительскую и конечную категорию → фильтр «Бренд» показан без включения флагов; в админке отсутствует возможность его отключить.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 2,
                "acceptanceChecks": [
                    3
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit"
            },
            {
                "id": "e30-filter-admin-3",
                "name": "Показ и индексация независимо",
                "stage": "e30-filter-admin",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nИндексация включена. Разрешить фильтр → каждое его одиночное значение проверяется по единому SEO-алгоритму; отдельное разрешение значения не требуется. Подробная проверка — в эпике 4.\n\nИндексация выключена. Снять разрешение обычного фильтра → страницы с ним содержат в исходном HTML <meta name=\"robots\" content=\"noindex, follow\"> и исключены из sitemap; сам фильтр может оставаться видимым. Подробная проверка — в эпике 4.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 2,
                "acceptanceChecks": [
                    4,
                    5
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit"
            },
            {
                "id": "e30-filter-admin-4",
                "name": "Сохранение настроек при обмене",
                "stage": "e30-filter-admin",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСохранение. Переоткрыть карточку фильтра и выполнить обмен PIM → настройки администратора сохранены.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 2,
                "acceptanceChecks": [
                    7
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1ajVF2kuPKCYb-b-orrTOI2BsPK82r6wVXwwWzzH6Kho\/edit"
            },
            {
                "id": "e30-filter-plp-1",
                "name": "Фильтры по уровню каталога",
                "stage": "e30-filter-plp",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nРодительская категория. Открыть «Масла и жидкости» → фильтр «Бренд» отображается без условий включения; обычные характеристики отсутствуют.[f]",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 3,
                "acceptanceChecks": [
                    1
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
            },
            {
                "id": "e30-filter-plp-2",
                "name": "Подразделы с сохранением бренда",
                "stage": "e30-filter-plp",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nДинамические подразделы. Выбрать бренд → остаются только подразделы, в которых есть товары выбранного бренда.[g][h]\n\nПереход. Из родительской категории с LUKOIL перейти в «Моторные масла» → бренд сохранён, товары соответствуют отбору.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 3,
                "acceptanceChecks": [
                    2,
                    3
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
            },
            {
                "id": "e30-filter-plp-3",
                "name": "Выдача, значения и счётчики",
                "stage": "e30-filter-plp",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСчётчики. Выбрать и снять характеристику → карточки, значения и счётчики согласованы с результатом.\n\nНедоступные товары. В существующем каталоге найти PLP с товарами без остатка, записать URL и артикулы, проверить отсутствие остатка по данным сайта → карточки этих товаров отображаются в списке; отсутствие остатка не делает подборку пустой. Предложения вручную не отключать. Если подходящий пример не найден, проверка остаётся непройденной.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 3,
                "acceptanceChecks": [
                    4,
                    5
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
            },
            {
                "id": "e30-filter-plp-4",
                "name": "Множественный выбор и пустая выдача",
                "stage": "e30-filter-plp",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nНесколько значений. Выбрать два значения одного фильтра и четыре разных фильтра → отбор работает, SEO-ограничения применяются отдельно.\n\nПустой результат. Открыть комбинацию без товаров → условия видны и снимаются; сброс восстанавливает выдачу.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 3,
                "acceptanceChecks": [
                    6,
                    7
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
            },
            {
                "id": "e30-filter-plp-5",
                "name": "Ссылки, пагинация и сброс",
                "stage": "e30-filter-plp",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСсылки. Проверить значение, ведущее на индексируемую подборку → есть href; прямая загрузка даёт тот же результат, что выбор в интерфейсе.\n\nПагинация. Перейти на вторую страницу, затем изменить фильтр → открывается первая страница новой выборки.\n\nСброс. Сбросить фильтры → URL, выдача и метаданные соответствуют базовой категории.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 3,
                "acceptanceChecks": [
                    8,
                    9,
                    10
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1VrJdfX2cVAbgNhywwdBA_SCFFEDXK5gxJs3C5DPWM9A\/edit"
            },
            {
                "id": "e30-source-77",
                "name": "Доработка интерфейса фильтров (числовые - ползунок, цвет)",
                "stage": "e30-filter-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 77,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🛠️ FR, 🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-brands-1",
                "name": "Список, поиск и алфавит",
                "stage": "e30-brands",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСписок. Открыть \/brands\/ и перейти через навигацию сайта → список доступен, бренды сгруппированы и отсортированы, скрытых нет.\n\nПоиск. Проверить видимые бренды с кириллицей и латиницей, часть названия, другой регистр, неизвестное имя и очистку → выдача соответствует запросу; при очистке возвращается список.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceEpic": 6,
                "acceptanceChecks": [
                    1,
                    2
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit",
                "completed": true,
                "sprintPlan": [
                    {
                        "start": "2026-09-07",
                        "roles": []
                    }
                ],
                "startDate": "2026-09-07",
                "endDate": "2026-09-20",
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-09-07",
                        "end": "2026-09-20",
                        "completed": true
                    }
                ]
            },
            {
                "id": "e30-brands-2",
                "name": "Страница бренда и категории",
                "stage": "e30-brands",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПереход. Из списка открыть ZIC, затем «Моторные масла» → категория открыта с выбранным ZIC и товарами этого бренда.\n\nМетатеги. В исходном HTML \/brands\/ и двух разных брендов сравнить H1, Title и Description с шаблонами; проверить HTTP 200, index, follow и canonical на собственный URL.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceEpic": 6,
                "acceptanceChecks": [
                    3,
                    4
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit",
                "sprintPlan": [
                    {
                        "start": "2026-09-21",
                        "roles": [],
                        "completed": true
                    }
                ],
                "startDate": "2026-09-21",
                "endDate": "2026-10-04",
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-09-21",
                        "end": "2026-10-04",
                        "completed": true
                    }
                ],
                "completed": true
            },
            {
                "id": "e30-brands-3",
                "name": "Скрытие и восстановление бренда",
                "stage": "e30-brands",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nСкрытие. В админке включить флаг → бренд исчез из списка и поиска; прежний URL даёт HTTP 404 в Network → Document → Headers.\n\nКаталог. После скрытия бренд остаётся в фильтре, товары доступны. Нажать бренд в карточке товара → открывается непосредственная категория товара с выбранным брендом.\n\nСсылки и карта. После скрытия нет ссылок на отдельную страницу и её URL во всех sitemap. Допустимые подборки с этим брендом остаются.\n\nВосстановление. Снять флаг → список, поиск, страница по прежнему URL и ссылка из товара восстановлены; URL страницы бренда вернулся в sitemap.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceEpic": 6,
                "acceptanceChecks": [
                    5,
                    6,
                    7,
                    8
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1GdALu5Yh9_BpmyRLRsypv2tAbDVikFP6NODAutwx5WM\/edit",
                "sprintPlan": [
                    {
                        "start": "2026-10-19",
                        "roles": [
                            "frontend",
                            "backend"
                        ],
                        "completed": false
                    }
                ],
                "startDate": "2026-10-19",
                "endDate": "2026-11-01",
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-10-19",
                        "end": "2026-11-01",
                        "completed": false
                    }
                ]
            },
            {
                "id": "e30-sitemap-1",
                "name": "Страницы категорий в XML-карте",
                "stage": "e30-sitemap",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nКатегория. После обмена PIM и публикации индексируемой категории найти её основной URL в карте → присутствует один раз.\n\nПодборки. Найти первые страницы с 1, 2 и 3 разрешёнными фильтрами, по одному значению, ≥3 артикула → все три нормализованных URL есть.\n\nБренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 7,
                "acceptanceChecks": [
                    1,
                    2,
                    7
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit"
            },
            {
                "id": "e30-sitemap-2",
                "name": "Исключение запрещённых URL",
                "stage": "catalog33-filter-map",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nЗапреты. Проверить подборки с 2 значениями, 4 фильтрами, неразрешённым фильтром, брендом у родителя и 2 артикулами → URL отсутствуют.\n\nПагинация. Проверить категорию и допустимую подборку с несколькими страницами → первая есть, страницы 2+ и вариант с явным номером 1 отсутствуют.\n\nСлужебные URL. Проверить сортировку, поиск по брендам, метки перехода и ненормализованные дубли → в карте их нет.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 7,
                "acceptanceChecks": [
                    3,
                    4,
                    8
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit"
            },
            {
                "id": "e30-sitemap-3",
                "name": "Обновление карты после обмена ПИМ",
                "stage": "e30-sitemap",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПорог. Изменить состав подборки 2 → 3 → 2 артикула; после обновлений → URL отсутствует, появляется, снова отсутствует.\n\nБез остатка. Найти допустимую подборку из ≥3 артикулов, все без остатка и возможности заказа → первая страница есть. Предложения не отключать; без примера проверку не отмечать.\n\nБренды. Проверить \/brands\/ и видимый бренд → URL есть. Скрыть бренд → его отдельной страницы нет; допустимые подборки сохраняются. Восстановить → URL возвращается.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 7,
                "acceptanceChecks": [
                    5,
                    6,
                    7
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit"
            },
            {
                "id": "e30-sitemap-4",
                "name": "Полнота и отсутствие дублей",
                "stage": "e30-sitemap",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Приёмка: не оценено. Реализовать или проверить существующее поведение по критериям ниже.\n\nПолнота. Сравнить расчётный и опубликованный наборы только категорий, подборок и брендов → 0 пропущенных, 0 лишних, 0 повторов; прочие разделы сохранены.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 7,
                "acceptanceChecks": [
                    9
                ],
                "sourceUrl": "https:\/\/docs.google.com\/document\/d\/1sJrxtUPuErUe9fyHpcOpkv9q8ciBfvNQy9QyDysMCWE\/edit"
            },
            {
                "id": "e30-source-40",
                "name": "Интерфейс управления структурой в консоле",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 40,
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-41",
                "name": "Виртуальные категории (Детали ТО, Популярные)",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 41,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-42",
                "name": "ЧПУ страницы PLP",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 42,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-43",
                "name": "Урлы для виртуальных категорий",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 43,
                "startDate": "2026-08-10",
                "endDate": "2026-09-06",
                "sourceSchedule": [
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-10",
                        "end": "2026-08-23",
                        "completed": true
                    },
                    {
                        "start": "2026-08-24",
                        "end": "2026-09-06",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-08-10",
                        "roles": [],
                        "completed": true
                    },
                    {
                        "start": "2026-08-24",
                        "roles": [],
                        "completed": true
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "e30-source-46",
                "name": "Интерфейс страницы каталога",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 46,
                "startDate": "2026-06-17",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ FR"
                    },
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    },
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-47",
                "name": "Подразделы на странице PLP",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 47,
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🎨DZN"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-48",
                "name": "Добавление нового каталога в индекс",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 48,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-49",
                "name": "Использование нового индекса на сайте",
                "stage": "e30-catalog-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 49,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-51",
                "name": "Управление SEO параметрами страницы PLP",
                "stage": "e30-catalog-seo",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 51,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-52",
                "name": "Вывод SEO параметров страницы PLP",
                "stage": "e30-catalog-seo",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 52,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-53",
                "name": "Доработка SEO документов sitemap, роботс",
                "stage": "e30-catalog-seo",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 53,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-54",
                "name": "Доработка SEO документов схема орг, (через чат гпт) + задача.",
                "stage": "e30-catalog-seo",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 54,
                "startDate": "2026-07-29",
                "endDate": "2026-08-25",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "roleText": "🛠️ FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-55",
                "name": "Еще доработки по СЕО для товаров",
                "stage": "e30-catalog-seo",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 55,
                "startDate": "2026-07-29",
                "endDate": "2026-08-11",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-39",
                "name": "Проектирование новой структуры каталога",
                "stage": "e30-pim-tree",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 39,
                "startDate": "2026-06-17",
                "endDate": "2026-06-30",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-95",
                "name": "Производители, Разделы каталога, Товары",
                "stage": "e30-pim-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 95,
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-96",
                "name": "Аналитика каталога",
                "stage": "e30-pim-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 96,
                "startDate": "2026-06-17",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-06-17",
                        "end": "2026-06-30",
                        "completed": true
                    },
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-98",
                "name": "Загрузка категорий из НСИ",
                "stage": "e30-pim-load",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 98,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK, 🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-99",
                "name": "Загрузка категорий из PIM",
                "stage": "e30-pim-load",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 99,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK, 🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-100",
                "name": "Первичная загрузка товаров в PIM",
                "stage": "i31-step-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 100,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK, 🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-101",
                "name": "Загрузка изменений о товарах в PIM",
                "stage": "i31-step-2",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 101,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK, 🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-102",
                "name": "Распределение товаров по категориям (НСИ и ПИМ)",
                "stage": "e30-pim-distribute",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 102,
                "startDate": "2026-07-01",
                "endDate": "2026-07-14",
                "sourceSchedule": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-01",
                        "end": "2026-07-14",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-103",
                "name": "ИИ распределение товаров по категориям",
                "stage": "e30-pim-distribute",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 103,
                "startDate": "2026-07-15",
                "endDate": "2026-07-28",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-104",
                "name": "Алгоритм распределения товаров с похожими названиями",
                "stage": "e30-pim-distribute",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 104,
                "startDate": "2026-07-29",
                "endDate": "2026-08-11",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-109",
                "name": "Последовательная проработка разделов каталога ",
                "stage": "e30-pim-categories-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 109,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-110",
                "name": "Дораспределение товаров по новой структуре",
                "stage": "e30-pim-categories-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 110,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-111",
                "name": "Детализировать разделы в категориях",
                "stage": "e30-pim-categories-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 111,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-112",
                "name": "Перепроверить распределение товарв в категориях",
                "stage": "e30-pim-categories-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 112,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-106",
                "name": "Алгоритм определения товаров с плохими названиями",
                "stage": "e30-pim-names",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 106,
                "startDate": "2026-07-29",
                "endDate": "2026-08-11",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-107",
                "name": "Подбор названий по аналогам",
                "stage": "e30-pim-names",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 107,
                "startDate": "2026-07-29",
                "endDate": "2026-09-08",
                "sourceSchedule": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🛠️ BK"
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    },
                    {
                        "start": "2026-08-12",
                        "end": "2026-08-25",
                        "completed": true
                    },
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-114",
                "name": "Подгрузить фото с таблиц опта для товаров без фото + убрать заглушки Пима + контроль дублей фото",
                "stage": "e30-pim-photos",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 114,
                "startDate": "2026-07-15",
                "endDate": "2026-08-11",
                "sourceSchedule": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "roleText": "🛠️ BK+FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-07-15",
                        "end": "2026-07-28",
                        "completed": true
                    },
                    {
                        "start": "2026-07-29",
                        "end": "2026-08-11",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-115",
                "name": "Загрузка фото с Запмага",
                "stage": "e30-pim-photos",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 115,
                "startDate": "2026-08-26",
                "endDate": "2026-09-08",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🛠️ BK+FR"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-81",
                "name": "Дотянуть характеристики на кроссовые товары",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 81,
                "startDate": "2026-10-07",
                "endDate": "2026-10-20",
                "sourceSchedule": [
                    {
                        "start": "2026-10-07",
                        "end": "2026-10-20",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-10-07",
                        "end": "2026-10-20",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-85",
                "name": "Выгрузка характеристик с сайта",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 85,
                "startDate": "2026-08-26",
                "endDate": "2026-09-08",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-86",
                "name": "Выгрузка товаров с характеристиками",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 86,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-87",
                "name": "Унификация структуры характеристик и значений",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 87,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-88",
                "name": "Загрузили в пим новые характеристики",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 88,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-89",
                "name": "На стороне пима добавить файл маппинга для унифицированных значений",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 89,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-90",
                "name": "Загрузка характеристик и значений в PIM",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 90,
                "startDate": "2026-08-26",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "roleText": "🔎PM"
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-08-26",
                        "end": "2026-09-08",
                        "completed": false
                    },
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-91",
                "name": "Привязка значений характеристик к товарам",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 91,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-117",
                "name": "Обогащение товаров характеристиками",
                "stage": "e30-pim-attributes",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 117,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки."
            },
            {
                "id": "e30-source-61",
                "name": "Наполнение брендов с Опта (информация для бренда) ",
                "stage": "e30-brands-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 61,
                "startDate": "2026-09-07",
                "endDate": "2026-09-20",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🔎PM + 🛠️ BK"
                    },
                    {
                        "start": "2026-09-23",
                        "end": "2026-10-06",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-07",
                        "end": "2026-09-20",
                        "completed": true
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-09-07",
                        "roles": [],
                        "completed": true
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "e30-source-62",
                "name": "Наполнение брендов со сторонних источников",
                "stage": "e30-brands-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 62,
                "startDate": "2026-11-02",
                "endDate": "2026-11-15",
                "sourceSchedule": [
                    {
                        "start": "2026-10-21",
                        "end": "2026-11-03",
                        "roleText": "🔎PM"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-11-02",
                        "end": "2026-11-15",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-11-02",
                        "roles": [],
                        "completed": false
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "e30-source-65",
                "name": "Отзывы на странице бренда",
                "stage": "e30-brands-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 65,
                "startDate": "2026-09-21",
                "endDate": "2026-10-18",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🛠️ FR, 🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-21",
                        "end": "2026-10-04",
                        "completed": false
                    },
                    {
                        "start": "2026-10-05",
                        "end": "2026-10-18",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-09-21",
                        "roles": [],
                        "completed": false
                    },
                    {
                        "start": "2026-10-05",
                        "roles": [],
                        "completed": false
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "e30-source-66",
                "name": "Подборка популярных товаров на стрнаице бренда ",
                "stage": "e30-brands-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 66,
                "startDate": "2026-09-21",
                "endDate": "2026-10-18",
                "sourceSchedule": [
                    {
                        "start": "2026-09-09",
                        "end": "2026-09-22",
                        "roleText": "🛠️ FR, 🛠️ BK"
                    },
                    {
                        "start": "2026-09-23",
                        "end": "2026-10-06",
                        "roleText": "🛠️ FR, 🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-09-21",
                        "end": "2026-10-04",
                        "completed": true
                    },
                    {
                        "start": "2026-10-05",
                        "end": "2026-10-18",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-09-21",
                        "roles": [
                            "backend"
                        ],
                        "completed": true
                    },
                    {
                        "start": "2026-10-05",
                        "roles": [
                            "frontend"
                        ],
                        "completed": false
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "e30-source-67",
                "name": "Статьи где упоминается бренда",
                "stage": "e30-brands-next",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Из исходного ганта. Выполнение этой работы не подтверждает приёмку новых требований эпиков.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sourceGanttRow": 67,
                "startDate": "2026-10-05",
                "endDate": "2026-10-18",
                "sourceSchedule": [
                    {
                        "start": "2026-10-07",
                        "end": "2026-10-20",
                        "roleText": "🛠️ FR, 🛠️ BK"
                    }
                ],
                "sourcePeriods": [
                    {
                        "start": "2026-10-05",
                        "end": "2026-10-18",
                        "completed": false
                    }
                ],
                "dateSource": "Плановые интервалы исходного ганта за 2026 год; не подтверждённая дата приёмки.",
                "sprintPlan": [
                    {
                        "start": "2026-10-05",
                        "roles": [
                            "frontend",
                            "backend"
                        ],
                        "completed": false
                    }
                ],
                "datePrecision": "sprint"
            },
            {
                "id": "i31-names",
                "name": "Обновление названий и описаний",
                "stage": "i31-step-5",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Передать изменённые название и описание из ПИМ на сайт. Проверить обновление на PLP и PDP; пустые значения не стирают заполненные поля. Эпик 1, проверки 10, 11 и 14. Приёмка не подтверждена.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "sourceEpic": 1
            },
            {
                "id": "catalog33-partner-0",
                "name": "Настройки партнёрских брендов",
                "stage": "catalog33-retail27-brand-partners",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Работы партнёрского раздела. Сохранить правила выделения и приоритета брендов; выполнение требует подтверждения.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "catalog33-partner-1",
                "name": "Выделение брендов и товаров",
                "stage": "catalog33-retail27-brand-partners",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Работы партнёрского раздела. Сохранить правила выделения и приоритета брендов; выполнение требует подтверждения.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "catalog33-partner-2",
                "name": "Приоритет товаров в каталоге",
                "stage": "catalog33-retail27-brand-partners",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Работы партнёрского раздела. Сохранить правила выделения и приоритета брендов; выполнение требует подтверждения.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "catalog33-partner-3",
                "name": "Приоритет аналогов",
                "stage": "catalog33-retail27-brand-partners",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Работы партнёрского раздела. Сохранить правила выделения и приоритета брендов; выполнение требует подтверждения.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "catalog33-filter-map-check",
                "name": "Обновление карты подборок",
                "stage": "catalog33-filter-map",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Включать только допустимые первые страницы: 1–3 фильтра, одно значение каждого, не менее 3 артикулов, конечная категория. Учитывать разрешение индексации; бренд разрешён всегда. Пересчитывать при изменении настроек, данных ПИМ и порога 2 ↔ 3. Отсутствие остатка не исключает URL. Сортировки, дубли, поиск и пагинация 2+ исключены. Требования эпика XML-карты; приёмка не подтверждена.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "catalog33-brand-map-check",
                "name": "Публикация брендов в XML-карте",
                "stage": "catalog33-brand-map",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Включать список и видимые страницы брендов. При скрытии удалять отдельную страницу, при восстановлении возвращать. Допустимые подборки по скрытому бренду сохраняются. URL должен возвращать 200 и совпадать с canonical. Требования эпика XML-карты; приёмка не подтверждена.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "sprintPlan": [
                    {
                        "start": "2026-09-21",
                        "roles": [],
                        "completed": true
                    }
                ],
                "startDate": "2026-09-21",
                "endDate": "2026-10-04",
                "datePrecision": "sprint",
                "sourcePeriods": [
                    {
                        "start": "2026-09-21",
                        "end": "2026-10-04",
                        "completed": true
                    }
                ]
            },
            {
                "id": "catalog33-fitment-map-check",
                "name": "Добавление страниц подбора в карту",
                "stage": "catalog33-fitment-map",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Предложение для третьего этапа: после согласования структуры авто включать опубликованные индексируемые страницы подбора в XML-карту. Исключать дубли, служебные и закрытые страницы; проверять canonical и обновление после изменений применимости. Правила индексации согласовать в проекте подбора; выполнение не подтверждено.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "journey39-retail27-reviews-base-task",
                "name": "Запуск отзывов",
                "stage": "journey39-retail27-reviews-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-15",
                "endDate": "2026-08-25"
            },
            {
                "id": "journey39-retail27-certificate-base-task",
                "name": "Сертификаты в PDP",
                "stage": "journey39-retail27-certificate-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-08-26",
                "endDate": "2026-09-08"
            },
            {
                "id": "source40-row-186",
                "name": "Авторизация на этапе чекаута",
                "stage": "source40-auth",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Исходный гант «Роадмап 2.0», строка 186. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-01",
                "endDate": "2026-07-28",
                "sourceSheetRows": [
                    186
                ]
            },
            {
                "id": "source40-row-189",
                "name": "Макет страницы оплаты",
                "stage": "source40-widget",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 189. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-08-12",
                "endDate": "2026-09-22",
                "sourceSheetRows": [
                    189
                ]
            },
            {
                "id": "source40-row-190",
                "name": "Публикация страницы оплаты",
                "stage": "source40-widget",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 190. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSheetRows": [
                    190
                ]
            },
            {
                "id": "source40-row-191",
                "name": "Авторизация по СМС",
                "stage": "source40-auth",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Пользователь уточнил способ: СМС. В исходном ганте строка 191 описывает флешкол; старый план 09.09–06.10.2026 относится к нему. Срок СМС пока не согласован.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true,
                "startDate": "",
                "endDate": "",
                "sourceSheetRows": [
                    191
                ]
            },
            {
                "id": "source40-row-192",
                "name": "Добавить оплату цифрового рубля",
                "stage": "source40-digital",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 192. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-09-23",
                "endDate": "2026-10-06",
                "sourceSheetRows": [
                    192
                ]
            },
            {
                "id": "source40-row-215",
                "name": "Добавить на страницу возвратов информацию из СДЭКа",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Исходный гант «Роадмап 2.0», строка 215. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-29",
                "endDate": "2026-08-11",
                "sourceSheetRows": [
                    215
                ]
            },
            {
                "id": "source40-row-216",
                "name": "Продумать лучший выбор СЦ в зависимости от склада товара и выбранного ПВЗ клинетом.",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 216. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSheetRows": [
                    216
                ]
            },
            {
                "id": "source40-row-217",
                "name": "Дать возможность клиенту получить 1 товарар из нескольких в ПВЗ (яндекса\/СДЭКа) ",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 217. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-09-09",
                "endDate": "2026-09-22",
                "sourceSheetRows": [
                    217
                ]
            },
            {
                "id": "source40-row-218",
                "name": "Добавить уведомления на возвратные товары которые могут скоро утилизироваться.",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Исходный гант «Роадмап 2.0», строка 218. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-09-23",
                "endDate": "2026-10-06",
                "sourceSheetRows": [
                    218
                ]
            },
            {
                "id": "source40-row-219",
                "name": "Создать всегда АРВ при статусе возврата товара",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "Исходный гант «Роадмап 2.0», строка 219. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-08-12",
                "endDate": "2026-08-25",
                "sourceSheetRows": [
                    219
                ]
            },
            {
                "id": "source40-row-220",
                "name": "Составить План доработок и улучшений по доставке",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 220. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-08-12",
                "endDate": "2026-09-22",
                "sourceSheetRows": [
                    220
                ]
            },
            {
                "id": "source40-row-222",
                "name": "Проработать проект и назаначить сроки реализации",
                "stage": "source40-delivery",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "Исходный гант «Роадмап 2.0», строка 222. Даты — плановые интервалы из источника, не дата фактической приёмки.",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-29",
                "endDate": "2026-08-25",
                "sourceSheetRows": [
                    222
                ]
            }
        ],
        "metrics": [],
        "sourceImport": {
            "id": "big-gantt-2026-10-05",
            "title": "Партком. Большой гант 2",
            "date": "2026-10-05",
            "precision": "quarter"
        },
        "structureVersion": 29,
        "deliveryPhases": [],
        "deliveryStructureVersion": 8,
        "unifiedStructureVersion": 13,
        "epicExamplesVersion": 15,
        "retailPlanVersion": 27,
        "retailReconciliation": {
            "version": 27,
            "source": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
            "restoredProjectIds": [
                "release-25",
                "release-42",
                "release-61",
                "prjmv14zdegto0wy6",
                "prjmv1458o62gvori",
                "prjmv13hwae4jebao",
                "release-attributes",
                "release-exchange",
                "site-offer",
                "prjmv10rzgqfxnkbs",
                "prjmv12e7dgymcgms",
                "site-catalog",
                "site-brands",
                "site-fitment",
                "site-pdp",
                "site-lists",
                "site-cart",
                "site-checkout",
                "site-delivery",
                "site-search",
                "site-orders",
                "site-pricing",
                "site-analytics"
            ],
            "idMap": {
                "site-pdp": "site-pdp",
                "site-offer": "roadmap-offer",
                "site-cart": "roadmap-cart",
                "site-checkout": "roadmap-checkout",
                "site-lists": "site-lists",
                "site-catalog": "roadmap-catalog",
                "release-exchange": "release-exchange",
                "release-attributes": "roadmap-attributes",
                "site-brands": "roadmap-brands",
                "site-fitment": "roadmap-fitment-site",
                "site-delivery": "site-delivery",
                "site-analytics": "site-analytics",
                "site-pricing": "site-pricing",
                "release-25": "release-25",
                "release-42": "release-42",
                "release-61": "release-61",
                "prjmv14zdegto0wy6": "prjmv14zdegto0wy6",
                "prjmv1458o62gvori": "prjmv1458o62gvori",
                "prjmv13hwae4jebao": "prjmv13hwae4jebao",
                "prjmv10rzgqfxnkbs": "prjmv10rzgqfxnkbs",
                "prjmv12e7dgymcgms": "prjmv12e7dgymcgms",
                "site-search": "site-search",
                "site-orders": "site-orders"
            }
        },
        "offerStageVersion": 28,
        "epicPlanVersion": 30,
        "integrationSequenceVersion": 31,
        "integrationProjectsVersion": 32,
        "catalogGroupingVersion": 33,
        "journeyGroupingVersion": 39,
        "removedGeneratedProjectsV40": [
            {
                "id": "site-pdp-next",
                "code": "PRJ-PDP",
                "name": "Карточка товара",
                "goal": "Покупатель видит упорядоченные предложения и отзывы в карточке товара.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-pdp"
                ],
                "planOrder": 101,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "targetStart": "2026-04-01",
                "targetEnd": "2027-01-10",
                "restoredWorkRefs": [
                    {
                        "id": "sheet-s11",
                        "name": "Отзывы и рейтинги",
                        "status": "Запланирован"
                    },
                    {
                        "id": "request-offer-sort",
                        "name": "Сортировка предложений на PDP",
                        "status": "Запланирован"
                    }
                ]
            },
            {
                "id": "site-lists-next",
                "code": "PRJ-LISTS",
                "name": "Списки товаров",
                "goal": "Списки товаров помогают сравнить предложения и выбрать товар.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-42"
                ],
                "planOrder": 110,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-selection"
                    }
                ],
                "targetStart": "2026-04-01",
                "targetEnd": "2027-07-22",
                "restoredWorkRefs": [
                    {
                        "id": "sheet-s53",
                        "name": "Управление ассортиментом в выдаче",
                        "status": "Запланирован"
                    },
                    {
                        "id": "sheet-s54",
                        "name": "Улучшение сортировки товаров",
                        "status": "Запланирован"
                    }
                ]
            },
            {
                "id": "site-cart-next",
                "code": "PRJ-CART",
                "name": "Корзина",
                "goal": "Покупатель управляет составом корзины и продолжает покупку.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-42"
                ],
                "planOrder": 105,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "targetStart": "2026-04-01",
                "targetEnd": "2026-09-28",
                "restoredWorkRefs": [
                    {
                        "id": "sheet-s55",
                        "name": "Рекомендации в корзине",
                        "status": "Запланирован"
                    },
                    {
                        "id": "sheet-s56",
                        "name": "Восстановление брошенной корзины",
                        "status": "Запланирован"
                    }
                ]
            },
            {
                "id": "site-checkout-next",
                "code": "PRJ-CHECKOUT",
                "name": "Оформление заказа",
                "goal": "Покупатель оформляет заказ и выбирает подходящий способ оплаты.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "",
                "end": "",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5",
                    "release-42"
                ],
                "planOrder": 107,
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "targetStart": "2026-04-01",
                "targetEnd": "2027-09-02",
                "restoredWorkRefs": [
                    {
                        "id": "sheet-s14",
                        "name": "Способы оплаты",
                        "status": "Запланирован"
                    },
                    {
                        "id": "sheet-s57",
                        "name": "Улучшение checkout",
                        "status": "Запланирован"
                    }
                ]
            },
            {
                "id": "site-orders",
                "code": "PRJ-ORDERS",
                "name": "Заказы и возвраты",
                "goal": "Покупатель получает статусы, уведомления и может оформить возврат.",
                "goalProposed": true,
                "owner": "",
                "status": "Запланирован",
                "start": "2026-07-29",
                "end": "2026-10-06",
                "unscheduled": true,
                "sourceGrouping": true,
                "previousProjects": [
                    "release-5"
                ],
                "placements": [
                    {
                        "product": "sheet-p1",
                        "version": "retail-purchase"
                    }
                ],
                "targetStart": "2026-04-01",
                "targetEnd": "2026-12-31",
                "planOrder": 51,
                "mergedProjectsV39": [
                    {
                        "id": "retail27-returns-base",
                        "code": "SITE-32",
                        "owner": "",
                        "goal": "",
                        "start": "2026-07-29",
                        "end": "2026-10-06",
                        "name": "Уведомления о возвратах",
                        "status": "Готово",
                        "placements": [
                            {
                                "product": "sheet-p1",
                                "version": "retail-purchase"
                            }
                        ],
                        "planOrder": 31,
                        "sourceSheetRows": [
                            215,
                            218,
                            219
                        ],
                        "sourceSheetUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1ef_DcfoNKyxGpchjsC4KwVWpsMwd-kiR3fVRNQ9O4rE\/edit#gid=506692445",
                        "targetStart": "2026-07-29",
                        "targetEnd": "2026-10-06",
                        "unscheduled": false,
                        "sourcePlanRange": [
                            "2026-07-29",
                            "2026-10-06"
                        ],
                        "previousTargetV29": [
                            "",
                            ""
                        ],
                        "dateSource": "Плановые интервалы исходного ганта, 2026; не дата фактической приёмки."
                    }
                ]
            }
        ],
        "replacedPlaceholderTasksV40": [
            {
                "id": "journey39-retail27-auth-task",
                "name": "Авторизация в заказе",
                "stage": "journey39-retail27-auth",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-01",
                "endDate": "2026-07-28"
            },
            {
                "id": "journey39-retail27-alpha-task",
                "name": "Оплата Альфа",
                "stage": "journey39-retail27-alpha",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": true
            },
            {
                "id": "journey39-retail27-express-task",
                "name": "Яндекс Экспресс",
                "stage": "journey39-retail27-express",
                "owner": "",
                "type": "Delivery",
                "status": "Запланировано",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-29",
                "endDate": "2026-08-25"
            },
            {
                "id": "journey39-retail27-returns-base-task",
                "name": "Уведомления о возвратах",
                "stage": "journey39-retail27-returns-base",
                "owner": "",
                "type": "Delivery",
                "status": "Готово",
                "result": "",
                "sprint": 0,
                "sprintLength": 1,
                "deps": [],
                "unscheduled": false,
                "startDate": "2026-07-29",
                "endDate": "2026-10-06"
            }
        ],
        "journeySourceVersion": 40
    }
}