쇼핑몰 주문으로 재고를 자동으로 빼는 구조
쇼핑몰에서 주문이 들어오면 재고가 저절로 빠지게 하려면 어떻게 해야 하나요?
주문을 가져오는 방식과 주문을 보내 주는 방식 두 가지가 있습니다. 어느 쪽이든 같은 주문이 두 번 들어와도 재고가 두 번 빠지지 않도록 주문번호로 한 번만 처리하는 장치가 반드시 필요합니다.
한 줄로
연결 방식은 둘입니다. 우리가 주문을 가져오거나, 쇼핑몰이 우리에게 보내 주거나. 어느 쪽이든 같은 주문이 두 번 들어와도 재고가 두 번 빠지지 않아야 합니다.
두 가지 방식
| 방식 | 어떻게 | 맞는 곳 |
|---|---|---|
| 가져오기 | 정해진 시간마다 주문 목록을 읽어 온다 | 공개된 연결 규격이 있는 쇼핑몰 |
| 보내 주기 | 주문이 생길 때 쇼핑몰이 우리 주소로 알린다 | 직접 만든 자사몰 |
반드시 있어야 하는 장치
- 한 번만 처리 · 주문번호를 기억해 두고 같은 번호가 다시 오면 그냥 넘깁니다. 통신은 자주 끊기고, 끊기면 보내는 쪽이 다시 보냅니다
- 보낸 사람 확인 · 열쇠로 서명한 값을 함께 받아 우리가 준 열쇠로 맞는지 봅니다. 주소만 알면 아무나 재고를 뺄 수 있으면 안 됩니다
- 시각 확인 · 오래된 요청은 받지 않습니다. 지나간 요청을 그대로 다시 보내는 공격을 막습니다
- 상품 짝짓기 · 쇼핑몰 상품과 우리 물품을 이어 두어야 어느 재고를 뺄지 알 수 있습니다
- 취소·반품 · 되돌리는 기록도 함께 받아야 재고가 맞습니다
흔히 겪는 문제
가장 많은 것은 추가 옵션 때문에 재고가 두 번 빠지는 일입니다. 주문 한 줄에 본품과 추가 옵션이 함께 들어 있는데, 옵션 줄에도 본품 코드가 붙어 있으면 같은 물품이 두 번 계산됩니다. 옵션 줄은 본품과 구분해서 다뤄야 합니다.
다음은 장바구니를 주문으로 세는 일입니다. 쇼핑몰 자료에는 아직 결제되지 않은 상태가 섞여 있습니다. 상태 값을 확인하지 않고 모두 세면 재고가 미리 빠집니다. 주문 상태 값이 무엇을 뜻하는지 먼저 확인해야 합니다.
WAO 에서는 이렇게 됩니다
주요 쇼핑몰은 주문을 가져오고, 직접 만든 자사몰은 우리가 드리는 주소로 보내 주시면 됩니다. 자사몰에는 API Key 와 Secret Key 를 드리고, 서명·시각·한 번만 처리까지 갖춰 두었습니다. 데이터베이스 비밀번호는 받지 않습니다. 그누보드 영카트는 저희가 드리는 연결 파일 하나를 쇼핑몰에 올리시면 되고, 그 파일은 읽기만 합니다. 연결한 뒤에는 쇼핑몰 상품과 우리 물품을 한 번 이어 두시면 그다음부터는 저절로 처리됩니다.
자주 묻는 질문
같은 주문이 두 번 들어오면 재고가 두 번 빠지나요?
주문번호를 기억해 두고 같은 번호가 다시 오면 그냥 넘깁니다.
연결하려면 쇼핑몰 데이터베이스 비밀번호를 줘야 하나요?
데이터베이스 비밀번호는 받지 않습니다.
재고가 미리 빠지는 일은 왜 생기나요?
쇼핑몰 자료에는 아직 결제되지 않은 상태가 섞여 있습니다. 상태 값을 확인하지 않고 모두 세면 재고가 미리 빠집니다.
출처
마지막 손질 2026-08-20