고객별 일회성 수량제한
상시 수량제한(기간 없는 업장별 구매 캡)에 더해, 기간·업장별 횟수/수량·한정 풀·일회성 특가를 같은 히어로 코드에 별도로 얹는 프로모션 제한. 정상가 노출은 유지하고, 소진은 결제완료 기준으로만 카운트한다.
한눈 결론
원장 역분개개요
현재 오더히어로에는 상시 수량제한이 있다 — 기간 개념 없이 한 업장이 특정 히어로 코드를 몇 회까지 구매할 수 있는지를 거는 캡이다. MD-15는 여기에 프로모션성 일회성 제한을 더한다. 판매 기간을 두고, 업장별 횟수·수량 캡과 전체 선착순 한정 풀을 걸며, 선택적으로 일회성 특가(또는 무상 샘플링)를 붙인다.
핵심은 정상 판매를 방해하지 않는 것이다. 같은 히어로 코드가 정상가로도 계속 노출되고, 조건을 만족할 때만 그 아래에 일회성 카드가 별도 추가로 붙는다. 소진 카운트는 오직 결제완료 시점에만 일어난다 — 입금대기는 세지 않으며, 동시성으로 풀을 넘긴 주문은 발주 확정 단계에서 되돌린다.
seller_product_member_limit)은 기간·풀·특가 개념이 없다. 일회성은 원장까지 필요하므로 억지로 확장하기보다 별도 테이블 2종으로 분리했다.
선례로 sample_manage의 기간/풀/노출 패턴을 참조한다.
정책 · 정의
용어
| 용어 | 정의 |
|---|---|
| 상시 수량제한 | 현행 기능. 기간 없는 업장별 구매 캡. |
| 일회성 수량제한 | 기간·업장별 횟수/수량·한정 풀을 갖는 프로모션 제한. NEW |
| 별도 노출 | 같은 코드를 정상가 + 일회성 조건 두 채널로 동시 표시. |
| 한정 풀 | 전체 선착순 총량. 소진 시 일회성 노출 자동 종료. |
| 최종 발주 취소 | 동시성으로 풀을 초과한 주문을 발주 확정 단계에서 정정. |
정책 규칙
| # | 규칙 | 구분 |
|---|---|---|
| 1 | 정상가 노출은 유지되고, 일회성 조건은 같은 코드에 추가될 뿐 정상 노출을 바꾸지 않는다. | NEW |
| 2 | 소진 카운트는 결제완료에서만. 환불/취소는 원장 역분개로 되돌린다. | NEW |
| 3 | 업장별 캡 초과분은 발주 확정 단계에서 자동 취소(최종발주취소). | NEW |
| 4 | 재고관리 코드는 가용 재고 범위 내에서만 소진한다. | 재고 연동 |
| 5 | 소진 후 동일 업장의 재구매는 차단한다. | NEW |
| 6 | 기간 만료 시 상태를 EXPIRED로 자동 전환하고 노출을 멈춘다. | NEW |
| 7 | 상시 ↔ 일회성 전환 시 초기화 규칙 적용. | 미정 (§05-2) |
| 8 | 한정 풀 소진 시 일회성 노출 자동 종료. | NEW |
| 9 | 그룹3 가격/이벤트 엔진과의 통합은 미정. DDL은 양방향 수용. | 미정 (§05-1) |
데이터 모델
신규 2 + 기존 2. 상시/일회성을 한 테이블에 섞지 않고, 일회성은 설정 테이블과 소진 원장으로 나눈다.
| 테이블 | 역할 | 구분 |
|---|---|---|
seller_product_onetime_limit | 일회성 제한 설정(코드·업장·기간·캡·풀·특가·재고플래그·상태) | NEW |
seller_product_limit_ledger | 소진 원장(주문·수량·시각·상태·취소플래그) | NEW |
seller_product_member_limit | 상시 제한(현행) — 하위호환 유지 | EXIST |
sample_manage | 기간/풀/노출 패턴 선례 — 참조 | REF |
offer_type·promo_price는 그룹3 가격엔진으로 이관될 수 있는 후보다. 흡수로 결정되면 이 두 컬럼은 그룹3 참조 FK로 대체될 수 있다. (§05-1)
화면 흐름
등록 → 노출 → 소진
- 일회성 제한 등록 — 히어로 검색·선택 → 업장·기간·업장별 캡·한정 풀·특가·재고연동 입력.
- 이중 노출 — 정상가 카드 유지 + 일회성(선착순/샘플링) 카드 별도 추가. 재고/풀/기간 조건으로 표시.
- 소진 카운트 — 결제완료 시 원장 +카운트, 풀 차감. 입금대기는 미카운트.
- 정정 — 취소/환불은 역분개, 동시성 초과는 발주 확정 단계 최종발주취소.
- 종료 — 풀 소진 또는 기간 만료 시 자동으로 일회성 노출 종료(
SOLD_OUT/EXPIRED).
어드민 프로토타입
아래는 등록 모달(우측 번호 핀 설명)·이중 노출 미리보기·소진 원장을 담은 클릭 프로토타입이다.
⚠ 미정의 항목
스펙에 확정되지 않은 것. 프로토는 아래 가정대로 구성했으나, 확정 전까지 가정은 가정으로 둔다.
offer_type/promo_price가 그룹3 가격엔진으로 이관.다음 단계
- 그룹3 방향 확정 — 흡수/분리 결정. 이 결과로 진입 위치·데이터 소유·특가 계산 주체가 갈린다. (선행 · §05-1)
- 카운팅 명세 확정 — 결제완료 훅 지점, 역분개 트리거, 최종발주취소 판정 시점을 결제/발주팀과 합의.
- 한정 풀 단위 확정 — 수량 vs 건수, 재고연동 상호작용(§05-5).
- DDL 리뷰 — offer_type/promo_price의 그룹3 이관 가능성 반영해 컬럼 확정.
- 어드민 등록/원장 화면 개발 — 프로토 기준. 상시 목록과 일회성 레코드 공존 처리.
OrderHero · MD-15 · rev 2026-08-21 · 프로토: app/index.html