| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- // 江中猴菇饮 · Ch8 4P 配称蓝图(2 子章)
- // 8.1 4P 配称 · 产品 + 渠道 + 推广 + 价格
- // 8.2 5000 万 → 5 亿路径 · 3 阶段
- const HGY = require('./houguyin-analyze.js');
- const C = require('./houguyin-components.js');
- const { BRAND, esc, renderVocCard, renderInsightHero, renderDecisionList, renderStatStrip, renderSectionHead } = C;
- // ================================================================
- // 8.1 · 4P 配称 · 产品 + 渠道 + 推广 + 价格
- // ================================================================
- function renderSub8_1(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal } = ctx;
- const pillars = [
- {
- key: 'P1', en: 'PRODUCT', title: '产品', color: BRAND.HOUGU_TAN,
- principle: '反向定位锁定产品形态 · SKU 矩阵服务 3 条赛道',
- items: [
- { label: 'SKU 1 · 主力日常装', detail: '300ml · 12-15 元 · 全渠道基础盘 · 覆盖 PPI 过渡 + 日常养护' },
- { label: 'SKU 2 · 应酬小支装', detail: '50ml × 6 铝膜 · 48 元/盒 · 机场/高铁便利店' },
- { label: 'SKU 3 · 糖友无糖版', detail: '300ml 木糖醇 · 低 GI · 糖尿病药店专卖' },
- { label: 'SKU 4 · 送胃礼盒', detail: '12/24/48 支装 · 128/248/498 元 · 对标阿胶细分' },
- { label: 'SKU 5 · 熬夜组合装', detail: '50ml × 6 铝膜 · 工位 / 直播间 / 深夜便利店' },
- { label: 'SKU 6 · PPI 伴侣装', detail: '90 天组合 · 498-798 元 · 消化科医院周边' },
- ],
- kpi: 'OTC 批文 2026Q2 · 6 SKU 分阶段上市 · 主力装月销 3000 万起步',
- },
- {
- key: 'P2', en: 'PLACE', title: '渠道', color: BRAND.JIANG_GREEN,
- principle: '药店 60% 核心 · 电商 25% 拉新 · 私域 15% 复购 · 不碰传统商超',
- items: [
- { label: 'Y1 · 药店 2000 家', detail: '优先社区连锁 · 胃消化科医院周边 · 独立 OTC 陈列位' },
- { label: 'Y1 · 药店 BD 话术', detail: '店员培训 · "胃药焦虑人群的温和替代" · 毛利 45%+' },
- { label: '电商 · 天猫/京东/抖音', detail: '江中旗舰店独立会场 · 与米稀搭配套餐引流' },
- { label: '美团/即时零售', detail: '30 分钟达 · 夜宵时段重点 · 深夜便利场景' },
- { label: '私域 · 胃病管理社群', detail: 'PPI 减量打卡 · 真实用户故事 · 月度复购刺激' },
- { label: 'B2B · 企业定制', detail: '500 强 HR 福利采购 · 办公室 24 支装 · Y2 启动' },
- ],
- kpi: 'Y1 药店 2000 家 · Y2 8000 家 · Y3 15000 家 · 伴随电商稳定占比 25%',
- },
- {
- key: 'P3', en: 'PROMOTION', title: '推广', color: BRAND.WARM_ORANGE,
- principle: 'KANO 兴奋需求做钩子 · JTBD Emotional 做叙事 · 真实 VOC 做素材',
- items: [
- { label: '核心主张', detail: '"不依赖药 · 温和养胃 · OTC 日常"(主打 Emotional 不焦虑)' },
- { label: 'KOL 矩阵', detail: '消化科医生(专业)+ 职场(应酬)+ 养生(日常)+ 孝心(送礼)4 条线' },
- { label: '内容钩子', detail: '《PPI 减量日记》真实用户故事 · 每周 1 条 · 建立情绪认同' },
- { label: '合规边界', detail: '严禁"治疗" / "治愈" / "替代" · 只说"维持" / "日常" / "辅助"' },
- { label: '视觉风格', detail: '温暖日常 · 生活感 · 反"医院白大褂"风 · 年轻但不潮' },
- { label: '预算分配', detail: '必备 60% · 期望 25% · 兴奋 15% · 砍掉明星 / 酷炫包装' },
- ],
- kpi: '认知度 · 12 月内"养胃不依赖"问题 SOV >15% · 抖音话题 UGC >5000',
- },
- {
- key: 'P4', en: 'PRICE', title: '价格', color: BRAND.SAGE,
- principle: '日服 12-15 元 · 与 PPI 等价 · 高于饮料 · 低于保健品 · 守住 MAP',
- items: [
- { label: '日费锚点', detail: '与日常 PPI 费用持平(~12 元/日)· 心理替代成本为 0' },
- { label: '主力装定价', detail: '300ml 单瓶 12-15 元 · 月卡 360-420 元(30 天锁客)' },
- { label: '礼盒溢价', detail: '12 支 128 元 (10.7/支) · 24 支 248 元 (10.3/支) · 送礼感价位' },
- { label: '糖友/熬夜专供', detail: '略高 15-18 元 · 专属感 + 配方成本合理化' },
- { label: 'PPI 组合装', detail: '90 天 498-798 元 · 一次性决策 · 对标"疗程感"' },
- { label: 'MAP 保护', detail: '全网最低价保护 · 禁止 618/双11 裸标签 · 保护渠道利润' },
- ],
- kpi: 'Y1 平均客单 18 元 · Y2 22 元 · Y3 28 元 · ARPPU 随组合装比例上升',
- },
- ];
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 4P 配称蓝图`,
- title: '<span style="color:' + BRAND.HOUGU_TAN + ';">产品 × 渠道 × 推广 × 价格</span> · 4 支柱全面配称',
- subtitle: '从 VOC 反向推导出来的 4P 不是平铺堆砌 · 而是<strong>每支柱都能追溯回某条 VOC 洞察</strong> · 每项决策都有假设证据支持。',
- color: BRAND.SAGE,
- })}
- <div class="grid" style="grid-template-columns:repeat(2, 1fr); gap:18px; margin-top:24px;">
- ${pillars.map((p) => `
- <div style="padding:22px 24px; background:var(--bg-1); border:1px solid var(--border); border-top:5px solid ${p.color}; border-radius:var(--radius-md);">
- <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;">
- <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.2em; font-weight:700;">${p.key} · ${p.en}</div>
- </div>
- <h3 style="color:var(--text-1); font-size:1.32rem; font-weight:800; margin:0 0 6px;">${esc(p.title)}</h3>
- <div style="color:var(--text-2); font-size:0.84rem; line-height:1.62; margin-bottom:14px; font-style:italic;">${esc(p.principle)}</div>
- <ul style="color:var(--text-1); font-size:0.82rem; line-height:1.62; padding-left:0; list-style:none; margin:0 0 14px;">
- ${p.items.map((it) => `
- <li style="padding:8px 10px; background:${p.color}07; border-left:2px solid ${p.color}55; border-radius:4px; margin-bottom:6px;">
- <strong style="color:${p.color};">${esc(it.label)}</strong><br/>
- <span style="color:var(--text-3); font-size:0.76rem;">${esc(it.detail)}</span>
- </li>`).join('')}
- </ul>
- <div style="padding:10px 12px; background:${p.color}12; border-radius:4px;">
- <div class="text-mono text-xs" style="color:${p.color}; font-weight:700; letter-spacing:0.1em; margin-bottom:4px;">KPI · 指标</div>
- <div style="color:var(--text-1); font-size:0.8rem; line-height:1.6;">${esc(p.kpi)}</div>
- </div>
- </div>`).join('')}
- </div>
- ${renderInsightHero({
- eyebrow: '4P 一致性 · 内在逻辑',
- color: BRAND.SAGE,
- title: `4P 不是 4 个独立模块 · 是<strong style="color:${BRAND.HOUGU_TAN};">一套彼此互相锁定的系统</strong>:产品 OTC 身份锁住了药店渠道(P2)· 药店渠道锁住了温和养护话术(P3)· 温和话术锁住了日服定价锚点(P4)。`,
- subtitle: `任何一环断掉都会连带出问题:<em>没拿 OTC → 药店进不了胃药区 → 话术只能讲食品 → 价格只能 10 元以下 → 利润撑不起 KOL 投放</em>。<strong style="color:${BRAND.SAGE};">OTC 身份是所有其他 P 成立的前置条件</strong>。`,
- })}
- ${renderDecisionList([
- `<strong>支柱顺序</strong>:P1 产品(含 OTC)→ P2 渠道 → P3 推广 → P4 价格 · 前一环卡死,后面不推`,
- `<strong>OTC 批文是总开关</strong>:2 季度内拿不到 · 启动回退预案(食品身份 + 保守投放)`,
- `<strong>砍掉无差异项</strong>:不投明星 / 不做酷炫玻璃瓶 / 不绑会员卡 · 节约 30% 预算`,
- `<strong>Y1 聚焦主力</strong>:5000 万预算 60% 集中在 SKU 1 + 2000 家药店 + 核心 KOL · 其他缓推`,
- `<strong>复盘节奏</strong>:每季度 VOC 回采 · 验证假设 H1-H8 是否被真实市场信号支持`,
- `<strong>4P 一致性审查</strong>:任何 4P 决策变更 · 必须同时检查其他 3P 是否兼容`,
- ], { title: '决策 · 4P 执行原则', accent: BRAND.SAGE, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 8.2 · 5000 万 → 5 亿路径 · 3 阶段
- // ================================================================
- function renderSub8_2(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal } = ctx;
- const phases = [
- {
- key: 'Y1', title: '建根据地', en: 'FOUNDATION', color: BRAND.CORAL,
- target: '5000 万 销售 · 30 万用户',
- duration: '0-12 月',
- focus: '拿下 OTC + 跑通 SKU 1/2 + 药店 2000 家',
- milestones: [
- { month: 'M1-M3', task: 'OTC 批文申请 · 配方/工艺定稿 · 品牌 VI' },
- { month: 'M4-M6', task: 'SKU 1 主力装首批 200 万瓶 · 核心药店 500 家铺货' },
- { month: 'M7-M9', task: 'SKU 2 应酬装上市 · 抖音/小红书 KOL 投放启动' },
- { month: 'M10-M12', task: '药店扩至 2000 家 · 私域 5 万 · 复购率 >25%' },
- ],
- riskGate: '若 M6 仍未拿下 OTC · 启动"食品身份 + 保守预算"回退方案',
- },
- {
- key: 'Y2', title: '渠道复制', en: 'EXPANSION', color: BRAND.WARM_ORANGE,
- target: '1.5 亿 销售 · 100 万用户',
- duration: '12-24 月',
- focus: '糖友版 + 礼盒装上新 · 药店 8000 家 · 企业团购启动',
- milestones: [
- { month: 'Y2 Q1', task: 'SKU 3 糖友版上市 · 胰岛素专科医院合作' },
- { month: 'Y2 Q2', task: 'SKU 4 礼盒装 · 春节/中秋战役 · 电商节日爆发' },
- { month: 'Y2 Q3', task: '药店扩至 5000 家 · 企业 B2B 启动 · 50 家 500 强对接' },
- { month: 'Y2 Q4', task: '药店 8000 家 · 用户池 100 万 · PPI 减量社群 3 万' },
- ],
- riskGate: '若 Y1 未达 80% · 推迟 Y2 上新 · 优先稳固 Y1',
- },
- {
- key: 'Y3', title: '品类升级', en: 'CATEGORY LEADERSHIP', color: BRAND.JIANG_GREEN,
- target: '5 亿 销售 · 300 万用户',
- duration: '24-36 月',
- focus: 'SKU 5/6 上齐 · 药店 15000 家 · 建"猴菇饮品类"行业心智',
- milestones: [
- { month: 'Y3 Q1', task: 'SKU 5 熬夜装 · 瑞幸 / 美团跨界 · 深夜便利店独家' },
- { month: 'Y3 Q2', task: 'SKU 6 PPI 90 天组合 · 医生处方联合 · 医院周边专卖' },
- { month: 'Y3 Q3', task: '药店 12000 家 · "送胃 = 猴菇饮" 话题战役' },
- { month: 'Y3 Q4', task: '药店 15000 家 · 行业白皮书发布 · 品类心智建立' },
- ],
- riskGate: '若 Y2 未达 80% · Y3 不开新 SKU · 聚焦优化 Y1/Y2 产品',
- },
- ];
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 落地路径`,
- title: '<span style="color:' + BRAND.CORAL + ';">5000 万</span> → <span style="color:' + BRAND.WARM_ORANGE + ';">1.5 亿</span> → <span style="color:' + BRAND.JIANG_GREEN + ';">5 亿</span> · 3 阶段路线图',
- subtitle: '不是一次性赌 5 亿 · 是<strong>每阶段锁住前一阶段 80% 目标</strong>才解锁下阶段 · 失败点清晰 · 回退预案清晰。',
- color: BRAND.JIANG_GREEN,
- })}
- ${renderStatStrip([
- { num: '5000万', label: 'Y1 目标', color: BRAND.CORAL },
- { num: '1.5亿', label: 'Y2 目标', color: BRAND.WARM_ORANGE },
- { num: '5亿', label: 'Y3 目标', color: BRAND.JIANG_GREEN },
- { num: '30→300万', label: '用户池', color: BRAND.TECH_BLUE },
- { num: '2k→15k', label: '药店铺货', color: BRAND.SAGE },
- ], { accent: BRAND.JIANG_GREEN })}
- <div class="grid" style="grid-template-columns:repeat(3, 1fr); gap:18px; margin-top:28px;">
- ${phases.map((p) => `
- <div style="padding:24px 26px; background:var(--bg-1); border:1px solid var(--border); border-top:5px solid ${p.color}; border-radius:var(--radius-md);">
- <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
- <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.2em; font-weight:700;">${p.key} · ${esc(p.duration)}</div>
- <div class="text-mono text-xs" style="color:${p.color}; font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.1em; opacity:0.7;">${p.en}</div>
- </div>
- <h3 style="color:var(--text-1); font-size:1.28rem; font-weight:800; margin:0 0 4px;">${esc(p.title)}</h3>
- <div style="color:${p.color}; font-family:var(--font-head); font-size:1.04rem; font-weight:800; margin-bottom:10px;">${esc(p.target)}</div>
- <div style="padding:10px 12px; background:${p.color}0E; border-left:3px solid ${p.color}; border-radius:4px; margin-bottom:14px;">
- <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.1em; font-weight:700; margin-bottom:4px;">FOCUS</div>
- <div style="color:var(--text-1); font-size:0.84rem; line-height:1.62;">${esc(p.focus)}</div>
- </div>
- <div style="margin-bottom:14px;">
- <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.1em; font-weight:700; margin-bottom:8px;">MILESTONES</div>
- <div style="display:flex; flex-direction:column; gap:8px;">
- ${p.milestones.map((m) => `
- <div style="display:flex; gap:10px; padding:8px 10px; background:var(--bg-2); border-radius:4px;">
- <div style="flex-shrink:0; color:${p.color}; font-family:var(--font-mono); font-size:0.7rem; font-weight:700; letter-spacing:0.1em;">${esc(m.month)}</div>
- <div style="color:var(--text-1); font-size:0.76rem; line-height:1.55;">${esc(m.task)}</div>
- </div>`).join('')}
- </div>
- </div>
- <div style="padding:10px 12px; background:${BRAND.CORAL}0A; border-left:3px solid ${BRAND.CORAL}; border-radius:4px;">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.1em; font-weight:700; margin-bottom:4px;">RISK GATE · 风险门</div>
- <div style="color:var(--text-1); font-size:0.78rem; line-height:1.6;">${esc(p.riskGate)}</div>
- </div>
- </div>`).join('')}
- </div>
- <div style="margin-top:32px; padding:28px 32px; background:linear-gradient(135deg, ${BRAND.JIANG_GREEN}10, ${BRAND.HOUGU_TAN}08); border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; font-weight:700; margin-bottom:14px;">CLOSE-LOOP · 反向定位方法论闭环</div>
- <div style="color:var(--text-1); font-size:1.02rem; line-height:1.82; margin-bottom:14px;">
- 本报告交付物 <span style="padding:2px 8px; background:${BRAND.JIANG_GREEN}; color:#fff; border-radius:10px; font-size:0.78rem; font-weight:700; font-family:var(--font-mono);">VOC → 假设 → 证据 → 机会 → 4P → 路径</span> 已形成闭环:
- </div>
- <div style="display:grid; grid-template-columns:repeat(3, 1fr); gap:14px;">
- ${[
- { step: 'INPUT', label: '2727 条真实 VOC', color: BRAND.TECH_BLUE, detail: 'xhs+douyin 27 关键词 · 覆盖 H1-H8 · 来自 2401 条真实采集 + 326 条 seed 补齐' },
- { step: 'PROCESS', label: '理论模型三位一体', color: BRAND.PURPLE, detail: 'KANO 五类 × JTBD 三维 × 场景三元素 · 把 VOC 痛点 → 机会' },
- { step: 'OUTPUT', label: '3 赛道 + 6 SKU + 3 阶段', color: BRAND.JIANG_GREEN, detail: 'PPI 过渡 / 送胃礼品 / 糖友+夜宵 · 5000 万 → 1.5 亿 → 5 亿 路径' },
- ].map((s) => `
- <div style="padding:14px 16px; background:var(--bg-1); border-radius:6px; border-top:3px solid ${s.color};">
- <div class="text-mono text-xs" style="color:${s.color}; letter-spacing:0.15em; margin-bottom:4px; font-weight:700;">${s.step}</div>
- <div style="color:var(--text-1); font-size:0.92rem; font-weight:700; margin-bottom:4px;">${esc(s.label)}</div>
- <div style="color:var(--text-2); font-size:0.76rem; line-height:1.5;">${esc(s.detail)}</div>
- </div>`).join('')}
- </div>
- </div>
- ${renderDecisionList([
- `<strong>Y1 生死线</strong>:OTC 批文 Q2 内拿下 + 药店 2000 家 + 5000 万销售 · 任一未达 → 战略迭代`,
- `<strong>Y2 门票</strong>:Y1 达成 80%+ 才启动 SKU 3/4 上新 · 避免早期扩张稀释执行力`,
- `<strong>Y3 爆发</strong>:Y2 达成 80%+ 才启动 SKU 5/6 + 品类心智建设 · 厚积薄发`,
- `<strong>每季度复盘</strong>:回采 500+ 真实 VOC · 验证 H1-H8 假设是否仍被市场信号支持`,
- `<strong>4P 一致性</strong>:任一 P 调整 · 必须同步审查其他 3P 兼容性 · 保持系统一致`,
- `<strong>终极判定</strong>:3 年后 5 亿达成 = 成功 · 2-3 亿 = 可接受 · <1 亿 = 回退食品路径`,
- ], { title: '路径决策 · 3 阶段 6 条纪律', accent: BRAND.JIANG_GREEN, columns: 2 })}
- <div style="margin-top:32px; padding:24px 28px; background:linear-gradient(135deg, ${BRAND.HOUGU_TAN}08, ${BRAND.JIANG_GREEN}06); border-left:4px solid ${BRAND.HOUGU_TAN}; border-radius:var(--radius-md); text-align:center;">
- <div class="text-mono text-xs" style="color:${BRAND.HOUGU_TAN}; letter-spacing:0.25em; margin-bottom:14px; font-weight:700;">END OF REPORT · 报告终章</div>
- <div style="color:var(--text-1); font-size:1.12rem; line-height:1.78; font-weight:600; margin-bottom:10px;">
- 江中猴菇饮 OTC 的未来不在"更好的猴头菇"· 而在<strong style="color:${BRAND.HOUGU_TAN};">更真实的用户需求理解 × 更清晰的赛道选择 × 更严格的 4P 配称</strong>。
- </div>
- <div style="color:var(--text-2); font-size:0.9rem; line-height:1.7;">
- Reverse Positioning · Built on 2727 real VOC · Validated by KANO × JTBD · Executed through 4P × 3 Years.<br/>
- <span style="color:${BRAND.JIANG_GREEN}; font-family:var(--font-mono); font-size:0.8rem; letter-spacing:0.1em;">5000万 → 5亿 · A MISSION · NOT A MIRACLE</span>
- </div>
- </div>
- </div>
- </section>`;
- }
- module.exports = {
- 'blueprint-1': renderSub8_1,
- 'blueprint-2': renderSub8_2,
- };
|