基於 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 客戶管理系統
建構你自己的應用
免費 · 無需信用卡
免費開始 →