FlamePOS 手册 配置手册 · 软件版本 1.1.0-VSMS-1.0.0 English · 产品与下载

FlamePOS 配置手册

产品:FlamePOS
软件版本:1.1.0-VSMS-1.0.0
适用人员:管理员、实施人员与支持人员

1. 本手册的用途

本手册说明 FlamePOS 1.1.0-VSMS-1.0.0 所需的管理配置,涵盖商户资料、用户、商品数据、税务、 付款方式、打印机、数据库连接、VSMS 设置与税务小票配置。

2. 配置责任

配置应由获授权的管理员或实施人员执行。税务相关的配置必须在正式营业前验证通过。 对税务、小票模板、付款方式映射、SDC 地址、签名方类型、PIN、PAC 或证书设置的改动, 都可能影响税务合规。

3. 商户与终端资料

打开后台 > 配置 > 商户。"商户"页取代了原来的"餐厅"标签, 因此同一套配置同时适用于餐饮、餐厅、零售与杂货等场景。

设置项用途
商户名称用于本地小票抬头与对内报表的纳税人或商号名称。
门店名称可选的本地分店/门店标识,用于非税务的品牌展示。它不会覆盖 SDC 的税务场所名称。
地址与电话打印在小票抬头与面向顾客的单据上。
纳税人识别号在辖区要求时用于税务识别。
终端编号在小票输出与税务记录中标识该 POS 终端。
小票页脚可选的、显示在小票上的顾客留言。

修改本地商户名称或门店名称后,请保存并重启 FlamePOS。在税务发票上,FlamePOS 打印的是所选 SDC 返回的、 已签名的 businessName 与 locationName。这两个值由 TaxCore 证书与开发者场所决定, 不受本地品牌设置控制。

4. 用户与角色配置

请按岗位职能配置用户:

每位用户都应有独立的登录账号。应避免共用收银账号,因为税务与经营活动必须能追溯到负责的操作员。

5. 商品与菜单配置

5.1 把菜单搬到另一台收银机

在一台 FlamePOS 上建好的菜单,可以用表格文件搬到另一台上。第二台收银机、更换的机器, 或者第二家门店,都可以用这个办法拿到同样的商品,不必重新录入。

在已有菜单的那台机器上

  1. 打开后台 → 产品 → 导出商品到表格。
  2. 选择保存位置。默认文件名为 menu-items.csv。
  3. FlamePOS 会提示写入了多少个商品。把该文件复制到另一台机器上。

文件共五列,每个商品一行:

Category,Group,Item,Price,Barcode
Drinks,Soft Drinks,Coca-Cola 330ml,150,9300675024235
Drinks,Soft Drinks,Bottled Water 600ml,100,
Food Cupboard,Rice and Flour,"Rice, long grain 5kg",1200,

这是一个普通的 UTF-8 CSV 文件,导入之前可以用任何表格软件编辑——一次改五十个价格, 这也是最快的办法。名称中含有逗号的,要像上面最后一行那样用引号括起来。 空行以及以 # 开头的行会被忽略。

在要接收菜单的那台机器上

  1. 打开后台 → 产品 → 从表格导入商品,选择该文件。
  2. FlamePOS 会读取文件,并说明读到了多少个商品、接下来会做什么。此时还没有改动任何数据。
  3. 确认后,FlamePOS 会报告新增了多少商品、更新了多少,以及新建了多少个类别与分组。

导入会做什么,不会做什么

税类

表格中没有税类这一列,而没有税类的商品无法售卖。改由接收方机器询问一次, 并把它赋给这次导入新建的每一个商品:

文件中与接收方已有商品对应上的,保留它们原有的税类;只有新建的商品才会使用这里选定的税类。

只有五列是有意为之。图片、打印机路由、附加项分组、班次价格与订单类型都不随表格搬运, 因为这些是商家在少数几个商品上设置一次的东西,而不是要重复三百次的东西—— 而且它们在不同机器上本来就不一样。

5.2 录入与修改商品(产品录入)

后台 → 产品 → 产品录入把每个商品列为表格中的一行, 是录入或修正一批到货最快的方式。列就是日常要用的字段:编号、名称、价格、条码、库存、分组、税类、 排序、按钮色与字体色,以及图片。

表格中没有的内容——订单类型、打印机分组、描述、班次价格、附加项分组——都在该商品自己的 编辑窗口中,表格并不取代它。

5.3 税类是必填的

没有税类的商品在启用税务的安装上无法售卖。收款时会被拒绝,而顾客正在等着。 只要商户配置了税类,表格就不会让没有税类的商品被加入;如果恰好只有一个税类, 空白行会自动填上它。

本版本之前创建的商品可能仍然没有税类。升级后管理员应把商品清单检查一遍, 给所有缺税类的商品补上。

5.4 以多种形式售卖的商品

按尺寸、按饼底或按其他任何一组形式售卖的商品,就是一个附带了必选附加项分组的普通商品:

  1. 按最便宜的那种形式的价格创建该商品。
  2. 为这个选择创建一个附加项分组,并在其中为每一种形式各建一个附加项。 每个附加项带的是该形式与商品自身价格之间的差额,因此最便宜的那种形式加价为零。
  3. 把该分组挂到商品上,最少与最多都设为一。正是这一点让收银机在商品一被按下时就要求作出选择。

顾客支付的价格等于商品价格加上所选附加项的价格。两者都会出现在小票上,也都会被申报, 因此各自的税额是分别计算、分别取整的。

从带有独立比萨子系统的旧版本升级上来的安装已自动完成转换:每个比萨变成一个按其最便宜的 尺寸与饼底定价的商品,并为每种组合各建一个附加项。顾客支付的价格没有变化。

正式营业前应先配置好商品数据:

商品字段税务上的用途
商品名称作为 TaxCore 发票的商品名称发送。
条码 / GTIN存放该商品的全球贸易项目代码。长度 8 至 14 位的值会在商品税务化时 放入 TaxCore 发票行的 gtin 字段。
价格作为含税单价发送,并用于计算税务合计。
税类映射到该商品当前生效的 TaxCore 税标。

商品的改动必须由获授权的用户控制。商品价格、税标与名称的改动会影响税务发票的内容; 条码 / GTIN 的改动会影响发送给 TaxCore 的 gtin 值。这些改动应由商户记录在案。

录入销售时,操作员先选所配置的类别,再选所配置的商品分组,然后按带名称的商品按钮。 按钮上显示的就是此处配置的商品名称。按下即把该商品或服务加入当前单据; 扫描 GTIN 条码是另一种选择方式,按名称选择时并不需要它。

5.5 取价与两位小数取整

选中一个商品或服务时,FlamePOS 会取用适用的订单类型价格、班次价格或商品基础价格, 并立即用 ROUND_HALF_UP 把该单价取整到两位小数。第三位小数决定结果: 0 到 4 舍去,5 到 9 进一。整数与一位小数的价格显示为两位小数。

取价得到的价格FlamePOS 使用的价格原因
10.12410.12第三位小数是 4,舍去。
10.12510.13第三位小数是 5,进一。
25.67525.68第三位小数是 5,进一。
1010.00货币输出使用两位小数。

FlamePOS 同样以两位小数、四舍五入的方式处理商品小计、折扣、税额、行合计、单据合计、 已付与应付金额,以及序列化进 TaxCore 发票请求的金额。因此,单据上显示的取整后单价, 就是用于税务发票计算与提交的单价。

6. 税务配置

FlamePOS 直接从所选 SDC 获取当前生效的税率与税标。在程序初始化时,以及每次构建税务发票之前, 它都会用 E-SDC PIN 激活或 V-SDC 客户端证书/PAC 作认证,发起 GET /api/v3/status 请求,读取 currentTaxRates, 并用返回的税率组替换内存中的生效税率缓存。本地定义的默认税率或税标不会被使用。

税务设置运行规则
税率来源所选 SDC 的 /api/v3/status 应答中的 currentTaxRates 字段。
税类关联每条本地税务记录都在内部关联到生效 SDC 税率组中稳定的税标。
自动同步FlamePOS 会用该 SDC 税标当前返回的税率覆盖本地计算百分比,无需管理员操作。
校验若关联的税标不存在、应答无效,或某个税类无法唯一确定, FlamePOS 会中止初始化或税务化并显示错误。
刷新时机在程序启动时,以及每一次普通、预收款、形式发票、培训、退款与副本的 税务请求之前,同步生效税率组与本地计算缓存。
价格含税本版本中商品价格按含税配置,测试时须使用含税的合计值。
商品税类管理员为商品指定适用的税类;FlamePOS 从 SDC 获取该税类当前的百分比与税标。

本地的 TAX.RATE 值是同步得来的计算缓存,而不是税务配置的来源。 若该百分比被手工修改或被导入数据改动,下一次自动同步会把它重置为 SDC 为关联税标返回的当前值。 启用 VSMS 时,税率浏览器为只读,并会说明税率由生效的 SDC 配置自动管理。

6.1 随时查看当前生效的税率

具有后台管理权限的用户可以随时取回并查看所选 SDC 当前生效的税率组:

  1. 用获授权的管理员账号登录 FlamePOS。
  2. 打开后台。
  3. 选择 Admin > Active TaxCore Tax Rates。
  4. 等待 FlamePOS 向所配置的 SDC 发起一次新的认证请求。
  5. 查看生效税率组的 ID、生效日期/时间、税类、税类类型、百分比与税标。
  6. 按 Refresh 可再次请求当前列表。表格下方显示的取回时间, 说明所显示的这份快照是何时获得的。
  7. 查看完毕后按 Close。

此界面为只读,只显示 SDC 返回的值,不能用来新建或修改税率。若取回失败, FlamePOS 会显示错误,且不会改用本地配置的值。

FlamePOS 的 Active TaxCore Tax Rates 界面,显示生效税率组、税类、百分比与税标
图 1. 打开 Admin > Active TaxCore Tax Rates 取回当前的 SDC 税率组,查看其生效税类、百分比与税标。 按 Refresh 可随时取回新的快照。

7. 付款方式配置

FlamePOS 支持 TaxCore 发票请求模型中的每一种付款类型。现金、刷卡与礼券可直接在收款界面选择; 支票、电汇、手机支付与其他,则是通过 OTHER 按钮打开的自定义付款选项。 所选的自定义付款名称会保留在 POS 交易上,并映射到对应的 TaxCore PaymentType。

FlamePOS 付款方式TaxCore 税务付款类型配置键
其他Othervsms.payment.OTHER
现金Cashvsms.payment.CASH
刷卡,含外部/手工授权Cardvsms.payment.CREDIT_CARD 与 vsms.payment.DEBIT_CARD
支票Checkvsms.payment.CHECK 与 vsms.payment.CHEQUE
电汇或银行转账WireTransfervsms.payment.WIRE_TRANSFER 与 vsms.payment.BANK_TRANSFER
礼券或代金券Vouchervsms.payment.GIFT_CERTIFICATE 与 vsms.payment.VOUCHER
手机支付MobileMoneyvsms.payment.MOBILE_MONEY 与 vsms.payment.MOBILE_PAYMENT

7.1 必需的自定义付款记录

数据库的创建与升级过程会在下列自定义付款选项不存在时把它们装上。管理员可在 后台 > 浏览器 > 自定义付款中查看。

自定义付款名称凭据要求
CHECK必填:支票号
WIRE TRANSFER必填:转账凭据号
MOBILE MONEY必填:手机交易凭据号
OTHER可选的付款凭据号

在没有同时添加对应的 vsms.payment.<规范化名称> 映射之前,不要改这些记录的名称。 改动付款名称或税务配置之后,请把七种付款类型全部测试一遍。

7.2 一张发票上的多种付款方式

FlamePOS 把每一笔部分结算都记为一条独立的 POS 交易。若一张单据用两种以上方式付款, 该单据会在应付金额归零前一直保持打开。最终税务化时,会把该单据所有正向的收款交易作为 TaxCore Payment 数组中的独立条目一并提交,这些条目之和必须等于该发票的金额。

请至少用两种不同方式(例如现金与刷卡)测试此配置,确认所存的请求 JSON 与税务小票中 同时包含两种付款方式及各自的金额。

8. VSMS / TaxCore 配置

把 vsms.sdc_type 设为且仅设为一个生效签名方:ESDC 或 VSDC。 两种模式的设置都可以安全地保留在配置中,但只有被选中的那一种会被使用。更改签名方后请重启 FlamePOS。 系统不会在两个签名方之间自动回退。

设置项说明
vsms.sdc_typeESDC 或 VSDC;决定一次发票尝试所使用的唯一签名方。
vsms.esdc.base_url用于状态与发票请求的本地或开发 E-SDC 地址。
vsms.esdc.pin分配的 E-SDC 卡 PIN,仅发送到 /api/v3/pin,绝不会作为 PAC 头发送。
vsms.vsdc.base_url用于认证状态与发票请求的 HTTPS V-SDC 地址。
vsms.vsdc.certificate.pathV-SDC 双向 TLS 所用 PKCS#12 客户端证书的路径。
FLAMEPOS_VSMS_VSDC_CERTIFICATE_PASSWORD受保护的运行时环境变量,存放 V-SDC 客户端证书密码。 它会覆盖同名的配置属性,且不会写入公开的配置文件。
FLAMEPOS_VSMS_VSDC_PAC受保护的运行时环境变量,存放仅用于 V-SDC 请求的 PAC 头值, 它会覆盖同名的配置属性。
环境Sandbox 用于测试;production 用于正式税务营业。
超时显示错误之前等待所选 SDC 应答的最长时间。
POS 身份1083/1.1.0-VSMS-1.0.0 内嵌于发行版中,作为 TaxCore InvoiceNumber 发送并打印为 POS 号。它不可由客户配置,也不会在"激活与维护"中显示。
失败处理若所选 SDC 不可用或拒绝该请求,FlamePOS 会显示错误, 既不会改用另一个签名方重试,也不会为该次尝试保存一张成功的税务发票。
vsms.enabled=true
vsms.sdc_type=ESDC
vsms.esdc.base_url=http://<esdc-host>
vsms.esdc.pin=<assigned-pin>

# 保留下来、供获授权时切换到 V-SDC 的非机密设置:
vsms.vsdc.base_url=https://<vsdc-host>
vsms.vsdc.certificate.path=/secure/path/client.pfx

# V-SDC 的机密项通过受保护的进程环境提供:
FLAMEPOS_VSMS_VSDC_PAC=<protected PAC>
FLAMEPOS_VSMS_VSDC_CERTIFICATE_PASSWORD=<protected PFX password>
V-SDC 签名方配置,非机密的地址与证书路径设置同 PAC 与 PFX 密码分开
图 2. V-SDC 签名方配置。非机密的地址与证书路径设置,同通过受保护运行时环境提供的 PAC 与 PFX 密码值是分开的。

填好 VSMS 设置后请重启 FlamePOS。初始化过程中,FlamePOS 会取回所选 SDC 的状态, 把每个本地税类关联到一个生效的返回税标,并同步其计算百分比;每次税务请求之前都会重复这一过程。 若状态/税率同步失败、某个商品税类无法解析到生效的返回税标,或者没有收到并保存有效的税务应答, 这笔销售都不得完成。

9. 小票模板配置

小票模板决定税务发票如何打印。税务小票模板必须包含全部必需的税务字段,包括发票号、发票计数器、 税务日期/时间、税标、合计金额、付款金额、验证二维码,以及副本/退款标记。纳税人商号与场所名称 直接取自已签名的 SDC 应答。对于所提交的总部开发者场所,这两个值都是 Wok & Flame, 因此两行必需的标识行有意写着相同的文字。POS 号为 1083/1.1.0-VSMS-1.0.0。 验证网址会被保存以备审计,但不会打印。二维码下方会打印结束行 END OF FISCAL INVOICE。副本小票必须显示 TaxCore 副本发票类型、 Copy/Sale 或 Copy/Refund 交易类型,以及原始/引用发票信息。

若修改了模板,请打印测试小票,确认所有必需文字与二维码字段都能放进小票纸并保持清晰可读。

10. 打印机配置

税务小票模板宽 226 点(约 79.7 毫米),按 80 毫米热敏纸卷配置, 落在门户的 57 毫米至 80 毫米纸卷类别内。本配置不包含在 57 毫米以内的纸卷 或 A4 纸上进行税务打印。

  1. 先在操作系统中配置好打印机。
  2. 在 FlamePOS 中选择该小票打印机。
  3. 如有使用,配置厨房与报表打印机。
  4. 打印一张测试小票。
  5. 确认二维码可以扫出。确认验证网址没有作为小票文字被打印出来。

11. 数据库与备份配置

数据库连接在安装时配置。数据库存放单据、交易、用户、商品、配置与税务审计记录。 备份流程应保护经营与税务记录不致丢失。

12. 变更控制

下列方面的改动应受控并经过测试,因为它们会影响发送给税务机关的内容:

13. 配置完成后建议的验证

请把测试环境与生产环境的凭据分开保管。切勿把 E-SDC PIN、生产证书、PAC 或数据库密码 放进公开文档或源代码库中。
FlamePOS 1.1.0-VSMS-1.0.0 · 管理员与安装人员 · 全部手册