跳到主内容
版本: 1.x

退款

Pro 功能

从 POS 发起退款需要 WCPOS Pro。没有 Pro 时,仍可使用 WooCommerce 内置的退款界面,从 WP Admin → WooCommerce → Orders 处理退款。

WCPOS 可让你在不离开收银机的情况下为 WooCommerce 订单退款。你可以发起全额或部分退款,将款项退回原付款方式(网关支持时),或记录从钱箱支出的现金退款;该退款还会标记处理它的收银员和店铺,以便用于报表。

发起退款

打开退款表单有两种方式:

  1. 从订单列表 — 找到订单,点击操作列中的三点菜单(),然后选择 退款
  2. 从订单查看模态框 — 打开订单,然后点击页脚中位于打印收据取消旁边的退款按钮。

这两种方式都会打开同一个**退款订单 #{number}**模态框。

退款操作何时显示

退款仅适用于具有以下状态的订单:

  • 已完成
  • 处理中
  • 保留

不会显示在PendingCancelledFailedPOS – Open或已全额Refunded的订单上。若要为已经全额退款的订单退款,或为上述未列出状态的订单退款,请使用WP Admin → WooCommerce → Orders

退款表单

在模态框顶部会看到两个数值:

  • 总计 — 订单总额。
  • 之前已退款 — 此订单已发放的所有退款总和(显示为负数)。仅在至少已有一笔退款时显示。

其下方是订单项表格:

显示内容
产品订单项名称
价格单价(含税或不含税,取决于店铺设置)
数量剩余可退款数量(购买数量减去之前已退款的数量)
退款数量可编辑 — 此次要为该订单项退款的件数
退款金额根据退款数量 × 单价自动计算,并包含该订单项按比例分摊的税费

表格下方:

  • 自定义金额 — 要添加到退款中的可选额外金额(例如,退还未关联到特定订单项的费用)。如果不需要,请留空。
  • 原因 — 可选备注,会保存到退款记录中,并显示在 WooCommerce 的订单备注里。
  • 退款目的地 — 单选按钮组(见下文)。
  • 退款总计 — 退款总额,会在输入时实时重新计算。

整单数量退款与部分数量退款

没有单独的“全额退款”模式 —— 将每个明细行的退款数量设置为其全部剩余数量,即可退还整笔订单;也可以只为一两个明细行设置退款数量以进行部分退款。只有当退款总额大于零且不超过剩余可退款金额时,处理退款按钮才会启用。

退款去向

对于使用内置 POS 现金网关以外的方式支付的订单,表单会询问退款应退到哪里:

  • 退回至 (gateway name) —— 网关会通过其自己的提供商 API 处理退款。对于 Stripe Terminal,这会将款项退回原卡;对于 Vipps MobilePay,则会发起 Vipps 退款;其他网关以此类推。此选项只会显示给向 POS 声明支持退款的网关 —— 如果你的网关不支持,该选项会被禁用,并显示消息 “此订单无法使用原支付方式退款。”
  • 通过现金退款 —— 无论订单最初如何支付,都将退款记录为从钱箱退回的现金。收银员实际交付现金;WooCommerce 会记录退款,但不会调用任何网关。

对于使用 POS 现金支付的订单,单选按钮组会被隐藏 —— 现金是唯一合理的去向,因此会自动使用。

如果 WCPOS 无法连接到网关以检查退款支持,你会看到 “无法验证原支付方式退款。仍可使用现金退款。” —— 你仍然可以发起现金退款。

何时使用现金或原支付方式

情况推荐退款去向
通过 Stripe Terminal / Vipps / 等进行银行卡支付,客户在场并希望款项退回到其银行卡退回至 (gateway)
已通过银行卡支付,但客户更希望退现金(且你被允许这样做)通过现金退款
现金销售通过现金退款(自动;不显示选择项)
手动银行卡终端(该支付网关无法自动退款)通过现金退款,然后在独立终端上手动退款

确认并提交

按下 处理退款 后,确认对话框会询问 “为订单 #(number)* 退款 (amount)?”*。确认后会触发退款:

  1. WCPOS 会将退款发送到 WooCommerce 店铺。
  2. 对于支付网关退款,WooCommerce 会交由支付网关插件针对服务提供商(Stripe、Vipps 等)处理退款。
  3. 订单会在本地刷新,因此新的退款会立即显示。
  4. 成功提示会确认 “已处理 (amount) 的退款”

如果支付网关拒绝退款(银行卡被拒、授权过期、网络错误等),错误提示会显示支付网关返回的消息。在这种情况下,退款不会记录到 WooCommerce 中;可以调整表单后重试,或改用现金退款。

退款后

  • 部分退款 — 订单会保留现有状态(已完成等),订单查看模态框会显示 已部分退款 标记,并在主标题副标题中显示 −(amount) refund 行。
  • 全额退款 — WooCommerce 会将订单状态设为 已退款
  • 收据 —— 查看已退款订单的收据时,切换到 实时 模式会在总计中体现退款(明细收据中的 Refunded -XNet Total Y 行)。财务 模式仍会显示原始的付款完成快照,且不受影响——这正是财务模式的用途。
  • 收银员和店铺审计 — 每笔 POS 退款都会标记发起退款的收银员 (_pos_user) 和店铺 (_pos_store),因此退款会在报表中归入正确的收银员和店铺。

注意事项

  • 优惠券 + 退款: 使用过优惠券的订单仍可从 POS 退款,但如果需要调整优惠券针对退款的重新计算方式,请使用 WP Admin → WooCommerce → Orders
  • 不支持负数量。 旧版本(v0.4.x)允许添加负数量的行项目来记录退货——这在 v1.x 中已不再可用。请改用退款流程。
  • 退款需要服务器连接。 与结账不同,不能离线排队处理退款——网关和店铺都必须可访问。
  • 对已全额退款的订单发起额外退款 必须从 WP Admin → WooCommerce → Orders 完成。