구글 스크립트 활용해서 재고 관리 및 인보이스 자동화

재고 관리 및 인보이스 자동화 시스템 구축 프로젝트

소개

벨라는 현재고조회.xls 파일의 데이터를 견적서 재고 RAW DATA 스프레드시트로 자동으로 전송하는 시스템을 구축하고자 했습니다. 이를 통해 데이터 관리와 활용도를 높이고 업무 효율성을 극대화하는 것이 목표였습니다.

  • 시도하고자 했던 것

- 일일 재고 관리 데이터의 실시간 자동 업데이트

- 한글-영문 제품 정보 자동 변환 시스템

- 인보이스 생성 프로세스 자동화


게으르쟁의 꿈- 한가지 일만 하고 거의 90% 업무를 자동화로 완성하게 해준답니다!

제가 향후 유일하게 해야 한 것은
- 회사 제품 총 데이타 파일(25000개 행 이상)은
매일 구글 드라이브로 업데이트! 이 것 만 하면 됩니다! ㅎㅎ


그리고 주문서 처리까지 다음에 자동화 될 수 있게 도전해 볼게요!

한국어 텍스트가 포함된 웹페이지 스크린샷


한국어 텍스트가 포함된 Google 스프레드시트의 스크린샷

여러 항목을 보여주는 스프레드시트의 스크린샷

인보이스 자동화

  • 'rowdata 2(영문변환)' 시트를 활용해 매일 재고리스트를 가져온다.

  • 오더시트만 주문코드와 수량은 입력하면 바이어 주문한 인보이스를 완성하게 됩니다.

  • 회사 업무상 보여드릴 수 있는 부분만 공유해 드리는 점 양해 부탁드립니다.

녹색 화면이 표시된 컴퓨터 화면의 스크린샷


Google 검색 엔진의 스크린샷


한국어 한국어 한국어 한국어 한국어 한국어 한국어 한국어

다양한 유형의 데이터를 보여주는 스프레드시트의 스크린샷


  • 핵심 구현 사항

1. IMPORTRANGE 함수를 활용한 실시간 데이터 연동

2. 바코드 기반 제품 정보 자동 매핑

3. Scode 입력만으로 전체 인보이스 자동 완성


진행 방법

  • 자동화 프로세스 구현

1. 엑셀 파일 가져오기

- 현재고조회.xls 파일을 자동으로 새로운 스프레드시트로 복사

- 데이터 정합성 확인 및 검증

2. 텍스트 분할 처리

- 원본 데이터 정제

- '텍스트분할 작업용' 시트에 데이터 입력

- 데이터 구조화 및 표준화

3. ROWDATA1 업데이트

- 텍스트분할 작업용 데이터 정리

- 이미지 처리 및 추가 작업 수행

- 'rowdata 1' 시트 업데이트

4. ROWDATA2 영문변환

- 'rowdata 1' 데이터 자동 영문 변환

- 'rowdata 2(영문변환)' 시트 생성 및 업데이트

  • 데이터 흐름

RAW 데이터 → 재고데이터 자동화 → 현재고조회 → 매일 재고리스트(영문변환) → 인보이스

  • 핵심 자동화 코드

javascript
// 매일 재고 리스트 자동 업데이트
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/12a6HAQ8kYaath0KppaapWsChswP8SIj2GzucsPyUwiM/edit#gid=1718356026","rowdata 2(영문변환)!c1:j")



주요 기능

1. 제품 정보 자동 변환

- 한글 제품명 → 영문 제품명

- 바코드 번호 자동 매핑

- 사이즈/컬러 정보 자동 변환

2. 재고 관리 자동화

- 실시간 재고 수량 업데이트

- 바코드 기반 제품 추적

- 자동 재고 알림


3. 인보이스 자동화

- Scode 입력으로 전체 정보 자동 완성

- 가격 정보 자동 계산

- 제품 상세 정보 자동 입력



개선된 업무 프로세스

Before

1. 수동 데이터 입력

2. 수동 영문 변환

3. 수동 재고 확인

4. 수동 인보이스 작성

After

1. Scode 입력

2. 자동 데이터 매핑

3. 자동 인보이스 생성

4. 실시간 재고 업데이트

성과 및 배운 점

업무 효율성

- 데이터 입력 시간 90% 감소

- 인보이스 작성 시간 대폭 단축

- 실시간 재고 관리 가능

데이터 정확성

- 수동 입력 오류 제거

- 실시간 데이터 동기화

- 일관된 데이터 관리

학습 성과

- 프롬프트 작성의 중요성 인식

- 단계별 테스트와 디버깅의 필요성 이해

- 클로드와의 협력을 통한 효과적인 솔루션 도출

향후 계획

1. 이미지 주문서 자동화 시스템 개발

- 고객 주문서 이미지 자동 텍스트 변환

- OCR 기술을 활용한 데이터 추출

- 엑셀 데이터 자동 변환 시스템 구축

2. 발주 시스템 자동화

- 추출된 데이터 기반 자동 발주 생성

- 재고 시스템과 실시간 연동

- 발주 현황 모니터링 시스템

3. 사용자 매뉴얼 제작

- 시스템 사용 가이드 작성

- 단계별 작업 프로세스 문서화

- 문제 해결 및 FAQ 작성


코드 구조 및 주요 기능

1. 기본 설정 및 메뉴 구성

```javascript
const SPREADSHEET_IDS = {
  SOURCE_CURRENT: "현재고조회.xls ID",
  TARGET_RAW_DATA: "견적서 재고 RAW DATA ID",
  TARGET_SPLIT: "텍스트분할 작업용 ID",
  TARGET_FINAL: "최종 데이터 ID"
};


사용자 메뉴 구성

- 1단계: 엑셀 가져오기

- 2단계: 텍스트 분할

- 3단계: ROWDATA1 업데이트

- 4단계: ROWDATA2 업데이트

- 전체 프로세스 실행

- 자동실행 시간 설정

```

2. 주요 프로세스별 기능

1단계: 엑셀 가져오기 (autoImportExcel)

- 재고데이터_자동화 폴더에서 현재고조회.xls 파일 검색

- 기존 파일 삭제 및 새로운 스프레드시트 생성

- Google Sheets 형식으로 변환

2단계: 텍스트 분할 (processInventoryData)

- 원본 데이터 검증

- 옵션 정보 분할 (컬러, 사이즈)

- 카테고리 정보 분할

- 데이터 구조화

3단계: ROWDATA1 업데이트 (updateRowData1)

- 이미지 URL 처리

- 데이터 포맷팅

- 17개 컬럼으로 데이터 구조화

4단계: ROWDATA2 영문변환 (updateRowData2)

- 한글 데이터 자동 영문 변환

- 도매가 계산 자동화

- 20개 컬럼으로 확장

자동화 기능

```javascript

// 전체 프로세스 자동 실행

function runFullProcess() {

autoImportExcel();

processInventoryData();

updateRowData1();

updateRowData2();

}

// 매일 오전 10시 자동 실행 설정

function createTimeTrigger() {

ScriptApp.newTrigger('runFullProcess')

.timeBased()

.everyDays(1)

.atHour(10)

.create();

}

```

오류 처리 및 안전장치

- 각 단계별 try-catch 구문

- 데이터 검증 로직

- 단계간 딜레이 설정

- 사용자 피드백 알림



효과적인 프롬프트 작성 가이드

1. 구조화된 정보 제공

기본 형식

```

[문서 유형]

1. 문서 ID/URL: {상세 정보}

2. 접근 권한: {공유 링크}

3. 작업 목적: {구체적인 목표}

[세부 내용]

1. 현재 상태: {현재 상황 설명}

2. 원하는 결과: {목표 상태 설명}

3. 제약 사항: {고려해야 할 조건들}

```

실제 예시

```

[스프레드시트 정보]

1. ID 확인용 URL: https://docs.google.com/spreadsheets/d/1dH6DMveIb8mjN03Nnr1-yukVIoBowGdvpbvxS7Uo4Ek/edit

2. 공유 링크: https://docs.google.com/spreadsheets/d/1dH6DMveIb8mjN03Nnr1-yukVIoBowGdvpbvxS7Uo4Ek/edit?usp=sharing

[자동화 목표]

1. 현재고조회.xls의 데이터를 견적서 재고 RAW DATA로 자동 업데이트

2. 한글 데이터의 영문 자동 변환

3. 인보이스 자동 생성 시스템 구축

```

2. 단계별 지시사항 작성

기본 형식

```

[작업 단계]

1단계: {첫 번째 작업}

- 세부 작업 A

- 세부 작업 B

2단계: {두 번째 작업}

- 세부 작업 A

- 세부 작업 B

[예상 결과물]

- 구체적인 산출물 설명

- 성공 기준 명시

```

실제 예시

```

[작업 단계]

1단계: 엑셀 파일 가져오기

- 현재고조회.xls 파일 검색

- Google Sheets로 변환

2단계: 데이터 정제

- 텍스트 분할 처리

- 컬럼 구조화

[예상 결과물]

- 자동 업데이트되는 재고 관리 시트

- 영문 변환된 제품 정보

```

3. 문제 해결을 위한 프롬프트

기본 형식

```

[문제 상황]

- 현재 발생한 문제 설명

- 영향받는 범위

[시도한 해결책]

- 시도1: {결과}

- 시도2: {결과}

[요청사항]

- 구체적인 도움이 필요한 부분

- 원하는 해결 방향

```

실제 예시

```

[문제 상황]

IMPORTRANGE 함수로 데이터 연동 시 #REF! 오류 발생

[시도한 해결책]

- 스프레드시트 접근 권한 확인: 완료

- 함수 문법 재확인: 이상 없음

[요청사항]

- IMPORTRANGE 함수 오류 해결 방법 제시

- 안정적인 데이터 연동 방안 제안

```

4. 코드 관련 프롬프트

기본 형식

```

[개발 환경]

- 사용 언어/플랫폼: {정보}

- 버전 정보: {상세}

[구현 목표]

- 핵심 기능 설명

- 요구사항 명시

[현재 코드]

```코드 블록

관련 코드 첨부

```

[요청사항]

- 구체적인 도움이 필요한 부분

```

#### 실제 예시

```

[개발 환경]

- Google Apps Script

- Spreadsheet API V4

[구현 목표]

자동화된 재고 관리 시스템 구축

[현재 코드]

function updateRowData2() {

// 코드 내용

}

[요청사항]

- 코드 최적화

- 오류 처리 로직 추가

```

5. 프롬프트 작성 시 주의사항

1. 명확성

- 모호한 표현 피하기

- 구체적인 예시 포함

- 단계별 설명 제공

2. 구조화

- 논리적 순서로 정보 배치

- 섹션별 명확한 구분

- 중요 정보 강조

3. 컨텍스트 제공

- 배경 정보 포함

- 관련 문서/링크 첨부

- 제약사항 명시

4. 목표 명확화

- 기대하는 결과물 상세 기술

- 성공 기준 명시

- 우선순위 표시

6. 효과적인 피드백 요청

```

[피드백 요청 사항]

1. 현재 구현 상태: {설명}

2. 개선이 필요한 부분: {구체적 영역}

3. 특별히 검토가 필요한 부분: {상세 내용}

[추가 정보]

- 참고 자료: {링크/문서}

- 제약 조건: {고려사항}

```

😃 감사합니다.

8
15개의 답글

👉 이 게시글도 읽어보세요