오너클랜 API 센터
로그인 | 회원가입

문의 API

단일 1:1 문의 게시판 글 조회 API

단일 1:1 문의 게시판 글을 조회합니다. 특정 글의 key를 통해 해당 글의 상세 정보를 조회할 수 있습니다.

파라미터

  • key (String): 정보를 조회할 1:1 문의 게시판 글의 key입니다.

반환 데이터

1:1 문의 게시판 글의 정보를 반환하며, 다음 정보를 포함합니다:

  • key (String): 1:1 문의 게시판 글의 key입니다.
  • id (String): 1:1 문의 게시판 글의 API ID입니다.
  • type (SellerQnaType): 문의글 타입입니다.
  • isSecret (Boolean): 비밀글 여부입니다.
  • title (String): 글 제목입니다.
  • content (String): 글 내용입니다.
  • files ([String]): 첨부파일의 URL 리스트입니다.
  • relatedItemKey (String): 연관 상품의 상품코드입니다.
  • relatedOrderKey (String): 연관 주문의 주문코드입니다.
  • createdAt (Timestamp): 등록 시각입니다.
  • recipientName (String): 주문자의 이름입니다.
  • comments ([String]): 달린 댓글 목록입니다.
  • subArticles ([SellerQnaArticle]): 하위 글 목록입니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query SellerQnaArticle($key: ID!) { 
            sellerQnaArticle(key: $key) { 
                key 
                id 
                type 
                isSecret 
                title 
                content 
                files 
                relatedItemKey 
                relatedOrderKey 
                recipientName 
                createdAt 
                comments 
                subArticles { 
                    key 
                    id 
                    type 
                    isSecret 
                    title 
                    content 
                    files 
                    relatedItemKey 
                    relatedOrderKey 
                    recipientName 
                    createdAt 
                    comments 
                } 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query,
            variables: {
                key: "1000000"
            }
        }));
            

복수의 1:1 문의 게시판 글 조회 API

복수의 1:1 문의 게시판 글 목록을 조회합니다. 검색 조건을 설정한 경우, 조건에 맞는 게시판 글만 조회됩니다.

파라미터

Pagination 관련 파라미터:

  • after (String): cursor 값 이후의 글을 불러옵니다.
  • before (String): cursor 값 이전의 글을 불러옵니다.
  • first (Int): 처음 몇 개의 글을 불러올지를 나타냅니다.
  • last (Int): 마지막 몇 개의 글을 불러올지를 나타냅니다.

Search 관련 파라미터:

  • search ([SellerQnaSearch]): 텍스트 검색 조건입니다.
  • type (SellerQnaType): 문의글 타입으로 필터링합니다.
  • receiverName (String): 주문자 이름으로 검색합니다.
  • dateFrom (Timestamp): 글이 등록된 날짜 필터링입니다.
  • dateTo (Timestamp): 글이 등록된 날짜 필터링입니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query AllSellerQnaArticles { 
            allSellerQnaArticles { 
                pageInfo { 
                    hasNextPage 
                    hasPreviousPage 
                    startCursor 
                    endCursor 
                } 
                edges { 
                    cursor 
                    node { 
                        key 
                        id 
                        type 
                        isSecret 
                        title 
                        content 
                        files 
                        relatedItemKey 
                        relatedOrderKey 
                        recipientName 
                        createdAt 
                        comments 
                        subArticles { 
                            key 
                            id 
                            type 
                            isSecret 
                            title 
                            content 
                            files 
                            relatedItemKey 
                            relatedOrderKey 
                            recipientName 
                            createdAt 
                            comments 
                        } 
                    } 
                } 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query
        }));
            

단일 긴급 메시지 조회 API

단일 긴급 메시지를 조회합니다. 특정 key로 조회할 수 있습니다.

파라미터

  • key (String): 조회할 긴급 메시지의 key입니다.

반환 데이터

  • key (String): 긴급 메시지의 key입니다.
  • id (String): 긴급 메시지의 API ID입니다.
  • createdAt (Timestamp): 등록 시각입니다.
  • type (EmergencyMessageType): 메시지 타입입니다.
  • itemKey (String): 관련 상품의 상품코드입니다.
  • content (String): 메시지 내용입니다.
  • url (String): 관련 URL입니다.
  • penalty (Int): 페널티 점수입니다.
  • status (EmergencyMessageStatus): 상태 정보입니다.
  • repliedAt (Timestamp): 답변 시각입니다.
  • reply (String): 답변 내용입니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query EmergencyMessage($key: ID!) { 
            emergencyMessage(key: $key) { 
                key 
                id 
                createdAt 
                type 
                itemKey 
                content 
                url 
                penalty 
                status 
                repliedAt 
                reply 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query,
            variables: {
                key: "12345"
            }
        }));
            

복수의 긴급 메시지 조회 API

복수의 긴급 메시지 목록을 조회합니다. 검색 조건을 설정하면 해당 조건에 맞는 긴급 메시지들만 조회됩니다.

파라미터

Pagination 관련 파라미터:

  • after (String): cursor 값 이후의 긴급 메시지들을 불러옵니다.
  • before (String): cursor 값 이전의 긴급 메시지들을 불러옵니다.
  • first (Int): 처음 몇 개의 긴급 메시지를 불러올지를 나타냅니다.
  • last (Int): 마지막 몇 개의 긴급 메시지를 불러올지를 나타냅니다.

Search 관련 파라미터:

  • status (EmergencyMessageStatus): 상태로 필터링합니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query AllEmergencyMessages { 
            allEmergencyMessages { 
                pageInfo { 
                    hasNextPage 
                    hasPreviousPage 
                    startCursor 
                    endCursor 
                } 
                edges { 
                    cursor 
                    node { 
                        key 
                        id 
                        createdAt 
                        type 
                        itemKey 
                        content 
                        url 
                        penalty 
                        status 
                        repliedAt 
                        reply 
                    } 
                } 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query
        }));
            

단일 알림 메모 조회 API

단일 알림 메모를 조회합니다. 특정 key로 조회할 수 있습니다.

파라미터

  • key (String): 조회할 알림 메모의 key입니다.

반환 데이터

  • key (String): 알림 메모의 key입니다.
  • id (String): 알림 메모의 API ID입니다.
  • createdAt (Timestamp): 등록 시각입니다.
  • type (NoticeType): 알림 메모 타입입니다.
  • content (String): 메모 내용입니다.
  • relatedItemKeys ([String]): 연관 상품 코드 리스트입니다.
  • relatedOrderKeys ([String]): 연관 주문 코드 리스트입니다.
  • checkedAt (Timestamp): 확인 시각입니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query Notice($key: ID!) { 
            notice(key: $key) { 
                key 
                id 
                createdAt 
                type 
                content 
                relatedItemKeys 
                relatedOrderKeys 
                checkedAt 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query,
            variables: {
                key: "54321"
            }
        }));
            

복수의 알림 메모 조회 API

복수의 알림 메모 목록을 조회합니다. 검색 조건을 설정한 경우 해당 조건에 맞는 메모들만 조회됩니다.

파라미터

Pagination 관련 파라미터:

  • after (String): cursor 값 이후의 알림 메모들을 불러옵니다.
  • before (String): cursor 값 이전의 알림 메모들을 불러옵니다.
  • first (Int): 처음 몇 개의 알림 메모를 불러올지를 나타냅니다.
  • last (Int): 마지막 몇 개의 알림 메모를 불러올지를 나타냅니다.

Search 관련 파라미터:

  • type (NoticeType): 상태로 필터링합니다.
  • checked (Boolean): 확인 여부로 필터링합니다.
        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행할 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `query AllNotices { 
            allNotices { 
                pageInfo { 
                    hasNextPage 
                    hasPreviousPage 
                    startCursor 
                    endCursor 
                } 
                edges { 
                    cursor 
                    node { 
                        key 
                        id 
                        createdAt 
                        type 
                        content 
                        relatedItemKeys 
                        relatedOrderKeys 
                        checkedAt 
                    } 
                } 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query
        }));
            

판매사 1:1 문의 글 작성 API

판매사 1:1 문의 게시판에 글을 작성합니다.

파라미터

  • input (SellerQnaArticleInput): 입력할 데이터입니다.

입력 데이터

  • type (SellerQnaType): 문의 글 타입입니다. 가능한 값은 SellerQnaType을 참고하십시오.
  • title (String): 글 제목입니다.
  • content (String): 문의 내용입니다.
  • files ([Upload]): 첨부파일 리스트입니다. 사용 방법은 아래 예제(example2 - 파일 업로드)를 참고하십시오.
  • relatedItemKey (String): 연관 상품이 있는 경우 상품의 key입니다.
  • relatedOrderKey (String): 연관 주문이 있는 경우 주문의 key입니다.

반환 데이터

새로 생성된 문의 글의 정보를 반환합니다.

        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행해볼 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `mutation CreateSellerQnaArticle($input: SellerQnaArticleInput!) { 
            createSellerQnaArticle(input: $input) { 
                id 
                key 
                type 
                isSecret 
                title 
                content 
                files 
                relatedItemKey 
                relatedOrderKey 
                createdAt 
                recipientName 
                subArticles { 
                    id 
                    key 
                    type 
                    isSecret 
                    title 
                    content 
                    files 
                    relatedItemKey 
                    relatedOrderKey 
                    createdAt 
                    recipientName 
                    comments 
                } 
                parentArticles { 
                    id 
                    key 
                    type 
                    isSecret 
                    title 
                    content 
                    files 
                    relatedItemKey 
                    relatedOrderKey 
                    createdAt 
                    recipientName 
                    comments 
                } 
                comments 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query,
            variables: {
                input: {
                    type: "item",
                    title: "제목",
                    content: "문의 내용",
                    files: [null],  // 첨부파일이 없을 경우 null로 설정
                    relatedItemKey: "W999999"
                }
            }
        }));
            

주문 상품 반품/교환 신청 API

주문한 상품에 대해 반품 또는 교환 신청을 처리합니다.

파라미터

  • key (String): 반품/교환을 요청할 주문의 KEY입니다.
  • input (RefundExchangeOrderInput): 입력할 데이터입니다.

입력 데이터

  • productStatus (ProductStatusType): 상품의 상태입니다. ProductStatusType 값을 참고하십시오.
  • reason (RefundOrExchangeReasonType): 반품 또는 교환 사유입니다. RefundOrExchangeReasonType 값을 참고하십시오.
  • detailedReason (DetailedReasonInput): 반품 또는 교환의 상세 사유입니다.
  • shippingFeePayment (ShippingFeePaymentType): 반품 배송비 부과 타입입니다.
  • refundAddress (RefundAddressInput): 반품 주소입니다.
  • refundTrackingInfo (RefundTrackingInfoInput): 반품 택배 정보입니다.
  • content (String): 공급사에 전달할 내용입니다.
  • files ([Upload]): 첨부파일 리스트입니다.

반환 데이터

업데이트된 주문 정보를 반환합니다. 반환되는 데이터는 order 쿼리의 결과와 동일합니다.

        /**
        * 아래 예제는 인터넷 브라우저의 콘솔 창에서 실행해볼 수 있습니다.
        */
        
        var client = new XMLHttpRequest();
        var query = `mutation RequestRefundOrExchange($key: ID!, $input: RefundExchangeOrderInput!) { 
            requestRefundOrExchange(key: $key, input: $input) { 
                key 
                id 
                products { 
                    quantity 
                    price 
                    shippingType 
                    itemKey 
                    productName 
                    itemOptionInfo { 
                        optionAttributes { 
                            name 
                            value 
                        } 
                        price 
                    } 
                    trackingNumber 
                    shippingCompanyCode 
                    shippingCompanyName 
                    shippedDate 
                    additionalAttributes { 
                        key 
                        value 
                    } 
                    taxFree 
                } 
                status 
                shippingInfo { 
                    sender { 
                        name 
                        phoneNumber 
                        email 
                    } 
                    recipient { 
                        name 
                        phoneNumber 
                        destinationAddress { 
                            addr1 
                            addr2 
                            postalCode 
                        } 
                    } 
                    shippingFee 
                } 
                createdAt 
                updatedAt 
                note 
                ordererNote 
                sellerNote 
                isBeingMediated 
                adjustments { 
                    reason 
                    price 
                    taxFree 
                } 
                transactions { 
                    key 
                    id 
                    kind 
                    status 
                    amount { 
                        currency 
                        value 
                    } 
                    createdAt 
                    updatedAt 
                    closedAt 
                    note 
                } 
                refundDetails { 
                    status 
                    productStatus 
                    reason 
                    detailedReason { 
                        refundType 
                        detail 
                        explanation 
                    } 
                    shippingFeePayment 
                    returnCriteria 
                    refundAddress { 
                        refundAddressType 
                        address 
                    } 
                    refundTrackingInfo { 
                        shippingCompanyCode 
                        trackingNumber 
                    } 
                    content 
                } 
            } 
        }`;
        
        client.open("POST", "https://api-sandbox.ownerclan.com/v1/graphql", true);
        client.setRequestHeader("Content-Type", "application/json");
        client.setRequestHeader("Authorization", "Bearer YOUR_TOKEN");
        
        client.onreadystatechange = function () {
            if (client.readyState === 4 && client.status === 200) {
                console.log(client.responseText);
            }
        };
        
        client.send(JSON.stringify({
            query: query,
            variables: {
                key: "2020000000000000000A",
                input: {
                    productStatus: "Unopened",
                    reason: "DamagedItem",
                    detailedReason: {
                        refundType: "Reship",
                        detail: "상세 내용.",
                        explanation: "기타 정보."
                    },
                    shippingFeePayment: "CollectedOnDelivery",
                    refundAddress: {
                        refundAddressType: "ManuallyProvided",
                        address: "서울특별시"
                    },
                    refundTrackingInfo: {
                        shippingCompanyCode: "1",
                        trackingNumber: "12345678910"
                    },
                    content: "공급사에 전달할 내용."
                }
            }
        }));