공연 티켓을 워드프레스 쇼핑몰에서 판매할 때 가장 자주 부딪히는 과제 중 하나는 결제 이후의 데이터 처리입니다. 일반 쇼핑몰이라면 주문, 배송, 재고 관리가 핵심이지만 공연 예매 사이트는 조금 다릅니다. 공연명, 공연장, 공연일시, 회차, 권종, 좌석등급, 할인 정보, 예매 매수, 취소 매수, 결제 금액 같은 공연 예매 데이터를 정확하게 관리해야 합니다.
특히 공연예술통합전산망, 즉 KOPIS와 연계해야 하는 예매처나 공연시설이라면 WooCommerce 주문 데이터를 KOPIS 전송 규격에 맞춰 변환하고, 결제 데이터와 집계 데이터를 안정적으로 전송하는 과정이 필요합니다.
bta-kopis-woocommerce는 이런 목적을 위해 개발한 워드프레스 플러그인입니다. WooCommerce에서 발생한 공연 티켓 예매 주문을 공연예술통합전산망(KOPIS REST)으로 전송하고, 관리자 화면에서 전송 상태와 로그를 확인할 수 있도록 만든 KOPIS 우커머스 연동 플러그인입니다.
국내에서 “KOPIS WooCommerce”, “공연예술통합전산망 우커머스”, “KOPIS 우커머스 연동”처럼 검색했을 때 바로 참고할 수 있는 사례가 많지 않습니다. 그래서 이 글에서는 bta-kopis-woocommerce가 왜 필요한지, 어떤 방식으로 WooCommerce와 KOPIS를 연결하는지, 공연 예매 사이트 운영자가 어떤 점을 확인해야 하는지 자세히 정리합니다.
KOPIS와 WooCommerce를 왜 연동해야 할까?
KOPIS는 공연예술통합전산망입니다. 공연 정보, 공연 통계, 예매 통계, 티켓 판매 흐름을 다루는 공연 분야의 핵심 데이터 시스템입니다. KOPIS 공식 사이트에서도 공연예매가 이루어진 뒤 연계기관에서 데이터를 전송하고, 예매 데이터 검증과 공연정보 입력을 거쳐 공연 DB에 반영되는 흐름을 안내하고 있습니다.
공연 예매 사이트를 WooCommerce로 운영하면 결제와 주문 관리는 워드프레스 안에서 처리할 수 있습니다. 하지만 KOPIS가 요구하는 전송 데이터는 일반 WooCommerce 주문 데이터와 모양이 다릅니다. WooCommerce 주문에는 상품명, 주문자, 결제 금액, 주문 상태가 중심으로 들어가지만, KOPIS 전송에는 공연장, 공연일시, 회차, 권종, 발권 방식, 결제 수단, 할인 종류, 좌석등급 같은 공연 예매 전용 필드가 필요합니다.
결국 필요한 것은 단순한 결제 플러그인이 아니라 WooCommerce 주문을 KOPIS 전송 규격에 맞게 변환하는 중간 계층입니다. bta-kopis-woocommerce는 바로 이 역할을 담당합니다.
bta-kopis-woocommerce란?
bta-kopis-woocommerce는 WooCommerce 주문 데이터를 공연예술통합전산망 KOPIS REST API로 전송하기 위한 워드프레스 플러그인입니다.
이 플러그인의 핵심 목표는 명확합니다.
- WooCommerce 공연 예매 주문을 KOPIS 결제 데이터로 변환
- 결제 완료, 취소, 환불 상태를 감지해 전송 대기 또는 전송 처리
- KOPIS
ticketList와dailysumList전송 흐름 지원 - 상품별 공연 정보 메타데이터 관리
- 관리자 화면에서 KOPIS 전송 설정과 로그 확인
- PG 결제 플러그인과 KOPIS 전송 로직 분리
즉, 고객이 WooCommerce에서 공연 티켓을 예매하고 결제를 완료하면 플러그인이 주문 정보를 읽어 KOPIS에 필요한 JSON payload를 생성합니다. 그리고 설정된 전송 정책에 따라 주문별 즉시 전송 또는 일 마감 배치 방식으로 KOPIS REST endpoint에 데이터를 보냅니다.
WooCommerce 공연 예매에서 KOPIS 연동이 어려운 이유
WooCommerce는 기본적으로 상품 판매를 위한 범용 전자상거래 시스템입니다. 공연 티켓 판매에도 사용할 수 있지만, 공연 예매 데이터는 일반 상품 주문보다 훨씬 구조적입니다.
예를 들어 티셔츠를 판매할 때는 색상, 사이즈, 수량 정도면 충분합니다. 하지만 공연 티켓은 다음 정보가 함께 필요합니다.
- 공연명
- 공연시설명 또는 공연장명
- 공연장 코드
- 공연일자
- 공연시간
- 회차
- 장르
- 지역
- 권종
- 좌석등급
- 장당 금액
- 할인금액
- 할인종류
- 발권방식
- 결제수단
- 예매 또는 취소 구분
- 예매 매수와 결제금액 집계
WooCommerce 주문에는 이 정보가 한 곳에 정리되어 있지 않습니다. 일부는 상품 메타에 있고, 일부는 variation 속성에 있고, 일부는 주문 item 메타에 남습니다. 할인권종처럼 고객이 선택한 옵션은 주문 item에 저장될 수도 있습니다. 결제수단은 PG 플러그인이 남긴 주문 메타를 봐야 할 수 있습니다.
bta-kopis-woocommerce는 이 흩어진 정보를 WooCommerce 주문, 상품, variation, 주문 item 메타에서 읽어 KOPIS 전송용 데이터로 조립합니다.
PG 결제와 KOPIS 전송을 분리한 구조
공연 예매 사이트에서는 결제 플러그인과 KOPIS 전송 플러그인을 분리하는 것이 중요합니다.
PG 플러그인은 카드결제, 실시간계좌이체, 가상계좌 같은 결제 승인과 취소 처리를 담당합니다. 반면 KOPIS 연동 플러그인은 결제가 끝난 뒤 WooCommerce 주문 상태를 기준으로 공연 예매 데이터를 전송합니다.
bta-kopis-woocommerce는 CookiePay 같은 결제 플러그인의 승인 로직을 직접 수정하지 않습니다. WooCommerce 주문 상태가 결제 완료, 처리중, 완료, 취소, 환불로 바뀌는 시점을 감지하고, 그 이후의 KOPIS 전송만 담당합니다.
이렇게 분리하면 장점이 큽니다.
- PG 결제창이나 승인 로직이 바뀌어도 KOPIS 전송 코드를 크게 건드리지 않아도 됩니다.
- KOPIS 전송 실패가 고객의 결제 완료 화면을 막지 않습니다.
- 결제와 데이터 전송의 장애 원인을 분리해서 추적할 수 있습니다.
- 향후 다른 PG 플러그인으로 바꿔도 WooCommerce 주문 데이터만 유지되면 KOPIS 연동을 이어갈 수 있습니다.
주요 기능
1. WooCommerce 주문 상태 기반 전송
플러그인은 WooCommerce 주문 이벤트를 감지합니다.
- 결제 완료
- 처리중
- 완료
- 취소
- 환불
- 주문 상태 변경
결제 완료 주문은 예매 데이터로, 취소 또는 환불 주문은 취소 성격의 데이터로 전송할 수 있도록 설계되어 있습니다. 자동 전송을 켜면 주문 상태 변경에 따라 전송 대기 로그가 생성되고, 설정한 정책에 맞춰 KOPIS로 전송됩니다.
2. 일 마감 배치와 주문별 즉시 전송 지원
공연 예매 데이터는 주문이 발생할 때마다 바로 보낼 수도 있고, 하루 단위로 모아 일 마감 배치로 보낼 수도 있습니다.
bta-kopis-woocommerce는 두 가지 방식을 모두 고려합니다.
- 일 마감 배치: 하루 예매 데이터를 모아
ticketList와dailysumList를 전송 - 주문별 즉시 전송: 결제 완료 주문 단위로
ticketList전송
운영 환경에서는 같은 결제일과 전송일 조합에서 중복 오류가 발생할 수 있으므로, 기본 정책은 일 마감 배치 방식에 가깝게 설계했습니다. 관리자 화면에서 수동으로 특정 날짜의 결제 데이터와 일별 집계를 전송할 수도 있습니다.
3. KOPIS 전송 로그
KOPIS 연동에서 가장 중요한 것은 “보냈는가”보다 “무엇을 보냈고 어떤 응답을 받았는가”입니다.
플러그인은 별도 로그 테이블을 만들고 다음 정보를 저장합니다.
- 주문 ID
- 이벤트 유형
- 전송 endpoint
- 요청 해시
- 전송 JSON
- 응답 코드
- 응답 body
- 성공 또는 실패 상태
- 오류 메시지
- 생성 시각
- 전송 시각
관리자는 WooCommerce 관리자 메뉴에서 KOPIS 전송 로그를 확인할 수 있습니다. 로그 상세 화면에서는 전송 JSON과 응답 body를 볼 수 있어, 필수값 누락이나 KOPIS 응답 오류를 추적하기 쉽습니다.
보안을 위해 accessKey는 로그에 원문으로 저장하지 않고 마스킹된 형태로 남기도록 처리했습니다.
4. 상품별 KOPIS 공연 정보 입력
KOPIS 전송에는 WooCommerce 기본 상품 정보만으로는 부족한 필드가 있습니다. 그래서 플러그인은 WooCommerce 상품 편집 화면에 “KOPIS 공연 정보” 메타 박스를 추가합니다.
관리자는 상품별로 다음 정보를 입력할 수 있습니다.
- KOPIS 공연 코드
- 공연명
- 공연시설명 또는 공연장명
- 공연장 코드
- 공연일자
- 공연시간
- 회차
- 공연 런타임
- 장르명
- 지역명
- 권종
- 좌석등급
- 발권방식
- 결제수단
- 할인종류
- 장당금액
- 작품설명
- 출연진
- 제작진
- 관람등급
- 판매페이지 URL
입력하지 않은 항목은 가능한 범위에서 기본값을 사용합니다. 예를 들어 공연명은 상품명을 기본값으로 사용하고, 장르는 연극, 지역은 부산처럼 운영 상황에 맞는 기본값을 적용할 수 있습니다.
5. 공연일시 자동 추출
공연 예매 상품은 variation 또는 옵션에 공연일시가 들어가는 경우가 많습니다.
예를 들어 고객이 다음과 같은 옵션을 선택할 수 있습니다.
7월10일(금) 19:307월10일토-11002026-07-10 19:30
플러그인은 주문 item 메타에서 공연일시로 보이는 값을 찾아 YYYY-MM-DD, HH:MM 형태로 정리합니다. 연도가 없는 옵션값은 주문 생성 연도를 기준으로 보정합니다. 이렇게 하면 상품마다 공연일자와 공연시간을 수동으로 모두 입력하지 않아도, 주문 옵션에서 회차 정보를 읽어 KOPIS 전송값으로 사용할 수 있습니다.
6. 티켓 수량을 1매 단위로 분리
KOPIS 결제 데이터는 티켓 단위의 세부 정보가 중요합니다.
WooCommerce 주문에서 한 고객이 같은 공연 티켓을 2매 구매하면 주문 line item은 1개이고 수량은 2로 저장될 수 있습니다. bta-kopis-woocommerce는 이런 주문을 KOPIS 전송용으로 2개의 티켓 item으로 분리합니다.
각 티켓에는 고유한 티켓 식별값을 만들고, line item 총액을 수량 기준으로 나누어 장당 결제금액을 계산합니다. 금액이 딱 나누어떨어지지 않는 경우에는 나머지를 앞쪽 티켓에 배분해 합계가 주문 금액과 맞도록 처리합니다.
7. 할인권종과 결제수단 매핑
공연 예매에서는 할인권종이 매우 중요합니다. 일반, 50% 할인, 프로모션 할인, 헌혈 할인처럼 권종별 할인 정보가 KOPIS 전송값에 반영되어야 합니다.
플러그인은 주문 item의 할인권종, 권종, discount 같은 메타 라벨을 읽어 할인 종류와 할인금액을 추정합니다. 필요한 경우 상품 메타에서 할인종류코드와 할인종류명을 직접 지정할 수도 있습니다.
결제수단 역시 WooCommerce 주문 결제수단명과 PG 메타를 참고합니다. 카드결제, 실시간계좌이체, 가상계좌 등으로 구분하고, 운영 정책에 맞게 KOPIS 결제수단코드와 결제수단명을 매핑할 수 있도록 했습니다.
관리자 화면 구성
bta-kopis-woocommerce를 활성화하면 WooCommerce 관리자 메뉴에 다음 화면이 추가됩니다.
KOPIS 연동 설정
설정 화면에서는 다음 값을 관리합니다.
- KOPIS 연동 사용 여부
- 자동 전송 여부
- 전송 정책
- 테스트 또는 운영 모드
- 테스트 API Base URL
- 운영 API Base URL
- 전송처코드
- 전송처명
- accessKey
- 전송 타임아웃
- 재시도 횟수
accessKey는 새 값을 입력할 때만 변경되며, 이미 저장된 키는 마스킹해서 보여줍니다. 공개 저장소나 로그에 원문 키가 노출되지 않도록 하기 위한 처리입니다.
KOPIS 전송 로그
로그 화면에서는 최근 전송 내역을 확인할 수 있습니다. 주문별 수동 전송, 일 마감 배치 전송, CSV 다운로드, 로그 삭제 기능도 제공합니다.
운영 중에는 이 화면이 매우 중요합니다. KOPIS 응답이 실패로 돌아왔을 때 어떤 필드가 문제인지, 전송일과 결제일이 어떻게 들어갔는지, 전송 payload가 정상적으로 만들어졌는지 확인할 수 있기 때문입니다.
주문 상세 KOPIS 전송 상태
WooCommerce 주문 상세 화면에는 KOPIS 전송 상태 메타 박스가 추가됩니다.
관리자는 주문 화면에서 다음 정보를 바로 볼 수 있습니다.
- 전송 상태
- 전송 시각
- 응답 코드
- 응답 메시지
- 수동 전송 버튼
운영자가 특정 주문만 다시 보내야 하는 경우 주문 상세에서 바로 수동 전송을 실행할 수 있습니다.
KOPIS로 전송하는 데이터 흐름
전체 흐름은 다음과 같습니다.
- 고객이 WooCommerce 공연 상품을 장바구니에 담습니다.
- 고객이 공연일시, 권종, 수량 등을 선택합니다.
- PG 플러그인이 결제를 처리합니다.
- WooCommerce 주문 상태가 결제 완료 또는 처리중으로 변경됩니다.
bta-kopis-woocommerce가 주문 상태 변경을 감지합니다.- 설정이 완료되어 있으면 전송 대기 로그를 만듭니다.
- 전송 정책에 따라 즉시 전송 또는 일 마감 배치 전송을 수행합니다.
- 플러그인이 WooCommerce 주문, 상품, variation, item 메타를 읽어 KOPIS payload를 생성합니다.
- KOPIS REST API로 JSON을 POST 전송합니다.
- 응답 코드와 응답 body를 로그에 저장합니다.
- 주문 메타에 전송 상태를 기록합니다.
이 구조의 핵심은 WooCommerce 주문을 원천 데이터로 삼는 것입니다. 결제 플러그인에 직접 종속되지 않고 WooCommerce 표준 주문 흐름을 기준으로 움직이기 때문에 유지보수가 쉽습니다.
KOPIS 연동 전 확인해야 할 사항
KOPIS 연동은 단순히 플러그인을 설치한다고 끝나는 작업이 아닙니다. 운영 전에 반드시 확인해야 할 항목이 있습니다.
- KOPIS 전송처코드와 전송처명
- accessKey 발급 및 보관 방식
- 테스트 서버와 운영 서버 URL
- 운영 서버의 outbound 방화벽 허용 여부
- KOPIS 필수 필드 목록
- 공연장 코드와 공연 코드 관리 방식
- 예매와 취소 코드값
- 할인권종 코드 체계
- 결제수단 코드 체계
- 티켓 2매 이상 주문의 전송 단위
- 부분 취소와 부분 환불 처리 방식
- 결제 데이터와 일별 집계 데이터의 금액 검증 방식
bta-kopis-woocommerce는 WooCommerce 기반 공연 예매 사이트에서 KOPIS 연동을 시작할 수 있는 구조를 제공합니다. 다만 각 기관의 운영 정책과 KOPIS 담당자 확인 사항에 따라 필드 매핑은 조정될 수 있습니다.
어떤 사이트에 적합한가?
이 플러그인은 다음과 같은 사이트에 적합합니다.
- 워드프레스로 공연 예매 사이트를 운영하는 경우
- WooCommerce로 공연 티켓을 판매하는 경우
- KOPIS 공연예술통합전산망 연계가 필요한 경우
- PG 결제 플러그인은 유지하면서 KOPIS 전송만 별도로 붙이고 싶은 경우
- 공연별 회차, 권종, 좌석등급, 할인 데이터를 관리해야 하는 경우
- 예매 데이터와 일별 집계 데이터를 관리자 화면에서 추적해야 하는 경우
특히 지역 연극제, 공연제, 문화예술 축제처럼 여러 공연과 회차를 WooCommerce 상품으로 판매하는 구조라면 KOPIS 연동 전용 플러그인이 필요합니다. 일반 쇼핑몰 주문 데이터만으로는 공연예술통합전산망 전송 규격을 안정적으로 맞추기 어렵기 때문입니다.
검색 유입을 위한 핵심 정리
bta-kopis-woocommerce는 “KOPIS 우커머스 연동”이라는 비교적 드문 영역을 다루는 플러그인입니다. 검색하는 운영자나 개발자는 보통 다음과 같은 문제를 해결하려고 합니다.
- WooCommerce 주문을 KOPIS로 보낼 수 있나?
- 공연예술통합전산망을 워드프레스 공연 예매 사이트와 연결할 수 있나?
- 우커머스 티켓 판매 데이터를 KOPIS REST API로 전송하려면 어떻게 해야 하나?
- KOPIS ticketList, dailysumList payload를 WooCommerce 주문에서 만들 수 있나?
- 결제 플러그인과 KOPIS 전송 플러그인을 분리할 수 있나?
- 공연 상품별 공연일시와 공연장 정보를 어떻게 관리해야 하나?
- KOPIS 전송 실패 로그를 워드프레스 관리자에서 확인할 수 있나?
이 플러그인은 위 질문에 대한 실제 구현 사례입니다. WooCommerce를 공연 예매 플랫폼으로 사용하면서 KOPIS 연계를 고민하는 예매처, 공연시설, 지역 예술단체, 축제 운영팀, 워드프레스 개발자에게 참고가 될 수 있습니다.
마무리
공연 예매 사이트에서 결제는 시작일 뿐입니다. 결제 이후에는 공연 정보, 예매 데이터, 취소 데이터, 집계 데이터를 정확하게 관리하고 필요한 기관 시스템으로 전송해야 합니다.
bta-kopis-woocommerce는 WooCommerce 주문 데이터를 KOPIS 공연예술통합전산망 전송 구조에 맞게 변환하기 위해 만든 플러그인입니다. PG 결제는 기존 결제 플러그인에 맡기고, KOPIS 연동은 별도 플러그인으로 분리해 운영 안정성과 유지보수성을 높였습니다.
워드프레스와 WooCommerce로 공연 티켓 예매를 운영하면서 KOPIS 연동이 필요하다면, bta-kopis-woocommerce는 좋은 출발점이 될 수 있습니다. 특히 공연명, 공연장, 공연일시, 권종, 할인, 결제수단, 일별 집계까지 한 흐름으로 관리해야 하는 공연 예매 사이트라면 전용 연동 구조를 갖추는 것이 장기적으로 안전합니다.
FAQ
KOPIS 우커머스 연동이 가능한가요?
가능합니다. WooCommerce 주문, 상품, variation, 주문 item 메타를 읽어 KOPIS REST API가 요구하는 공연 예매 데이터로 변환하면 됩니다. bta-kopis-woocommerce는 이 과정을 자동화하기 위한 플러그인입니다.
WooCommerce 기본 주문 데이터만으로 KOPIS 전송이 가능한가요?
대부분의 경우 부족합니다. KOPIS 전송에는 공연장, 공연일시, 회차, 장르, 좌석등급, 권종, 할인종류 같은 공연 예매 전용 정보가 필요합니다. 그래서 상품별 KOPIS 공연 정보와 주문 item 옵션을 함께 매핑해야 합니다.
PG 결제 플러그인을 수정해야 하나요?
필수는 아닙니다. bta-kopis-woocommerce는 PG 승인 로직을 직접 수정하지 않고 WooCommerce 주문 상태를 기준으로 후처리합니다. 결제 플러그인과 KOPIS 전송 로직을 분리하는 방식입니다.
티켓을 2매 이상 구매하면 어떻게 전송하나요?
WooCommerce line item 수량을 기준으로 티켓 1매 단위 item으로 분리해 전송합니다. 예를 들어 같은 공연 티켓 2매를 구매하면 KOPIS 전송 payload에는 2개의 티켓 item이 생성됩니다.
KOPIS 전송 실패 내역을 확인할 수 있나요?
가능합니다. 플러그인은 전송 요청, 응답 코드, 응답 body, 오류 메시지, 전송 상태를 별도 로그 테이블에 저장하고 WooCommerce 관리자 메뉴에서 확인할 수 있게 합니다.
일별 집계 데이터도 전송할 수 있나요?
가능합니다. bta-kopis-woocommerce는 특정 결제일의 WooCommerce 주문을 모아 ticketList 결제 데이터와 dailysumList 일별 집계 데이터를 전송하는 구조를 포함합니다.
참고
- KOPIS 공연예술통합전산망 공식 사이트: https://www.kopis.or.kr/
- 플러그인 위치:
wp-content/plugins/bta-kopis-woocommerce - 플러그인명:
BTA KOPIS WooCommerce Sync - 플러그인 슬러그:
bta-kopis-woocommerce