내 스마트스토어 상품이 네이버 가격비교(카탈로그)에서 항상 최저가를 지키도록 돕는 프로그램입니다. 경쟁사 가격을 읽어와 "얼마로 내려야 하는지 / 올려도 되는지"를 계산하고, 버튼 한 번으로 실제 판매가까지 바꿔줍니다.
경쟁사 가격은 전용 Chrome(내 네이버 로그인 세션) 으로 카탈로그 페이지에서 직접 읽습니다. 실제 가격 변경만 네이버 커머스 API를 씁니다.

| 구역 | 설명 |
|---|---|
| 상단 오른쪽 라벨 | 🔑 라이선스 · 📡 브라우저 연결 상태 · ✔ 커머스 API 상태 |
| ① 상품준비 | 상품 등록·수정 (엑셀 반입 또는 직접 입력) |
| ② 시세읽기 | 경쟁사 가격 읽어오기 |
| ③ 실반영 | 실제 판매가 변경 |
| 일괄/보기 줄 | 하한가·인하단위 일괄 적용 · 상태별 필터 |
| 표 | 상품 목록 + 판정 결과 (상태를 색으로 표시) |
| 맨 아래 상태바 | 지금 무슨 일이 일어나는지 |
| 상태 | 뜻 | 해야 할 일 |
|---|---|---|
| 🔴 인하 필요 | 경쟁사가 우리보다 쌈 | 행 선택 → 💰 실반영 |
| 🟢 최저가 유지 | 이미 우리가 1위 (동가 포함) | 없음 |
| 🔵 마진회복(인상) | 우리가 1위인데 2위가 훨씬 높음 | 올려도 1위 유지 — 실반영으로 마진 회복 |
| 🟠 하한선 도달 | 내리면 하한가 아래가 됨 | 인하 금지 — 마진 구조 재검토 |
| ⚪ 조회 실패 | 아직 가격 데이터 없음 | ✨ 값가져오기 실행 |
| 버튼 | 하는 일 | 언제 쓰나 |
|---|---|---|
| 📄 엑셀(내 최저가) | 쇼핑파트너센터 '가격비교매칭완료' 엑셀을 읽어 상품명·가격비교ID·판매가·최저가를 한 번에 등록합니다. 이미 있는 상품은 가격만 갱신됩니다. | 처음 세팅할 때, 그리고 상품이 늘었을 때 |
| 📄 B계정 | 다른 스토어(2번째 계정) 엑셀을 읽어 B계정 판매가를 채웁니다. 최저가가 B계정 가격이면 인하하지 않습니다. | 두 계정으로 같은 상품을 팔 때 (자기들끼리 가격 깎기 방지) |
| + 새 상품 | 상품을 하나씩 직접 등록합니다. | 엑셀에 없는 상품을 추가할 때 |
| ✏ 수정 | 선택한 상품의 모든 항목을 창에서 고칩니다. | 하한가·배송비 등을 한꺼번에 고칠 때 |
| 🗑 삭제 | 선택한 상품을 목록에서 지웁니다 (여러 개 가능). 확인 창이 뜹니다. | 더 이상 감시할 필요 없는 상품 |
| 버튼 | 하는 일 | 언제 쓰나 |
|---|---|---|
| 📡 브라우저 연결 | 이 프로그램 전용 Chrome 창을 띄웁니다. 평소 쓰시는 Chrome과 완전히 분리돼 있어 안전합니다. 한 번 더 누르면 닫힙니다. | 값가져오기 전에 한 번 (컴퓨터를 껐다 켜면 다시) |
| ✨ 값가져오기 | 선택한 상품의 카탈로그를 열어 판매가 최저·2위 판매가·배송비포함 최저가를 자동으로 읽어 채우고 목표가를 계산합니다. 아무것도 선택하지 않으면 전체 상품을 순서대로 읽습니다. | 경쟁사 가격을 확인할 때 (이 프로그램의 핵심) |
| 버튼 | 하는 일 | 언제 쓰나 |
|---|---|---|
| 🔄 커머스동기화 | 커머스 API로 내 전체 상품을 읽어 원상품번호·배송비·현재 노출가를 채웁니다. 원상품번호가 있어야 가격 변경이 가능합니다. | 처음 한 번, 그리고 상품을 새로 등록했을 때 |
| 💰 실반영(선택) | 선택한 상품의 네이버 판매가를 실제로 변경합니다. 바뀔 가격 목록을 보여주는 확인 창이 먼저 뜹니다. | 목표가대로 가격을 내리거나 올릴 때 |
| ⚙ 설정 | 커머스 API 키와 호출 IP를 입력·저장합니다. 현재 공인 IP를 확인하는 버튼도 있습니다. | 처음 설정할 때, 인터넷 회선이 바뀌었을 때 |
| 항목 | 하는 일 |
|---|---|
| 일괄 하한 + [원(고정)] | 선택한(또는 전체) 상품의 하한가를 같은 금액으로 설정합니다. 예: 5000 → 모두 5,000원 |
| 일괄 하한 + [%(판매가대비)] | 하한가를 판매가의 비율로 설정합니다. 예: 80 → 각 상품 판매가의 80% |
| 일괄 인하단위 + 적용 | 경쟁 최저가보다 얼마나 더 내릴지를 일괄 설정합니다 (기본 10원) |
행을 선택하지 않고 [적용]을 누르면 전체 상품에 적용됩니다 (확인 창이 뜹니다).
| 버튼 | 보여주는 것 |
|---|---|
| 전체 | 등록된 모든 상품 |
| 🔴 인하필요 | 지금 가격을 내려야 하는 상품만 — 실반영 대상 |
| 🔵 마진회복 | 올려도 1위를 지키는 상품만 — 마진 회복 대상 |
| 🏆 1위탈환 | 실반영으로 최저가가 된 상품 (성과 확인용) |
| 조작 | 결과 |
|---|---|
| 칼럼 제목 클릭 | 그 기준으로 정렬 (한 번 더 누르면 역순) |
| 가격비교ID 칸 클릭 | 브라우저로 해당 카탈로그 페이지가 열립니다 |
| 판매가·하한가·인하단위·2위가·경쟁실구매·B계정가 더블클릭 | 그 자리에서 바로 숫자 수정 |
| 그 밖의 칸 더블클릭 | 상품 수정 창이 열립니다 |
| Ctrl/Shift + 클릭 | 여러 상품 선택 |
| 칼럼 | 뜻 |
|---|---|
| 판매가 | 내 상품의 현재 노출가 |
| 실구매가 | 내 판매가 + 내 배송비 (고객이 실제 내는 돈) |
| 최저가 | 이 카탈로그의 판매가 1위 (값가져오기로 읽음) |
| 2위가 | 판매가 2위 — 마진회복 인상의 기준 |
| 경쟁실구매 | 경쟁사 배송비포함 최저가 |
| 소스 | 값의 출처 (✨브라우저 / 엑셀) |
| 목표가 | 프로그램이 계산한 바꿔야 할 가격 |
| 하한가 | 이 아래로는 절대 안 내리는 안전선 |
| B계정가 | 🔗 내 다른 스토어 가격 (간섭방지) |
| 실반영 | 💰 마지막으로 실제 가격을 바꾼 시각 |

프로그램을 처음 열면 라이선스 창이 뜹니다.
🔑 3개월 · 88일 남음 처럼 남은 기간이 표시됩니다.이용권은 1개월 · 3개월 · 6개월 · 12개월 중 선택하실 수 있습니다. 만료 7일 전부터 프로그램을 열 때 안내가 뜹니다. [구매·연장] 버튼으로 연장하세요.

$2a$로 시작 (이걸로 진짜 키인지 구분)
https://search.shopping.naver.com/catalog/60731900460 → 60731900460| 읽는 값 | 표 칼럼 | 쓰임 |
|---|---|---|
| 판매가 최저 (1위) | 최저가 | 인하 필요/최저가 판정 기준 |
| 2위 판매가 | 2위가 | 마진회복(인상) 판정 기준 |
| 배송비포함 최저가 | 경쟁실구매 | 실구매가 기준 판정 |

읽는 즉시 목표가와 상태가 계산됩니다. [🔴 인하필요] 필터로 조치할 상품만 볼 수 있습니다.
안전장치 (자동 적용):
- 하한가 하드스톱 — 하한가 아래로는 어떤 경우에도 내리지 않음
- 동가 1위 보호 — 최저가가 우리 가격과 같으면 더 내리지 않음 (자기 가격 깎기 방지)
- 인상 안전캡 — 마진회복 인상은 확인된 경쟁 최저가 아래까지만 (1위 유지)
- 변경 전 백업 — 상품 원본이 _backup_원상품번호.json으로 저장됨
- 기록 — 모든 변경이 reprice_log.csv에 남음 (시각·전후 가격)
가격이 네이버 가격비교 화면에 반영되기까지 몇 분~몇 시간 지연이 있을 수 있습니다.
| 증상 | 원인/해결 |
|---|---|
| 🔒 라이선스 필요 | 상단 라벨을 클릭해 키를 등록하세요. 만료된 경우 [구매·연장] |
| "다른 컴퓨터에 발급된 키입니다" | 컴퓨터를 바꾸셨군요 — 창에 뜬 새 ID로 재발급을 요청하세요 |
| 상단 "⚠ 커머스 인증 실패" | 키 오타, 시크릿이 $2a$로 시작 안 함, 또는 호출 IP 미등록 |
| 값가져오기가 "캡차 감지"에서 멈춤 | 전용 Chrome에서 캡차 풀고 다시 실행 |
| "일시적 접근 차단" | 1~2분 대기 후 재시도 |
| 브라우저 연결 실패 | Chrome(또는 Edge) 설치 확인. 다른 프로그램이 9222 포트를 쓰는지 확인 |
| 실반영 실패 (원상품번호 없음) | [🔄 커머스동기화] 먼저 실행 |
| 상품 목록이 사라짐 | products.json.corrupt-… 백업이 자동 생성됨 — 이름을 products.json으로 되돌리면 복구 |
| 가격을 되돌리고 싶음 | reprice_log.csv에서 이전 가격 확인, 원본은 _backup_*.json |
Windows 1. 파이썬 설치 — https://www.python.org/downloads/ (설치 화면에서 "Add Python to PATH" 반드시 체크) 2. 최초설치.bat 더블클릭 → 잠시 기다리면 자동 설치 3. 실행.bat 더블클릭
Mac
1. 터미널에서 brew install python-tk
2. 최초설치.command → 실행.command 순서로 더블클릭
프로그램 폴더 안에 저장됩니다 — 옮기실 땐 폴더째 옮기세요.
| 파일 | 내용 |
|---|---|
.env |
커머스 API 키 |
products.json |
상품 목록·설정 |
license.key |
라이선스 |
chrome_profile/ |
네이버 로그인 세션 |
reprice_log.csv |
가격변경 기록 |
_backup_*.json |
변경 전 상품 원본 |