🔗 지금 바로 사용해보세요!
📥 자동화와 매크로 스프레드시트(재고관리 시트) 바로가기
클릭 한 번으로 바로 접속해서 복사하여 사용하실 수 있습니다
Apps Script 환경 진입
1. 확장 프로그램 → Apps Script 클릭
2. 새 프로젝트 생성: "자동화 마스터" 이름 설정
3. 코드 편집기 환경 확인
- 파일에서 스크립트 선택
- 이름을 '실시간 재고관리 자동화.gs'라고 저장
- 아래 함수를 입력
재고 모니터링 자동화 스크립트
function monitorInventory() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("재고관리");
// 헤더를 제외한 데이터 범위 가져오기
var data = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
var alertItems = []; // 알림 대상 상품들
for (var i = 0; i < data.length; i++) {
var row = i + 2; // 실제 행 번호 (헤더 때문에 +2)
var productName = data[i][0]; // A열: 상품명
var currentStock = data[i][1]; // B열: 현재재고
var safetyStock = data[i][2]; // C열: 안전재고
var supplierEmail = data[i][3]; // D열: 공급업체이메일
var price = data[i][4]; // E열: 단가
var lastUpdate = new Date();
// 재고 상태 판정
var status;
var orderQuantity = 0;
if (currentStock <= safetyStock * 0.5) {
status = "위험";
orderQuantity = safetyStock * 3; // 안전재고의 3배 발주
} else if (currentStock <= safetyStock) {
status = "부족";
orderQuantity = safetyStock * 2; // 안전재고의 2배 발주
} else {
status = "정상";
}
// 상태 업데이트 (F열)
sheet.getRange(row, 6).setValue(status);
// 위험/부족 상태일 때 알림 목록에 추가
if (status === "위험" || status === "부족") {
alertItems.push({
name: productName,
current: currentStock,
safety: safetyStock,
supplier: supplierEmail,
price: price,
orderQty: orderQuantity,
status: status
});
// 발주 수량 기록 (새 열 H 추가)
sheet.getRange(row, 8).setValue(orderQuantity);
sheet.getRange(row, 9).setValue("발주 필요");
sheet.getRange(row, 10).setValue(new Date());
}
}
// 알림 대상이 있으면 이메일 발송
if (alertItems.length > 0) {
sendInventoryAlert(alertItems);
}
Logger.log("재고 모니터링 완료. 알림 대상: " + alertItems.length + "개 상품");
}
function sendInventoryAlert(alertItems) {
var subject = "🚨 긴급: 재고 부족 알림 (" + alertItems.length + "개 상품)";
var body = "안녕하세요.\n\n재고가 안전 수준 이하로 떨어진 상품들이 있어 알려드립니다.\n\n";
body += "📦 재고 부족 상품 목록:\n";
body += "─────────────────────────────\n";
for (var i = 0; i < alertItems.length; i++) {
var item = alertItems[i];
body += "• " + item.name + "\n";
body += " 현재 재고: " + item.current + "개\n";
body += " 안전 재고: " + item.safety + "개\n";
body += " 상태: " + item.status + "\n";
body += " 권장 발주량: " + item.orderQty + "개\n";
body += " 공급업체: " + item.supplier + "\n\n";
}
body += "빠른 발주 처리를 부탁드립니다.\n\n";
body += "감사합니다.\n재고 관리 자동화 시스템";
// 관리자에게 이메일 발송
try {
GmailApp.sendEmail("manager@####.com", subject, body); // 실제 이메일로 수정
Logger.log("재고 부족 알림 이메일 발송 완료");
} catch (error) {
Logger.log("이메일 발송 실패: " + error.toString());
}
}
실행 및 테스트:
1. monitorInventory 함수 실행
2. 재고관리 시트에서 상태 업데이트 확인
3. 현재재고 값을 안전재고 이하로 변경 후 재실행
4. 알림 이메일 발송 확인

'스프레드시트 활용' 카테고리의 다른 글
| [자동화 스크립트 4] 자동 실행 트리거 설정 (3) | 2025.09.02 |
|---|---|
| [자동화 스크립트 3] 고객문의 자동처리 (2) | 2025.09.02 |
| [자동화 스크립트 1] 주간 보고서 자동생성 (0) | 2025.09.02 |
| [매크로] 주간 매출 합계 자동계산 (0) | 2025.09.02 |
| [오류해결방안] Apps Script Error 400 해결방법 (2) | 2025.09.02 |