How to Development
사례
새로운시장을개척하거나, 넘치는요구사항을수용하거나.
요구사항사례 트렌드에맞는기능 해외사이트에서다른고객의구매를알려주는기능을본적있으신가요? 다른고객의구매를알리는것만으로도쇼핑몰의매출이상승합니다. 이런기발한 App, 쉽게만들수있습니다. 구매상승률이높은마케팅기법 2.90% 2.30% 1.50% 0.40% 희소성타인구매마감임박추천 1,000 명의고객님이이상품을구매했습니다. < 출처 : 마케팅분석플랫폼큐빗 (Qubit) 의그로스해킹실험결과논문 > * 예시 : 다른고객구매알림
요구사항사례 상품상세화면튜닝하고싶습니다. < 출처 : 카페 24 디자인센터 > * 예시 : 부분디자인커스터마이즈사례 < 출처 : 네이버카페게시판 >
요구사항사례 새로운경험선사 브랜드를체험한고객은브랜드호감도가상승하며구매의사로연결됩니다. 창의력만있다면가상현실체험관도구축할수있습니다. 매장에서쇼핑하기 가상 (VR) 체험관 * 예시 : 구매자에게간접경험제공
요구사항사례 고객이로그인하면쿠폰과적립금을강조해서알려주고싶어요. 고객님, 지금사용가능한쿠폰이있습니다. 고객님, 지금사용가능한적립금이 1,000 원있습니다.
요구사항사례 주문취소, 재입고안내등고객알림을좀더다양한채널을사용해서보내주고싶어요. 주문취소요청이처리되었습니다 상품이재입고되었습니다.
요구사항사례 화이트데이에흰색옷만세일하고싶어요. [WHITE DAY 기획전 ] 화이트색상전품목초특가이벤트! 아래의상품들중 흰색 인품목만어마무시한할인이적용됩니다. # 한정수량 # 기회는오늘뿐! # 지금당장 # 서둘러 * 예시 : 할인적용상품모음이벤트페이지
요구사항사례 스크립트를직접삽입하기어려워요. * 예시 : 스크립트삽입기능사례
요구사항사례 여기저기퍼나르게하고싶어요. * 예시 : 다양한 SNS 공유하기링크버튼
요구사항사례 주문했던상품을다시사고싶어요. 매력적인니트 케쥬얼부츠 엣지있는셋트 매력적인니트 재주문 케쥬얼부츠
요구사항사례 장바구니에서선택한상품의금액합계만보고싶어요. 매력적인니트 깔끔한핏 선택한상품합계 : 29,800 원
요구사항사례 구매선호도가높은옵션을강조하고싶어요. 색상별구매선호도 40% 30% 20%
개발사례 개발자출신쇼핑몰대표님이직접개발 카페 24 API 사용, 2 일만에개발완료 쇼핑몰프론트에서실제서비스중 < 출처 : 비비드망고쇼핑몰프론트 >
개발사례 교육 App 을통한상품등록 쇼핑몰상품연동 관리자기능도맞춤형으로제작가능 교육상품에사용되는항목재정의후전용 App 개발 카페 24 교육센터강사대상으로실제서비스중
쇼핑몰사업자 카페 24 APP 서비스파트너사, 모두가성장하는온라인커머스생태계구축 카페 24 개발사
App 제작사전지식
배경지식 RESTful API GET PUT POST DELETE 그리고
카페 24 OPEN API Concept
API 제작원칙 1. 범용으로사용할수있는 API를만든다. 2. 업계표준을준수한다. 3. 국제화에맞춰서비스한다. 4. 성능을보장한다. 5. 하위호환성을유지한다. 6. 데이터는최대한원본으로제공한다. 7. 어떠한요구사항도보안보다우선시될수없다.
주요정책 - 1 범용화정책 여러곳에널리쓰이게하기위한정책 데이터는원본으로제공한다. 각 App 에서필요한형태로가공해서사용한다.
주요정책 - 2 제한정책 성능을보장하기위한호출수제한정책 조회결과최대건수제한 : 500 건, limit 조회결과시작위치최대값 : 10,000, offset 시간당호출건수제한 : 호출시 1 씩증가하며, 1 초에 1 씩감소함
카페 24 API 설계구조
API 목록 * 개발자센터 : API 제공목록확인
Scope 구분 설명 상품분류 (Categories) 상품분류 (Categories), 메인진열 (Mains), 기획전 (Projects) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 상품 (Product) 상품 (Products) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 판매분류 (Collection) 브랜드 (Brands), 자체분류 (Classification), 제조사 (Manufacturers), 트렌드 (Trends) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 공급사 (Supply) 공급사 (Suppliers), 공급사운영자 (Suppliers/Users) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 개인화정보 (Personal) 좋아요 (Likes), 관심상품 (Wishes), 장바구니 (Cart) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 주문 (Order) 주문 (Orders) 정보를조회 / 수정할수있습니다. 게시판 (Community) 리뷰톡톡 (Reviews), 덧글 (Comments) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 회원 (Customer) 회원 (Customers), 회원등급 (CustomerGroup), 적립금 (Mileage), 예치금 (Deposit), 배송주소록 (CustomerAddress) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 알림 (Notification) 메일 (Mail), 메시지 (Message) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 상점 (Store) 상점설정정보를조회 / 생성 / 수정 / 삭제할수있습니다. 프로모션 (Promotion) 고객혜택 (Benefits), 쿠폰 (Coupons), 시리얼쿠폰 (SerialCoupons) 정보를조회 / 생성 / 수정 / 삭제할수있습니다. 앱 (Application) 앱설치와관련된정보를조회 / 생성 / 수정 / 삭제할수있습니다. 매출통계 (SalesReport) 매출통계와관련된정보를조회 / 생성 / 수정 / 삭제할수있습니다.
API 로드맵 S 사카페 24 330 300 221 225 230 235 260 240 280 200 110 130 150 100 81 0 2018 년 1 분기 2018 년 2 분기 2018 년 3 분기 2018 년 4 분기 2019 년 2020 년
OAuth Flow 리소스소유자클라이언트리소스서버 권한위임절차 Web Brower 1 클라이언트실행 Code 발급요청 Redirect 2 로그인 & 권한동의 3 Code 발급 Redirect RESTful API 4 Access token 발급요청 Access token 발급 데이터사용 API 호출절차 5 API 호출 데이터응답 Access token 재발급요청 6 Access token 재발급
App 제작
App 제작순서 개발전준비사항 개발진행시 개발완료후 App 등록하기 Redirect URI 설정 Scope 설정 Key 확인 / 복사 OAuth Client 개발 Code 수신개발하기 Access_Token 발급받기 API 호출하기 Refresh_Token 발급받기 App 개발 App 테스트설치및테스트 App Store 판매정보등록 심사 ( 판매 ) 요청
시연
App 등록 OAuth 클라이언트개발 API 호출
App 등록 OAuth 클라이언트개발 API 호출 쇼핑몰운영자 App 카페 24 쇼핑몰 요청파라미터 응답데이터 권한위임절차 Web Brower App 실행 Code 발급요청 Redirect response_type=code client_id state redirect_uri scope 로그인 & 권한동의 code Code 발급 Redirect state RESTful API code Access token 발급요청 redirect_uri base64_encode({client_id}:{client_secret}) grant_type=authorization_code API 호출절차 데이터사용 Access token 발급 access_token expires_at refresh_token access_token API 호출 데이터응답 Access token 재발급요청 refresh_token base64_encode({client_id}:{client_secret}) grant_type=refresh_token access_token refresh_token Access token 재발급 expires_at
App 등록 OAuth 클라이언트개발 API 호출 1. Code 발급 API 호출에필요한 access token을발급받기위해 code를먼저발급받아야합니다. 웹브라우저를통해전달됩니다. 발급받은 code를이용해 access token으로교환가능합니다. code는발급후 1분이경과하면만료됩니다. access token 발급요청시사용된 code는재사용할수없습니다. 웹브라우저를통한 Request 형식 https://{mallid}.cafe24api.com/api/v2/oauth/authorize?response_type=code&client_id={client_id}&state={state}&redirect_uri={redirect_u ri}&scope={scope} Response 샘플 HTTP/1.1 302 Found Location: https://test.com/oauth/callback?code=l2kxlmxews9w5q08ybh1xh&state=xyz 유의사항 curl 통신으로는 code 를발급받을수없으니반드시웹브라우저를통해시도해주세요.
App 등록 OAuth 클라이언트개발 API 호출 2. Access token 발급 Code 를사용하여실제로 API 를호출시필요한 access Token 을받을수있습니다. Access token 발급에앞서 code 발급이반드시선행되어야합니다. Request 형식 POST https://{mallid}.cafe24api.com/api/v2/oauth/token Authorization: Basic {base64_encode({client_id}:{client-secret})} Request 샘플 curl -X POST \ 'https://{{mallid}}.cafe24api.com/api/v2/oauth/token' \ -H 'Authorization: Basic S3hWd2RCTjdPVk5uQjNGMHM3UzFNRDpFaEZ)ODDYak1KR21BZWV5MUliaXhI' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=authorization_code' \ -d 'code=xu2xg1rfdimvp2oe6fopre' \ -d 'redirect_uri=https://test.com/oauth/callback' Response 샘플 HTTP/1.1 200 OK { "access_token": "HVBVuQssCaUGHE5CBOiKRGC", "expires_at": "2018-01-08T19:15:21.981", "refresh_token": "euichi8vdfwwcjeiwthwcrg", "client_id": "KxVwdBN7OVtnbS3F0SCS1MD", "mall_id": "{{mallid}}", "user_id": "{{mallid}}", "scopes": [ "mall.read_product", "mall.read_store" ], "issued_at": "2018-01-08T17:15:22.083" } 유의사항 응답받은 access token 과 refresh token 은반드시저장해두고사용하셔야합니다. expires_at 은 access token 의만료시간이오니만료되기전에 refresh token 을사용해갱신하시기바랍니다.
App 등록 OAuth 클라이언트개발 API 호출 3. Access token 재발급 access token은수명이짧으며, 만료되면더이상사용할수없습니다. access token이만료되면 refresh token를사용하여 access token을재발급받을수있습니다. refresh token은 2주간유효하며, 만료되기전까지 access token과교환할수있습니다. access token과교환시 refresh token은새로발급되며, 기존 refresh token은더이상사용할수없습니다. Request 형식 POST https://{mallid}.cafe24api.com/api/v2/oauth/token Authorization: Basic {base64_encode({client_id}:{client-secret})} Request 샘플 curl -X POST \ 'https://{{mallid}}.cafe24api.com/api/v2/oauth/token' \ -H 'Authorization: Basic S3hWd2RCTjdPVk5uQjNGMHM3UzFNRDpFaEZnM0xYak1KR21BZWV5MUliaXhI' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=refresh_token' \ -d 'refresh_token=jtb2dldkjkodpc9kjhjmcuvlb1bx' Response 샘플 HTTP/1.1 200 OK { "access_token": "HVBVuQgOKICGHE5CBOiKRGC", "expires_at": "2018-01-08T19:15:21.981", "refresh_token": "euichi80bqoooeiwthwcrg", "client_id": "KxVwdBN7OVtSDCF0s7S1MD", "mall_id": "{{mallid}}", "user_id": "{{mallid}}", "scopes": [ "mall.read_product", "mall.read_store" ], "issued_at": "2018-01-08T17:15:22.083" } 유의사항 Access token 을재발급받으면 refresh token 도함께갱신됩니다. 즉, 마지막에발급받은 refresh token 하나만유효하며이전에발급받은 refresh token 은폐기처분됩니다.
App 등록 OAuth 클라이언트개발 API 호출 access token 을성공적으로획득했으므로이제 API 를사용할수있습니다. API Access Token 사용 Request 형식 GET endpoint API HTTP/1.1 Host: {{mallid}}.cafe24api.com Authorization: Bearer {access_token} Request 샘플 curl -X GET \ 'https://{{mallid}}.cafe24api.com/api/v2/admin/shops' \ -H 'Authorization: Bearer 4H8OBY4FDwSg7EcYDlcBKD'
Q & A
감사합니다.