앱 이벤트
앱이 받을 수 있는 이벤트와 필요한 권한, 설치·해제·데이터 삭제 이벤트
이벤트는 매니페스트 events에 적고 defineApp의 events에 같은 이름의 함수를 둡니다. 상점 이벤트는 웹훅과 같은
이름·같은 data이고, 앱 이벤트(APP.*)는 앱에만 옵니다.
상점 이벤트
이벤트마다 필요한 권한이 있습니다. 매니페스트 scopes에 없으면 app verify가 EVENT_SCOPE_MISSING으로 멈춥니다. 쓰기 권한(order:rw)은
읽기 권한(order:r)을 포함합니다.
| 이벤트 | 언제 | 필요 권한 |
|---|---|---|
ORDER.PAID | 결제 완료 | order:r |
ORDER.CONFIRMED | 발주 확인 | order:r |
ORDER.DISPATCHED | 발송 처리 | order:r |
ORDER.DELIVERED | 배송 완료(배송 없는 상품은 제공 완료) | order:r |
ORDER.FULFILLED | 배송 없는 상품 제공 | order:r |
ORDER.PURCHASE_DECIDED | 구매 확정 | order:r |
ORDER.ADDRESS_CHANGE_REQUESTED | 배송지 변경 요청 | order:r |
ORDER.CANCELED | 판매자 취소 | order:r |
ORDER.FLOW_NOTIFICATION | 주문 흐름의 알림 블록 실행 | order:r |
ORDER.FLOW_STATE_CHANGED | 주문상품의 흐름 상태 변경 | order:r |
CLAIM.CANCEL_REQUESTED · CLAIM.RETURN_REQUESTED · CLAIM.EXCHANGE_REQUESTED | 취소·반품·교환 요청 | claim:r |
CLAIM.COMPLETED | 클레임 처리 완료 | claim:r |
INQUIRY.CREATED | 상품 문의 등록 | inquiry:r |
REVIEW.CREATED | 리뷰 등록 | review:r |
PRODUCT.OUT_OF_STOCK | 옵션 조합의 재고가 0이 되는 순간 | product:r |
data 필드는 웹훅 › 이벤트와 같습니다. 테스트 결제 주문도 testPayment: true로 옵니다.
앱 이벤트
설치·설정·해제 순간에 옵니다. 권한이 필요 없습니다. 매니페스트 events에 적은 것만 옵니다.
| 이벤트 | 언제 | data | 비고 |
|---|---|---|---|
APP.INSTALLED | 셀러가 설치에 동의한 직후 | installationId storeId versionNumber grantedScopes | 필수 설정이 비어 있어도 옵니다(이 이벤트만). ctx.api를 쓸 수 있습니다 |
APP.SETTINGS_UPDATED | 셀러가 설정을 저장했을 때 | installationId storeId changedKeys | 값이 바뀐 키만 옵니다(같은 값을 다시 저장하면 오지 않습니다). 값은 ctx.settings로 읽습니다 |
APP.SCOPES_UPDATED | 셀러가 새 버전에 재동의했을 때 | installationId storeId versionNumber grantedScopes | |
APP.UNINSTALLED | 셀러가 앱을 제거했을 때 | installationId storeId | ctx.token이 null이고 ctx.api를 쓸 수 없습니다. 외부 서비스 정리만 합니다 |
APP.STORE_REDACT | 제거 48시간 뒤 | installationId storeId | 그 상점의 데이터를 앱 밖에 보관했다면 지우라는 통지입니다. ctx.token은 null입니다 |
APP.CUSTOMER_REDACT | 구매자가 탈퇴했을 때 | storeId memberId | 고객 정보(customer:r) 권한이 있는 앱에만 옵니다. 그 고객의 데이터를 앱 밖에 보관했다면 지웁니다 |
APP.UNINSTALLED·APP.STORE_REDACT·APP.CUSTOMER_REDACT는 한 번만 시도하지 않고 다른 이벤트처럼 실패하면 다시 옵니다.
sayren은 앱이 실제로 데이터를 지웠는지 확인하지 않습니다. 앱 밖에 셀러·고객 데이터를 두는 앱은 이 세 이벤트를 받도록 만드십시오.
전달 규칙
- 설치가 사용 중이고 그 상점이 동의한 권한이 이벤트의 필요 권한을 덮을 때만 옵니다. 권한이 넓어진 버전에 아직 재동의하지 않은 상점은 옛 버전의 이벤트 목록과 권한으로 옵니다.
- 필수 설정이 비어 있으면
APP.INSTALLED말고는 오지 않습니다(실행 기록에 「설정 필요」). - 최소 한 번 전달, 순서 없음, 재시도 최대 24시간. 24시간 동안 모든 호출이 계속 실패하는 앱은 정지되고 개발자에게 알립니다. 정지된 동안의 이벤트는 쌓이지 않습니다.
- 앱 이벤트와 상점 웹훅은 서로 독립입니다. 앱이 상점의 웹훅 구독을 만들거나 바꿀 수 없습니다.