跳到主内容

最佳实践

ShopFaaS 运营与开发最佳实践——商品管理、订单履约、SEO 优化、性能调优、安全加固、应用扩展开发规范。

本页汇总 ShopFaaS 运营与开发的最佳实践,帮助商家与开发者避开常见坑、提升效率与稳定性。

商品管理

商品信息优化

库存管理

实践说明
设置库存预警在商品详情设置最低库存阈值,低于时后台提醒
定期盘点每月对比系统库存与实际库存,调整差异
预售商品单独标记预售商品设置较长发货时间,避免影响常规订单履约
下架滞销品90 天无销量的商品考虑下架或促销清仓

集合(分类)组织

  • 主导航 3–7 个集合:过多会让客户迷失
  • 自动集合:按标签或条件自动归类(如「新品」=创建时间 30 天内)
  • 手动集合:用于精选、促销等需要人工挑选的场景
  • 集合封面与描述:提升 SEO 与视觉一致性

订单履约

履约时效

退款与退货

实践说明
明确退换货政策在「设置 → 政策」编写清晰的退换货政策页面
快速响应退货申请24 小时内响应,避免升级到平台投诉
退款优先选择原路退回避免线下转账产生纠纷
记录退货原因用于分析产品质量问题与改进方向

营销与折扣

折扣码策略

  1. 新客优惠:首单 9 折码,降低首次购买门槛
  2. 满减促销:满 ¥199 减 ¥20,提升客单价
  3. 清仓折扣:临期/滞销品 5–7 折,设置使用次数上限
  4. 老客回馈:会员专享码,提升复购率
  5. 节日大促:限时折扣码,配合倒计时营造紧迫感

弃单召回

  • 首次召回:弃单后 1 小时发送,提醒完成结账
  • 二次召回:弃单后 24 小时发送,附 5% 折扣码
  • 停止召回:已下过同 SKU 订单的客户不再召回
  • A/B 测试:测试不同邮件标题与发送时间,优化转化率

SEO 优化

技术 SEO

实践说明
自定义 URL Handle商品/集合/博客设置语义化 URL(如 /products/cotton-tshirt
编辑页面标题与描述每个页面独立设置 SEO 标题与描述,含目标关键词
提交站点地图在 Google Search Console / 百度站长平台提交 sitemap
结构化数据商品页自动包含 Product schema,提升搜索富摘要
页面加载速度图片压缩、懒加载,目标 LCP < 2.5 秒

内容 SEO

  • 博客内容:每周 1–2 篇行业相关文章,吸引长尾流量
  • 商品描述:原创描述,避免直接使用供应商文案(重复内容降权)
  • Alt 文本:每张商品图片添加描述性 alt 文本
  • 内链:博客文章链接到相关商品,商品页链接到相关集合

性能调优

前台性能

  1. 图片优化

    • 使用 img_url filter 按需生成缩略图(如 {{ image | img_url: '800x800' }}
    • 首屏图片优先加载,非首屏懒加载
    • 使用 WebP 格式(ShopFaaS 自动转换)
  2. 减少应用安装

    • 每个应用会增加前端资源(JS/CSS)
    • 仅安装实际使用的应用,定期清理不用的应用
    • 高性能需求的店铺建议安装数 ≤ 10 个
  3. 主题优化

    • 避免主题中加载大型第三方库(如 jQuery)
    • CSS 精简,移除未使用的样式
    • 使用 CSS 变量驱动主题化,避免重复样式
  4. CDN 加速

    • 托管服务默认启用 CDN
    • 私有化部署建议配置 Nginx 缓存或接入第三方 CDN

后台性能

  • 批量操作用后台提供的批量功能,避免单条循环
  • 大数据量导出用 CSV 而非页面渲染
  • 私有化部署用户定期清理审计日志(保留 90 天即可)

安全加固

私有化部署安全清单

  1. 修改所有默认密码

    • PostgreSQL POSTGRES_PASSWORD
    • Redis REDIS_PASSWORD
    • RustFS RUSTFS_SECRET_KEY
    • JWT JWT_SECRET(至少 32 字符随机字符串)
  2. 配置 HTTPS

    • 使用 Nginx 反向代理 + Let’s Encrypt 证书
    • 设置 COOKIE_SECURE=true
    • 启用 HSTS
  3. 限制访问

    • 数据库仅监听本地或内网
    • Redis 仅监听本地
    • 后台管理路径可配置 IP 白名单(通过 Nginx)
  4. 定期备份

    • 每日自动备份数据库
    • 备份文件加密存储
    • 定期验证备份可恢复
  5. 监控与告警

    • 监控服务健康状态(/health 端点)
    • 监控磁盘空间,避免日志撑满
    • 设置异常登录告警

API Key 安全

应用扩展开发规范

权限最小化

// ✅ 正确:仅声明实际使用的权限
{
  "permissions": ["order:view"]
}

// ❌ 错误:声明了不需要的权限(审核会拒绝)
{
  "permissions": ["order:view", "order:fulfill", "order:refund", "product:view"]
}

错误处理

// ✅ 正确:捕获错误并返回有意义的消息
const handler: WebhookHandler<"order.created"> = async (event, ctx) => {
  try {
    const order = await ctx.api.orders.get(event.payload.order_id);
    await sendNotification(order);
  } catch (error) {
    ctx.logger.error("订单通知发送失败", { orderId: event.payload.order_id, error });
    throw error; // 抛出错误让平台重试
  }
};

// ❌ 错误:吞掉错误,问题无法被发现
const handler: WebhookHandler<"order.created"> = async (event, ctx) => {
  try {
    const order = await ctx.api.orders.get(event.payload.order_id);
    await sendNotification(order);
  } catch (error) {
    // 什么都不做
  }
};

幂等性

性能要求

指标要求
Webhook 响应时间< 5 秒(超时会被平台终止并重试)
Action 响应时间< 3 秒
内存使用< 128 MB
CPU 使用< 500 ms(单次执行)

多店铺运营

统一品牌 vs 独立品牌

策略适合场景实践
统一品牌同品牌不同地区/品类共用主题模板,仅差异化币种/语言/物流
独立品牌多品牌矩阵每个店铺独立主题与域名,独立运营团队
混合策略主品牌 + 子品牌主店铺用高端主题,子店铺用简约主题

数据隔离与共享

  • 隔离:商品、订单、客户、营销按店铺隔离,避免互相影响
  • 共享:主题、应用可跨店铺复用(每个店铺独立安装配置)
  • 不共享:ShopFaaS 不提供跨店铺数据汇总,需通过 API 导出后在外部汇总

相关文档

教程

端到端实战教程。

故障排查

常见问题与解决方案。

安全与合规

安全架构与合规承诺。

开发者指南

主题与应用扩展开发规范。

此页面有帮助吗?

在 GitHub 上编辑此页