Shopify
Dev Dashboard 앱으로 Shopify 스토어를 연결해 주문, 환불, 수수료, 구독 계약을 읽습니다.
RevGlance는 Shopify의 GraphQL Admin API로 스토어를 읽습니다. 앱의 클라이언트 ID와 시크릿으로 로그인하며(client credentials grant), 이 방식은 앱과 같은 조직에 속한 스토어에서만 작동합니다.
연결
- Shopify Dev Dashboard에서 스토어와 같은 조직에 앱을 만듭니다.
read_orders,read_all_orders,read_own_subscription_contracts,read_customers범위를 부여하고, 버전을 릴리스한 뒤 스토어에 앱을 설치합니다.- 앱의 Settings에서 Client ID와 Client secret(
shpss_로 시작)을 복사합니다. - 스토어의
.myshopify.com주소와 두 값을 입력한 다음 Shopify 연결을 선택합니다.
양식에서 묻는 항목
| 필드 | 형식 예시 |
|---|---|
| 스토어 | acme.myshopify.com |
| 클라이언트 ID | 1a2b3c4d5e6f… |
| 클라이언트 시크릿암호화하여 저장 | shpss_… |
Webhook 추가하기
Shopify는 소스에 이미 있는 앱의 클라이언트 시크릿으로 Webhook에 서명하므로 붙여넣을 시크릿이 없습니다.
- RevGlance에서 설정 › 소스를 열고 Shopify 소스의 메뉴를 연 다음 Webhook을 선택합니다. URL을 복사합니다.
- 앱 구성에서 그 URL을 엔드포인트로 하여 주문, 환불, 구독 계약 주제를 구독하고 변경 사항을 릴리스합니다.
RevGlance가 동기화하는 항목
- 결제된 주문: 스토어 통화 기준 세전 금액이며 Shopify Payments 수수료를 포함합니다. 테스트 주문은 제외됩니다.
read_all_orders범위가 있으면 첫 동기화가 Shopify 기본값인 60일보다 더 이전까지 읽을 수 있습니다. - 환불: 주문과 같은 비율로 세금을 뺍니다.
- Shopify Subscriptions와 이를 기반으로 만든 앱의 구독 계약: MRR에 사용됩니다. 판매 플랜으로 생성된 주문은 반복 결제로 집계합니다.
Shopify는 해지 날짜나 이유를 제공하지 않으므로, 해지된 계약은 마지막으로 변경된 시점에 종료된 것으로 처리합니다.
Shopify의 집계 방식
- 결제된 주문은 스토어 통화로 세전 집계되며, Shopify Payments 수수료가 수수료입니다. 테스트 주문은 제외됩니다.
- 환불에는 세금이 포함되어 있으므로 RevGlance가 주문과 같은 비율로 세금을 뺍니다.
- MRR은 구독 계약(Shopify Subscriptions 및 이를 기반으로 한 앱)에서 할인 후 금액으로 가져옵니다. 판매 플랜으로 생성된 주문은 반복 매출로 집계됩니다.
- Shopify는 해지 날짜나 사유를 제공하지 않습니다. 해지·만료·실패·일시 중지된 계약은 마지막으로 변경된 날에 종료됩니다.
- 일부만 결제된 주문은 지금까지 들어온 금액만 집계됩니다.
- 가격에 세금이 포함된 경우 MRR은 첫 주문의 세금 비율에 따라 세전으로 집계됩니다.
- 구독 계약에는 체험판 날짜가 없으므로 체험판은 표시되지 않습니다.
- 지불 거절은 읽지 않으므로, 진 지불 거절은 결제 대행사가 환불로도 보고하지 않는 한 결제로 계속 집계됩니다.
- 실패한 결제는 보고되지 않으므로 해당 수치는 0으로 유지됩니다.

RevGlance