RT-O16: B2B 전용 OMS 모듈

🎯 B2B 전용 OMS란?5-check matrix · 계약 기반 자동 검증

B2B 주문은 B2C와 다른 결제 흐름(NET30 / NET60 / NET90)과 사전 체결된 계약 단가, 승인 SKU 화이트리스트, 신용한도가 존재한다. RT-O16은 이러한 B2B 거래의 특성(대량·정기·계약 조건·할인 체계)을 반영한 전용 OMS 모듈로, 발주가 들어오면 5-check matrix (min_qty / price_tier / payment_term / sku_allowed / credit_limit)를 즉시 교차검증한다.

모든 항목이 통과하면 auto_approve로 곧바로 배치 피킹 큐에 push되고, 위반이 발생하면 어떤 항목이 실패했는지 구체적인 사유와 함께 sales rep에게 escalate된다. 평균 처리 시간은 12초 → 0.8초로 단축되었으며, 9월 4주차에는 자동 승인율 95.2% / 계약 위반 0건의 승격 기준을 만족했다.

🧭 B2B 자동 검증 파이프라인5 stages · contract → volume → term → sku/credit → decide
STEP 1
contract_lookup

customer_id + sku_set으로 계약 조회 (Postgres / 계약 DB). 활성 계약의 tier·단가·결제조건 페이로드 적재.

STEP 2
volume_check

최소 수량(min_order_qty) 충족 여부 확인 + 수량 구간별 볼륨 할인 tier 적용 (Bronze 0% ~ Platinum 12%).

STEP 3
term_check

결제 조건 일치 여부 (NET30/45/60/90), 결제일·통화 일치, 인보이스 발행 정책 확인.

STEP 4
sku_credit_check

승인 SKU 화이트리스트 검증 + order.amount ≤ remaining_credit 신용한도 체크 (실시간 ERP 동기화).

STEP 5
decide_dispatch

5-check 모두 통과 → auto_approve + 배치 피킹 enqueue. 일부 실패 → escalate_to_sales 또는 partial_approve.

🐍 B2B 주문 자동 검증 (Python)
def validate_b2b_order(order, contract):
    # 5-check matrix : 모두 True 일 때만 auto_approve
    checks = {
        "min_quantity": order.total_qty >= contract.min_order_qty,
        "price_tier": apply_volume_discount(order, contract),
        "payment_term": order.payment_terms == contract.agreed_terms,
        "sku_allowed": all(s in contract.approved_skus for s in order.skus),
        "credit_limit": order.amount <= customer.remaining_credit,
    }
    if all(checks.values()):
        return auto_approve(order)   # 배치 피킹 큐로 직행
    else:
        return escalate_to_sales(order, failed_checks=checks)
➗ 자동화율 모델 & 5-check 가중치자동 승인율 ≥ 95% 목표
auto_rate = passed_all / total_b2b_orders
volume_discount = price · (1 − tier_discount(qty))
# 5-check 모두 통과해야 auto_approve. 한 항목이라도 실패하면 sales rep escalate.
qty .25order.total_qty >= min_order_qty · 계약상 최소 수량 충족 여부 (가장 높은 가중치)
price .25apply_volume_discount(order, contract) · 수량 구간 단가가 계약 tier와 일치하는지 검증
term .15order.payment_terms == contract.agreed_terms · NET30/45/60/90 일자·통화 동일성
sku .20all(s in contract.approved_skus) · 화이트리스트 외 SKU가 한 건이라도 있으면 자동 거부
credit .15order.amount <= remaining_credit · ERP 실시간 잔여 신용한도 체크

예) Silver tier 고객이 1,200개 발주 → min_qty 500 충족,4% 할인 적용, NET45, 모두 승인 SKU, 한도 내 → auto_approve. 같은 고객이 2,000개를 미승인 SKU 1건 포함해 발주 → sku_allowed=False escalate_to_sales(failed={sku_allowed}).

📦 계약 Tier 정책표9월 기준 활성 계약 4개 tier · N=312사
Tier최소 수량할인율NET 일수신용한도
Bronze1000%30₩1,000만
Silver5004%45₩5,000만
Gold2,0008%60₩2억
Platinum5,00012%90₩10억

Tier가 높을수록 최소 수량 / 신용한도 / 할인율 / 결제 유예 모두 증가하는 구조다. Platinum 계약은 NET90 / 12% 할인 / ₩10억 한도까지 허용되며, B2B 매출의 약 62%를 차지한다. RT-O16은 발주 시점에 이 tier 매트릭스를 즉시 적용하여 별도 영업 승인 없이 배치 피킹으로 직행시킨다.

참고문헌
[1] 김지훈 외, "B2B 전용 OMS 모듈과 5-check 자동 검증", IntraLogis 사내 보고서, 2026.09
[2] Manhattan Associates, "Active Omni: B2B Order Management", Product Whitepaper, 2024
[3] SAP, "S/4HANA Order Management Configuration Guide", SAP Help Portal, 2024
[4] 김 외, "B2B 자동 발주 검증 시스템 설계", 한국SCM학회 추계학술대회, 2024
[5] ISO, "ISO 20022 — Universal financial industry message scheme", 결제 메시지 표준, 2024