Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions docs/user-guide/shop/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: 商城
description: 商城相关的使用文档。
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

:::note
限 [Halo 商业版](../../getting-started/prepare.md#发行版本) 可用。
:::

商城模块是 Halo 商业版的一项功能,支持用户基于 Halo 站点创建店铺,上架多种类型的货品,配置商品支付和发货方式。为实体商品、虚拟商品、链接商品等销售场景提供完备的电商解决方案。

<Tabs>
<TabItem value="控制台预览">
![商城控制台](/img/user-guide/shop/preview-console-products.png)
</TabItem>
<TabItem value="商品预览">
![商城店铺](/img/user-guide/shop/preview-product.png)
</TabItem>
</Tabs>

```mdx-code-block
import DocCardList from '@theme/DocCardList';

<DocCardList />
```
27 changes: 27 additions & 0 deletions docs/user-guide/shop/orders.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: 订单管理
description: 商城订单管理相关使用文档。
---

![](/img/user-guide/shop/preview-console-orders.png)

## 查看订单详情

我们可以点击订单标题进入订单详情页面,或者点击订单标题右侧的图标按钮预览订单详情。

![](/img/user-guide/shop/preview-console-order-modal.png)

![](/img/user-guide/shop/preview-console-order-detail.png)

## 发货

收到用户订单之后,可以在订单详情页面的 **发货信息** 区域点击 **发货** 按钮,打开发货界面:

![](/img/user-guide/shop/preview-console-order-request-fulfillment.png)

在这个界面我们需要勾选需要发货的产品以及物流信息,然后点击 **确认发货** 按钮,即可完成发货。

:::info 提示
1. 目前仅支持填写物流单号等信息,目前没有对接物流查询平台,所以需要用户手动根据物流单号查询物流信息。
2. 目前仅支持实体物流发货,虚拟产品暂不支持,后续会提供虚拟物品池、付费后下载文件、Webhook、自动发货等功能
:::
181 changes: 181 additions & 0 deletions docs/user-guide/shop/payments.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
---
title: 支付方式
description: 商城支付方式相关使用文档。
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

在正式运营商城之前,我们需要配置至少一个可用的支付方式,目前商城支持的支付方式包括:

- 支付宝
- 微信支付
- 银行转账(手动)
- 收款码支付(手动)

首先登录到 Halo 控制台,进入 **商店 -> 设置 -> 支付方式** 页面,点击右上角的新建按钮。

<Tabs>
<TabItem value="1️⃣ 进入支付方式页面">
![](/img/user-guide/shop/settings-payments.png)
</TabItem>
<TabItem value="2️⃣ 新建支付方式">
![](/img/user-guide/shop/settings-payments-create.png)
</TabItem>
</Tabs>

:::note
在配置支付方式之前,建议先创建一个测试产品,方便在配置完成后进行测试。
:::

## 支付宝

### 创建支付宝应用

支付宝支付使用官方接口,买家交易的资金将直接进入商家的支付宝账户,无第三方平台介入。

在创建支付宝支付方式之前,需要先在支付宝商家平台和支付宝开放平台完成注册。

- [支付宝商家平台](https://b.alipay.com/)
- [支付宝开放平台](https://open.alipay.com/)

注册完成后,进入支付宝 [开放平台 -> 控制台](https://open.alipay.com/develop/manage),点击 **创建网页/移动应用** 按钮:

![](/img/user-guide/shop/settings-payments-alipay-create-app.png)

其中 **应用类型** 选择网页应用,其他参数按照实际情况填写即可。

### 获取支付宝配置信息

创建应用后,进入应用详情页面:

![](/img/user-guide/shop/settings-payments-alipay-app-detail.png)

- 1️⃣:应用 ID
- 2️⃣:设置接口加签方式
- 加签方式选择 **密钥**
- 其他流程按照支付宝的指引进行操作
- 最后下载 **支付宝公钥证书** 到本地,后续配置时需要
- 3️⃣:接口内容加密方式,点击 **生成加密方式** 并复制密文

### 在 Halo 中配置

打开新建支付方式的界面,支付提供商选择 **支付宝支付**,并填写以下信息:

- 是否启用:勾选
- 名称:给用户展示的支付方式名称
- 场景:选择 **PC 网页支付**
- 网关地址:`https://openapi.alipay.com`
- 支付宝账号 ID:进入支付宝开放平台的账户中心,复制 **账号 ID**
- 应用 ID:上一步中获取的应用 ID
- 商户私钥:上一步在工具中生成的密钥文件
- 支付宝公钥:上一步中下载的 `alipayCertPublicKey_RSA2.crt` 文件内容
- 加密密钥:上一步中生成的加密密钥

配置完成之后,还需要在 [销售渠道](./sales-channels.mdx) 中绑定该支付方式。

支付预览:

![](/img/user-guide/shop/preview-payments-alipay.png)

### 沙箱环境

访问 [沙箱应用 - 开放平台](https://open.alipay.com/develop/sandbox/app),按照页面上的信息在 Halo 中配置即可。

## 微信支付

### 申请微信支付商户号

微信支付使用官方接口,买家交易的资金将直接进入商家的微信支付商户账户,无第三方平台介入。

在配置微信支付之前,需要先在微信支付商户平台申请商户号。

- [微信支付商户平台](https://pay.weixin.qq.com/)
- [微信支付开发文档](https://pay.weixin.qq.com/doc/v3/merchant/4012791874)

注册并完成商户认证后,进入 [微信支付商户平台](https://pay.weixin.qq.com/),开通 **Native 支付**。

### 获取微信支付配置信息

登录微信支付商户平台后,需要获取以下配置信息:

#### 获取商户号

进入商户平台的 **账户中心 -> 商户信息**,查看您的微信支付商户号(Mch ID)。

#### 设置 API 密钥

1. 进入 **账户中心 -> API 安全 -> API v3 密钥**
2. 点击 **设置密钥** 按钮,按照提示设置 API v3 密钥(32 位字符串)
3. 请妥善保管该密钥,后续在 Halo 中配置时需要使用

#### 申请 API 证书

1. 进入 **账户中心 -> API 安全 -> 验证商户身份 -> 商户 API 证书**
2. 点击 **申请 API 证书** 或 **管理证书**
3. 按照页面指引完成操作后,下载证书文件(包含 `apiclient_cert.pem` 和 `apiclient_key.pem`)
4. 在证书管理页面可以查看到证书序列号,记录下来以便配置

#### 获取微信 AppID

1. 进入 **产品中心 -> AppID 账号管理**
2. 关联您的微信公众号、小程序或企业微信
3. 记录下对应的 AppID

### 在 Halo 中配置

打开新建支付方式的界面,支付提供商选择 **微信支付**,并填写以下信息:

- 是否启用:勾选
- 名称:给用户展示的支付方式名称
- 场景:选择 **PC 网页支付**
- 应用 ID:上一步获取的微信 AppID
- 商户号:上一步获取的商户号(Mch ID)
- 商户私钥:上一步下载的 `apiclient_key.pem` 文件内容
- 商户证书序列号:上一步获取的证书序列号
- API v3 密钥:上一步设置的 API v3 密钥

配置完成之后,还需要在 [销售渠道](./sales-channels.mdx) 中绑定该支付方式。

支付预览:

![](/img/user-guide/shop/preview-payments-wechat.png)

## 银行转账

银行转账支付方式不经过 Halo 的支付系统,仅仅是在支付的时候显示商家的银行收款信息,让买家转账到商家的银行账户,后续再通过人工审核的方式确认订单。

打开新建支付方式的界面,支付提供商选择 **银行转账**,并填写以下信息:

- 是否启用:勾选
- 名称:给用户展示的支付方式名称
- 场景:选择 **PC 网页支付**
- 收款银行:银行名称
- 银行支行地址:开户行地址
- 收款账户名:收款账户名称
- 收款账号:收款银行账号
- 付款说明:为用户说明转账时需要注意的事项

配置完成之后,还需要在 [销售渠道](./sales-channels.mdx) 中绑定该支付方式。

支付预览:

![](/img/user-guide/shop/preview-payments-bank-transfer.png)

## 收款码支付

收款码支付方式不经过 Halo 的支付系统,仅仅是在支付的时候显示商家的收款码,让买家扫码支付,后续再通过人工审核的方式确认订单。

打开新建支付方式的界面,支付提供商选择 **收款码支付**,并填写以下信息:

- 是否启用:勾选
- 名称:给用户展示的支付方式名称
- 场景:选择 **PC 网页支付**
- 收款码二维码图片链接
- 付款说明:为用户说明扫码时需要注意的事项

配置完成之后,还需要在 [销售渠道](./sales-channels.mdx) 中绑定该支付方式。

支付预览:

![](/img/user-guide/shop/preview-payments-qrcode.png)
32 changes: 32 additions & 0 deletions docs/user-guide/shop/prepare.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: 写在前面
description: 在开始使用商城功能之前,你需要了解的事项
---

## 前提条件

在开始使用商城功能之前,需要先确定以下条件是否已满足:

- 正常安装 [Halo 商业版](../../getting-started/install/docker-compose.md)
- 激活 [Halo 商业版许可证](../../user-guide/activate.md)
- 根据当地法律法规,满足开设网络商店的资质与要求
- 开通支付平台账户,目前支持:
- [支付宝官方接口](https://open.alipay.com/)
- [微信支付官方接口](https://pay.weixin.qq.com/)

## 前台路由

目前商城包含以下前台路由:

- `/shop`:商城首页,目前会重定向到商品列表页面
- `/shop/products`:商品列表页面
- `/shop/products/:id`:商品详情页面
- `/shop/cart`:购物车页面
- `/shop/checkout/:id`:结算页面
- `/shop/order/:code/payments`:支付页面

:::note
这些页面无需主题提供对应的模板文件即可访问,使用的是系统内置的模板文件。如果当前激活的主题提供了对应的模板文件,则会优先使用主题提供的模板文件。
:::

你可以根据需求,将这些页面路径添加到[网站菜单](../menus.md)中。
95 changes: 95 additions & 0 deletions docs/user-guide/shop/products.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: 产品管理
description: 商城产品管理相关使用文档。
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

![](/img/user-guide/shop/preview-console-products.png)

## 创建产品

首先登录到 Halo 控制台,进入 **商店 -> 产品** 页面,点击右上角的新建按钮。

![](/img/user-guide/shop/products-create.png)

### 基本信息

- 名称:产品名称
- 简短描述:产品的简短描述
- 描述:产品的详细描述,使用富文本编辑器
- 图片:产品图片,可以直接上传或者从附件库中选择,第一张图片会作为封面图

### 产品数据

这里主要配置产品的类型、属性、规格、价格等数据。

产品类型目前支持三种:

1. 实体:需要配送的产品类型
2. 虚拟:不需要实体配送,使用线上发货的产品类型
3. 链接:直接跳转到第三方链接的产品类型

#### 属性配置

属性的作用是为产品添加一些额外的信息,比如颜色、尺寸、型号等,同时也可以用于生成产品规格。

![](/img/user-guide/shop/products-spec-form.png)

- 名称:属性名称,比如颜色、尺寸
- 属性值:支持多个属性值,比如颜色可以有红色、蓝色、绿色等,尺寸可以有小、中、大等,同时也可以为不同的属性值设置图片,用于展示给用户
- 用于生成产品规格:勾选后,支持在配置产品规格时根据多个属性生成不同的产品规格

#### 规格配置

规格即产品的具体规格,比如颜色为红色、尺寸为小,型号为1234567890,可以根据属性值生成不同的规格,并单独设置价格、库存等信息,最终用户购买时,可以选择属性值来确定购买的产品规格。

:::note
这里的规格也可以称之为 **变体** 或者 **SKU**。
:::

![](/img/user-guide/shop/products-variants-0.png)

当我们设置好 [属性](#属性配置) 之后,可以点击 **生成规格** 按钮来批量生成所有可能产生的规格。

![](/img/user-guide/shop/products-variants.png)

然后可以点击具体的规格项,展开规格配置表单:

![](/img/user-guide/shop/products-variants-form.png)

- 图片:为规格设置图片,用于在购物车,订单等页面展示,如果不设置,会使用属性值中配置的图片或者产品封面
- 状态:支持 **草稿**、**已发布**、**已归档** 三种状态
- SKU 编号:规格的唯一标识
- 条形码:产品规格的条形码,也可用于表示 GTIN、UPC、EAN 或 ISBN 等
- 价格:规格的真实价格
- 划线价:规格的划线价,用于表示原价
- 管理库存
- 否:不管理库存,用户可以无限购买
- 是:管理库存,用户购买时,库存会减少
- 库存:规格的库存数量,当库存为0时,用户无法购买
- 重量:规格的重量
- 长度:规格的长度
- 宽度:规格的宽度
- 高度:规格的高度

:::note
重量、长度、宽度、高度用于后续发货相关的业务,如果产品类型为虚拟,则不需要配置。
:::

除了为单个规格设置上述配置之外,也可以点击上方的批量设置按钮,用于为所有规格设置相同的配置。

![](/img/user-guide/shop/products-variants-batch.png)

### 分类配置

分类配置用于将产品分类,比如手机、电脑、服装、数码等,支持多级分类。

![](/img/user-guide/shop/products-category-selector.png)

### 发布

配置完产品信息之后,就可以将产品状态改为 **发布**,并保存产品,最终就可以在商城前台中展示。

![](/img/user-guide/shop/preview-product.png)
Loading