해외 사용자를 대상으로 한 가상 피팅 서비스에서 통화 표시 문제로 고민 중이라면? IDM-VTON은 이제 다양한 지역 통화 형식을 유연하게 지원하여, 전 세계 시장을 위한 전자상거래 플랫폼 구축을 손쉽게 도와줍니다.
통화 포맷 설정 핵심 로직
gradio_demo/app.py 내부에 통합된 통화 포맷터는 주요 화폐 기호를 자동으로 매핑합니다. 아래는 재구성된 예시 코드입니다:
def display_amount(value, unit_code='USD'):
currency_map = {
'USD': lambda x: f"${x:,.2f}",
'EUR': lambda x: f"{x:,.2f}€",
'CNY': lambda x: f"¥{x:,.2f}",
'JPY': lambda x: f"¥{int(x)}"
}
formatter = currency_map.get(unit_code, currency_map['USD'])
return formatter(value)
지역별 가격 표시 설정
configs/region_settings.json 파일을 통해 기본 통화 및 지원 목록을 정의할 수 있습니다:
{
"currency": {
"base": "USD",
"available": ["USD", "EUR", "GBP", "CNY", "KRW", "JPY"],
"rate_source": "https://api.fxrates.io/v1/latest"
}
}
실시간 환율 변환 구현
src/currency_service.py에서 환율 캐싱과 API 호출을 결합한 변환 함수를 제공합니다:
from datetime import datetime, timedelta
_rate_cache = {}
def convert_currency(src, dst, amount):
cache_key = f"{src}_{dst}"
now = datetime.now()
if cache_key in _rate_cache:
rate_data = _rate_cache[cache_key]
if now - rate_data['timestamp'] < timedelta(hours=1):
return amount * rate_data['rate']
# 외부 API 호출 후 캐시 저장 (간략화)
fetched_rate = fetch_live_rate(src, dst)
_rate_cache[cache_key] = {'rate': fetched_rate, 'timestamp': now}
return amount * fetched_rate
기존 전자상거래 시스템 연동 방법
- 데이터 모델 수정:
data/catalog_*.json내 가격 필드에 통화 코드 추가 - UI 컴포넌트 확장: Gradio 인터페이스에 통화 선택 드롭다운 삽입
- 비즈니스 로직 삽입:
inference.py내 추천 가격 계산 시 통화 변환 적용
운영 팁
- 환율은 최소 1시간 단위로만 갱신하여 API 부하 감소
- 사용자 세션에 따라 기본 통화 자동 감지 (IP 또는 브라우저 언어 기반)
- 가격 범위 표시 시 시작/종료 금액 모두 변환 적용
- 소수점 처리 규칙은 지역별 회계 규정 준수 (예: 일본 엔은 정수만 표시)