跨境电商独立站天然需要面对多语言、多货币的挑战。一套商品数据,需要同时服务英语、中文、西班牙语等多语种客户,并支持美元、欧元、人民币等多种货币的展示和结算。
Taoify的多语言多货币架构采用了一套成熟的“主表+翻译表”数据模型。
数据层的多语言存储
以商品表为例:
products主表存储语言无关的字段:商品ID、SKU、价格、库存、创建时间等。
products_translations翻译表存储多语言字段:商品名称、描述、规格参数等,每条记录包含product_id、locale(语种代码)、name、description等字段。
查询商品时,系统根据当前请求的语种(从浏览器语言、用户偏好或URL路径中获取),JOIN翻译表获取对应语种的内容。如果某语种的翻译不存在,则fallback到默认语种(通常是英语)。
这套模型的核心优势是扩展性强——新增一个语种只需要在翻译表中插入新记录,不需要修改表结构。
实时汇率系统的设计
Taoify的汇率系统每天处理百万次换算请求,其架构分为三层:
采集层:定时调用外汇汇率API(如阿里云外汇汇率API),拉取最新汇率数据,存入数据库作为持久化存储,同时写入Redis缓存。
缓存层:Redis存储最新汇率,TTL设置为2小时。所有换算请求优先从Redis读取汇率,缓存未命中时才回源数据库。
计算层:提供RESTful接口,接收金额、源货币、目标货币三个参数,返回换算后的金额。换算逻辑在服务端完成,保证所有客户端看到的换算结果一致。
下单时的汇率锁定
汇率是实时波动的。如果客户浏览商品时看到的价格和结算时的价格不一致,会产生不好的体验。
Taoify的做法是:客户进入结算页时,系统记录当���汇率,将该笔订单的换算汇率“锁定” 。后续的支付、对账都使用这个锁定汇率,不受实时汇率波动的影响。这个设计既保证了客户体验的一致性,也避免了汇率波动带来的财务争议。