identity model Business OS 9981 commerce
Not every sale is a customer. Most B2C revenue is anonymous transactions (one cocktail at an expo, a Shopee order, a WhatsApp DM). Only B2B wholesale belongs in YMSB ERP CRM with TIN/BRN and legal billing identity.
| Type | Examples | System of record | Stable identity |
|---|---|---|---|
| Relationship (B2B) | Bar, hotel, distributor, restaurant chain | YMSB ERP CRM | Company name, TIN, BRN, billing email |
| Transaction (B2C / channel) | Web member, expo cash, Shopee, Lazada, IG/WhatsApp | 9981 orders | Platform + external ID — often no phone/email |
| Channel | What you typically have | What you usually don’t have | 9981 keys | CRM? |
|---|---|---|---|---|
| 9981 web / member app | user_id, phone, email (if registered) |
— | source online-ticket / frontend |
No — stay in 9981 users |
| Loyverse / expo POS | Receipt ID, line items, cash/card, event_id |
Member account (most walk-ups buy one cocktail) | source/platform loyverse, external_id |
No |
| Shopee / Lazada / TikTok Shop | Marketplace order ID, SKU qty, settlement | Reliable phone/email for CRM | platform + external_id (when integrated) |
No |
| WhatsApp / IG / FB / manual BO | Staff-entered name/phone on order, chat context | Verified identity, repeat-buyer key | source=manual, platform e.g. Whatsapp |
No (unless BD promotes to lead) |
| B2B wholesale | Legal entity, TIN/BRN, assigned ERP price tier | A public cart on the marketing site | ERP quotation → invoice; later logged-in /trade reorder |
Yes — CRM Client b2b |
| Buyer | Identity | Tier |
|---|---|---|
| Guest | None | B2C default retail |
| 9981 member | 9981 users | B2C member (or assigned) |
| Wholesale account | ERP erp_clients | Client price_tier_id (reseller / distributor / hotel / …) |
ymsbcorporate.fteg.dev) is brochure + lead gen. Partners apply there; they do not check out there.product_skus.price is a legacy copy of ERP retail until 2.0 cutover.Full rule: Yuzu Platform Plan § Pricing.
pos) is the planned
in-person system. First tenant is 9981Yuzu. Loyverse stays the live till until
an authorized cutover. Do not record the same booth sale in both systems.
High volume, low identity. One cocktail at a booth is a valid sale without a 9981 account.
Loyverse iPad (cash / card) → loyverse:sync → orders (source/platform = loyverse, external_id = receipt#) → event_id (cashier ↔ event binding on Event List) → gg_orders / Google Sheets (finance, stock closing, event P&L)
Ops cares about SKU qty, event margin, stock — not “who bought one yuzu highball”.
Only when they graduate to B2B — e.g. bar owner wants distributor pricing. That is a manual BD add to pipeline in ERP (Inbox → Convert to client), not an auto-import from Loyverse.
Same class as expo cash: platform-keyed orders, not CRM clients.
platform = shopee | lazada | tiktok_shop (future) external_id = marketplace order ID buyer_ref = nickname / masked phone — not a stable CRM key
Today much Shopee volume may live in Google Sheets (“shopee orders”) and OCBC bank recon (B2B/Platform bucket in Collection Summary) before full API sync into orders.
erp_clients.ymsbcorporate.fteg.dev.Business OS shows revenue slices, not shopper identities:
| Widget / bucket | Typical filter on orders |
|---|---|
| Online GMV | source IN (online-ticket, frontend) |
| Loyverse GMV | source or platform = loyverse |
| B2C total | Online + Loyverse (today) |
| Future: Marketplace | platform IN (shopee, lazada, …) |
| Future: Social / manual | source=manual + platform (Whatsapp, Instagram, …) |
| Future: By event | event_id — post-expo review |
Full detail: 9981 Daily Sales report (BO).
| Flow | Where e-Invoice lives |
|---|---|
| B2B quotation → paid invoice | YMSB ERP → MyInvois (buyer TIN/BRN from CRM client) |
| B2C web member | 9981 order / MyInvois rules for retail |
| Marketplace | Often platform’s invoice or simplified buyer — separate path |
| Expo cash | Usually no individual e-Invoice per cocktail; event/settlement level |
┌─────────────────────────────────────┐
│ YMSB ERP (tenant ymsb) │
│ CRM Clients (B2B + optional B2C) │
│ Price book: tiers × SKU amounts │
│ Quotes → Orders → Invoices │
│ erp_skus / erp_suppliers │
│ GMV widgets (SELECT from 9981 DB) │
└──────────────┬──────────────────────┘
│ prices + read-only GMV
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 9981 web │ │ Loyverse │ │ Shopee/ │ │ Manual / │
│ members │ │ expo POS │ │ Lazada │ │ social BO │
│ user_id │ │ receipt# │ │ order ID │ │ platform │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
└─────────────────┴─────────────────┴─────────────────┘
│
▼
9981 orders (+ gg_orders)
fulfilment · stock · recon
stocks.balance)platform values are standardizedevent_id for post-expo reviewPROCUREMENT_9981_DB_HOST at prod (read-only user)/srv/www/9981beelongz/docs/EVENT_SALES_SETUP_GUIDE.md — expo + Loyverse binding/srv/www/hubs/sme-erp/app/Services/Commerce9981GmvService.php — GMV aggregatesYuzu Sales Channels · Loading version…