가이드

온라인 스토어 만드는 법: 상품, 장바구니, 결제, 재고

온라인 스토어를 만들려면 상품 목록, 장바구니, Stripe 같은 결제 서비스로 결제를 받는 결제 기능, 주문을 기록하고 재고를 줄이는 방법, 주문을 처리하는 관리자 화면이 필요합니다. AI 앱 빌더는 명확한 설명만 있으면 이 모든 것을 한 번에 만들어 줄 수 있습니다. 그러나 가장 신중하게 생각해야 할 부분은 화면이 아니라 돈과 관련된 부분입니다. 주문이 언제 '결제 완료'로 간주되는지, 재고를 어떻게 잡아 둘지, 세금과 배송, 환불을 어떻게 처리할지가 핵심입니다.

직접 만들지, Shopify를 쓸지 먼저 결정하세요

무엇이든 만들기 전에 솔직하게 따져 보세요.

Shopify, Squarespace Commerce, WooCommerce 같은 호스팅형 커머스 플랫폼이 보통 더 나은 경우는 다음과 같습니다:

  • 배송비 요금제, 송장 출력, 반품이 필요한 실물 상품을 판매할 때
  • 여러 지역의 세금을 계산해야 할 때
  • 기술 지식이 없는 팀이 매일 상품을 추가하고 주문을 처리할 때
  • 리뷰, 이메일 마케팅, 적립 같은 부가 기능을 앱 마켓에서 고르고 싶을 때
  • 여러 채널에서 팔고 재고 수량을 하나로 관리해야 할 때

Shopify는 월 구독료를 내며, 연간 결제 시 할인이 있고, 카드 결제 수수료가 별도로 붙습니다. 지역에 따라 가격이 다르니 본인 국가의 요금 페이지를 확인하세요.

직접 만든 스토어가 유리한 경우는 다음과 같습니다:

  • 제품이 특이할 때: 주문 제작 옵션 구성, 예약과 상품 판매를 함께 하는 경우, 디지털 다운로드와 라이선스, 고객별 B2B 가격표 등
  • 스토어가 더 큰 앱의 일부일 때(강좌 플랫폼, 멤버십 사이트, 마켓플레이스 등)
  • 상품 수가 적고 디자인과 결제 흐름을 완전히 통제하고 싶을 때
  • 코드를 직접 소유하고 플랫폼에 묶이지 않고 싶을 때

많은 소규모 판매자에게는 플랫폼이 가장 나은 선택입니다. 필요한 기능이 평범하다면 그 편이 좋은 것입니다. 지름길을 택하세요.

온라인 스토어에 필요한 것

데이터

테이블주요 필드
상품이름, 슬러그, 설명, 이미지, 가격, 판매 여부(예/아니요), 카테고리
변형 상품(Variants)상품, 옵션 값(사이즈, 색상), SKU, 개별 가격, 재고
주문주문 번호, 고객 이메일, 배송 주소, 상태, 소계, 배송비, 세금, 총액, 결제 ID
주문 항목주문, 변형 상품, 수량, 구매 당시 단가
재고 이동변형 상품, 변동량(+/−), 사유(판매, 입고, 환불, 정정), 날짜
할인 코드코드, 유형, 금액, 만료일, 사용 한도 — 첫 출시에는 말고 나중에 추가

각 주문 항목에는 구매 당시 가격을 저장하세요. 다음 달에 가격을 바꾸더라도 과거 주문에는 고객이 실제로 낸 금액이 그대로 보여야 합니다.

화면

  • 스토어 화면: 홈, 카테고리 또는 컬렉션 페이지, 상품 페이지, 장바구니, 결제 페이지로 이동, 주문 완료 페이지.
  • 관리자 화면: 상품과 재고, 상태(결제 완료, 포장 완료, 배송 완료, 환불)가 있는 주문, 고객, 간단한 매출 수치.
  • 법적 고지와 정책: 배송, 반품, 개인정보 처리방침, 이용약관. 고객은 구매 전에 이 페이지를 찾아보며, 많은 지역에서 법으로 일부를 요구합니다.

권한

고객이 계정 없이 구매할 수 있게 하세요. 비회원 결제는 단계를 하나 줄여 주며, 계정 기능은 나중에 추가해도 됩니다. 주문을 보거나 상품을 수정하는 권한은 관리자에게만 주고, 관리자 영역은 실제 로그인과 서버 측 권한 검사로 보호하세요.

결제는 이렇게 진행되어야 합니다

직접 만든 스토어에서 가장 안전한 방식은 호스팅된 결제 페이지를 쓰는 것입니다. Stripe를 쓴다면 다음과 같습니다:

  1. 고객이 결제 버튼을 누르면, 서버가 데이터베이스에서 가격과 재고를 다시 확인합니다. 브라우저가 보낸 값은 절대 믿지 않습니다. 그다음 Stripe Checkout 세션을 만듭니다.
  2. 고객은 Stripe의 페이지에서 결제합니다. 카드 정보는 내 서버에 전달되지 않습니다.
  3. Stripe가 앱의 웹훅 엔드포인트를 호출해 결제가 성공했다고 알려줍니다. 그때에만 주문을 결제 완료로 표시하고 재고를 줄입니다.
  4. 고객은 주문 완료 페이지로 이동하고, 주문 확인 이메일이 발송됩니다.

피해야 할 실수는 두 가지입니다. 하나는 결제 성공 페이지로 리디렉션된 것을 보고 '결제 완료' 주문을 만드는 것입니다(사람들은 탭을 닫기도 하고, 리디렉션은 위조될 수 있습니다). 다른 하나는 브라우저에서 총액을 계산하는 것입니다. 두 가지 모두 AI에게 명확히 말하지 않으면 쉽게 틀리는 부분입니다.

Stripe의 기본 수수료는 성공한 카드 결제마다 비율 수수료와 고정 수수료를 부과하며, 설정비와 월 이용료는 없습니다(2026년 9월 기준). 정확한 요율은 국가와 카드 종류에 따라 다릅니다. 모든 기능은 먼저 Stripe 테스트 모드와 테스트 카드 번호로 만드세요. 앱에 결제 기능 추가하기 가이드에서 키, 테스트 모드, 웹훅을 다룹니다.

세금, 배송, 재고 결정

다음은 AI가 대신 결정해 줄 수 없는 사업상의 결정입니다:

  • 세금. 판매세나 부가가치세를 내야 하는지, 세율이 얼마인지는 본인과 고객이 있는 지역에 따라 다릅니다. Stripe에는 이를 위한 제품(Stripe Tax)이 있으며, 상황이 단순하다면 고정 세율을 설정할 수도 있습니다. 확신이 없으면 회계사에게 물어보세요.
  • 배송. 몇 가지 정액 요금(국내, 해외, 일정 금액 이상 무료)으로 시작하세요. 실시간 택배 요금 조회와 송장 출력은 Shopify 같은 플랫폼이 많은 작업을 덜어 주는 부분입니다.
  • 재고. 재고를 결제 시작 시점에 잡아 둘지, 결제가 성공했을 때만 차감할지 정하세요. 소규모 스토어라면 결제 성공 시 차감하고 결제 직전에 재고를 다시 확인하는 편이 간단합니다. 다만 마지막 한 개를 두고 간혹 초과 판매가 생길 수 있으므로 그때 어떻게 할지 미리 정해 두세요. 스토어 밖의 재고 관리가 필요하다면 재고 관리 앱 만드는 법을 참고하세요.

실제로 통하는 첫 프롬프트

Loam & Clay를 위한 온라인 스토어를 만들어 주세요. 머그컵, 그릇, 꽃병을 파는 작은 도자기 스튜디오입니다. 스토어 화면: 추천 상품이 있는 홈 페이지, 카테고리 필터가 있는 쇼핑 페이지, 이미지 갤러리, 색상 변형, 재고 상태가 있는 상품 페이지, 밀어서 여는 장바구니. 상품, 변형 상품, 주문, 주문 항목을 데이터베이스에 저장하고 현실적인 상품 10개를 넣어 주세요. 관리자 영역(로그인 필요)에서 상품 추가와 수정, 이미지 업로드, 재고 변경, 상태가 결제 완료 / 포장 완료 / 배송 완료인 주문 확인이 가능해야 합니다. 결제 버튼은 지금은 임시 버튼으로 두고, 다음 단계에서 Stripe Checkout을 추가할 예정입니다. 따뜻하고 미니멀한 디자인, 모바일 우선. 가짜 리뷰나 '전 세계 무료 배송' 같은 문구는 넣지 마세요.

결제는 임시로 두는 것이 의도된 설계입니다. 상품 목록과 관리자 화면을 먼저 제대로 만들고, 결제는 별도 단계에서 제대로 테스트할 수 있도록 나중에 연결하세요.

빌드 단계

  1. 상품 목록과 상품 페이지, 실제 상품명, 가격, 사진을 넣습니다.
  2. 장바구니, 새로고침해도 유지되도록 합니다.
  3. 관리자: 상품, 변형 상품, 재고, 이미지 업로드. 로그인으로 보호합니다.
  4. Stripe Checkout을 테스트 모드로 연결하고, 서버가 가격과 재고를 다시 확인하도록 합니다.
  5. 주문을 결제 완료로 표시하고 재고를 줄이는 웹훅을 만듭니다. 테스트 카드로 처음부터 끝까지 확인하세요.
  6. 고객과 본인에게 가는 주문 이메일.
  7. 정책과 SEO: 배송 및 반품 페이지, 상품 제목과 설명, 공유 이미지. AI로 만든 웹사이트를 위한 SEO를 참고하세요.
  8. 출시: 실제 Stripe 키로 바꾸고, 직접 소액 주문을 해 본 뒤 환불합니다.

자주 하는 실수

  • 브라우저가 보낸 가격을 믿는 것. 항상 서버에서 다시 계산하세요.
  • 결제 성공 페이지에서 주문을 결제 완료로 표시하는 것. 웹훅에서 처리해야 합니다.
  • 재고 숫자를 덮어쓰는 것. 이동 기록을 남기지 않으면 재고가 왜 바뀌었는지 이력이 사라집니다.
  • 배송 및 반품 페이지 없이 출시하는 것.
  • 너무 큰 상품 이미지. 압축하고, 코드 안이 아니라 파일 저장소에서 제공하세요.
  • 첫 판매 전에 위시리스트, 리뷰, 적립금을 만드는 것.

운영 비용

다음 비용을 계획에 넣으세요: 호스팅과 데이터베이스, 판매마다 발생하는 결제 수수료, 도메인, 주문 확인 이메일을 보내는 이메일 서비스, 그리고 세금 서비스가 필요할 수도 있습니다. 직접 만든 스토어는 플랫폼 구독료와 앱 수수료를 아낄 수 있지만, 유지보수는 본인 몫입니다. 결제에서 무언가 깨지면 고쳐야 하는 사람은 본인입니다.

본인 말고도 여러 판매자가 각자 정산을 받는 구조라면 그것은 결제 규칙이 다른 마켓플레이스입니다. 마켓플레이스 만드는 법을 참고하세요.

Mythex로 만들기

Mythex에서는 스토어를 설명하면 에이전트가 라이브 미리보기에서 상품 목록, 장바구니, 관리자 화면을 만들어 줍니다. 상품과 주문은 Postgres 데이터베이스에, 상품 이미지는 파일 저장소에 저장됩니다. Mythex 문서의 스토어 사용 사례도 위와 같은 순서를 권장합니다. 먼저 상품 목록, 그다음 결제입니다.

결제는 본인의 Stripe 계정을 사용합니다. Stripe 키를 프로젝트 시크릿으로 추가한 뒤 에이전트에게 Checkout 추가를 요청하고, 미리보기에서 Stripe 테스트 카드로 확인하면 됩니다(Stripe 레시피). 웹훅은 공개 URL이 필요하므로, Stripe에 주소를 등록하기 전에 먼저 게시하세요(웹훅 레시피). 세금, 배송, 재고 동기화는 Mythex의 기본 기능이 아니며, Shopify와의 기본 연동도 없습니다. 완성된 제품으로 이런 기능이 필요하다면 Shopify가 더 나은 선택입니다. 시작점이 필요하다면 스토어 템플릿, 예를 들어 이커머스 스토어를 참고하세요.

자주 묻는 질문

AI로 온라인 스토어를 만들 수 있나요?

네. AI 앱 빌더로 상품 목록, 상품 페이지, 장바구니, 주문 관리를 만들고, 본인 계정을 사용해 Stripe 같은 결제 서비스와 결제를 연결할 수 있습니다. 세금, 배송, 물류 규칙은 직접 결정하고 신중하게 테스트해야 합니다.

온라인으로 판매하려면 Shopify가 꼭 필요한가요?

아닙니다. Stripe 같은 결제 서비스와 직접 만든 스토어로 판매할 수 있습니다. 다만 재고, 배송, 세금, 앱을 하나의 제품으로 관리하고 싶거나 기술 지식이 없는 팀이 매일 스토어를 운영한다면 Shopify가 더 쉬운 선택입니다.

직접 만든 온라인 스토어에서 결제는 어떻게 받나요?

대부분의 직접 제작 스토어는 Stripe가 호스팅하는 결제 페이지인 Stripe Checkout으로 고객을 보내고, Stripe가 웹훅으로 결제 완료를 알려주면 주문을 만듭니다. 카드 정보가 내 서버를 거치지 않아 더 단순하고 안전합니다.

재고를 정확하게 관리하려면 어떻게 하나요?

결제가 확인된 뒤에만 재고를 줄이고, 결제 페이지를 만들기 직전에 재고를 다시 확인하며, 모든 변동(판매, 입고, 환불)을 숫자를 덮어쓰지 않고 이력으로 기록하세요. 다른 채널에서 팔린 상품도 같은 재고 수량에 반영해야 합니다.

Mythex · Pricing · AI로 무엇이든 만들기 · 웹사이트 및 앱 템플릿 · Mythex 비교 · AI 앱 개발 용어집 · 무료 AI 앱 개발 도구 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)