@@ -10,7 +10,7 @@ Fieldstack 안에서 모듈로 제공할 수도 있지만, 이 기능만 필요
1010
1111> ** 개발 시점:** Fieldstack V1 완성 이후 검토
1212> ** 상태:** 아이디어 및 초기 설계 단계
13- > ** 핵심 방향:** 윗치폼과 경쟁하지 않고, 엑셀 가져오기 ·현장 판매·재고·정산을 보조
13+ > ** 핵심 방향:** 윗치폼과 경쟁하지 않고, 외부 예약 데이터 입력 ·현장 판매·재고·정산을 보조
1414> ** 제공 형태:** Fieldstack 통합 모듈 또는 단독 서버/앱
1515
1616---
@@ -31,6 +31,7 @@ Fieldstack 안에서 모듈로 제공할 수도 있지만, 이 기능만 필요
3131### 이 기능이 담당하는 영역
3232
3333- 윗치폼 엑셀 파일 가져오기
34+ - 외부 예약/선입금 주문 수동 등록
3435- 외부 예약/선입금 주문의 행사 수령 체크
3536- 예약분과 현장 판매분 재고 분리
3637- 현장 판매 수기 기록
@@ -99,9 +100,11 @@ Fieldstack 모드는 이 공통 코어를 Fieldstack 모듈 API, Ledger, 세무
99100
100101---
101102
102- ## 윗치폼 연동 방향
103+ ## 외부 예약 데이터 입력 방향
103104
104- 윗치폼에는 API가 없다는 전제로 설계합니다. 주문 데이터는 사용자가 윗치폼에서 엑셀 파일로 내려받은 뒤 가져오는 방식만 고려합니다.
105+ 윗치폼에는 API가 없다는 전제로 설계합니다. 대량 주문 데이터는 사용자가 윗치폼에서 엑셀 파일로 내려받은 뒤 가져오는 방식을 우선 고려합니다.
106+
107+ 다만 모든 예약/선입금 데이터가 항상 엑셀 파일로만 들어오는 것은 아니므로, 운영자가 직접 외부 예약 또는 선입금 주문을 수동 등록할 수 있어야 합니다.
105108
106109### 엑셀 가져오기 기능 (계획)
107110
@@ -116,6 +119,21 @@ Fieldstack 모드는 이 공통 코어를 Fieldstack 모듈 API, Ledger, 세무
116119
117120가져온 윗치폼 데이터는 내부에서 새 주문으로 재생성하지 않고, ** 외부 주문 원본의 스냅샷** 으로 취급합니다.
118121
122+ ### 수동 예약 등록 기능 (계획)
123+
124+ 엑셀 파일이 없거나, 행사 직전 추가 예약, DM/메일/현장 구두 예약처럼 별도 경로로 들어온 건은 수동으로 등록할 수 있게 합니다.
125+
126+ 수동 등록 항목 예시:
127+ - 출처: 윗치폼 수동 보정, DM, 메일, 현장 예약, 기타
128+ - 주문자 식별값: 닉네임, 주문번호, 입금자명, 전화번호 뒤 4자리 중 필요한 값
129+ - 예약 상품 및 옵션
130+ - 수량
131+ - 결제 또는 입금 상태
132+ - 수령 예정 여부
133+ - 메모
134+
135+ 수동 등록 데이터도 엑셀 가져오기 데이터와 동일하게 예약 수령 체크, 재고 배정, 미수령 목록, 행사 후 정산에 포함합니다.
136+
119137---
120138
121139## 주요 기능 (검토 중)
@@ -156,7 +174,7 @@ Fieldstack 모드는 이 공통 코어를 Fieldstack 모듈 API, Ledger, 세무
156174
157175### 3. 예약 수령 체크
158176
159- 윗치폼에서 가져온 선입금 또는 행사 당일 예약 구매 데이터를 현장 수령 체크에 사용합니다.
177+ 윗치폼 엑셀로 가져온 데이터와 수동으로 등록한 선입금 또는 행사 당일 예약 구매 데이터를 현장 수령 체크에 사용합니다.
160178
161179행사 당일 화면에서 필요한 기능:
162180- 주문번호 검색
@@ -299,13 +317,13 @@ interface BoothInventoryAllocation {
299317interface ExternalOrderSnapshot {
300318 id: string
301319 eventId: string
302- source: ' witchform '
320+ source: ' witchform_import ' | ' witchform_manual ' | ' dm ' | ' email ' | ' onsite_reservation ' | ' etc '
303321 externalOrderId? : string
304322 buyerAlias? : string
305323 depositorName? : string
306324 phoneLast4? : string
307- importedFileName: string
308- importedAt : string
325+ importedFileName? : string
326+ registeredAt : string
309327 pickupStatus: ' pending' | ' picked_up' | ' partial' | ' needs_check' | ' not_picked_up'
310328 notes? : string
311329}
@@ -368,6 +386,7 @@ PATCH /api/booth/events/:id/inventory
368386
369387POST /api/booth/events/:id/import/witchform
370388GET /api/booth/events/:id/external-orders
389+ POST /api/booth/events/:id/external-orders
371390PATCH /api/booth/external-orders/:id/pickup
372391
373392POST /api/booth/events/:id/sales
@@ -380,14 +399,16 @@ POST /api/booth/events/:id/settle
380399## 검토 필요 항목
381400
3824011 . 윗치폼 엑셀 파일의 실제 컬럼 변형 대응
383- 2 . 행사 당일 모바일/태블릿 입력 UX
384- 3 . 오프라인 또는 네트워크 불안정 상황에서의 임시 저장
385- 4 . 중복 수령 체크 방지 방식
386- 5 . 대리 수령 기록에 필요한 최소 정보
387- 6 . 카드 결제 수수료 또는 간편결제 수수료 입력 여부
388- 7 . 여러 명이 같은 부스를 운영할 때 동시 입력 충돌 처리
389- 8 . 행사 후 미수령/환불 처리 방식
390- 9 . 개인정보 저장 최소화와 가져온 엑셀 원본 보관 정책
402+ 2 . 수동 예약 등록 시 필수 입력값 범위
403+ 3 . 엑셀 가져오기 데이터와 수동 등록 데이터의 중복 판정 방식
404+ 4 . 행사 당일 모바일/태블릿 입력 UX
405+ 5 . 오프라인 또는 네트워크 불안정 상황에서의 임시 저장
406+ 6 . 중복 수령 체크 방지 방식
407+ 7 . 대리 수령 기록에 필요한 최소 정보
408+ 8 . 카드 결제 수수료 또는 간편결제 수수료 입력 여부
409+ 9 . 여러 명이 같은 부스를 운영할 때 동시 입력 충돌 처리
410+ 10 . 행사 후 미수령/환불 처리 방식
411+ 11 . 개인정보 저장 최소화와 가져온 엑셀 원본 보관 정책
391412
392413---
393414
0 commit comments