[{"data":1,"prerenderedAt":317},["ShallowReactive",2],{"docs-nav-en":3,"docs-nav-zh":59,"docs-page-en-billing-and-credits":95,"docs-page-zh-billing-and-credits":215,"landing-footer-friend-links":314},[4,10,16,22,27,32,37,42,48,53],{"path":5,"title":6,"label":7,"description":8,"order":9},"/docs/introduction","web-nuxt template overview","Introduction","What the Nuxt template already ships today, and where to customize it.","1",{"path":11,"title":12,"label":13,"description":14,"order":15},"/docs/quick-start","Quick start for web-nuxt","Quick start","Go from first visit to live demo, dashboard activation, and launch-ready trust surfaces.","2",{"path":17,"title":18,"label":19,"description":20,"order":21},"/docs/billing-and-credits","Billing and credits","Billing","How pricing, credits, subscriptions, and order history fit together in the Nuxt template.","3",{"path":23,"title":24,"label":25,"description":26,"order":21},"/docs/skills-and-vibe-coding","Skills and vibe coding for web-nuxt","Skills & vibe coding","Use repo skills to customize apps/web-nuxt with prompt-driven edits instead of starting from a blank spec.",{"path":28,"title":29,"label":29,"description":30,"order":31},"/docs/auth-and-guest-mode","Auth and guest mode","Understand login, guest access, account conversion, and where each path should lead users.","4",{"path":33,"title":34,"label":34,"description":35,"order":36},"/docs/ai-playground","AI playground","The canonical AI entry in web-nuxt and how it relates to credits, keys, and guest access.","5",{"path":38,"title":39,"label":39,"description":40,"order":41},"/docs/support-and-refund","Support and refund","Where users should go for help, how refunds are handled, and what to expose on the public site.","6",{"path":43,"title":44,"label":45,"description":46,"order":47},"/docs/analytics","Analytics providers in web-nuxt","Analytics","Optional analytics support for GA4, Plausible, and Microsoft Clarity.","7",{"path":49,"title":50,"label":50,"description":51,"order":52},"/docs/footer-configuration","Footer configuration","Configure footer brand copy, contact email, social links, navigation columns, legal text, and copyright from zship.app.json.","8",{"path":54,"title":55,"label":56,"description":57,"order":58},"/docs/docs-system","How the built-in docs work","Docs system","The Nuxt Content docs setup inside web-nuxt and how to extend it.","9",[60,64,68,71,75,78,81,84,88,91],{"path":5,"title":61,"label":62,"description":63,"order":9},"web-nuxt 模板概览","模板概览","说明 web-nuxt 当前已经具备什么，以及主要改动入口在哪里。",{"path":11,"title":65,"label":66,"description":67,"order":15},"web-nuxt 快速开始","快速开始","从首次访问到真实演示、仪表盘激活路径与对外发布前检查清单。",{"path":17,"title":69,"label":69,"description":70,"order":21},"计费与积分","说明定价、积分、订阅与订单历史在 Nuxt 模板中的关系。",{"path":23,"title":72,"label":73,"description":74,"order":21},"web-nuxt 的 Skills 与 vibe coding","Skills 与 vibe coding","通过 repo 里的 skills，用自然语言驱动方式修改和自定义 apps/web-nuxt。",{"path":28,"title":76,"label":76,"description":77,"order":31},"登录与访客模式","说明登录、访客访问、账户升级以及这些路径应该把用户带到哪里。",{"path":33,"title":79,"label":79,"description":80,"order":36},"AI Playground","说明 web-nuxt 中统一 AI 入口与积分、API Key、访客会话之间的关系。",{"path":38,"title":82,"label":82,"description":83,"order":41},"支持与退款","说明用户应该去哪里求助、退款如何处理，以及公开站点应暴露哪些信任入口。",{"path":43,"title":85,"label":86,"description":87,"order":47},"web-nuxt 的 Analytics 支持","数据分析","说明 web-nuxt 目前如何接入 GA4、Plausible 和 Clarity。",{"path":49,"title":89,"label":89,"description":90,"order":52},"Footer 配置","通过 zship.app.json 配置 Footer 的品牌文案、联系邮箱、社交链接、导航栏目、法律声明与版权信息。",{"path":54,"title":92,"label":93,"description":94,"order":58},"内置 Docs 系统说明","Docs 系统","说明 web-nuxt 当前基于 Nuxt Content 的站内文档能力，以及如何继续扩展。",{"id":96,"title":18,"body":97,"description":20,"extension":209,"label":19,"meta":210,"navigation":211,"order":21,"path":17,"seo":212,"stem":213,"__hash__":214},"docsEn/docs/billing-and-credits.md",{"type":98,"value":99,"toc":197},"minimark",[100,104,109,138,142,157,161,175,179,184,187,191],[101,102,103],"p",{},"ZShip uses credits as the product-level spending unit and plans as the commercial packaging around those credits.",[105,106,108],"h2",{"id":107},"what-users-can-do","What users can do",[110,111,112,120,126,132],"ul",{},[113,114,115,116],"li",{},"Compare plans on ",[117,118,119],"code",{},"/pricing",[113,121,122,123],{},"Review current balance on ",[117,124,125],{},"/dashboard/credits",[113,127,128,129],{},"Inspect active subscription status on ",[117,130,131],{},"/dashboard/subscription",[113,133,134,135],{},"Review previous purchases on ",[117,136,137],{},"/dashboard/orders",[105,139,141],{"id":140},"how-the-flow-works","How the flow works",[143,144,145,148,151,154],"ol",{},[113,146,147],{},"The visitor chooses a plan on the pricing page.",[113,149,150],{},"Checkout is created through the pay-service proxy.",[113,152,153],{},"Successful payment updates subscription state and the credit ledger.",[113,155,156],{},"Dashboard pages read the latest balance and order records from the same backend state.",[105,158,160],{"id":159},"what-to-validate-before-launch","What to validate before launch",[110,162,163,166,169,172],{},[113,164,165],{},"Pricing labels and descriptions match the plans configured in the pay service.",[113,167,168],{},"Credit amounts are easy to understand from a user perspective.",[113,170,171],{},"Refund expectations are documented and linked from support.",[113,173,174],{},"The support team knows which cases should go through tickets versus payment provider portals.",[105,176,178],{"id":177},"common-launch-questions","Common launch questions",[180,181,183],"h3",{"id":182},"when-should-i-send-users-to-pricing","When should I send users to pricing?",[101,185,186],{},"Send users to pricing when they run out of credits, need a higher plan, or want to understand what each tier unlocks.",[180,188,190],{"id":189},"where-should-refund-requests-go","Where should refund requests go?",[101,192,193,194,196],{},"Use the support flow documented in ",[117,195,39],{},". The dashboard order history already exposes refund requests as a product-level action.",{"title":198,"searchDepth":199,"depth":199,"links":200},"",2,[201,202,203,204],{"id":107,"depth":199,"text":108},{"id":140,"depth":199,"text":141},{"id":159,"depth":199,"text":160},{"id":177,"depth":199,"text":178,"children":205},[206,208],{"id":182,"depth":207,"text":183},3,{"id":189,"depth":207,"text":190},"md",{},true,{"title":18,"description":20},"docs/billing-and-credits","kvoMcrbAYYAkYOZbghs9Qln_nRUoYaWk_PwVzwHRA4Y",{"id":216,"title":69,"body":217,"description":70,"extension":209,"label":69,"meta":311,"navigation":211,"order":21,"path":17,"seo":312,"stem":213,"__hash__":313},"docsZh/docs/billing-and-credits.md",{"type":98,"value":218,"toc":302},[219,222,225,248,251,265,268,282,285,289,292,296],[101,220,221],{},"ZShip 以前台的积分作为产品消耗单位，再用套餐和订阅来承载商业化。",[105,223,224],{"id":224},"用户能做什么",[110,226,227,233,238,243],{},[113,228,229,230,232],{},"在 ",[117,231,119],{}," 对比套餐",[113,234,229,235,237],{},[117,236,125],{}," 查看当前积分余额",[113,239,229,240,242],{},[117,241,131],{}," 查看订阅状态",[113,244,229,245,247],{},[117,246,137],{}," 查看购买记录",[105,249,250],{"id":250},"一次完整链路如何工作",[143,252,253,256,259,262],{},[113,254,255],{},"用户在定价页选择套餐",[113,257,258],{},"通过支付服务代理创建结账流程",[113,260,261],{},"支付成功后更新订阅状态与积分账本",[113,263,264],{},"仪表盘相关页面读取同一套后端数据并展示结果",[105,266,267],{"id":267},"上线前应重点确认",[110,269,270,273,276,279],{},[113,271,272],{},"套餐文案与支付后台配置保持一致",[113,274,275],{},"用户能清楚理解每个套餐对应多少积分",[113,277,278],{},"退款预期在支持文档中有明确说明",[113,280,281],{},"支持团队知道哪些问题走工单，哪些问题交给支付门户处理",[105,283,284],{"id":284},"常见产品决策",[180,286,288],{"id":287},"什么时候该把用户带去-pricing","什么时候该把用户带去 pricing？",[101,290,291],{},"当用户积分不足、套餐不匹配，或者需要先理解商业模式时，都应该把他们带到 pricing。",[180,293,295],{"id":294},"退款入口应该放在哪里","退款入口应该放在哪里？",[101,297,298,299,301],{},"建议统一走 ",[117,300,82],{}," 文档说明的路径。订单页已经提供了产品侧的退款申请动作。",{"title":198,"searchDepth":199,"depth":199,"links":303},[304,305,306,307],{"id":224,"depth":199,"text":224},{"id":250,"depth":199,"text":250},{"id":267,"depth":199,"text":267},{"id":284,"depth":199,"text":284,"children":308},[309,310],{"id":287,"depth":207,"text":288},{"id":294,"depth":207,"text":295},{},{"title":69,"description":70},"ourIIrZpOEvZ7fbh8tDtnP-nMU6Dpayq-8-EDLh7wA8",{"code":315,"data":316},200,[],1777195974407]