多種貨幣目錄
(部分: 業務和管理)
1)任務和應用範圍
多貨幣目錄是不同貨幣,地區和渠道的價格/傭金/稅收真相的單一來源。它提供:- 正確的價格展示(UX,信任),
- 計算的可重復性(審計,退款),
- 經濟可預測性(保證金/稅),
- 合規性(稅收、制裁、貨幣限制)。
2)數據模型(參考)
實體:- Product/SKU: `{sku_id, title, attributes, region_policies[]}`
- PriceList: `{pricelist_id, base_currency, effective_from, effective_to, version}`
- PriceItem: `{sku_id, base_price, base_currency, tax_class, pricing_model, promo_refs[]}`
- FXRate: `{pair: EUR→USD, rate, source, method, precision, effective_from, version}`
- `minor_units` (ISO 4217;見JPY=0,USD/EUR=2,KWD=3;crypto-最多8)
- 「rounding_mode」:「HALF_UP」(零售),「BANKERS」(金融),「FLOOR」/「CEIL」(稅收/監管機構)
3)外匯來源和政策(匯率)
資料來源:課程提供者(商業/中央銀行),自己的TWAP/中位數。
更新策略:頻率(波動1-15分鐘,穩定1次/日),延遲發布。
Markaps:客戶側面的「rate(1+fx_markup_bps)」;透明的通道/區域規則。
保證報價窗口(rate lock):訂單中帶有「fx_version」的5-30分鐘。
反飛躍:滴答作響,巡回決勝局,最後的有效報價回落。
考試:每個課程出版物都有「版本」,「effective_from」;保存歷史記錄,以獲取回報/爭議。
4)定價策略
Base+FX:將基本價格保存在「核心」(例如EUR)中,轉換為店面。
按貨幣計算:關鍵貨幣的預先計算價格(最佳UX,可預測性)。
混合:前10種貨幣是預計算,「長尾巴」是飛行的。
Charm-pricing: `X.99/95/90通過區域控制四舍五入錯誤的積累。
費用/費用:在目錄或「檢查費」階段中支付費用,跨界費用,網絡費用(crypto)。
5)稅收和「包容性」
VAT/GST包括/排除:EU-更常見的是VAT包含;B2B可能沒有增值稅。
稅級:聯邦/州/地方;對於在線遊戲-具體費用。
門檻稅率:稅率因營業額/類別/地區而變化(threshold)。
四舍五入的稅收:按項目vs按基數;四舍五入模式和計算順序必須確定。
於爾。報告:在支票/收據中保存「tax_rule_version」。
6)四舍五入和精度
在顯示的最後一步中四舍五入;在計算中,保留「高精度」(最多8-9個符號)。
對於crypto,請使用decimal庫(無二進制浮動)。
反漂移籃子:總和為「銀行家回合」,但要顯示的UX四舍五入;捕獲「rounding_scope」。
總和規則:四舍五入後的建築總和必須與總和匹配-使用最後GPI/美分的分配(penny分布)。
7)目錄,促銷和幫派
Promo-правила: `if region=A and currency in [EUR,USD] then discount=10% cap=50`.
適用程序:(1)基本價格→ (2)折扣→ (3)稅款→ (4)費用→ (5)四舍五入。
捆綁分配:與折扣前的項目選項卡成比例;退貨的vrapper。
Threshold促銷:以籃子貨幣total≥X時免費送貨/獎金;以基本貨幣存儲等價物,但要固定FX版本。
8)集成支付和合規性
貨幣可用性:並非每種貨幣都提供給每個玩家/地區/支付提供商。
保證的FX:根據固定的「fx_version」進行前綴授權;演示-請求確認新價格。
CUS/制裁:貨幣/銀行/代幣清單,轉換限制。
退款/充電包:根據歷史悠久的「fx_version」訂單重新計票;退貨傭金-按交易日目錄。
9) API體系結構和合同
閱讀目錄:- `GET /catalog/prices?sku=…¤cy=…®ion=…&pricelist=…`
- Ответ: `{unit_price, currency, fx_version, pricelist_version, tax_breakdown[], fees[], display_price, rounding_mode}`
- `POST /pricing/quote { items[], region, currency, buyer_type }`
- Ответ: `{items_priced[], subtotal, discounts, taxes[], fees[], total, fx_version, lock_ttl, signature}`
- 「POST/pricing/commit {quote_id,signature} 」→帶有哈希和簽名的收據。
- `PriceListUpdated`, `FXRatePublished`, `TaxRuleChanged`, `PromoChanged` — с `version/effective_from`.
10)緩存和性能
邊緣緩存:「pricelist: region: currency: sku: version」;穩定貨幣的TTL較高。
Warmup:加熱頂級類別推出活動。
SWR(stale-wile-revalidate):用於店面;checkout-只有fresh。
Partial invalidation:通過「sku」、「category」、「pricelist_version」標簽致殘。
SLO: p95 ≤ 120毫秒用於店面,p95 ≤ 250毫秒用於報價,≥99。95%的可用性。
11)可觀察性和審計
所有事件中的跟蹤:「trace_id」、「pricelist_version」、「fx_version」、「tax_rule_version」。
固定性:價格表/課程出版物的WORM期刊;Merkle剪輯,發行簽名(DSSE)。
回收:支票/收據,有完整的布局和有效載荷哈希;保存7-10年(根據監管機構)。
Dashbords:vitrina↔checkout差異,上下舍入頻率,FX錯誤,課程鎖定時間(鎖定TTL),ROI促銷。
12)顯示本地化
貨幣格式:符號/代碼(₴,歐元,AED),字符位置,分隔符,空格。
本地規則: "₴ 1,234.56" vs "$1.234。56”.
心理學:在fintech/遊戲中,神奇的價格標簽(「.99」)並不總是合適的;測試區域。
法律簽名:「價格包括增值稅」,「網絡費用單獨收取」。
13)特殊情況
無小部分貨幣:JPY/ISK-minor_units=0。
三音小單位:KWD/BHD=3。
Crypto:BTC/ETH/USDT-最多8個標誌,分別為network fee;stablecoins ≠跨邊界的「課程1:1」。
雙重價格:「目錄貨幣」≠「註銷貨幣」(商業銀行匯率)。記錄spread。
體育/遊戲:以目錄貨幣計算的最大收益的限制-在「fx_version」回合中存儲等價物。
14) SLO/SLI和成功指標
正確性: total_checkout=total_quote的訂單比例(分配規則中± 1個次要單位)≥ 99。99%.
FX穩定性:rate lock窗口中的操作比例≥ 99%。
經濟學:保證金/單位與計劃;由於FX/四舍五入 (bps)引起的偏差。
UX:quote p95的速度,價格轉換中的垃圾桶比例,NPS店面。
審計:100%的支票帶有保存的「_version」和簽名。
15)事件花花公子
「店面價格≠在籃子裏」:1.freeze緩存殘障人士,2)強制refresh價格表,3)比較「pricelist_version」/「fx_version」,4)政策補償。
「FX飛躍破壞利潤」:1.包括升級的標記/打折,2)減少TTL鎖定,3)切換回落源。
「稅收不會收斂」:1.檢查「tax_rule_version」,2)驗證規則rounding_scope,3)hotfix和回收站的復制。
「促銷給出了負價」:1.保護性規則(min_price), 2)禁用流通,3)恢復和審核。
16)安全和合規性
策略即代碼:通過PR+發行簽名控制價格表/FX/稅收更改。
角色/可用性:價格出版物/FX的4眼原則。
記錄/收據:已簽名的發布事件和檢查。
區域限制:禁止個別貨幣/代幣;地理政治。
17)實驗與優化
A/B:標記,預估價格vs-the-fly,顯示格式。
動態標記:對蒸氣/時間波動性的依賴。
隊列分析:按貨幣分列的退貨/沖兌、四舍五入敏感性。
緩存策略:SWR/TTL對轉換和準確性的影響。
18)實施支票
- 定義紙張的基本貨幣和貨幣政策。
- 設置FX的收集/發布,包括TTL的驗證、標記和鎖定。
- 正式化TaxRule和計算/四舍五入順序(按項目或按基數)。
- 實現目錄/quote/commit API+簽名收據。
- 啟用邊緣緩存和顆粒殘疾;用於店面的SWR。
- 開箱即用(vitrina↔checkout,FX錯誤,稅收,保證金bps)。
- 在價格/課程出版物、WORM期刊上輸入角色/簽名。
- 準備花花公子:價格過高,外匯跳躍,稅收分歧。
- 進行「GameDay目錄」:關閉FX來源,促銷活動,更改稅收。
- 按區域定期審計minor_units/otobrazheniye案。
19) FAQ
是否需要以每種貨幣儲存價格?
不一定。結合頂級貨幣的預計算和「尾巴」的轉換-UX和成本是如此平衡。
為什麼四舍五入後的總數「不打」?
由於按項目vs按基數的差異。記錄一種方法,然後使用「penny distribution」。
如何在一個月內退貨?
根據保存在收據中的歷史「pricelist_version」,「fx_version」和「tax_rule_version」。
crypto是什麼?
使用decimal精度,network fee單獨使用,不要承諾為fiat 1:1;捕獲過程和操作窗口。
摘要:多幣種目錄是精確數學,嚴格政策和合理緩存的組合。驗證一切(價格/課程/稅),鎖定報價窗口,確定計算和舍入的順序,簽署支票工件,並保持行車記錄的可見性。因此,您將獲得所有貨幣和地區的誠實展示,可復制的計算和可管理的經濟。