SDK 사용 가이드
SDK 사용 가이드
스크립트에서 SDK를 사용할 수 있도록 고도몰 모든 상점에는 아래의 스크립트가 설치되어 있습니다.
<script src="//obs-address/godomall-sdk.js" onload="GodomallSDK.setup()">
</script>
SDK 사용 시에는 위 스크립트가 완전히 로드된 이후에 실행될 수 있도록 반드시 다음과 같이 defer 처리를 해주셔야 합니다. defer 처리를 하지 않는 경우 오류가 발생할 수 있습니다.
<script defer>
var mySDK = GodomallSDK.init('SystemKey');
mySDK.getMemberProfile(function(err, res) {
});
</script>
GodomallSDK.init('시스템키') 스크립트를 삽입할 때마다 새로운 객체가 생성됩니다.
결과정보
SDK 실행 시 결과는 아래와 같이 전달됩니다.
/**
* 조회 및 처리 실패 / err
* return {}
*/
{
name: '오류 명칭',
kind: '오류 종류',
status: 'HTTP 상태 코드',
message: '오류 메시지',
data: {전체 오류 정보}
}
/**
* 조회 및 처리 성공 / res
* return {} or []
*/
// 사용 메소드에 따라 {}객체, []배열로 전달
메소드 구조
기본구조에서 추가 파라미터가 없을 경우 version = '1.0' 으로 고정됩니다.
// 기본 구조
mySDK.[메소드](callback)
// 추가 파리미터가 있을 경우의 구조
mySDK.[메소드]({ 추가 파라미터 }, callback)
SDK 목록
사용 가능한 SDK는 다음과 같습니다.
getMemberSummary
회원 요약 정보
getMemberProfile
회원 프로필
getMallInfo
쇼핑몰 식별 정보
getMallLocation
접속 페이지 정보
getGoods
상품 번호로 상품 상세 정보 조회
getCart
장바구니 조회
getGoodsSearch
상품 검색
getOrders
주문 상세 조회
SDK 목록 상세
회원 요약 정보
제공 데이터
totalCartGoodsCount
number
장바구니 총 개수 (상품 기준)
totalCartCount
number
장바구니 총 개수 (상품 옵션 기준)
totalOrderAmount
number
총 주문 금액
totalOrderGoodsCount
number
총 주문 상품 개수
totalPaymentAmount
number
총 결제 금액
usableCouponCount
number
사용 가능한 쿠폰 개수
totalCartQuantity
number
장바구니 수량 합계
totalOrderCount
number
총 주문 수
totalOrderGoodsQuantity
number
주문 상품 수량 합계
사용 예시
/*
새로 생성되는 객체의 변수명은 반드시 systemKey를 발급받은 앱의 일련번호를 기재해 주셔야 합니다.
*/
<script defer>
var 변수명_SDK = GodomallSDK.init('systemKey');
변수명_SDK.getMemberProfile(function(err, res) {
if (err) {
console.log(err.name, err.kind, err.data, err.status, err.message);
} else {
console.log(res);
}
});
변수명_SDK.getMemberSummary(function(err, res) {
if (res) {
// 필요한 코드 작성
}
});
</script>
회원 프로필
제공 데이터
sno
number
회원번호
id
string
회원 아이디
name
string
성명
string
이메일
cellPhone
string
휴대전화번호
mileage
number
적립금
deposit
number
예치금
grade
array
회원 등급 정보
sno
number
회원 등급 번호
name
string
회원 등급명
age
number
만 나이
gender
string
성별 - MALE : 남성 - FEMALE : 여성 - UNKNOWN : 모름
zipcode
string
우편번호
address
string
주소
addressDetail
string
상세주소
adultFlag
string
성인인증여부 - Y : 인증완료 - N : 미인증
mailingFlag
string
이메일 수신여부 - Y : 수신허용 - N : 수신거부
smsFlag
string
SMS 수신여부 - Y : 수신허용 - N : 수신거부
signupDateTime
string
가입 일시
사용 예시
/*
새로 생성되는 객체의 변수명은 반드시 systemKey를 발급받은 앱의 일련번호를 기재해 주셔야 합니다.
*/
<script defer>
var 변수명_SDK = GodomallSDK.init('systemKey');
변수명_SDK.getMemberProfile(function(err, res) {
if (err) {
오류 핸들링이 필요하다면 코드 작성
} else if (res) {
// 필요한 코드 작성
}
});
</script>
쇼핑몰 식별 정보
제공 데이터
mallDomain
string
쇼핑몰 도메인
mallNm
string
쇼핑몰 명
mallNmEng
string
쇼핑몰 영문 명
mallUsageStatus
array
몰 사용 여부 - Y : 사용 - N : 미사용
kr
string
국문몰 사용 여부 - Y : 사용 - N : 미사용
us
string
영문몰 사용 여부 - Y : 사용 - N : 미사용
cn
string
중문몰 사용 여부 - Y : 사용 - N : 미사용
jp
string
일문몰 사용 여부 - Y : 사용 - N : 미사용
※ 튜닝 상점의 경우 쇼핑몰명 (mallNm), 쇼핑몰영문명 (mallNmEng), 해외몰 사용 여부 (mallUsageStatus)는 응답되지 않을 수 있습니다.
사용 예시
<script defer>
var 변수명_SDK = GodomallSDK.init('systemKey');
변수명_SDK.getMallInfo(function(err, res) {
if (res) {
// 필요한 코드 작성
}
});
</script>
접속 페이지 정보
제공 데이터
path
string
현재 경로 (기본 도메인 제외) ex. /member/join_method.php
pathSegments
array
현재 경로에 대한 배열 정보 ex. goods, member,join_method..
사용 예시
<script defer>
var 변수명_SDK = GodomallSDK.init('systemKey');
변수명_SDK.getMallLocation(function(err, res) {
if (res) {
// 필요한 코드 작성
}
});
</script>
상품 번호로 상품 상세 정보 조회
요청 파라메터
goodsNo
string
상품 번호
제공 데이터
sno
number
상품 번호
name
string
상품명
images
array
상품 이미지 목록
kind
string
상품 이미지 종류
sortNo
number
상품 이미지 순번
url
string
상품 이미지 url
status
array
상품 상태
sellFlag
string
판매 상태 - Y : 판매중 - N : 판매 중지
soldOutFlag
string
품절 상태 - Y : 판매중 - N : 판매 중지
options
array
상품 옵션
sno
number
상품 옵션 번호
option1
array
옵션 1
name
string
옵션 제목
value
string
옵션 값
option2
array
옵션 2
option3
array
옵션 3
option4
array
옵션 4
option5
array
옵션 5
originPrice
number
상품 옵션 가격
discountAmount
number
타임세일 할인 가격
stockCount
number
옵션 재고 수
memo
string
옵션 메모
textOptions
array
텍스트 상품 옵션
name
string
옵션 제목
price
number
옵션 가격
requiredFlag
string
옵션 필수 여부 - Y : 사용 - N : 미사용
addGoods
array
추가 상품
title
string
추가 상품 제목
requiredFlag
string
추가 상품 필수 여부 - Y : 필수 - N : 미필수
items
array
추가 상품 정보
sno
number
추가 상품 번호
name
string
추가 상품 명
price
number
추가 상품 가격
registerDateTime
string
등록 일시
사용 예시
<script defer>
var 변수명_SDK = GodomallSDK.init('systemKey');
변수명_SDK.getGoods(
{
goodsNo: 1000
},
function(err, res) {
if (res) {
// 필요한 코드 작성
}
}
});
</script>
장바구니 조회
제공 데이터
totalAmount
number
상품 옵션 합산 가격
(상품+옵션+텍스트옵션+추가상품)-(상품+회원+쿠폰)
shipping
array
배송비 정보
amount
number
배송비 금액
chargeType
string
배송비 지불 방식
sno
number
장바구니 번호
addGoods
array
추가 상품 정보
sno
number
추가 상품 번호
price
number
추가 상품 가격 (개당)
count
number
추가 상품 개수
registerDateTime
string
등록 일자
goods
array
상품 정보
sno
number
상품 번호
textOptions
array
텍스트 옵션
sno
number
텍스트 옵션 번호
price
number
텍스트 옵션 가격
title
string
텍스트 옵션 제목
value
string
텍스트 옵션 값
count
number
상품 개수
name
string
상품명
option
array
상품 옵션 정보
sno
number
상품 옵션 번호
price
number
옵션 가격
option 1~5
array
옵션 (1~5)
title
string
옵션 제목
value
string
옵션값
discountAmount
number
옵션 할인된 가격
benefit
array
구매혜택 정보
sale
array
구매혜택 - 할인
coupon
number
구매혜택 - 쿠폰 할인
member
number
구매 혜택 - 회원 등급 할인
goods
number
구매 혜택 - 상품 할인
mileage
array
구매 혜택 - 마일리지
coupon
number
구매 혜택 - 쿠폰 마일리지
member
number
구매 혜택 - 회원 등급 마일리지
goods
number
구매 혜택 - 상품 마일리지
사용 예시
<script defer>
mySDK.getCarts(function(err, res) {
console.log(err, res)
});
</script>
샘플 구조
[
{
"sno": 1,
"goods": {
"sno": 1000004033,
"name": "쿠폰사용가능범위_카테고리B",
"count": 1,
"option": {
"sno": 7462,
"option1": {
"title": "타이틀1",
"value": "옵션값1"
},
"option2": {
"title": "타이틀1",
"value": "옵션값1"
},
"option3": {
"title": "타이틀1",
"value": "옵션값1"
},
"option4": {
"title": "타이틀1",
"value": "옵션값1"
},
"option5": {
"title": "타이틀1",
"value": "옵션값1"
},
"price": 1000,
"discountAmount": 0
},
"textOptions": [
{
"sno": 10,
"price": 1000,
"title": "텍스트 옵션 제목",
"value": "텍스트 옵션 값"
}
]
},
"addGoods": [
{
"sno": 1000004033,
"count": 1,
"price": 1000
}
],
"benefit": {
"sale": {
"goods": 0,
"member": 0,
"coupon": 0
},
"mileage": {
"goods": 0,
"member": 0,
"coupon": 0
}
},
"totalAmount": 2000,
"shipping": {
"amount": 2500,
"chargeType": "PREPAID"
},
"registerDateTime": "2024-08-28 14:59:04"
}
]
상품 검색
요청 파라메터
searchType
string
검색 타입 GOODS_NO: 상품 번호 GOODS_NAME: 상품명 GOODS_CODE: 자체 상품 코드 MAKER_NAME: 제조사 ORIGIN_NAME: 원산지 SEARCH_WORD: 검색 키워드
keyword
string
검색 키워
page
number
베이지 번호
pageSize
number
페이지당 항목 수
sort
string
정렬 기준
제공 데이터
contents
array
조회 결과
sno
number
상품 번호
price
number
상품 가격
registerDateTime
string
등록 일시
name
string
상품 명
discountAmount
number
할인 금액
totalCount
number
전체 조회 건수
사용 예시
<script defer>
mySDK.getGoodsSearch({
searchType: 'GOODS_NAME',
keyword: '상품명',
page: 1,
pageSize: 100,
sort: '+GOODS_NO,-REGISTER_DATE'
}, function(err, res) {
console.log(err, res)
});
</script>
# searchType : GOODS_NO, GOODS_NAME, GOODS_CODE, MAKER_NAME, ORIGIN_NAME, SEARCH_WORD
# sort : +GOODS_NAME,+GOODS_NO,+REGISTER_DATE,-GOODS_NAME,-GOODS_NO,-REGISTER_DATE
('+' : 오름차순, '-' : 내림차순)
주문 상세 조회
제공 데이터
orderDateTime
string
주문 날짜
receiver
array
배송지 목록
zipcode
string
수령인 우편번호
addressDetail
string
수령인 상세 주소
address
string
수령인 주소
sno
number
배송지 일련 번호
name
string
수령인 이름
message
string
배송 메시지
cellPhone
string
수령인 휴대폰 번호
method
string
결제 방법 EB: 에스크로 계좌이체, EC: 에스크로 신용카드, EV: 에스크로 가상계좌, FB: 간편결제 계좌이체, FC: 간편결제 신용카드, FH: 간편결제 휴대폰, FP: 간편결제 포인트, FV: 간편결제 가상계좌, FA: 간편결제 무통장입금, GB: 무통장 입금, PB: 계좌이체, PC: 신용카드, PH: 휴대폰, PV: 가상계좌, PK: 간편결제 카카오페이, PL: 간편결제 후불결제, PN: 간편결제 네이버페이, GD: 예치금, GM: 마일리지, GZ: 전액할인, GR: 기타
settleAmount
number
실 결제 금액
channel
string
주문 채널 SHOP: 쇼핑몰, NAVERPAY: 네이버페이, PAYCO: 페이코, ETC: 기타
orderGoods
array
주문 상품 목록
totalGoodsPrice
number
총 상품 가격
quantity
number
상품 수량
sno
number
주문 상품 번호
receiverSno
number
배송지 일련 번호
goods
array
상품 정보
sno
number
상품 번호
textOptions
array
상품 텍스트 옵션 목록
price
number
텍스트 옵션 가격
title
string
텍스트 옵션 제목
value
string
텍스트 옵션 값
name
string
상품명
option
array
상품 옵션
price
number
상품 가격
option 1~5
array
옵션 (1~5)
title
string
텍스트 옵션 값
value
string
상품명
optionPrice
number
옵션 가격
type
string
상품 유형 GOODS: 상품, ADD_GOODS: 추가상품
status
string
상품 상태 ORDER: 입금대기, PAYMENT: 결제완료, GOODS_READY: 상품준비중, GOODS_PLACEMENT: 구매발주, GOODS_RECEIVED: 상품입고, GOODS_SHIPPED: 상품출고, DELIVERY: 배송중, DELIVERY_COMPLETE: 배송완료, SETTLE: 구매확정, BACK_REQUEST: 반품접수, BACK_IN_TRANSIT: 반송중, BACK_ON_HOLD: 반품보류, BACK_COMPLETE: 반품회수완료, REFUND_REQUEST: 환불접수, REFUND_ON_HOLD: 환불보류, REFUND_COMPLETE: 환불완료, EXCHANGE_REQUEST: 교환접수, EXCHANGE_IN_TRANSIT: 반송중, EXCHANGE_REDELIVERY: 재배송중, EXCHANGE_ON_HOLD: 교환보류, EXCHANGE_COMPLETE: 교환완료, PAYMENT_ATTEMPT: 결제시도, PAYMENT_CUSTOMER_ABORTED: 고객결제중단, PAYMENT_FAILED: 결제실패, CANCEL_AUTO: 자동취소, CANCEL_OUT_OF_STOCK: 품절취소, CANCEL_ADMIN: 관리자취소, CANCEL_CUSTOMER_REQUEST: 고객취소요청, ADDITIONAL_PAYMENT_PENDING: 추가입금대기, ADDITIONAL_PAYMENT_COMPLETE: 추가결제완료, ADDITIONAL_DELIVERY_IN_PROGRESS: 추가배송중, ADDITIONAL_DELIVERY_COMPLETE: 추가배송완료, ADDITIONAL_EXCHANGE_COMPLETE: 교환추가완료
benefit
array
sale
array
할인
coupon
number
쿠폰 할인 금액
member
number
회원 할인 금액
deposit
number
예치금 할인 금액
goods
number
상품 할인 금액
mileage
number
마일리지 할인 금액
apiOrderNo
string
API 주문 번호
sno
string
주문 번호
orderer
array
zipcode
string
주문자 우편번호
addressDetail
string
주문자 상세주소
address
string
주문자 주소
name
string
주문자 이름
string
주문자 이메일
cellPhone
string
주문자 휴대폰 번호
shippingAmount
number
총 배송비
paymentDateTime
string
결제 날짜
gifts
array
사은품 목록
quantity
number
사은품 수량
name
string
사은품 이름
사용 예시
<script defer>
mySDK.getOrders({
orderNo: 2505121522000309
}, function(err, res) {
console.log(err, res)
});
</script>
샘플 구조
{
"sno": "123456789",
"apiOrderNo": "API123456789",
"channel": "SHOP",
"method": "GB",
"orderGoods": [
{
"sno": 1,
"type": "GOODS",
"goods": {
"sno": 101,
"name": "테스트 상품",
"option": {
"option1": {
"title": "색상",
"value": "빨강"
},
"option2": {
"title": "색상",
"value": "빨강"
},
"option3": {
"title": "색상",
"value": "빨강"
},
"option4": {
"title": "색상",
"value": "빨강"
},
"option5": {
"title": "색상",
"value": "빨강"
},
"price": 1000,
"optionPrice": 200
},
"textOptions": [
{
"title": "텍스트 옵션",
"value": "옵션 값",
"price": 500
}
]
},
"quantity": 2,
"totalGoodsPrice": 2000,
"status": "DELIVERY_COMPLETE",
"receiverSno": 10
}
],
"gifts": [
{
"name": "사은품",
"quantity": 1
}
],
"benefit": {
"sale": {
"goods": 100,
"member": 50,
"coupon": 30,
"mileage": 20,
"deposit": 10
}
},
"orderer": {
"name": "홍길동",
"zipcode": "12345",
"address": "서울특별시 강남구 테헤란로",
"addressDetail": "101호",
"cellPhone": "010-1234-5678",
"email": "[email protected]"
},
"receiver": [
{
"sno": 10,
"name": "김철수",
"zipcode": "54321",
"address": "서울특별시 강남구 역삼로",
"addressDetail": "202호",
"cellPhone": "010-8765-4321",
"message": "부재 시 경비실에 맡겨주세요."
}
],
"shippingAmount": 3000,
"settleAmount": 5000,
"orderDateTime": "2025-03-16 12:00:00",
"paymentDateTime": "2025-03-16 12:05:00"
}
Last updated
Was this helpful?