基于 Y Build 构建 从一句提示到部署上线、绑定自有域名 —— 无需服务器。 免费开始
构建上线对比实验室关于 开始构建 →
ybuild / 场景

小型零售 POS 系统

一家独立门店靠的是微薄的利润、现金与刷卡混杂的收款,以及老板打烊后能对上的那点账。大多数现成的 POS 套装按每台收银终端收租,把你的商品硬塞进泛泛的分类里,还把你的数据留在他们的子域名上;而「表格加读卡器」这种凑合的做法,则会悄无声息地把税、收款方式和库存都算乱。本文将带你走一遍一家小零售商真正需要的收银台,以及如何把它作为一个运行中、托管的应用搭建在 ybuild 上、通过你自己的域名对外提供服务。

痛点

你能搭什么

收银与结账界面

一个适合触屏操作的收银台:扫描条码或搜索商品、组建购物车、套用行项或整单折扣,看着税额按每一行的税种、以你门店的税率逐行计算。收款可在现金与刷卡之间拆分,自动算出找零,收据可打印或邮件发送。从第一次构建起,它就在 ybuild 上以在线托管的方式运行,跑在你自己的域名上。

与每一笔交易绑定的库存

一套商品目录,每件商品都带有成本、售价、税种、在手数量和补货点。一笔销售扣减库存,一次退款把它加回来,一次作废则从不触碰它,而低库存视图会标出所有低于补货点的商品,让你在周末之前就下单,而不是等断货之后。

钱箱收班与每日报表

一套班次模型:收银员以点好的备用金开出一个钱箱,整天收银,到收班时系统会显示应有现金对点数现金,并记录长款或短款。一张 Z 报表会汇总当天以及整个纳税期的销售额、已收税额和每一种收款方式,可随时导出给你的记账员,全部都在你那个在线运行的 ybuild 应用里完成。

数据模型

products
sku, name, category, barcode, unit_cost, retail_price, tax_class, qty_on_hand, reorder_point
sales
receipt_no, register_id, cashier_id, customer_id, subtotal, discount_total, tax_total, grand_total, status, sold_at
sale_lines
sale_id, product_id, qty, unit_price, line_discount, tax_class, tax_amount, cost_at_sale
payments
sale_id, method, amount, card_brand, card_last4, processor_txn_id, change_given, is_refund
drawer_sessions
register_id, cashier_id, opened_at, opening_float, cash_payouts, closed_at, expected_cash, counted_cash, over_short

系统里的一天

  1. 开班:收银员登录并以点好的开机备用金开出一个钱箱班次,比如 150 美元的小面额钞票。收银台现在上线,本班次的每一笔销售都绑定到这个班次上。
  2. 第一笔销售:你扫描条码,商品以各自的价格和税种落入购物车,一张 10% 的优惠券作为行项折扣套用,税额只在应税行项上、按你门店的税率计算,然后汇总并只四舍五入一次。
  3. 收款:顾客一部分付现金、一部分刷卡。刷卡这一笔走你的支付处理商,回来的只有一个令牌、卡号后四位和卡组织品牌;找零在现金那一笔上计算,收据以邮件发送,每一行都扣减对应的商品数量。
  4. 退货:有人拿着收据把商品退回来。你按收据号把它调出来,以一条新的、相互关联的记录发起退款,精确冲销原来的税额和收款方式,并把商品放回货架。
  5. 更正:一次扫错在收款前作废,从不触碰库存;一笔已完成但开错的销售是退款、而不是删除,于是审计轨迹和库存数字都保持完整。
  6. 免税销售:持有转售证书的转售商免税购买。你把整单标记为免税、录入证书编号,任何一行都不收税。
  7. 补货检查:下午过半,低库存视图列出所有低于补货点的商品,让你在周末高峰之前就向供应商下单,而不是等卖光之后。
  8. 收班:收银员清点钱箱。系统显示应有现金(开机备用金加现金销售,减去现金退款和付款)对点数现金,记录长款或短款,并打印一张汇总销售额、已收税额和各收款方式合计的 Z 报表,全部托管在 ybuild 上。

AI 容易出错的地方

✓ 先做这些
  • 收银台加库存这个内核:一套带有价格、税种和数量的商品目录,一个能扫描商品的购物车,按门店税率的逐行计税,现金与刷卡的拆分收款,以及销售即扣减的库存。
  • 只可追加的销售,退款与作废都作为关联的冲销记录,于是每一笔已完成的销售、退货和更正都是一条能够对账的不可变记录。
  • 带有日终收班的钱箱班次:开机备用金、应有对点数现金、长款或短款,以及一张汇总销售额、已收税额和各收款方式合计的 Z 报表。
— 先别做
  • 一套完整的会计总账。把每日合计和已收税额导成 CSV 给你的记账员或 QuickBooks,而不是在收银台里重建一套复式记账。
  • 多门店、按地址计算的税务引擎。v1 是一家门店、一张按税种索引的税率表;日后再加上不同税区和按地址查询税率。
  • 电商、会员积分和营销自动化。先把柜台做出来,等收银台可信之后,再挂上线上商店或积分计划。

常见问题

我可以存下顾客的卡号,好让退款和收据更方便吗?

不行。存储完整卡号会让你落入 PCI DSS 的合规范围,是一项严重的连带责任。把卡交给你的支付处理商,只保留一个令牌、卡号后四位和卡组织品牌。退款引用处理商的交易 ID,所以你永远不需要原始卡号,而你的数据库即便被攻破,也不会泄露任何可用的卡数据。

系统怎样把免税商品的销售税算对?

每件商品都带有一个税种,比如标准、免税或减征。税额按每一行、只在应税行项上、以你门店的税率计算,然后汇总并只精确到分四舍五入一次。对于像持有有效证书的转售商这样的免税顾客,你把整单标记为免税并录入证书编号,于是万一日后被问起,凭证也在。

顾客退货时会发生什么?

你按收据号把原始销售调出来,以一条新的、相互关联的记录发起退款。它精确冲销原单的税额和收款方式、把商品加回库存,并作为一笔退款出现在你的 Z 报表上。原始销售从不被编辑或删除,于是这一天依然对得上账。

它能处理现金,还是只能刷卡?

都能,包括在一笔销售里拆分收款。收银员以点好的备用金开出一个钱箱班次,系统在整个班次里追踪现金销售、退款和付款,到收班时会显示应有现金对你点出的现金,并记录任何长款或短款。这套每日对账,正是一台真正的 POS 与一个只能刷卡的玩具之间的分界线。

我怎样摆脱现有 POS 的按台租金和子域名?

你描述想要的收银台、商品目录、税种和报表,ybuild 就会把这个运行中的应用构建出来,并托管在你自己的域名上。你的商品、价格和销售历史都存放在一个归你所有的托管数据库里,而不是被锁在某个供应商的终端里;而且为了敲一笔销售,你也不必再按台缴租。

参考来源

为你的生意搭这套系统

描述它,一次性上线到你自己的域名——托管、全栈、无需服务器。免费开始。

免费开始构建 →
ybuild 上的相关内容
零售与本地门店中小企业后台 支付与账单托管数据库自定义域名托管 CRUD 应用数据库结构全栈应用
相关场景
为你的水疗馆打造在线预约应用为牙科诊所搭建预约系统为你的美发沙龙打造在线预约应用家教预约应用:固定周期课程、预付课时与爽约管理小微企业记账应用律所 CRM 客户管理系统
构建你自己的应用
免费 · 无需信用卡
免费开始 →