Files
Gnuboard7/plugins/_bundled/sirsoft-message_bizppurio/docs/api/alimtalk-templates.md
T
HeuJung e17731d8cc feat(message_bizppurio): 알림톡 템플릿 라이프사이클 개편 — DB 기반 작성·검수·승인
비즈뿌리오 알림톡 템플릿을 콘솔 위임(발송 전 실시간 조회) 방식에서 시스템 내
작성(draft) → 검수 신청(requested) → 승인(approved) 라이프사이클로 개편한다.
발송 판정의 SSoT 를 DB(bizppurio_templates)로 옮기고 발송 전 실시간 조회를 폐지.

- 알림↔템플릿 바인딩 모델(notification_bindings) 제거, 알림 1건당 템플릿 1행으로 대체
- 검수 신청: template_code 자체 채번(codeCheck 재시도) → kapi add/update → request
- 상태 동기화: 30분 스케줄러 + 수동 새로고침, 승인 전이 시 content 를 approved_content 로 동결
- SMS 본문 언어별 입력 복원(수신자 로케일 발송), SMS 단독 선택 시 알림톡 미발송
- 3면(코어/게시판/이커머스) '비즈뿌리오' 통합 탭 + 플러그인 '알림 템플릿 관리' 화면
- 중복 검수 신청은 서버 원자 선점(claimForInspection 조건부 UPDATE)으로 차단
- admin_basic 1.0.6 / board 1.0.5 / ecommerce 1.1.2: 채널 서브탭 통합 탭 선언(tab_channels) 지원
- 검증: 계획서 대비 5라운드 전수검증, §6.3 실측 매트릭스 Playwright 19 고정,
 PHPUnit 421 / Vitest 228 green, audit 0 error
2026-08-22 22:44:57 +09:00

5.1 KiB

Alimtalk Templates API 레퍼런스

소유: plugin sirsoft-message_bizppurio · 생성: php artisan api:docgen (실측 기반). @generated 블록은 재생성 시 갱신되며, 사람이 작성한 설명은 보존됩니다.


TL;DR (5초 요약)

1. 이 문서는 알림톡 템플릿 작성 모달의 참조 조회(카테고리·발신프로필) 엔드포인트 레퍼런스입니다
2. 각 엔드포인트: 메서드/URI/권한 + 요청 파라미터 표 + 요청 예시(curl) + 실측 응답 필드 표 + 응답 예시(envelope)
3. 실시간 템플릿 목록/상세 화면(구 Phase 5)은 DB 기반 라이프사이클(templates.md)로 대체되어 제거됐습니다
4. kapi 실패는 422 + errors.bizppurio_message(카카오 사유 원문) 규약을 따릅니다
5. 갱신: 코드 변경 후 php artisan api:docgen 재실행

작성 모달 참조 조회(카테고리·발신프로필) 전용 문서다. 알림톡 템플릿 작성 모달의 카테고리 셀렉트·발신프로필 셀렉트가 소비하는 kapi(카카오 관리 API) 조회를 프록시한다. 템플릿의 등록·검수·승인 라이프사이클 API 는 templates.md 를 참조.

GET /api/plugins/sirsoft-message_bizppurio/admin/alimtalk-templates/categories

  • 라우트명: api.plugins.sirsoft-message_bizppurio.admin.alimtalk-templates.categories
  • 컨트롤러: Plugins\Sirsoft\MessageBizppurio\Controllers\Admin\AlimtalkTemplateController@categories
  • 인증/권한: auth:sanctum + permission:sirsoft-message_bizppurio.messaging.view

요청 파라미터

요청 파라미터 없음.

요청 예시

GET /api/plugins/sirsoft-message_bizppurio/admin/alimtalk-templates/categories HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer {YOUR_TOKEN}

응답 필드 (data 내부)

필드 타입 예시값 용도/설명
categories array [{...}] kapi /v3/kakao/template/category/all 조회 결과 배열. 각 항목: code(카테고리 코드 — content.categoryCode 에 사용), name(소분류명), groupName(대분류명)

응답 예시

{
  "success": true,
  "message": "성공적으로 처리되었습니다.",
  "data": {
    "categories": [
      { "code": "001001", "name": "회원가입", "groupName": "회원" },
      { "code": "004001", "name": "구매완료", "groupName": "구매" }
    ]
  }
}

에러 응답

상태코드 의미 발생 조건
401 Unauthenticated 유효한 Bearer 토큰이 없거나 만료된 경우
403 Forbidden 요구 권한(sirsoft-message_bizppurio.messaging.view)이 없는 경우

설명

템플릿 등록에 사용할 카카오 카테고리 전체(대분류·소분류)를 조회한다(data.categories). 작성 모달의 카테고리 셀렉트가 소비하며, 선택된 소분류 코드가 템플릿 생성/수정의 content.categoryCode 값이 된다. kapi 자격증명 미설정·호출 실패 시 422 + errors.bizppurio_message(카카오 사유 원문) 를 반환한다.

GET /api/plugins/sirsoft-message_bizppurio/admin/alimtalk-templates/profiles

  • 라우트명: api.plugins.sirsoft-message_bizppurio.admin.alimtalk-templates.profiles
  • 컨트롤러: Plugins\Sirsoft\MessageBizppurio\Controllers\Admin\AlimtalkTemplateController@profiles
  • 인증/권한: auth:sanctum + permission:sirsoft-message_bizppurio.messaging.view

요청 파라미터

요청 파라미터 없음.

요청 예시

GET /api/plugins/sirsoft-message_bizppurio/admin/alimtalk-templates/profiles HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer {YOUR_TOKEN}

응답 필드 (data 내부)

필드 타입 예시값 용도/설명
profiles array [{...}] kapi /v3/kakao/profile/use 응답 data.success 배열(조회 실패 프로필 fail 은 제외). 각 항목: senderKey(발신프로필 키), name(프로필명), status, block, dormant, categoryCode 등 kapi 원형 필드

응답 예시

{
  "success": true,
  "message": "성공적으로 처리되었습니다.",
  "data": {
    "profiles": [
      { "senderKey": "05aa099bcbc5220a8c0b2...", "name": "@우리상점", "status": "A", "block": false, "dormant": false }
    ]
  }
}

에러 응답

상태코드 의미 발생 조건
401 Unauthenticated 유효한 Bearer 토큰이 없거나 만료된 경우
403 Forbidden 요구 권한(sirsoft-message_bizppurio.messaging.view)이 없는 경우

설명

발신프로필(사용중) 상태 정보를 조회한다(data.profiles). 작성 모달의 발신프로필 셀렉트·상태 표시가 소비한다. kapi 자격증명 미설정·호출 실패 시 422 + errors.bizppurio_message(카카오 사유 원문) 를 반환한다.