RevGlance문서

Shopify

Dev Dashboard 앱으로 Shopify 스토어를 연결해 주문, 환불, 수수료, 구독 계약을 읽습니다.

RevGlance는 Shopify의 GraphQL Admin API로 스토어를 읽습니다. 앱의 클라이언트 ID와 시크릿으로 로그인하며(client credentials grant), 이 방식은 앱과 같은 조직에 속한 스토어에서만 작동합니다.

연결

  1. Shopify Dev Dashboard에서 스토어와 같은 조직에 앱을 만듭니다.
  2. read_orders, read_all_orders, read_own_subscription_contracts, read_customers 범위를 부여하고, 버전을 릴리스한 뒤 스토어에 앱을 설치합니다.
  3. 앱의 Settings에서 Client ID와 Client secret(shpss_로 시작)을 복사합니다.
  4. 스토어의 .myshopify.com 주소와 두 값을 입력한 다음 Shopify 연결을 선택합니다.

양식에서 묻는 항목

필드형식 예시
스토어acme.myshopify.com
클라이언트 ID1a2b3c4d5e6f…
클라이언트 시크릿암호화하여 저장shpss_…

Webhook 추가하기

Shopify는 소스에 이미 있는 앱의 클라이언트 시크릿으로 Webhook에 서명하므로 붙여넣을 시크릿이 없습니다.

  1. RevGlance에서 설정 › 소스를 열고 Shopify 소스의 메뉴를 연 다음 Webhook을 선택합니다. URL을 복사합니다.
  2. 앱 구성에서 그 URL을 엔드포인트로 하여 주문, 환불, 구독 계약 주제를 구독하고 변경 사항을 릴리스합니다.

RevGlance가 동기화하는 항목

  • 결제된 주문: 스토어 통화 기준 세전 금액이며 Shopify Payments 수수료를 포함합니다. 테스트 주문은 제외됩니다. read_all_orders 범위가 있으면 첫 동기화가 Shopify 기본값인 60일보다 더 이전까지 읽을 수 있습니다.
  • 환불: 주문과 같은 비율로 세금을 뺍니다.
  • Shopify Subscriptions와 이를 기반으로 만든 앱의 구독 계약: MRR에 사용됩니다. 판매 플랜으로 생성된 주문은 반복 결제로 집계합니다.

Shopify는 해지 날짜나 이유를 제공하지 않으므로, 해지된 계약은 마지막으로 변경된 시점에 종료된 것으로 처리합니다.

Shopify의 집계 방식

  • 결제된 주문은 스토어 통화로 세전 집계되며, Shopify Payments 수수료가 수수료입니다. 테스트 주문은 제외됩니다.
  • 환불에는 세금이 포함되어 있으므로 RevGlance가 주문과 같은 비율로 세금을 뺍니다.
  • MRR은 구독 계약(Shopify Subscriptions 및 이를 기반으로 한 앱)에서 할인 후 금액으로 가져옵니다. 판매 플랜으로 생성된 주문은 반복 매출로 집계됩니다.
  • Shopify는 해지 날짜나 사유를 제공하지 않습니다. 해지·만료·실패·일시 중지된 계약은 마지막으로 변경된 날에 종료됩니다.
  • 일부만 결제된 주문은 지금까지 들어온 금액만 집계됩니다.
  • 가격에 세금이 포함된 경우 MRR은 첫 주문의 세금 비율에 따라 세전으로 집계됩니다.
  • 구독 계약에는 체험판 날짜가 없으므로 체험판은 표시되지 않습니다.
  • 지불 거절은 읽지 않으므로, 진 지불 거절은 결제 대행사가 환불로도 보고하지 않는 한 결제로 계속 집계됩니다.
  • 실패한 결제는 보고되지 않으므로 해당 수치는 0으로 유지됩니다.