이커머스 · 2026
농산물 직거래 주문 사이트
주문 접수부터 무통장 입금 확인, 발송 목록까지 농원이 직접 처리하는 쇼핑몰
사과 농원이 직접 주문을 받고 처리할 수 있도록 주문 사이트와 운영 관리 화면을 함께 만들었습니다. 은행 거래내역에서 읽은 무통장 입금을 주문에 자동으로 맞추고, 확인 문자와 발송 목록까지 이어집니다.
- 고객
- DMZ1km사과농원
- 분야
- 이커머스
- 프로젝트 사이트
- 프로젝트 사이트 ↗

개요
- 사과 농원이 직접 운영하는 주문 사이트와 운영 관리 화면 한 벌
- 방문자는 품종별 상품을 담아 주문, 농원은 같은 사이트의 관리 화면에서 주문·상품·회원 처리
- 가입 없이도 주문 가능. 주문 조회와 취소는 접수 때 인증한 전화번호로
- 결제는 무통장 입금. 주문접수 → 입금확인 → 배송중 → 배송완료 순으로 상태 관리
- 환불접수·환불완료·주문취소를 별도 상태로 두어 집계에서 제외

과제
- 결제 수단이 무통장 입금뿐 → 입금과 주문을 사람이 맞춰 보는 일이 주문마다 발생
- 입금자명과 금액만으로 주문을 특정해야 함. 동명이인이 같은 금액을 넣는 경우 존재
- 선물 주문이 섞임 → 주문자와 받는 사람이 다른 주문을 같은 흐름에서 받아야 함
- 비회원 주문의 조회 수단이 전화번호뿐 → 번호 확인 없이는 남의 주문이 열리는 구조
- 품종과 중량 구성이 철마다 바뀜 → 상품을 농원이 직접 고칠 수 있어야 함
- 배송비가 묶음 수에 따라 달라짐 → 담은 상품의 부피로 묶음 수를 세야 함
해결 방법
- 품종별 목록에서 장바구니에 담고, 내역 확인 → 주문자 정보 → 받는 사람 → 접수 완료 순의 단계별 입력
- 받는 사람은 주문자와 같은지 고르는 것으로 시작 → 본인 앞 주문에서 입력 단계 생략
- 주소는 직접 입력 대신 검색으로만 선택 → 우편번호와 주소가 어긋나는 입력 차단
- 접수 완료 화면에 주문번호와 입금 계좌 안내. 같은 내용을 주문자에게 문자로 발송
- 주문 조회는 회원은 계정으로, 비회원은 인증번호로. 두 경로의 대상 범위를 섞지 않음

- 관리 화면에서 카테고리·상품 추가와 순서 변경, 사진 교체, 품절·숨김 전환
- 주문 관리에서 상태별로 걸러 보고 여러 건의 상태를 한 번에 변경, 송장 입력
시스템 구조
방문자
- 상품 선택 → 주문 접수 → 입금 안내 문자 → 입금 → 입금 확인 문자 → 배송
농원
- 발송 대상 확인 → 엑셀 저장 → 발송 → 송장 입력 → 배송중 전환
- 대시보드에서 지금 처리할 주문 건수와 기간별 주문 수·금액, 품종별·상품별 집계 확인

입금 확인
- 은행 거래내역 화면을 주기적으로 읽어 입금자명과 청구 총액이 맞는 접수 건을 입금확인으로 전환
- 입금 확정, 확인 문자 발송 실패, 후보 다수를 운영자 메신저로 알림
- 주문과 무관한 입금은 알리지 않고 기록만 남김 → 조치할 것 없는 알림이 쌓이는 것을 방지
- 미입금 주문의 확인은 운영자의 일상 점검에 남겨 둠. 자동 확인이 그 경로를 대체하지 않음
구현
- 금액은 화면이 먼저 보여 주고 접수 시점에 서버가 다시 계산 → 담은 사이 상품이 바뀐 주문은 거부하고 갱신된 내역으로 되돌림
- 배송비는 부피 합을 묶음 단위로 올림한 묶음 수 × 단가. 단가는 운영자가 메신저 명령으로 조회·변경
- 입금 후보가 둘 이상이면 가장 오래된 주문을 확정하되, 그 사실을 운영자에게 알리고 주문 이력에도 남김
- 처리 기준점을 한 건만 들고 있어, 중단 후 재개로 같은 거래를 다시 읽어도 같은 주문이 두 번 확정되지 않음
- 기준점을 찾지 못하면 거래 일시로 좁혀 처리 → 조회 범위 전체가 한꺼번에 확정되는 것을 방지
- 발송용 엑셀은 화면의 한 페이지가 아니라 검색 조건의 전 건. 상한에 걸려 잘리면 그 사실을 알림

개인정보와 권한
- 로그인 실패 누적 시 계정 잠금, 그 앞단에 주소 단위 속도 제한
- 없는 아이디와 틀린 비밀번호를 같은 응답으로 처리 → 계정 존재 여부 미노출
- 인증번호·토큰·전화번호를 기록에 남기지 않고, 고객 문자에 배송지·수령인 미포함
- 회원 목록에 주소를 담지 않고 상세 조회에만 → 한 번에 여러 명의 주소가 실려 나가는 경로 제거
- 업로드 사진을 서버가 다시 변환해 저장 → 촬영 위치 등 사진에 붙은 정보와 덧붙은 데이터 제거
- 관리 기능을 권한 단위로 나눔. 화면의 버튼 활성은 표시일 뿐이고 차단은 서버에서
결과
- 농원이 상품 구성과 가격을 직접 고치며 철마다 바뀌는 품종을 그때그때 반영
- 입금 확인이 사람 손을 거치지 않고 주문 상태로 이어지고, 확인 문자도 함께 발송
- 주문 상태와 처리 이력, 입금이 확정된 근거를 한 화면에서 추적
- 발송 대상 목록을 엑셀로 내려 택배 발송 준비에 그대로 사용
- 비회원도 가입 없이 주문하고, 번호 인증으로 자기 주문만 조회·취소
- 방문 통계를 농원 도메인 아래에서 수집 → 수집 서버 주소를 방문자에게 노출하지 않음

사용 기술
- Python
- FastAPI
- PostgreSQL
- SQLAlchemy
- React
- TypeScript
- Redis
- Docker
화면




해결이 필요한 문제가 있으신가요?
소프트웨어 개발부터 장비 연동과 엔지니어링까지, 프로젝트의 요구사항에 적합한 해결 방안을 함께 검토합니다.
프로젝트 문의하기