目的:把”B2b/B2c 联系方式数据驱动”和”CYS 工具箱(shipping_rates 新表 + 客户发票系统 + 客户运营)“两条线归回同一个项目,给出完整的目标 / 状态 / 缺口 / 明天计划。 作用:明早开会 / 用户回来 / 任何接手者都能直接看。 更新规则:重大变化(部署 / DDL / 决策)时,更新对应章节 + 顶部日期。
从速卖通 / Aliyun 等平台 + 多邮箱历史邮件里,把 5000+ B 端客户沉淀到自有私域;用米思米模式(标准化产品 + 一站式购买 + 多运输渠道 + 本币收款)的产品站把客户从平台迁出;用 AI-Native 地基让运营团队能主动触达客户。
| 维度 | 数据 |
|---|---|
| 业务 | CYS Bearing(轴承 / 导轨 / 丝杆 / 铝型材 工贸一体) |
| 创始人 | 2009 年至今 17 年 |
| 历史客户 | ~5000 个独立海外 B 端客户 |
| 历史订单 | 10万+ 行 |
| 历史邮件 | 10万+ 封 |
| 客单价 | $7 - $276(小额,靠量) |
| 地区 | 美/欧/南美为主,60+ 国家 |
| 商业模式 | 工厂直供 + 本币收款 0-1% + DDP 一口价 |
| 痛点 | 平台抽成 5-15% + 客户归平台 + 政策风险 |
| 阶段 | 内容 | 状态 | 备注 |
|---|---|---|---|
| Phase 1 | v3 网站搭建 + 部署(13 HTML + 12 JSON + 13 JS + Cloudflare Pages) | ✅ 完成 | 2026-09-10 完成 |
| Phase 2 | 邮件系统(Cloudflare Worker + Resend + 13 个 API + D1 迁移) | ✅ 完成 | 2026-09-11 完成 |
| Phase 3 | D1 完整迁移(shipping_rates / customers / invoices / customer_groups / industries / product_tags 等)+ Worker ensureSchema 自动建表 | ✅ 部分完成 | 数据层完整,代码层部分 |
| Phase 4 | 客户发票系统 + 询盘提交 + PDF 附件 + AI 触达(远期 3-6 月) | ❌ 未开始 | 表已建(customers/invoices/invoice_items),前端未对接 |
Phase 3 收尾 + Phase 4 启动前的过渡期: - ✅ Phase 3 数据层完整(D1 23 个表) - ⚠️ Phase 3 代码层:B2c(联系方式数据驱动)昨晚完成;其他模块待续 - ❌ Phase 4(客户发票 + 询盘)未启动
部署:
| 项 | 值 |
|---|---|
| Pages project | cysbearing |
| 最新 deployment | 80c61e47-3908-4b2e-991f-8730bffcc31d(active production
/ main branch) |
| PRE_ID(active 前) | 1d887757-c2d6-4074-85a4-1a7f70ff8007 |
| Custom domain | cysbearing.com |
文件结构:
/workspace/site_final/v3/
├── index.html / catalog.html / product.html / scene.html / cart.html / invoice.html
├── checkout.html / login.html / my_account.html
├── shipping.html / payment_guide.html / privacy.html / returns.html
├── about.html / customer.html / customers.html / industries.html / industry.html
├── admin.html / admin-login.html
├── materials/ceramic.html # 轻量材质详情页(/materials/ceramic 301 redirect)
├── css/ (15 个 CSS)
├── js/ (26 个 JS 模块)
├── functions/ (_middleware.js, sitemap.xml.js)
├── migrations/ (4 个 SQL)
├── config/ (8 个 JSON + 2 个 .bak)
├── docs/ (19 个 .md + CSV 模板)
└── _redirects / wrangler.toml / robots.txt / sitemap.xml / llms.txt
模块化原则(已实施): - ✅
数据驱动架构:所有客户可见数据 → D1(不是 JSON 文件) - ✅
单文件真相原则:价格 / 银行 / 政策 / 运费 / 国家 都集中在 1 个 D1 表 -
✅ 缓存破坏:?v=20260926 强制刷新
已完成项: - ✅ Phase 1(v3 网站搭建 + 部署) - ✅
Phase 2(13 个 Worker API + D1 迁移) - ✅ B2c 批 1(D1 备份 +
ALTER + UPDATE):shipping_methods 加 icon 列 +
shipping_info.metadata 删除 methods 字段 + 3 张备份表 - ✅ B2c
批 2(后端 /api/shipping-methods):Worker NEW_ID
afd68093-d4dc-4c3b-b32b-7381974bb549 - ✅ B2c 批
3(前端 5 文件改动):policy.js + data.js + 3 HTML
placeholder,Pages NEW_ID
80c61e47-3908-4b2e-991f-8730bffcc31d
cys-email)部署:
| 项 | 值 |
|---|---|
| Worker | cys-email |
| 默认 URL | https://cys-email.tuoxiaomachine.workers.dev |
| Custom domain | email.cysbearing.com |
| 最新 deployment | afd68093-d4dc-4c3b-b32b-7381974bb549(含
/api/shipping-methods) |
| PRE_ID | 6175c287-50ed-49c9-96a3-6aa9881923b6(title_en
fix) |
API 端点(24 个 + B2c 新加 1 个 = 25 个):
| 类别 | 端点 | 用途 |
|---|---|---|
| 邮件 | POST /send |
给客户发订单确认 |
POST /notify |
给 admin 发新订单通知 | |
POST /admin/request-link |
admin 登录链接请求 | |
POST /admin/verify |
admin token 验证 | |
| 公共数据 | GET /api/products / /api/products/slug/:s
/ /api/products/:sku |
产品 |
GET /api/faqs |
FAQ | |
GET /api/categories |
分类 | |
GET /api/countries |
国家 | |
GET /api/banks |
银行账户 | |
GET /api/shipping |
国家×运输方式(含 shipping_methods + shipping_rates JOIN) | |
GET /api/shipping-methods (B2c
新加) |
全局运输方式(archived_at IS NULL + enabled=1) | |
GET /api/scenes |
应用场景 | |
GET /api/hot-products |
热卖产品 | |
GET /api/type-templates |
类型模板 | |
GET /api/policies |
政策文案 | |
GET /api/settings |
全局设置(邮箱/电话/WhatsApp/invoice prefix) | |
GET /api/customer-groups /
/api/customer-groups/:id |
客户分组 | |
GET /api/industries /
/api/industries/:id |
行业 | |
| 报价单 | POST /api/quotations |
创建报价 |
POST /api/quotations/:token/accept |
接受报价 | |
POST /api/quotations/:token/reject |
拒绝报价 | |
GET /api/quotations/:token |
查看报价 | |
POST /api/display-spec |
display spec 计算 | |
| Admin | /api/admin/products POST/PUT/DELETE |
产品 CRUD |
/api/admin/faqs POST |
FAQ 创建 | |
/api/admin/banks POST/PUT |
银行 CRUD | |
/api/admin/shipping-methods GET/PUT |
shipping_methods 编辑 | |
| Cron | 0 * * * * |
清理 used_tokens > 24h |
lib/ 模块: -
banks.js / countries.js / invoice-no.js / totals.js / display-spec.js / pricing-engine.js / weight-engine.js / email-builders.mjs / generate-pdf.js
已完成项: - ✅ 13 个公共 API + Cron Trigger + email-builder + PDF 生成 - ✅ ensureSchema 自动建 customer_groups / industries / product_tags - ✅ B2c Step 6 /api/shipping-methods
规模:23 个表(4 个用户系统 + 1 个发票系统 + 1 个运费细化 + 12 个产品业务 + 5 个辅助 + 3 张 B2c 备份)
核心表 + 实测行数(2026-09-18 22:09 实测):
| 表 | 行数 | 用途 | 阶段 |
|---|---|---|---|
| 客户发票系统 | |||
customers |
1 | 客户主档(email 主键,含 wechat/whatsapp/consent) | Phase 4 |
invoices |
0 | 发票(含 type: quotation/proforma/commercial/invoice + status 状态机 + 银行快照) | Phase 4 |
invoice_items |
0 | 发票行项 | Phase 4 |
invoice_status_log |
0 | 发票状态变更日志 | Phase 4 |
| 运费细化 | |||
shipping_rates |
20 | 国家×运输方式×重量档(cost_cny + margin_pct + sale_price_usd) | Phase 3 |
shipping_rate_changes |
0 | 运费变更审计日志 | Phase 3 |
shipping_methods |
4 (active 3) | 全局运输方式定义(air_parcel / sea_freight / express_dhl + small_packet archived) | ✅ |
shipping |
1 | 老表(legacy fallback,仅 US) | legacy |
| 产品业务 | |||
products |
31 | 产品主表(含 weight_g 100% 填充,charge_type=‘per_pc’ 全部) | ✅ |
categories |
18 | 双层分类树(B/B-BB/B01 等) | ✅ |
countries |
12 | 国家列表(US/MX/CA/BR/DE/FR/IT/ES/NL/PL/GB/AU) | ✅ |
banks |
1 | 银行账户(保留 usd-worldfirst-chase,其他 4 个软删) | ✅ |
scenes |
8 | 应用场景(3D打印/CNC/自动化等) | ✅ |
faqs |
19 | FAQ | ✅ |
hot_products |
1 | 热卖产品配置(5 SKU) | ✅ |
type_templates |
2 | 类型模板(B01 + B10) | ✅ |
policy_texts |
8 | 政策文案(payment_rules / home_highlights / payment_guide_intro / shipping_info / payment_guide / privacy / returns / stock_lead_time) | ✅ |
| 客户运营 | |||
customer_groups |
5 | 客户分组(cg-maintenance / cg-oem / cg-integrator / cg-diy / cg-quote) | Phase 3 |
industries |
9 | 行业 | Phase 3 |
product_tags |
239 | 产品×标签 many-to-many(产品分类标签 + 行业标签) | Phase 3 |
| 辅助 + B2c 备份 | |||
settings |
12 | 全局设置(support_email/phone/whatsapp + invoice_prefix_*) | ✅ |
used_tokens |
0 | admin 一次性 token | ✅ |
_cf_KV |
- | Cloudflare KV | ✅ |
shipping_methods_backup_20260918 |
4 | B2c 备份 | temp |
policy_texts_backup_20260918 |
8 | B2c 备份 | temp |
settings_backup_20260918 |
12 | B2c 备份 | temp |
已完成项: - ✅ Phase 2 迁移:products / faqs / categories / countries / banks / shipping - ✅ Phase 2 迁移:scenes / hot_products / type_templates / policy_texts - ✅ B2a 9 settings(support_email/phone/whatsapp + invoice_prefix_default/po/quotation/pi/ci + quote_required_above_mm) - ✅ B2 3 policy(payment_rules / home_highlights / payment_guide_intro) - ✅ 4 banks 软删 + small_packet 软删 - ✅ shipping_rates 17 列 schema + 20 行数据(独立于 shipping_methods) - ✅ customers / invoices / invoice_items / invoice_status_log schema(决策 3 + 决策 6) - ✅ customer_groups / industries / product_tags schema(Phase 3 客户运营)
未完成项: - ❌ invoices 无数据(无前端创建流程) - ❌ shipping_rates 前端未消费(handleApiShipping 已 JOIN,但 cart / invoice.js 不读它) - ❌ customers 表只有 1 行测试数据 - ❌ used_tokens = 0(admin 链接请求流程未实测)
/workspace/site_final/v3/docs/(19 个
.md + CSV 模板):
| 文档 | 大小 | 用途 |
|---|---|---|
MASTER_DOCUMENT.md |
v4.0 | 项目理论 + 使用手册 + 目的(主文档) |
TECHNICAL_MANUAL.md |
- | 核心函数 + 修复记录 + 待办决策 |
OPERATIONS_HANDBOOK.md |
- | 操作员手册 |
ARCHITECTURE.md |
- | 项目结构 + 设计决策 |
DECISIONS_LOG.md |
决策 1-38 | 所有关键决策(运费 / 报价单 / 软删 / 模块化 / 发票 / B2a / B2c / B2b / 6 规则 / 25-26 token) |
ISSUES.md |
14 问题 + 收工总结 | 现场问题 + 修复 |
FINAL_DELIVERY.md |
- | Phase 1+2 整合 |
PHASE2_OPERATIONS.md |
- | 邮件系统运维 |
PRODUCT_UPLOAD_SOP.md |
- | 产品上传 SOP(含 image/name 字段缺失警告) |
PRODUCT_DATA_TEMPLATE.md /
products-import-template.csv /
products-import-example.csv |
- | 产品批量导入模板 |
PRODUCT_BULLETS_GUIDE.md |
- | 8 Key Features SEO 长尾词 |
PRODUCT_SEO_GEO_GUIDE.md |
- | 产品页 SEO/GEO 优化 |
PASSTHROUGH_TEMPLATES.md |
- | 用户粘贴 AI 输出的标准格式 |
CROSS_AI_COLLAB_SOP.md |
- | 多 AI 协作流程 |
CHAT_RECORD.md |
- | 9-10 到 9-14 完整聊天记录 |
DOCS_INDEX.md / README.md |
- | 文档索引 |
/workspace/(项目文档):
| 文档 | 用途 |
|---|---|
PROJECT_MASTER_PLAN.md |
v1.10 项目主纲领 |
PROJECT_DERIVATION.md |
项目推导史(5 层 L1-L5) |
customer_system_v1_design.md |
客户系统设计 v1.0 |
START_HERE.md / INDEX.md /
TEST_CHECKLIST.md |
新人必读 |
PRODUCT_STRATEGY.md /
CATEGORY_STRUCTURE.md /
CATEGORY_STRATEGY_PHASED.md |
产品策略 |
OPERATIONS_MANUAL.md |
业务操作手册 |
E2E_TEST_PLAN.md |
11 脚本端到端测试 |
BULK_UPLOAD_PLAN.md |
Excel 批量导入方案 |
PRICE_CONSOLIDATION.md |
价格统一工作流 |
SHIPPING_CONFIG_GUIDE.md |
运费配置 |
POC1_EMAIL_VERIFICATION.md |
邮箱真实性验证 |
MARKETING_STRATEGY.md /
OUTREACH_STRATEGY.md |
营销 + 主动触达 |
WEBSITE_DESIGN.md |
网站设计推导 |
EXTENSIBILITY.md |
框架扩展地图 |
CERAMIC_6200_BATCH_PLAN.md |
25 SKU 陶瓷 6200 入库计划 |
| 缺口 | 现状 | 影响 | 状态 |
|---|---|---|---|
| 客户迁入(主流程) | customers 表只有 1 行测试 | 整个私域目标无法启动 | ❌ 未开始 |
| invoices 创建流程 | invoices 0 行,前端无创建按钮 | Phase 4 阻塞 | ❌ 未开始 |
| PDF 附件 | lib/generate-pdf.js 已写但沙箱自检未确认 |
客户拿不到附件 | ⚠️ 待用户验证 |
| 询盘提交到 D1 | workers/quote-submit.js 已写但未部署 |
询盘进 D1 而不是邮件 | ❌ 未开始 |
| 缺口 | 现状 | 影响 | 状态 |
|---|---|---|---|
| B2b-1b-ii(8 footer 数据驱动) | customer / customers / industries / industry / login / my_account / returns(page body)/ invoice footer 仍硬编码 | 全站联系方式不彻底 | ❌ 未开始 |
| B2b-1b-iii(about.html Contact 卡 + 5 处特殊) | about.html 98-102 + invoice.html 57 + 3 D1 settings + renderContactCard | 卡片硬编码 | ❌ 未开始 |
| B2b-2(21 处 JS fallback) | admin.js / cart-page.js / cart.js / catalog.js / display-spec.js /
home.js / invoice.js / main.js 等都有
|| 'Contact: sales@cysbearing.com' |
改邮箱不会自动同步 | ❌ 未开始 |
| shipping_rates 前端消费 | handleApiShipping 已 JOIN,但 cart/invoice.js 不读 tier 详细 | 价格细化表白建 | ⚠️ |
| 3 icon = NULL | air_parcel / sea_freight / express_dhl 都没图标 | 视觉降级(📦 fallback) | ⏳ 等用户提供 |
| about.html 卡片文案 | 4 文案还含 “rail / small_packet” 旧数据 | 显示过时运输方式 | ⚠️ |
| 缺口 | 现状 | 优先级 |
|---|---|---|
| D1 备份表清理 | 3 张 _backup_20260918 表稳定后可 DROP |
低 |
| B2b-2(materialBadgeHtml 4 MAP key 移到 D1) | 内部硬编码 | 低 |
| B2b-2(email 模板 30+ 硬编码字符串 → policy_texts.email_templates) | 内部硬编码 | 低 |
| B2b-2(material bullets / FAQ 4 材料 × 4 文案) | 内部硬编码 | 低 |
| icon 数据 | 3 行 icon = NULL | 等用户提供 |
| Admin “政策管理” tab | policy_texts CRUD UI | 中 |
| lib/freight-engine.js 迁移 | 运费细化引擎 | 中 |
| Module 2 engine(per_meter / quote_only) | schema 已预留 | 中 |
| 决策点 | 选项 | 影响 |
|---|---|---|
| B2b-1b-ii 8 footer 是否继续 | a) 接受 / b) 调整范围 | 决定下一步执行 |
| B2b-1b-iii 是否继续 | a) 接受 / b) 调整 | 决定 about.html 卡片 + 3 settings + renderContactCard 范围 |
| icon 数据 | a) 等用户提供 / b) 我用默认 emoji | 决定 shipping_methods icon 列填充 |
| about.html 卡片文案 | a) 等用户提供 / b) 我用现有 3 模式 | 决定卡片展示内容 |
| Phase 4 优先级 | a) 现在启动 / b) 等 Phase 3 全部完成 | 决定 invoices + 询盘 + PDF 启动时机 |
| WeChat 裸号处理 | a) 加 +86 前缀 / b) 整段删除 / c) 不动 | 决定 about.html + invoice.html 等的 WeChat 字段 |
| 25 SKU 陶瓷 6200 入库 | a) 一次性 INSERT 25 行 / b) 分批 / c) 等用户 Excel | 决定批量导入时机 |
用户指出:之前的话题被切成”B2c 网站”和”CYS 工具箱”两条线,导致上下衔接不一致。
实际上这两条线始终是同一个项目:
CYS Bearing 项目
├── 网站层(cysbearing.com,Cloudflare Pages)
│ ├── Phase 1: v3 网站搭建(HTML/CSS/JS)
│ ├── Phase 2: 邮件系统(Worker + Resend)
│ ├── Phase 3 数据层: D1 完整迁移
│ ├── Phase 3 代码层: B2c(联系方式数据驱动)★ 昨晚完成的
│ └── Phase 4: 客户发票 + 询盘 + PDF(远期)
│
└── "CYS 工具箱"(实际就是 Phase 3 + Phase 4 数据层 + 部分代码层)
├── shipping_rates 新表(20 行数据)
├── customers / invoices / invoice_items(schema 已建,无数据)
├── customer_groups / industries / product_tags(已自动建表)
├── quote-submit.js(询盘提交 worker,未部署)
└── ensureSchema 自动建表(Worker 启动时跑)
| 内容 | 之前分类 | 实际归属 | 依赖关系 |
|---|---|---|---|
| shipping_rates 表 + 数据 | “工具箱”独立话题 | Phase 3 数据层 | handleApiShipping 已 JOIN,但 cart/invoice.js 不读 → B2c 完成后即可消费 |
| customers / invoices / invoice_items schema | “工具箱”独立话题 | Phase 4 客户发票 | 表已建,决策 3 + 决策 6 已设计状态机;前端未对接 → Phase 4 启动时使用 |
| customer_groups / industries / product_tags | “工具箱”独立话题 | Phase 3 客户运营 | Worker ensureSchema 自动建表,data.js 未消费 → 待前端 product.html / catalog.html 接入 |
| quote-submit.js(workers/quote-submit.js) | “工具箱”独立话题 | Phase 4 询盘提交 | 与 emailsunnyxv@aliyun.com 配合,邮件触发 → 需 admin 验证 → 部署 |
| lib/invoice-no.js(统一发票编号) | “工具箱”独立话题 | B2a 9 settings 的发票前缀 + Phase 4 发票生成 | 已部署;invoice.html 用 INV-20260918-XXXX 格式 ✅ |
| lib/email-builders.mjs / generate-pdf.js | “工具箱”独立话题 | Phase 2 邮件 + Phase 4 PDF | 已部署;PDF 待沙箱验证 |
| used_tokens 表 + Cron 清理 | “工具箱”独立话题 | admin 登录 + Cron | Cron 触发器已部署,used_tokens=0 → 待 admin 验证 |
| 客户分组 industries / customer_groups 自动 seed | “工具箱”独立话题 | Phase 3 客户运营 | src/index.js ensureSchema 自动建 + seed 5+9 行 ✅ |
B2c(联系方式数据驱动) ← 昨晚完成
↓
B2b-1b-ii / -iii / -2 ← 待执行(接续 B2c)
↓
模块化 + 数据驱动基础就位
↓
shipping_rates 消费 ← 待 cart/invoice.js 接入
customer_groups 消费 ← 待 catalog/product.html 接入
invoices 前端创建流程 ← Phase 4 启动
quote-submit Worker 部署 ← Phase 4 启动
PDF 生成用户验证 ← Phase 4 启动前确认
↓
客户迁入 + 业务运营
目的:确认 B2c 部署后用户真实看到效果。
| # | URL | 期望结果 |
|---|---|---|
| 1 | https://cysbearing.com/privacy.html | Contact 行显示 sales@cysbearing.com(不是 support@) |
| 2 | https://cysbearing.com/payment_guide.html | flow list 末尾显示 sales@ |
| 3 | https://cysbearing.com/returns.html | 显示 sales@ + WhatsApp 链接 |
| 4 | https://cysbearing.com/shipping.html | 显示 3 个运输方式 + 📦 fallback icon |
前置条件: - ✅ Pages 部署成功(NEW_ID
80c61e47-3908-4b2e-991f-8730bffcc31d) - ✅ Worker
部署成功(NEW_ID afd68093-d4dc-4c3b-b32b-7381974bb549) -
✅ 自检全通过(curl + sandbox 验证)
用户拍板:a) 接受浏览器验证 / b) 调整范围
目的:让 customer / customers / industries / industry / login / my_account / returns(page body)/ invoice(footer 主体)8 文件 footer 数据驱动。
前置条件: - ✅ B2c 模板(footer-contact div + site-settings.js script) - ✅ B2c 9 settings(support_email/phone/whatsapp)
用户拍板:a) 接受 / b) 调整范围
目的:让 about.html Contact 卡 5 字段(Email/WhatsApp/Phone/WeChat/Web)数据驱动。
前置条件: - ⚠️ D1 settings 加 3 字段:support_wechat / company_web / company_web_url - ⚠️ SiteSettings 加 renderContactCard() 函数 - ⚠️ 旧文案 “rail / small_packet” 删除或改
用户拍板:a) 接受 / b) 调整
SQL:
DROP TABLE shipping_methods_backup_20260918;
DROP TABLE policy_texts_backup_20260918;
DROP TABLE settings_backup_20260918;前置条件:B2c 至少稳定 1 周,确认无回滚需求
| # | 工作量 | 依赖 |
|---|---|---|
| 1. cart.html “Generate Invoice” 流程接通 customers + invoices | 大 | 决策 3 + 决策 6 已有设计 |
| 2. invoice.html 状态机(draft → sent → paid) | 中 | invoice_status_log 已建 |
| 3. workers/quote-submit.js 部署(替换邮件触发) | 中 | quote-submit.js 已写 |
| 4. PDF 附件沙箱验证(用户 163 邮箱收到 PDF) | 小 | lib/generate-pdf.js 已部署 |
| 5. Admin “询盘管理” tab(看 D1 quotes) | 中 | schema.sql 老表(不一定是当前 customers) |
| # | 拍板内容 | 选项 |
|---|---|---|
| 1 | B2c 浏览器验证 | a) 接受 / b) 调整 |
| 2 | B2b-1b-ii 8 footer | a) 接受 / b) 调整 |
| 3 | B2b-1b-iii about.html 卡片 + 3 D1 settings | a) 接受 / b) 调整 |
| 4 | icon 数据 | a) 等用户提供 / b) 默认 emoji |
| 5 | about.html 旧文案处理 | a) 等用户提供 / b) 现有 3 模式套 |
| 6 | WeChat 裸号处理 | a) 加 +86 / b) 删 / c) 不动 |
| 7 | 25 SKU 陶瓷 6200 入库 | a) 一次性 / b) 分批 / c) 等 Excel |
| 8 | Phase 4 启动时机 | a) 现在 / b) 等 Phase 3 全部完成 |
| 9 | 备份表清理时机 | a) 1 周后 / b) 现在 / c) 1 月后 |
总表数: 23
总行数(含备份): ~470
核心表:
- products: 31
- policy_texts: 8
- settings: 12
- shipping_methods: 4 (active 3)
- shipping_rates: 20
- customer_groups: 5
- industries: 9
- product_tags: 239
- customers: 1 (测试)
- invoices: 0
- invoice_items: 0
- invoice_status_log: 0
- used_tokens: 0
Worker cys-email:
- PRE_ID: 6175c287-50ed-49c9-96a3-6aa9881923b6 (title_en fix)
- NEW_ID: afd68093-d4dc-4c3b-b32b-7381974bb549 (Step 6 /api/shipping-methods)
Pages cysbearing:
- PRE_ID: 96c7f3a3-7b8d-4af1-8259-09a6bc45dcd6
- NEW_ID (B2c 第一次): 1d887757-c2d6-4074-85a4-1a7f70ff8007
- NEW_ID (active): 80c61e47-3908-4b2e-991f-8730bffcc31d
- Environment: Production / Branch: main
25. Cloudflare API token 可能失效。新会话第一件事 wrangler whoami 验证。
26. Token 用过即清(rm -f /tmp/.cf_token),不在 memory 写真值,用 <CF_TOKEN> 占位符。
- DDL / DML 前必查证(PRAGMA + COUNT + SELECT)
- ALTER 前确认列不存在(避免 duplicate column)
- 部署前确认 PRE_ID,部署后确认 NEW_ID
- wrangler rollback 用 PRE_ID(不是 NEW_ID)
- 修改后本地 Node 跑所有函数分支(US / 非 US / 空 / 边界)全通过再部署
- 不写编造数据写入生产环境
- 字段 / 表名 / 状态值要可扩展(用 string,不用 enum)
- 每条 wrangler 命令必须贴原始 stdout(含 Executed / results / meta)
项目主文档:
- /workspace/PROJECT_MASTER_PLAN.md (v1.10)
- /workspace/PROJECT_DERIVATION.md
- /workspace/customer_system_v1_design.md
- /workspace/site_final/v3/docs/MASTER_DOCUMENT.md (v4.0)
- /workspace/site_final/v3/docs/TECHNICAL_MANUAL.md
- /workspace/site_final/v3/docs/DECISIONS_LOG.md (决策 1-38)
- /workspace/site_final/v3/docs/ISSUES.md (14 问题)
网站代码:
- /workspace/site_final/v3/*.html (14 页面 + 4 admin)
- /workspace/site_final/v3/js/*.js (26 模块)
- /workspace/site_final/v3/css/*.css (15 模块)
- /workspace/site_final/v3/config/ (8 JSON + 2 bak)
- /workspace/site_final/v3/migrations/ (4 SQL)
Worker 代码:
- /workspace/cys-email/src/index.js (2485 行, 25 个 handler)
- /workspace/cys-email/lib/ (9 模块: banks / countries / invoice-no / totals / display-spec / pricing-engine / weight-engine / email-builders / generate-pdf)
- /workspace/cys-email/wrangler.toml (Worker config + D1 binding + Cron)
- /workspace/site_final/workers/quote-submit.js (询盘 Worker,未部署)
迁移 SQL:
- /workspace/site_final/v3/migrations/config-migration.sql (categories / countries / banks / shipping)
- /workspace/site_final/v3/migrations/extras-migration.sql (scenes / hot_products / type_templates / policy_texts)
- /workspace/site_final/v3/migrations/import_data.sql
- /workspace/site_final/v3/migrations/products-import-2026-09-11T03-02-04.sql (31 产品)
文档结束。最后更新:2026-09-19 06:30(早晨用户开题时)