지원 프로그램
home
슬기로운 데모생활
home

상점 카테고리 및 상품 정보 호출

생성일
2024/01/15 23:26
태그
상위 항목
하위 항목

1. 상점 카테고리 정보 호출

StovePC.FetchShopCategories 함수로 해당 게임에 대한 상점 카테고리 정보를 조회합니다.
StovePCResult result = StovePC.FetchShopCategories(); if(result == StovePCResult.NoError) { // 성공 처리 }
C++
복사
StovePC.FetchShopCategories 함수가 정상적으로 처리되면 OnFetchShopCategories 콜백이 호출됩니다.
콜백에 전달되는 StovePCShopCategory 구조체에는 상점 카테고리에 대한 메타정보가 포함되어 있습니다.
StovePCShopCategory.CategoryId : 카테고리 아이디
StovePCShopCategory.ParentCategoryId : 부모 카테고리 아이디
StovePCShopCategory.DisplayNo : 카테고리 순서
StovePCShopCategory.Name : 카테고리명
StovePCShopCategory.Depth : 카테고리 깊이 (최상위 카테고리의 경우 1)
private void OnFetchShopCategories(StovePCShopCategory[] categories) { StringBuilder sb = new StringBuilder(); sb.AppendLine("OnFetchShopCategories"); sb.AppendFormat(" - categories.Length : {0}" + Environment.NewLine, categories.Length); for (int i = 0; i < categories.Length; i++) { sb.AppendFormat(" - categories[{0}].CategoryId : {1}" + Environment.NewLine, i, categories[i].CategoryId); sb.AppendFormat(" - categories[{0}].ParentCategoryId : {1}" + Environment.NewLine, i, categories[i].ParentCategoryId); sb.AppendFormat(" - categories[{0}].DisplayNo : {1}" + Environment.NewLine, i, categories[i].DisplayNo.ToString()); sb.AppendFormat(" - categories[{0}].Name : {1}" + Environment.NewLine, i, categories[i].Name); sb.AppendFormat(" - categories[{0}].Depth : {1}", i, categories[i].Depth.ToString()); if (i < categories.Length - 1) sb.AppendFormat(Environment.NewLine); } Debug.Log(sb.ToString()); }
C++
복사
StovePC.FetchShopProducts 함수가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다. StovePCError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
ExternalError
Description
500
Internal Server Error ⇒ 스토브 담당자에게 문의 부탁드립니다.
999999
정의되지 않은 오류 ⇒ 스토브 담당자에게 문의 부탁드립니다.

2. 상품 정보 호출

StovePC.FetchProducts 함수로 해당 게임에 대한 상품 정보를 조회합니다.
// 입력 파라미터 // string categoryId : 스튜디오에서 등록한 카테고리 식별자(빈문자열 전달시 전체 카테고리 조회) // bool isRefresh : true 인 경우 Web API 조회, false 인 경우 PC SDK 의 Cache 조회 StovePCResult result = StovePC.FetchProducts("CATEGORY_ID", IS_REFRESH); if(result == StovePCResult.NoError) { // 성공 처리 }
C++
복사
StovePC.FetchProducts 함수가 정상적으로 처리되면 OnFetchProducts 콜백이 호출됩니다.
콜백에 전달되는 StovePCProduct 구조체에는 상품에 대한 메타정보가 포함되어 있습니다.
StovePCProduct.ProductId : 상품 아이디
StovePCProduct.GameItemId : 상품 아이디에 매핑되는 게임 내 아이템 아이디
StovePCProduct.Name : 상품명
StovePCProduct.Description : 상품 설명
StovePCProduct.Quantity : 개별 상품 수량
StovePCProduct.ProductTypeCode : 상품 유형 코드 (1: 패키지 게임 상품, 2: 인 게임 상품, 3: 패키지 아이템)
StovePCProduct.CategoryId : 카테고리 아이디
StovePCProduct.CurrencyCode : 통화 코드
StovePCProduct.Price : 상품 정가 (표기시에는 CurrencyCode 가 "KRW" 와 같으면 소수점 이하 생략 표기, 다르면 소수점 둘째자리까지 표기)
StovePCProduct.SalePrice : 상품 판매가 (표기시에는 CurrencyCode 가 "KRW" 와 같으면 소수점 이하 생략 표기, 다르면 소수점 둘째자리까지 표기)
StovePCProduct.IsDiscount : 할인 여부
StovePCProduct.DiscountType : 할인 유형(1: 정률, 2: 정액)
StovePCProduct.DiscountTypeValue : 할인값
StovePCProduct.DiscountBeginDate : 할인 시작 일자(UTC+0)
StovePCProduct.DiscountEndDate : 할인 종료 일자(UTC+0)
StovePCProduct.TotalQuantity : 상품 총 판매 수량
StovePCProduct.MemberQuantity : 회원 구매 수량
StovePCProduct.GuidQuantity : Guid 구매 수량(상품 구매 주체[CharacterNo/Guid/MemberNo]의 구매 수량)
StovePCProduct.ThumbnailUrl : 대표 상품 이미지
private void OnFetchProducts(StovePCProduct[] products) { StringBuilder sb = new StringBuilder(); sb.AppendLine("OnFetchProducts"); sb.AppendFormat(" - products.Length : {0}" + Environment.NewLine, products.Length); for (int i = 0; i < products.Length; i++) { sb.AppendFormat(" - products[{0}].ProductId : {1}" + Environment.NewLine, i, products[i].ProductId.ToString()); sb.AppendFormat(" - products[{0}].GameItemId : {1}" + Environment.NewLine, i, products[i].GameItemId); sb.AppendFormat(" - products[{0}].Name : {1}" + Environment.NewLine, i, products[i].Name); sb.AppendFormat(" - products[{0}].Discription : {1}" + Environment.NewLine, i, products[i].Discription); sb.AppendFormat(" - products[{0}].Quantity : {1}" + Environment.NewLine, i, products[i].Quantity.ToString()); sb.AppendFormat(" - products[{0}].ProductTypeCode : {1}" + Environment.NewLine, i, products[i].ProductTypeCode.ToString()); sb.AppendFormat(" - products[{0}].CategoryId : {1}" + Environment.NewLine, i, products[i].CategoryId); sb.AppendFormat(" - products[{0}].CurrencyCode : {1}" + Environment.NewLine, i, products[i].CurrencyCode); sb.AppendFormat(" - products[{0}].Price : {1}" + Environment.NewLine, i, products[i].CurrencyCode == "KRW" ? products[i].Price.ToString("F0" ) : products[i].Price.ToString("F2")); sb.AppendFormat(" - products[{0}].SalePrice : {1}" + Environment.NewLine, i, products[i].CurrencyCode == "KRW" ? products[i].SalePrice.ToString("F0" ) : products[i].SalePrice.ToString("F2")); sb.AppendFormat(" - products[{0}].IsDiscount : {1}" + Environment.NewLine, i, products[i].IsDiscount.ToString()); sb.AppendFormat(" - products[{0}].DiscountType : {1}" + Environment.NewLine, i, products[i].DiscountType.ToString()); sb.AppendFormat(" - products[{0}].DiscountTypeValue : {1}" + Environment.NewLine, i, products[i].DiscountTypeValue.ToString()); sb.AppendFormat(" - products[{0}].DiscountBeginDate : {1}" + Environment.NewLine, i, products[i].DiscountBeginDate.ToString()); sb.AppendFormat(" - products[{0}].DiscountEndDate : {1}" + Environment.NewLine, i, products[i].DiscountEndDate.ToString()); sb.AppendFormat(" - products[{0}].TotalQuantity : {1}" + Environment.NewLine, i, products[i].TotalQuantity.ToString()); sb.AppendFormat(" - products[{0}].MemberQuantity : {1}" + Environment.NewLine, i, products[i].MemberQuantity.ToString()); sb.AppendFormat(" - products[{0}].GuidQuantity : {1}" + Environment.NewLine, i, products[i].GuidQuantity.ToString()); sb.AppendFormat(" - products[{0}].ThumbnailUrl : {1}", i, products[i].ThumbnailUrl); if (i < products.Length - 1) sb. AppendFormat(Environment. NewLine); } Debug.Log(sb.ToString()); }
C++
복사
StovePC.FetchProducts 함수가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다.
StovePCError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
ExternalError
설명
500
Internal Server Error ⇒ 스토브 담당자에게 문의 부탁드립니다.
50001
상점이 존재하지 않거나, 점검 중 ⇒ 스튜디오 내 상점이 On/Off 상태인지 확인 부탁드립니다. 만약에 On 상태라면, 스토브 담당자에게 문의 부탁드립니다.
50002
상품이 존재 하지 않거나 판매 불가능 상품 ⇒ 스튜디오 내 상품의 등록 여부, On/Off 상태, 판매 기간을 확인 부탁드립니다. 만약 모두 정상이라면, 스토브 담당자에게 문의 부탁드립니다.
999999
정의되지 않은 오류 ⇒ 스토브 담당자에게 문의 부탁드립니다.