> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waffo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 销售数字商品

> 为课程、模板、电子书和软件许可证设置一次性购买

## 适合谁？

本指南适用于通过单次支付销售数字商品的商户 — 无需周期性计费。常见场景包括：

| 商品类型  | 示例               |
| ----- | ---------------- |
| 数字下载  | 电子书、模板、设计素材、图库照片 |
| 在线课程  | 视频课程、教程、工作坊      |
| 软件许可证 | 桌面应用、插件、浏览器扩展    |
| 数字服务  | 一次性咨询、审计、报告      |

***

## 第一步：创建商品

<Steps>
  <Step title="进入商品页面">
    在 Dashboard 侧边栏中，点击 **商品**。

    <Frame>
      <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/products-list.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=2644c3ec77acc0f3c7769bdd91553232" alt="商品列表页面" width="1440" height="900" data-path="images/guides/products-list.png" />
    </Frame>
  </Step>

  <Step title="点击创建商品">
    点击右上角的 **创建商品** 按钮，选择 **一次性** 作为商品类型。

    <Frame>
      <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/create-onetime-product.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=179269c9ed799df90a5669e216660de4" alt="创建一次性商品表单" width="1440" height="900" data-path="images/guides/create-onetime-product.png" />
    </Frame>
  </Step>

  <Step title="填写商品信息">
    * **名称**：你的商品名称
    * **价格**：设置价格和货币
    * **描述**：客户将获得什么
    * **图片**：上传商品图片（可选但推荐）
  </Step>

  <Step title="保存并激活">
    点击 **保存** 创建商品。商品默认在 **测试模式** 下创建 — 只对测试收银台可见。

    准备好销售后，在商品详情页将状态切换为 **激活**。
  </Step>
</Steps>

***

## 第二步：分享收银台链接

商品创建后，你会获得一个收银台链接，可以分享到任何地方。

### 获取链接

在商品详情页，复制收银台链接：

```
https://checkout.waffo.ai/your-store/my-product
```

### 在哪里分享

* **你的网站** — 添加一个"立即购买"按钮，链接到收银台 URL
* **邮件营销** — 在新闻通讯或上线邮件中包含链接
* **社交媒体** — 直接分享到微博、微信、Twitter 等平台
* **落地页** — 嵌入到你的营销页面中

<Note>
  这就是开始销售所需的全部。无需编写代码。客户点击链接、支付，然后自动收到确认邮件。
</Note>

***

## 第三步：追踪订单

客户购买后，你可以在 Dashboard 中追踪一切。

### 订单页面

在侧边栏中点击 **支付** 查看所有已完成的订单。

<Frame>
  <img src="https://mintcdn.com/waffo/5dRlk76Jm-9Zm6Tj/images/guides/payments-list.png?fit=max&auto=format&n=5dRlk76Jm-9Zm6Tj&q=85&s=5924bf80d62d8704770780f32f353276" alt="支付列表页面" width="1440" height="900" data-path="images/guides/payments-list.png" />
</Frame>

每笔订单显示：

* 客户邮箱
* 支付金额
* 支付方式
* 订单状态
* 日期和时间

### 邮件通知

默认情况下，你和客户都会在购买时收到邮件通知。你可以在 **设置 → 通知** 中自定义通知设置。

***

## 第四步：管理商品

### 更新商品信息

你可以随时在商品详情页更新商品名称、描述、价格或图片。

<Warning>
  当你更新商品时，Waffo Pancake 会创建一个新版本。已购买的客户不受影响。
</Warning>

### 发布到生产环境

在测试模式下创建的商品需要发布后，真实客户才能购买：

1. 进入商品详情页
2. 点击 **发布到生产环境**
3. 商品现在已上线，可以接受真实支付

***

## 业务场景

<Note>
  以下为示例场景，请根据你的实际业务调整。
</Note>

### 场景 1：销售在线课程

1. **创建商品**：填写课程名称，设置价格为 \$49 (示例)
2. **分享链接**：将收银台链接添加到你的课程落地页
3. **客户购买**：他们支付后会收到订单确认邮件
4. **交付内容**：使用 Webhook 自动授予课程访问权限，或手动发送访问详情

### 场景 2：销售设计模板

1. **创建商品**：上传你的模板套装和预览图
2. **设置价格层级**：为不同套装创建独立商品（如基础版 $19、专业版 $49、完整版 \$99）(示例)
3. **分享链接**：每个商品都有自己的收银台链接
4. **交付**：配置 Webhook 在购买后自动发送下载链接

### 场景 3：软件许可证

1. **创建商品**：将你的软件设置为一次性购买
2. **客户购买**：支付自动处理
3. **生成许可证**：使用 Webhook 触发你的系统生成许可证密钥
4. **交付**：客户通过邮件收到许可证密钥

***

## 进阶：代码集成

如果你需要自动化交付或自定义收银台流程，可以通过 Waffo Pancake API 进行集成。

### 什么时候需要代码

* **自动化交付**：支付后自动发送下载链接或许可证密钥
* **自定义追踪**：传递元数据（用户 ID、活动来源）以追踪转化
* **动态定价**：创建带自定义金额的收银台会话

### 工作流程

```
客户点击"购买" → 收银台会话 → 支付 → Webhook → 你的服务器交付商品
```

API 详情请参考 [API 参考文档](/zh/api-reference/introduction)。

***

## 上线前测试

使用测试模式验证你的完整流程，然后再接受真实支付。

<Steps>
  <Step title="开启测试模式">
    在 Dashboard 顶部导航栏中切换 **测试/生产** 开关。
  </Step>

  <Step title="创建测试购买">
    打开你的收银台链接，使用测试卡完成购买：

    | 场景               | 卡号                    |
    | ---------------- | --------------------- |
    | 成功支付（Visa）       | `4576 7500 0000 0110` |
    | 成功支付（Mastercard） | `2226 9000 0000 0110` |
    | 拒绝               | `4576 7500 0000 0220` |
  </Step>

  <Step title="在 Dashboard 中验证">
    检查测试订单是否出现在 **支付** 页面中，以及通知邮件是否已发送。
  </Step>
</Steps>

***

## 上线清单

上线前确认：

* [ ] 商品已创建，名称、描述和价格正确
* [ ] 收银台链接已在测试模式下测试
* [ ] 订单确认邮件效果良好
* [ ] 商品已发布到生产环境
* [ ] 收银台链接已分享到你的网站 / 社交媒体

***

## 下一步

<CardGroup cols={2}>
  <Card title="配置 Webhook 通知" icon="webhook" href="/zh/guides/webhooks">
    通过接收支付通知实现自动化交付
  </Card>

  <Card title="管理退款" icon="rotate-left" href="/zh/guides/refunds">
    处理客户的退款请求
  </Card>
</CardGroup>
