재고 없이 수천 개 상품을 판다? 파이썬으로 ‘무재고 대량등록’ 자동화 프로그램 만들기
ChatGPT로 무재고 상품수집 자동화 프로그램을 직접 만들어봤다
온라인 판매를 생각하면 가장 먼저 부담스러운 것이 재고다.
상품을 먼저 1,000만 원어치 사놓았는데 팔리지 않는다면 그 순간부터 돈이 재고에 묶인다. 보관 공간도 필요하고, 유행이 지나거나 가격이 떨어지면 재고 자체가 손실이 될 수도 있다.
그래서 이번에는 반대로 접근해봤다.
상품을 미리 보유하지 않고 판매할 상품 정보를 먼저 구축한 뒤, 실제 주문이 들어온 상품만 공급처에서 구매하는 방식이다.
아직 실제 판매까지 시작한 것은 아니다. 현재는 프로그램을 만들어 상품정보를 수집하고 쿠팡 판매자 가입 단계까지 확인한 상태다.
이번 글에서는 어디까지 자동화했는지, 그리고 실제 사업으로 넘어가기 전에 무엇을 반드시 확인해야 하는지를 정리해본다.
1. 핵심은 '재고를 먼저 사지 않는다'
내가 생각하는 기본 구조는 단순하다.
공급처 상품 검색
→ 판매할 상품 자동수집
→ 판매가격 계산
→ 판매채널 등록
→ 고객 주문 발생
→ 그때 공급처에서 구매
→ 고객에게 배송
즉, 수백 개 또는 수천 개의 상품을 판매목록에 구축하더라도 그 상품을 전부 내가 가지고 있을 필요가 없는 구조를 목표로 한다.
예를 들어 10만 원짜리 신발 1,000개를 판매한다고 해서 1억 원어치 신발을 창고에 쌓아놓는 것이 아니다.
판매목록을 구축하고 실제로 주문된 상품만 매입하는 것이다.
이 방식의 가장 큰 장점은 초기 재고 부담을 크게 줄일 수 있다는 것이다.
물론 재고가 없다고 해서 위험까지 없어지는 것은 아니다.
공급처 품절, 가격 상승, 주문취소, 반품, 판매채널 정책 등의 문제가 있기 때문에 이를 프로그램으로 얼마나 정확하게 관리하느냐가 오히려 핵심이다.
2. 우선 Nike 신발로 프로그램을 만들어봤다
테스트 브랜드는 Nike로 정했다.
처음부터 여러 브랜드를 건드리기보다 하나의 브랜드에서 전체 과정을 먼저 완성해보는 것이 목적이다.
Python과 Selenium을 이용해 Nike Korea 상품 페이지를 읽도록 프로그램을 만들었다.
현재 프로그램이 자동으로 가져오는 정보는 대략 다음과 같다.
- 상품명
- 스타일코드(SKU)
- 색상
- 현재 판매가격
- 정상가격
- 할인율
- 사이즈
- 사이즈별 판매가능/품절 여부
- 제조국 등 상품정보
- 상품 이미지
- Nike 상품 URL
여기에 판매가격도 자동으로 계산한다.
현재 테스트에서는 간단하게 Nike 현재 판매가격에 15%를 더하고 1,000원 단위로 올림하도록 설정했다.
예를 들어 Nike 가격이 118,100원이라면 프로그램이 자동으로 판매 예정가격을 계산하는 식이다.
다만 실제 판매를 시작할 때는 단순히 15%를 더하는 것으로 끝내면 안 된다.
매입가격 + 판매채널 수수료 + 배송 관련 비용 + 반품 예상비용 + 세금 + 목표 순이익
까지 계산해서 판매가격을 결정하도록 프로그램을 발전시킬 생각이다.
3. 사이즈별 재고까지 자동으로 읽는다
신발 판매에서 특히 중요한 것이 사이즈다.
단순히 '이 상품이 판매 중이다'만 확인해서는 부족하다.
예를 들어 같은 신발이라도
220 : 품절
225 : 판매가능
230 : 판매가능
235 : 품절
240 : 판매가능
처럼 사이즈별 재고상태가 다르기 때문이다.
초기 프로그램에서는 사이즈 정보를 제대로 읽지 못해 모든 상품이 O:0 / X:0으로 나오는 문제가 있었다.
DOM 구조를 다시 분석해서 수정한 결과 현재는 각 사이즈의 판매가능 여부를 O/X 형태로 수집하도록 만들었다.
그리고 판별하지 못한 상품을 판매가능으로 처리하지 않고 별도로 재고확인필요 상태로 보내도록 안전장치도 넣었다.
대량판매에서는 이런 부분이 중요하다.
상품을 10개 관리할 때는 사람이 확인할 수 있지만 1,000개, 5,000개가 되면 사람이 매일 확인하는 것은 사실상 불가능하기 때문이다.
4. 상품 이미지도 자동으로 수집했다
상품 이미지 역시 자동으로 가져오도록 만들었다.
여기에서도 처음에는 문제가 있었다.
Nike 사이트에는 작은 썸네일 이미지와 고해상도 상품 이미지가 함께 존재했는데 처음 만든 프로그램은 144px 수준의 작은 이미지까지 가져왔다.
파일은 저장됐지만 일부 파일은 Windows에서 제대로 열리지 않는 문제도 있었다.
그래서 다시 수정했다.
현재는
고해상도 이미지 우선 선택
→ 실제 이미지 파일인지 검사
→ 최소 해상도 검사
→ 중복 이미지 제거
→ JPG 변환
→ 상품별 폴더 저장
과정을 자동으로 처리한다.
테스트에서는 한 상품당 최대 10장의 이미지를 저장하도록 만들었다.
측면 사진뿐 아니라 정면, 후면, 밑창, 디테일, 착용 이미지 등 다양한 사진이 자동으로 모였다.
쿠팡의 공식 상품등록 안내를 보면 대표이미지 외에 추가이미지를 9개까지 등록할 수 있고 JPG·PNG 형식을 지원하며 500×500 크기를 권장한다. 따라서 현재 만들어놓은 10장 구조는 기술적으로도 활용하기 편하다.
단, 공급처의 상품사진을 판매페이지에서 사용할 권리가 있는지는 별개의 문제다.
이미지를 다운로드할 수 있다는 것과 상업적으로 재사용할 권리가 있다는 것은 다르므로 실제 판매 전에 반드시 확인해야 할 부분이다.
5. 최종 결과는 Excel로 자동 저장
수집이 끝나면 모든 정보가 Excel로 만들어진다.
상품 하나마다
SKU / 상품명 / 색상 / Nike 가격 / 판매예정가격 / 사이즈별 재고 / 이미지 경로 / 원본 URL
등이 한 줄에 정리된다.
별도로 사이즈별 컬럼도 만들어 두었다.
이렇게 한 이유는 결국 판매채널과 연결하기 위해서다.
쿠팡 역시 개별 상품등록뿐 아니라 WING의 상품 관리 → 상품 일괄등록 기능을 공식적으로 제공한다.
따라서 장기적으로는
Nike → 자체 상품 DB → 쿠팡 등록양식
으로 자동 변환하는 구조를 만들 수 있다.
그리고 나중에는 쿠팡만 바라볼 필요도 없다.
공급처 데이터 하나를 중앙 DB로 만들고 각 판매채널에 맞게 변환하면 된다.
6. 내가 생각하는 무재고 판매의 핵심
이 사업모델에서 내가 가장 중요하게 보는 것은 물품을 미리 보유하지 않는 것이다.
일반적인 사입 방식이라면 잘 팔릴 것 같은 상품을 예상해서 먼저 구매해야 한다.
예측이 틀리면 재고가 된다.
반면 이번에 실험하는 방식에서는 먼저 상품 데이터와 판매채널을 구축하고 주문이 들어온 상품만 구매하는 구조를 목표로 한다.
그래서 상품 1,000개를 등록했다고 해서 1,000개를 사야 하는 것이 아니다.
판매가 없으면 상품 매입도 없다.
초기 사업자가 테스트하기에는 이 부분이 상당한 장점이라고 생각한다.
대신 새로운 위험이 생긴다.
주문이 들어온 순간 공급처에 재고가 있어야 한다.
따라서 이 사업에서 가장 중요한 자동화는 단순한 '상품 대량등록'이 아니라 결국 재고와 가격의 지속적인 동기화가 될 가능성이 높다.
7. 다음 단계는 쿠팡 실제 판매 준비
쿠팡 WING 계정 생성까지 직접 해봤다.
판매자 계정 생성 자체는 가능했지만 실제 판매자 인증 단계에서는 사업자 정보가 필요했다.
쿠팡 공식 안내에서도 판매를 시작하려면 사업자 인증 절차를 안내하고 있으며 사업자등록증, 통신판매업 신고증, 통장사본 등이 판매 형태에 따라 요구될 수 있다고 설명한다. 사업자등록번호가 아직 없어도 판매자 가입과 상품등록 준비는 먼저 할 수 있고, 이후 사업자 인증을 받아 판매를 시작할 수 있다.
따라서 다음 단계에서는 사업자등록부터 하나씩 진행해볼 생각이다.
참고로 2026년 6월부터는 관련 법상 통신판매업 신고 의무가 면제되는 간이과세자의 경우 쿠팡 신규 입점 시 통신판매업 신고증 대신 사업자등록증 제출과 휴대전화 인증으로 대체할 수 있도록 절차가 변경됐다. 자신의 사업 형태가 여기에 해당하는지는 실제 신청 시 확인할 필요가 있다.
8. 실제 판매 전에 반드시 확인할 것들
프로그램이 작동한다고 바로 상품 수천 개를 올릴 생각은 없다.
오히려 실제 판매 1건부터 끝까지 확인해야 한다.
첫 번째는 정품 증빙이다.
Nike 같은 브랜드 상품은 정품 판매와 지식재산권 문제가 중요하다. 쿠팡도 판매자가 상품을 등록하기 전에 지식재산권 침해 여부를 확인하고 정품임을 입증해야 한다고 명시하고 있다.
따라서 공식 판매처 구매내역, 영수증 등 관련 자료를 체계적으로 보관하고 실제 소명 과정에서 어떤 증빙이 요구되는지도 확인할 필요가 있다.
두 번째는 상품 이미지 사용권이다.
상품 이미지에는 저작권이 존재할 수 있기 때문에 원본을 그대로 사용하거나 가공한다고 해서 자동으로 문제가 해결되는 것은 아니다. 쿠팡 역시 이미지 등을 저작권 보호 대상에 포함하고 있다.
세 번째는 직배송 가능 여부다.
내가 생각하는 구조는 상품을 내가 먼저 받은 다음 다시 고객에게 보내는 것이 아니라, 주문이 발생하면 공급처에서 구매하면서 가능하다면 고객 주소로 직접 배송하는 것이다.
이렇게 할 수 있다면 창고와 재포장 과정이 필요 없어진다.
하지만 실제 운영 전에는 공급처의 주문·배송 정책, 판매채널의 송장 및 배송 정책, 가격표나 주문서 동봉 여부, 반품 주소와 처리방법 등을 실제 주문으로 확인해야 한다.
네 번째는 가격과 재고 동기화다.
아침에 Nike에서 10만원이던 상품이 오후에 12만원이 됐는데 쿠팡에서는 11만5천원에 판매되고 있다면 주문이 들어오는 순간 손실이다.
반대로 Nike에서 품절됐는데 쿠팡에서 계속 판매하면 주문취소가 발생한다.
따라서 일정 시간마다 자동으로
가격 확인 → 재고 확인 → 판매가격 수정 → 품절 사이즈 판매중지
가 이루어지는 시스템이 필요하다.
9. 처음 목표는 하루 10건
처음부터 수천만원을 벌겠다는 계산보다 작은 규모에서 검증해보려고 한다.
1차 목표는 하루 10건 판매다.
건당 최종 순이익을 평균 1만원으로 만들 수 있다면
10건 × 1만원 × 30일 = 월 300만원
정도가 된다.
하지만 여기서 말하는 1만원은 단순한 판매가와 매입가의 차이가 아니다.
판매수수료, 배송 관련 비용, 반품·취소 비용, 세금 등 실제 비용을 전부 포함하고도 남는 진짜 순이익이어야 한다.
그래서 처음 100건 정도가 중요할 것 같다.
100건의 실제 데이터를 모으면 평균 매입가격, 판매가격, 수수료, 반품률, 품절취소율, 실제 건당 순이익 등을 계산할 수 있다.
그때 월 300만원 모델이 실제로 성립하는지를 판단하면 된다.
10. 검증되면 확장 방법은 많다
만약 하루 10건이 안정적으로 유지된다면 확장 방향은 크게 두 가지다.
첫째는 판매채널 확장이다.
쿠팡에서 시작해서 다른 오픈마켓이나 쇼핑몰로 판매채널을 늘릴 수 있다.
둘째는 브랜드와 공급처 확장이다.
Nike에서 만든 수집·재고·가격관리 구조를 다른 브랜드에 적용하는 것이다.
결국 장기적으로 만들고 싶은 시스템은 이런 형태다.
여러 공급처
↓
중앙 상품 DB
↓
가격·재고 자동관리
↓
여러 판매채널
↓
주문 수집
↓
공급처 구매/배송
↓
판매·반품·마진 데이터 축적
처음에는 단순한 상품 수집 프로그램이지만 판매 데이터가 쌓이면 이야기가 달라진다.
어떤 브랜드가 잘 팔리는지, 어떤 가격대가 좋은지, 어떤 사이즈의 회전율이 높은지, 어느 채널에서 어떤 상품이 잘 팔리는지를 알 수 있다.
그러면 나중에는 무조건 많이 등록하는 프로그램이 아니라 팔릴 확률이 높은 상품을 자동으로 찾아내는 프로그램으로 발전시킬 수도 있다.
마무리
이번 실험에서 가장 흥미로운 부분은 거창한 쇼핑몰 시스템을 처음부터 구매하지 않고도 ChatGPT와 Python을 이용해 필요한 자동화 프로그램을 하나씩 직접 만들어볼 수 있다는 점이었다.
현재까지는
상품 자동수집
→ SKU 및 가격 확인
→ 사이즈별 재고 확인
→ 판매가격 자동계산
→ 고화질 이미지 수집
→ Excel DB 생성
까지 구현했다.
다음 단계는 사업자등록과 판매자 인증을 준비하면서 실제 상품 1개를 등록하고 주문부터 배송·정산·반품까지 전 과정을 검증하는 것이다.
이 사업의 핵심은 상품을 많이 사놓는 것이 아니다.
재고를 먼저 보유하지 않은 상태에서 많은 상품을 정확하게 관리하고, 실제 주문이 발생한 상품만 매입할 수 있는 시스템을 만드는 것.
과연 하루 10건, 월 순이익 300만원이라는 첫 번째 목표가 현실에서 가능한지 직접 데이터를 쌓아보려고 한다.
결과가 나오면 다음 글에서 이어서 기록해볼 생각이다.