문의 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: "공급사에 전달할 내용."
}
}
}));