Woori BNC
닫기
고객센터

정기배송 관리 프로그램 사례: 계란 계약별 일정과 CMS 수납

2018.11.09 조회 2732

우리비엔씨는 2018년 영농조합법인 킹스파머스를 위해 계란 정기배송 업무를 관리하는 배송관리 프로그램을 개발했습니다. 고객이 맺은 계약(상품·주기·요일)을 등록하면 배송 일정이 자동으로 계산되고, 배송 결과에 따라 판매금액과 수납(선납·후납·CMS 자동이체)까지 이어지는 구조입니다. 요일별 엑셀 장부로 하던 정기배송 업무를 어떻게 프로그램으로 옮겼는지, 계약 한 건이 일정과 수납이 되기까지의 흐름을 따라가며 정리했습니다.

정기배송 관리 프로그램의 계약별 일정 화면 - 왼쪽에 고객명, 주소, 상품명, 상품구분(1주 1팩, 2주 2팩 등), 배송 요일 목록, 오른쪽에 2018년 7월부터 10월까지 주 단위 배송 캘린더, 상단에 고객 관리, 상품계약 관리, 배송목록 조회, 계약별 일정, 월별 일정, 배송 통계, 입금 관리, 배송기사 관리 메뉴

계약별 일정 화면 (데모 데이터, 전화번호는 가림). 계약마다 주 단위 배송 칸이 자동으로 채워집니다.

정기배송 업체의 기존 엑셀 장부 구조

의뢰를 받을 때 고객사가 쓰던 엑셀 장부를 함께 받았습니다. 정기배송을 엑셀로 관리하는 곳이라면 대부분 비슷한 모양일 것 같습니다. 고객 정보는 빼고 장부의 구조만 정리하면 다음과 같습니다.

장부 구성담긴 내용손이 가던 지점
요일·지역별 시트배송 요일마다 시트 하나(월~일), 택배 고객은 별도 시트. 한 줄에 고객 한 명같은 고객이라도 상품이나 요일이 다르면 여러 줄, 여러 시트에 흩어짐
주차별 배송 칸달마다 주차 열을 두고 배송한 팩 수와 금액을 기록2주 1팩, 1달 2팩 같은 주기를 사람이 계산해서 칸을 채움
비고 칸자동이체·후불·회차 선납 같은 납부 방식, 첫 배송일, 일시중단, 배송지 변경중요한 규칙이 메모로만 남아 집계나 검색이 어려움
해지 시트해지한 고객, 마지막 금액, 회수 기록해지 고객을 다른 시트로 옮겨 적어 관리
출납부 시트주차별 개수와 총금액다른 시트를 수식으로 모으는 구조라 시트를 바꿀 때마다 수식도 손봐야 함

고객이 수십 명일 때는 이 방식으로도 버틸 수 있습니다. 그런데 고객이 늘고 상품과 주기가 다양해지면 “이번 주 수요일에 누구에게 몇 팩을 보내야 하나”를 매번 사람이 시트를 넘겨 가며 맞춰야 합니다. 그래서 이 프로젝트는 시트 구조를 그대로 옮기지 않고, 흩어져 있던 규칙을 ‘계약’ 하나로 모으는 데서 시작했습니다.

기존 엑셀 장부와 배송관리 프로그램 비교 도식 - 요일·지역별 시트, 비고 칸 메모, 해지 시트가 프로그램의 계약으로 모이고, 계약에서 배송 일정, 배송 결과, 금액·수납, 집계가 이어짐. 출납부 시트는 집계로 대체

시트와 메모에 흩어져 있던 규칙을 계약으로 모은 구조 (직접 그린 도식)

계약 기반 배송 일정 자동 계산

프로그램에서 일정의 기준은 고객이 아니라 계약입니다. 고객 한 명이 여러 상품을 서로 다른 주기로 받을 수 있기 때문입니다. 계약에는 다음 항목이 들어갑니다.

계약 항목내용 (화면의 데모 데이터 기준)
상품약초란, 초란, 맥반석, 궁란 등 고객사의 계란 상품
주기와 수량1주 1팩, 2주 2팩, 3주 2팩, 1월 3팩처럼 ‘얼마마다 몇 팩’
배송 요일월요일~일요일 중 받는 요일
계약 상태첫 배송일, 해지, 재계약

계약을 저장하면 프로그램이 주기와 요일에 맞춰 배송 일정을 계산합니다. 엑셀에서 사람이 주차 칸에 1, 2를 적어 넣던 일이 이 단계에서 없어집니다.

계약 주기가 주 단위 배송 일정이 되는 방식 도식 - 1주 1팩 수요일 계약은 매주, 2주 2팩 월요일 계약은 격주, 3주 2팩 월요일 계약은 3주마다 배송 칸이 채워짐. 칸 안의 표시는 배송 수량과 요일

계약 주기에 따라 배송 칸이 채워지는 방식 (설명용 예시, 직접 그린 도식)

아래 화면은 실제 프로그램에서 한 고객의 계약을 확대한 부분입니다. 같은 고객이 약초란은 1월 3팩 목요일, 초란은 2주 2팩 월요일, 맥반석은 1주 1팩 월요일, 궁란은 3주 2팩 월요일로 네 건의 계약을 갖고 있고, 계약마다 일정이 따로 계산됩니다. 칸 안의 “2[월]”은 월요일에 2팩을 배송한다는 뜻입니다.

계약별 일정 화면 확대 - 한 고객의 약초란 1월 3팩 목요일, 초란 2주 2팩 월요일, 맥반석 1주 1팩 월요일, 궁란 3주 2팩 월요일 계약이 각각 다른 주기로 주 단위 캘린더에 표시됨

고객 한 명, 계약 네 건, 일정 네 줄 (데모 데이터, 전화번호는 가림)

일일 배송 업무 흐름

일정이 계산되어 있으면 날짜 하나만 고르면 됩니다. 배송 현장에서 쓰는 흐름은 이렇습니다.

1. 당일 배송 대상 목록 출력

그날 배송할 고객과 상품, 수량이 목록으로 나옵니다. 요일 시트를 넘겨 가며 오늘 칸에 표시된 줄을 찾던 일을 대신합니다. 고객 주소는 건물명이나 지역명까지 따로 관리해서 지역별 집계에도 쓰입니다.

2. 배송기사 배정

배송기사와 지점을 등록해 두고 배송 대상에 기사를 배정합니다.

3. 배송 결과 등록과 변경

배송이 끝나면 고객별로 결과를 등록합니다. 고객 사정으로 배송을 미루거나 수량이 바뀐 경우에도 결과를 수정할 수 있고, 판매금액은 등록된 배송 결과를 기준으로 집계됩니다.

4. 배송 집계

쌓인 결과는 고객별, 지역별, 일자별, 요일별로 집계하고 월별·일자별로 조회합니다. 월별 일정 화면과 배송 통계 메뉴에서 확인합니다.

배송 후 금액 집계와 수납 관리

배송 결과가 등록되면 판매금액이 자동으로 집계됩니다. 정기배송은 고객마다 돈을 내는 방식이 다르다는 점이 까다로운데, 엑셀에서는 이 내용이 비고 칸 메모로만 남아 있었습니다. 프로그램에서는 수납 방식을 세 가지로 나눠 처리합니다.

수납 방식프로그램에서 하는 일
선납회차 단위로 미리 받은 금액을 선납분으로 관리하고, 배송분은 자동으로 수납 처리
후납배송 후 무통장입금 등으로 받은 금액을 입금 관리에서 직접 수납 입력
CMS 자동이체자동이체 고객의 CMS 등록용 엑셀 파일을 만들고, 이체 내역 엑셀을 일괄 등록해 수납 처리

실제 입금 관리 화면은 아래와 같습니다. 결제 구분(자동이체·후납)과 기준 연월을 고르면 대상 고객 목록에 고객별 결제 방식, 월 매출액, 기타 CMS 금액, 누적 잔액이 나옵니다. ‘미납자만 보기’로 아직 내지 않은 고객만 추려 볼 수 있고, 여러 고객을 골라 한 번에 납부 처리하는 ‘선택납부’와 자동이체용 ‘CMS 생성’·‘CMS 갱신’ 버튼이 같은 화면에 있습니다. 오른쪽 결제내역에는 고객이 언제, 어떤 방식(계좌이체, 매장카드 등)으로 얼마를 냈는지가 날짜별로 남습니다.

정기배송 관리 프로그램의 입금 관리 화면 - 결제구분 자동이체·후납 선택, 기준년월, 미납자만 보기, 선택납부, CMS 갱신, CMS 생성 버튼, 대상고객 목록의 고객명, 결제방식, 월매출액, 기타 CMS, 누적잔액, 오른쪽 결제내역의 결제일, 결제방식(계좌이체, 매장카드), 결제금액

입금 관리 화면 (데모 데이터, 생년월일·전화번호는 가림)

배송에서 수납까지 흐름 도식 - 배송 결과 등록, 판매금액 자동 집계, 고객별 수납 방식에 따라 선납(선납분 자동 수납), 후납(입금 관리에서 직접 입력), CMS 자동이체(등록용 엑셀 생성과 이체 내역 일괄 등록)로 나뉘고, 마지막에 전체 수금·미수금 집계

배송 결과에서 수금·미수금 집계까지 (직접 그린 도식)

세 방식으로 들어온 돈은 전체 수금과 미수금 내역으로 한 번에 집계됩니다. 누가 얼마를 미리 냈고 누구에게 얼마를 받아야 하는지를 시트마다 찾아보지 않아도 됩니다.

프로그램 메뉴 구성

화면 상단 메뉴는 업무 단위로 묶여 있습니다. 배송관리 프로그램이지만 고객 관리 메뉴의 비중이 큰데, 정기배송은 결국 고객과의 계약을 오래 관리하는 일이기 때문입니다.

메뉴 묶음메뉴
고객고객 관리, 상품계약 관리, 생일자목록 조회, 기타 CMS 관리
기업기업고객 관리, 기업상품 판매관리
고객배송배송목록 조회, 계약별 일정, 월별 일정, 배송 통계
입금입금 관리
코드문자서비스 관리, 상품 관리, 배송기사 관리, 고객그룹 관리, 지점 관리

프로젝트 개요

항목내용
고객사영농조합법인 킹스파머스
업무계란 상품 정기배송 (고객·계약·배송·수납 관리)
개발 기간2018년 6월 ~ 2018년 10월
개발 환경Visual Studio 2015 C# (WinForm), DevExpress 17.2, .NET Framework 4.0 이상
데이터베이스SQL Server (별도 DB 서버: 자체 구축 또는 임대 서버 중 선택)
설치 방식윈도우 프로그램 설치(Setup) 파일로 제공
주요 기능고객·계약 관리, 배송 일정 자동 계산과 캘린더 조회, 당일 배송 목록 출력, 기사 배정, 배송 결과 등록, 선납·후납·CMS 자동이체 수납, 수금·미수금 집계, 고객·지역·일자·요일별 배송 집계

정기배송 관리 프로그램 의뢰 전 준비 자료

준비 자료이유
지금 쓰는 엑셀 장부시트 구성과 비고 칸 메모에 실제 업무 규칙이 들어 있습니다. 고객 정보는 지우고 구조만 보내 주셔도 됩니다.
상품과 주기 종류1주 1팩, 1달 3팩처럼 실제로 쓰는 주기를 모두 알아야 일정 계산 규칙을 정할 수 있습니다.
납부 방식별 규칙선납 회차, 후불 정산 시점, 일시중단 때 금액 처리 같은 예외가 수납 기능의 핵심입니다.
CMS 이용 여부와 파일 양식자동이체 등록·결과 파일의 양식에 맞춰 엑셀 생성과 일괄 등록 기능을 만듭니다.
기사·지점 구성누가 어느 지역을 맡는지에 따라 목록 출력과 배정 방식이 달라집니다.

자주 묻는 질문

Q. 계란이 아닌 다른 정기배송 상품에도 쓸 수 있나요?

이 프로그램은 계란 정기배송 업체에 맞춰 만들었지만, 구조는 ‘상품·주기·요일 계약 → 배송 일정 → 배송 결과 → 수납’입니다. 우유, 반찬, 생수처럼 주기를 정해 직접 배달하는 업무라면 같은 구조를 바탕으로 업체의 규칙에 맞게 개발할 수 있습니다.

Q. 쓰던 엑셀 장부의 고객 데이터를 옮길 수 있나요?

시트 구조가 일정하다면 옮길 수 있습니다. 다만 비고 칸에 섞여 있는 납부 방식, 첫 배송일, 중단 메모는 프로그램의 항목에 맞게 나누는 정리가 먼저 필요합니다. 이 작업은 의뢰 업체와 함께 확인하면서 진행하는 것이 안전합니다.

Q. 배송 경로까지 자동으로 짜 주나요?

이 프로젝트에서는 당일 배송 목록과 기사 배정, 결과 등록까지를 다뤘고 경로 최적화는 범위에 넣지 않았습니다. 대신 고객 주소를 건물명이나 지역명까지 관리하고, 지역별로 배송을 집계해 볼 수 있습니다.

Q. 서버가 따로 필요한가요?

프로그램이 SQL Server 데이터베이스에 연결해 동작하므로 별도의 DB 서버가 필요합니다. 회사에서 직접 서버를 두거나, 월 사용료를 내는 임대(호스팅) 서버를 쓰는 방법 중에서 고를 수 있습니다. 프로그램은 각 PC에 설치 파일로 설치합니다.

Q. 개발 기간은 어느 정도 걸리나요?

이 프로젝트는 2018년 6월부터 10월까지 약 5개월이 걸렸습니다. 수납 방식과 예외 규칙이 얼마나 많은지에 따라 기간이 달라지므로, 장부와 규칙을 먼저 보고 일정을 말씀드립니다.

함께 보면 좋은 개발 사례


작성: 우리비엔씨 대표 이완종 (KOSA 특급기술자)

홈페이지: https://www.wooribnc.com

연락처: 070-4809-7769 // 0 1 0 - 5 1 7 7 - 8 0 5 5

이메일: admin@wooribnc.com // lwjvegas@gmail.com

  • KOSA 소프트웨어사업자 등록업체
  • KOSA 소프트웨어기술자경력 특급기술자, 정보처리기사
  • 가천대학교 가족회사 협약업체

Tags: #정기배송관리프로그램 #배송관리프로그램 #배송스케줄관리 #CMS자동이체 #수납관리 #계약관리 #엑셀업무전산화 #킹스파머스 #우리비엔씨

수정 삭제 목록