@sayren/store-sdk 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +887 -24
- package/dist/index.mjs +649 -378
- package/package.json +1 -1
- package/src/client.ts +42 -0
- package/src/index.ts +1 -0
- package/src/schemas/order.ts +15 -0
- package/src/schemas/product.ts +234 -7
- package/src/schemas/promotion.ts +3 -1
- package/src/schemas/saved-option-set.ts +168 -0
- package/src/schemas/storefront-hosting.ts +15 -0
- package/src/schemas/webhook-event.ts +19 -1
package/dist/index.d.mts
CHANGED
|
@@ -165,8 +165,8 @@ export declare const auditLogPageSchema: z.ZodObject<{
|
|
|
165
165
|
}, z.core.$strip>;
|
|
166
166
|
export type AuditLogPage = z.infer<typeof auditLogPageSchema>;
|
|
167
167
|
export declare const agentPolicyDecisionSchema: z.ZodEnum<{
|
|
168
|
-
DENIED: "DENIED";
|
|
169
168
|
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
169
|
+
DENIED: "DENIED";
|
|
170
170
|
ALLOW: "ALLOW";
|
|
171
171
|
}>;
|
|
172
172
|
export type AgentPolicyDecision = z.infer<typeof agentPolicyDecisionSchema>;
|
|
@@ -190,8 +190,8 @@ export type WritePreview = z.infer<typeof writePreviewSchema>;
|
|
|
190
190
|
export declare const writeDryRunResultSchema: z.ZodObject<{
|
|
191
191
|
dryRun: z.ZodLiteral<true>;
|
|
192
192
|
decision: z.ZodEnum<{
|
|
193
|
-
DENIED: "DENIED";
|
|
194
193
|
APPROVAL_REQUIRED: "APPROVAL_REQUIRED";
|
|
194
|
+
DENIED: "DENIED";
|
|
195
195
|
ALLOW: "ALLOW";
|
|
196
196
|
}>;
|
|
197
197
|
reason: z.ZodNullable<z.ZodString>;
|
|
@@ -921,8 +921,8 @@ export declare const oauthClientRegistrationRequestSchema: z.ZodObject<{
|
|
|
921
921
|
}>>;
|
|
922
922
|
redirect_uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
923
923
|
grant_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
924
|
-
refresh_token: "refresh_token";
|
|
925
924
|
authorization_code: "authorization_code";
|
|
925
|
+
refresh_token: "refresh_token";
|
|
926
926
|
client_credentials: "client_credentials";
|
|
927
927
|
"urn:ietf:params:oauth:grant-type:token-exchange": "urn:ietf:params:oauth:grant-type:token-exchange";
|
|
928
928
|
}>>>;
|
|
@@ -1171,11 +1171,11 @@ export type ApiTokenCreateRequest = z.infer<typeof apiTokenCreateRequestSchema>;
|
|
|
1171
1171
|
//#endregion
|
|
1172
1172
|
//#region src/schemas/category.d.ts
|
|
1173
1173
|
export declare const categoryProductSortSchema: z.ZodEnum<{
|
|
1174
|
+
NAME: "NAME";
|
|
1174
1175
|
RECENT: "RECENT";
|
|
1175
1176
|
POPULAR: "POPULAR";
|
|
1176
1177
|
PRICE_LOW: "PRICE_LOW";
|
|
1177
1178
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1178
|
-
NAME: "NAME";
|
|
1179
1179
|
}>;
|
|
1180
1180
|
export type CategoryProductSort = z.infer<typeof categoryProductSortSchema>;
|
|
1181
1181
|
export declare const categorySchema: z.ZodObject<{
|
|
@@ -1191,11 +1191,11 @@ export declare const categorySchema: z.ZodObject<{
|
|
|
1191
1191
|
showPc: z.ZodBoolean;
|
|
1192
1192
|
showMobile: z.ZodBoolean;
|
|
1193
1193
|
productSort: z.ZodEnum<{
|
|
1194
|
+
NAME: "NAME";
|
|
1194
1195
|
RECENT: "RECENT";
|
|
1195
1196
|
POPULAR: "POPULAR";
|
|
1196
1197
|
PRICE_LOW: "PRICE_LOW";
|
|
1197
1198
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1198
|
-
NAME: "NAME";
|
|
1199
1199
|
}>;
|
|
1200
1200
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1201
1201
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1221,11 +1221,11 @@ export declare const categoryWithPathSchema: z.ZodObject<{
|
|
|
1221
1221
|
showPc: z.ZodBoolean;
|
|
1222
1222
|
showMobile: z.ZodBoolean;
|
|
1223
1223
|
productSort: z.ZodEnum<{
|
|
1224
|
+
NAME: "NAME";
|
|
1224
1225
|
RECENT: "RECENT";
|
|
1225
1226
|
POPULAR: "POPULAR";
|
|
1226
1227
|
PRICE_LOW: "PRICE_LOW";
|
|
1227
1228
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1228
|
-
NAME: "NAME";
|
|
1229
1229
|
}>;
|
|
1230
1230
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1231
1231
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1246,11 +1246,11 @@ export declare const categoryWithPathSchema: z.ZodObject<{
|
|
|
1246
1246
|
showPc: z.ZodBoolean;
|
|
1247
1247
|
showMobile: z.ZodBoolean;
|
|
1248
1248
|
productSort: z.ZodEnum<{
|
|
1249
|
+
NAME: "NAME";
|
|
1249
1250
|
RECENT: "RECENT";
|
|
1250
1251
|
POPULAR: "POPULAR";
|
|
1251
1252
|
PRICE_LOW: "PRICE_LOW";
|
|
1252
1253
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1253
|
-
NAME: "NAME";
|
|
1254
1254
|
}>;
|
|
1255
1255
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1256
1256
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1274,11 +1274,11 @@ export declare const categorySearchResultSchema: z.ZodObject<{
|
|
|
1274
1274
|
showPc: z.ZodBoolean;
|
|
1275
1275
|
showMobile: z.ZodBoolean;
|
|
1276
1276
|
productSort: z.ZodEnum<{
|
|
1277
|
+
NAME: "NAME";
|
|
1277
1278
|
RECENT: "RECENT";
|
|
1278
1279
|
POPULAR: "POPULAR";
|
|
1279
1280
|
PRICE_LOW: "PRICE_LOW";
|
|
1280
1281
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1281
|
-
NAME: "NAME";
|
|
1282
1282
|
}>;
|
|
1283
1283
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1284
1284
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1299,11 +1299,11 @@ export declare const categorySearchResultSchema: z.ZodObject<{
|
|
|
1299
1299
|
showPc: z.ZodBoolean;
|
|
1300
1300
|
showMobile: z.ZodBoolean;
|
|
1301
1301
|
productSort: z.ZodEnum<{
|
|
1302
|
+
NAME: "NAME";
|
|
1302
1303
|
RECENT: "RECENT";
|
|
1303
1304
|
POPULAR: "POPULAR";
|
|
1304
1305
|
PRICE_LOW: "PRICE_LOW";
|
|
1305
1306
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1306
|
-
NAME: "NAME";
|
|
1307
1307
|
}>;
|
|
1308
1308
|
metaTitle: z.ZodNullable<z.ZodString>;
|
|
1309
1309
|
metaDescription: z.ZodNullable<z.ZodString>;
|
|
@@ -1335,11 +1335,11 @@ export declare const categoryCreateRequestSchema: z.ZodObject<{
|
|
|
1335
1335
|
showPc: z.ZodOptional<z.ZodBoolean>;
|
|
1336
1336
|
showMobile: z.ZodOptional<z.ZodBoolean>;
|
|
1337
1337
|
productSort: z.ZodOptional<z.ZodEnum<{
|
|
1338
|
+
NAME: "NAME";
|
|
1338
1339
|
RECENT: "RECENT";
|
|
1339
1340
|
POPULAR: "POPULAR";
|
|
1340
1341
|
PRICE_LOW: "PRICE_LOW";
|
|
1341
1342
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1342
|
-
NAME: "NAME";
|
|
1343
1343
|
}>>;
|
|
1344
1344
|
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1345
1345
|
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1354,11 +1354,11 @@ export declare const categoryPatchRequestSchema: z.ZodObject<{
|
|
|
1354
1354
|
showPc: z.ZodOptional<z.ZodBoolean>;
|
|
1355
1355
|
showMobile: z.ZodOptional<z.ZodBoolean>;
|
|
1356
1356
|
productSort: z.ZodOptional<z.ZodEnum<{
|
|
1357
|
+
NAME: "NAME";
|
|
1357
1358
|
RECENT: "RECENT";
|
|
1358
1359
|
POPULAR: "POPULAR";
|
|
1359
1360
|
PRICE_LOW: "PRICE_LOW";
|
|
1360
1361
|
PRICE_HIGH: "PRICE_HIGH";
|
|
1361
|
-
NAME: "NAME";
|
|
1362
1362
|
}>>;
|
|
1363
1363
|
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1364
1364
|
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -3238,6 +3238,16 @@ export declare const orderItemSchema: z.ZodObject<{
|
|
|
3238
3238
|
productName: z.ZodString;
|
|
3239
3239
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3240
3240
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3241
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3242
|
+
kind: z.ZodString;
|
|
3243
|
+
groupName: z.ZodString;
|
|
3244
|
+
valueName: z.ZodString;
|
|
3245
|
+
additionalPrice: z.ZodNumber;
|
|
3246
|
+
}, z.core.$strip>>>>;
|
|
3247
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3248
|
+
label: z.ZodString;
|
|
3249
|
+
value: z.ZodString;
|
|
3250
|
+
}, z.core.$strip>>>>;
|
|
3241
3251
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3242
3252
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3243
3253
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -3387,6 +3397,16 @@ export declare const orderSchema: z.ZodObject<{
|
|
|
3387
3397
|
productName: z.ZodString;
|
|
3388
3398
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3389
3399
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3400
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3401
|
+
kind: z.ZodString;
|
|
3402
|
+
groupName: z.ZodString;
|
|
3403
|
+
valueName: z.ZodString;
|
|
3404
|
+
additionalPrice: z.ZodNumber;
|
|
3405
|
+
}, z.core.$strip>>>>;
|
|
3406
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3407
|
+
label: z.ZodString;
|
|
3408
|
+
value: z.ZodString;
|
|
3409
|
+
}, z.core.$strip>>>>;
|
|
3390
3410
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3391
3411
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3392
3412
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -3493,6 +3513,16 @@ export declare const orderItemPageSchema: z.ZodObject<{
|
|
|
3493
3513
|
productName: z.ZodString;
|
|
3494
3514
|
optionId: z.ZodNullable<z.ZodString>;
|
|
3495
3515
|
optionName: z.ZodNullable<z.ZodString>;
|
|
3516
|
+
optionSelections: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3517
|
+
kind: z.ZodString;
|
|
3518
|
+
groupName: z.ZodString;
|
|
3519
|
+
valueName: z.ZodString;
|
|
3520
|
+
additionalPrice: z.ZodNumber;
|
|
3521
|
+
}, z.core.$strip>>>>;
|
|
3522
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3523
|
+
label: z.ZodString;
|
|
3524
|
+
value: z.ZodString;
|
|
3525
|
+
}, z.core.$strip>>>>;
|
|
3496
3526
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
3497
3527
|
fulfillmentSnapshot: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3498
3528
|
type: z.ZodLiteral<"SHIPPING">;
|
|
@@ -4851,8 +4881,124 @@ export declare const productVariantSchema: z.ZodObject<{
|
|
|
4851
4881
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
4852
4882
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
4853
4883
|
usable: z.ZodBoolean;
|
|
4884
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
4854
4885
|
}, z.core.$strip>;
|
|
4855
4886
|
export type ProductVariant = z.infer<typeof productVariantSchema>;
|
|
4887
|
+
/** 옵션 축(그룹) 최대 개수 — 스키마 상한의 단일 원천 */
|
|
4888
|
+
export declare const MAX_OPTION_GROUPS = 3;
|
|
4889
|
+
/** 축 하나가 가질 수 있는 값의 최대 개수 */
|
|
4890
|
+
export declare const MAX_VALUES_PER_GROUP = 100;
|
|
4891
|
+
/** 상품 하나가 가질 수 있는 variant(SKU) 최대 개수 */
|
|
4892
|
+
export declare const MAX_VARIANTS = 500;
|
|
4893
|
+
/** 추가 선택 옵션명 최대 개수 */
|
|
4894
|
+
export declare const MAX_ADDON_GROUPS = 5;
|
|
4895
|
+
/** 직접 입력 항목 최대 개수 */
|
|
4896
|
+
export declare const MAX_CUSTOM_INPUTS = 5;
|
|
4897
|
+
/** 직접 입력 항목 최대 글자 수의 상한 */
|
|
4898
|
+
export declare const MAX_CUSTOM_INPUT_LENGTH = 200;
|
|
4899
|
+
/** 조합 수가 이 값 이상이면 콘솔이 경고한다(상한은 `MAX_VARIANTS`) */
|
|
4900
|
+
export declare const VARIANT_COUNT_WARNING = 100;
|
|
4901
|
+
/**
|
|
4902
|
+
* 옵션 값 정렬 순서 — 등록순·가나다순·낮은 추가금순·높은 추가금순. 서버가 저장할 때 이 순서로 값의 `sortOrder`를 매긴다.
|
|
4903
|
+
* 추가금순은 추가 선택 값이면 값의 추가금, 조합 값이면 그 값이 든 조합 추가금의 최솟값으로 비교하고 같으면 등록순이다.
|
|
4904
|
+
*/
|
|
4905
|
+
export declare const optionSortSchema: z.ZodEnum<{
|
|
4906
|
+
REGISTERED: "REGISTERED";
|
|
4907
|
+
NAME: "NAME";
|
|
4908
|
+
PRICE_ASC: "PRICE_ASC";
|
|
4909
|
+
PRICE_DESC: "PRICE_DESC";
|
|
4910
|
+
}>;
|
|
4911
|
+
export type OptionSort = z.infer<typeof optionSortSchema>;
|
|
4912
|
+
/** 추가 선택 값 — 예: 옵션명 "선물 포장"의 값 "포장함"(+2,000원) */
|
|
4913
|
+
export declare const addonValueSchema: z.ZodObject<{
|
|
4914
|
+
valueId: z.ZodString;
|
|
4915
|
+
name: z.ZodString;
|
|
4916
|
+
sortOrder: z.ZodNumber;
|
|
4917
|
+
additionalPrice: z.ZodNumber;
|
|
4918
|
+
usable: z.ZodBoolean;
|
|
4919
|
+
}, z.core.$strip>;
|
|
4920
|
+
export type AddonValue = z.infer<typeof addonValueSchema>;
|
|
4921
|
+
/** 추가 선택 옵션명 */
|
|
4922
|
+
export declare const addonGroupSchema: z.ZodObject<{
|
|
4923
|
+
groupId: z.ZodString;
|
|
4924
|
+
name: z.ZodString;
|
|
4925
|
+
sortOrder: z.ZodNumber;
|
|
4926
|
+
required: z.ZodBoolean;
|
|
4927
|
+
values: z.ZodArray<z.ZodObject<{
|
|
4928
|
+
valueId: z.ZodString;
|
|
4929
|
+
name: z.ZodString;
|
|
4930
|
+
sortOrder: z.ZodNumber;
|
|
4931
|
+
additionalPrice: z.ZodNumber;
|
|
4932
|
+
usable: z.ZodBoolean;
|
|
4933
|
+
}, z.core.$strip>>;
|
|
4934
|
+
}, z.core.$strip>;
|
|
4935
|
+
export type AddonGroup = z.infer<typeof addonGroupSchema>;
|
|
4936
|
+
/** 직접 입력 항목 — 예: 각인 문구 */
|
|
4937
|
+
export declare const customInputSchema: z.ZodObject<{
|
|
4938
|
+
inputId: z.ZodString;
|
|
4939
|
+
label: z.ZodString;
|
|
4940
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
4941
|
+
maxLength: z.ZodNumber;
|
|
4942
|
+
required: z.ZodBoolean;
|
|
4943
|
+
usable: z.ZodBoolean;
|
|
4944
|
+
sortOrder: z.ZodNumber;
|
|
4945
|
+
}, z.core.$strip>;
|
|
4946
|
+
export type CustomInput = z.infer<typeof customInputSchema>;
|
|
4947
|
+
/**
|
|
4948
|
+
* 직접 입력 항목명에 쓸 수 없는 개인정보성 단어 — 콘솔 검사와 서버 400(`CUSTOM_INPUT_LABEL_FORBIDDEN`)이 이 목록 하나를 쓴다.
|
|
4949
|
+
* 구매자 개인정보는 주문 정보로 받는다. 직접 입력 항목으로 받으면 보관·파기 규칙 밖에 남는다.
|
|
4950
|
+
*/
|
|
4951
|
+
export declare const CUSTOM_INPUT_FORBIDDEN_WORDS: readonly ["연락처", "전화", "휴대폰", "핸드폰", "폰번호", "메일", "주소", "주민", "생년월일", "생일", "실명", "계좌", "카드번호", "비밀번호", "여권", "통관", "phone", "mobile", "mail", "address"];
|
|
4952
|
+
/**
|
|
4953
|
+
* 직접 입력 항목명·입력 안내에 든 개인정보성 금지어. 없으면 null. 공백·기호·대소문자·전각을 무시한다.
|
|
4954
|
+
* 서버는 항목명과 입력 안내 둘 다 이 함수로 검사한다(안내에 「연락처를 적어 주십시오」라고 쓰는 우회를 막는다).
|
|
4955
|
+
*/
|
|
4956
|
+
export declare function customInputLabelForbiddenWord(label: string): string | null;
|
|
4957
|
+
export declare const addonValueRequestSchema: z.ZodObject<{
|
|
4958
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
4959
|
+
name: z.ZodString;
|
|
4960
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
4961
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4962
|
+
}, z.core.$strip>;
|
|
4963
|
+
export type AddonValueRequest = z.infer<typeof addonValueRequestSchema>;
|
|
4964
|
+
export declare const addonGroupRequestSchema: z.ZodObject<{
|
|
4965
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
4966
|
+
name: z.ZodString;
|
|
4967
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
4968
|
+
values: z.ZodArray<z.ZodObject<{
|
|
4969
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
4970
|
+
name: z.ZodString;
|
|
4971
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
4972
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4973
|
+
}, z.core.$strip>>;
|
|
4974
|
+
}, z.core.$strip>;
|
|
4975
|
+
export type AddonGroupRequest = z.infer<typeof addonGroupRequestSchema>;
|
|
4976
|
+
export declare const customInputRequestSchema: z.ZodObject<{
|
|
4977
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
4978
|
+
label: z.ZodString;
|
|
4979
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
4980
|
+
maxLength: z.ZodNumber;
|
|
4981
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
4982
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
4983
|
+
}, z.core.$strip>;
|
|
4984
|
+
export type CustomInputRequest = z.infer<typeof customInputRequestSchema>;
|
|
4985
|
+
/**
|
|
4986
|
+
* 주문상품·장바구니·주문서 줄의 옵션 선택 스냅샷 한 칸 — 주문 시점 이름이다(상품을 고쳐도 바뀌지 않는다).
|
|
4987
|
+
* 조합 옵션은 옵션명마다 한 칸이고 추가금은 조합 단위라 0이다(조합 추가금은 단가에 들어 있다). 추가 선택은 값의 추가금이다.
|
|
4988
|
+
*/
|
|
4989
|
+
export declare const optionSelectionSchema: z.ZodObject<{
|
|
4990
|
+
kind: z.ZodString;
|
|
4991
|
+
groupName: z.ZodString;
|
|
4992
|
+
valueName: z.ZodString;
|
|
4993
|
+
additionalPrice: z.ZodNumber;
|
|
4994
|
+
}, z.core.$strip>;
|
|
4995
|
+
export type OptionSelection = z.infer<typeof optionSelectionSchema>;
|
|
4996
|
+
/** 구매자가 적은 직접 입력값 — 주문 시점 항목명과 값 */
|
|
4997
|
+
export declare const customInputValueSchema: z.ZodObject<{
|
|
4998
|
+
label: z.ZodString;
|
|
4999
|
+
value: z.ZodString;
|
|
5000
|
+
}, z.core.$strip>;
|
|
5001
|
+
export type CustomInputValue = z.infer<typeof customInputValueSchema>;
|
|
4856
5002
|
export declare const discountSchema: z.ZodObject<{
|
|
4857
5003
|
productId: z.ZodString;
|
|
4858
5004
|
discountType: z.ZodEnum<{
|
|
@@ -4911,7 +5057,36 @@ export declare const productSchema: z.ZodObject<{
|
|
|
4911
5057
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
4912
5058
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
4913
5059
|
usable: z.ZodBoolean;
|
|
5060
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
4914
5061
|
}, z.core.$strip>>;
|
|
5062
|
+
addonGroups: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5063
|
+
groupId: z.ZodString;
|
|
5064
|
+
name: z.ZodString;
|
|
5065
|
+
sortOrder: z.ZodNumber;
|
|
5066
|
+
required: z.ZodBoolean;
|
|
5067
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5068
|
+
valueId: z.ZodString;
|
|
5069
|
+
name: z.ZodString;
|
|
5070
|
+
sortOrder: z.ZodNumber;
|
|
5071
|
+
additionalPrice: z.ZodNumber;
|
|
5072
|
+
usable: z.ZodBoolean;
|
|
5073
|
+
}, z.core.$strip>>;
|
|
5074
|
+
}, z.core.$strip>>>>;
|
|
5075
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5076
|
+
inputId: z.ZodString;
|
|
5077
|
+
label: z.ZodString;
|
|
5078
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5079
|
+
maxLength: z.ZodNumber;
|
|
5080
|
+
required: z.ZodBoolean;
|
|
5081
|
+
usable: z.ZodBoolean;
|
|
5082
|
+
sortOrder: z.ZodNumber;
|
|
5083
|
+
}, z.core.$strip>>>>;
|
|
5084
|
+
optionSort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
5085
|
+
REGISTERED: "REGISTERED";
|
|
5086
|
+
NAME: "NAME";
|
|
5087
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5088
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5089
|
+
}>>>;
|
|
4915
5090
|
fulfillment: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4916
5091
|
type: z.ZodLiteral<"SHIPPING">;
|
|
4917
5092
|
shipping: z.ZodObject<{
|
|
@@ -4982,12 +5157,6 @@ export interface ProductImageRejection {
|
|
|
4982
5157
|
* — 외부 이미지 CDN은 확장자 없는 키를 쓰는 경우가 흔하고, 주소만으로는 실제 형식을 알 수 없다.
|
|
4983
5158
|
*/
|
|
4984
5159
|
export declare function productImageRejection(url: string): ProductImageRejection | null;
|
|
4985
|
-
/** 옵션 축(그룹) 최대 개수 — 스키마 상한의 단일 원천 */
|
|
4986
|
-
export declare const MAX_OPTION_GROUPS = 3;
|
|
4987
|
-
/** 축 하나가 가질 수 있는 값의 최대 개수 */
|
|
4988
|
-
export declare const MAX_VALUES_PER_GROUP = 100;
|
|
4989
|
-
/** 상품 하나가 가질 수 있는 variant(SKU) 최대 개수 */
|
|
4990
|
-
export declare const MAX_VARIANTS = 500;
|
|
4991
5160
|
export declare const optionValueRequestSchema: z.ZodObject<{
|
|
4992
5161
|
valueId: z.ZodOptional<z.ZodString>;
|
|
4993
5162
|
name: z.ZodString;
|
|
@@ -5037,6 +5206,31 @@ export declare const optionModelRequestSchema: z.ZodObject<{
|
|
|
5037
5206
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5038
5207
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5039
5208
|
}, z.core.$strip>>;
|
|
5209
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5210
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5211
|
+
name: z.ZodString;
|
|
5212
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5213
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5214
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5215
|
+
name: z.ZodString;
|
|
5216
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5217
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5218
|
+
}, z.core.$strip>>;
|
|
5219
|
+
}, z.core.$strip>>>;
|
|
5220
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5221
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5222
|
+
label: z.ZodString;
|
|
5223
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5224
|
+
maxLength: z.ZodNumber;
|
|
5225
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5226
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5227
|
+
}, z.core.$strip>>>;
|
|
5228
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5229
|
+
REGISTERED: "REGISTERED";
|
|
5230
|
+
NAME: "NAME";
|
|
5231
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5232
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5233
|
+
}>>;
|
|
5040
5234
|
}, z.core.$strip>;
|
|
5041
5235
|
export type OptionModelRequest = z.infer<typeof optionModelRequestSchema>;
|
|
5042
5236
|
/** GET /products/{productId}/options 응답 */
|
|
@@ -5063,7 +5257,36 @@ export declare const optionModelSchema: z.ZodObject<{
|
|
|
5063
5257
|
weightGram: z.ZodNullable<z.ZodNumber>;
|
|
5064
5258
|
sellerCode: z.ZodNullable<z.ZodString>;
|
|
5065
5259
|
usable: z.ZodBoolean;
|
|
5260
|
+
hasOrders: z.ZodOptional<z.ZodBoolean>;
|
|
5066
5261
|
}, z.core.$strip>>;
|
|
5262
|
+
addonGroups: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5263
|
+
groupId: z.ZodString;
|
|
5264
|
+
name: z.ZodString;
|
|
5265
|
+
sortOrder: z.ZodNumber;
|
|
5266
|
+
required: z.ZodBoolean;
|
|
5267
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5268
|
+
valueId: z.ZodString;
|
|
5269
|
+
name: z.ZodString;
|
|
5270
|
+
sortOrder: z.ZodNumber;
|
|
5271
|
+
additionalPrice: z.ZodNumber;
|
|
5272
|
+
usable: z.ZodBoolean;
|
|
5273
|
+
}, z.core.$strip>>;
|
|
5274
|
+
}, z.core.$strip>>>>;
|
|
5275
|
+
customInputs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5276
|
+
inputId: z.ZodString;
|
|
5277
|
+
label: z.ZodString;
|
|
5278
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5279
|
+
maxLength: z.ZodNumber;
|
|
5280
|
+
required: z.ZodBoolean;
|
|
5281
|
+
usable: z.ZodBoolean;
|
|
5282
|
+
sortOrder: z.ZodNumber;
|
|
5283
|
+
}, z.core.$strip>>>>;
|
|
5284
|
+
optionSort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
5285
|
+
REGISTERED: "REGISTERED";
|
|
5286
|
+
NAME: "NAME";
|
|
5287
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5288
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5289
|
+
}>>>;
|
|
5067
5290
|
}, z.core.$strip>;
|
|
5068
5291
|
export type OptionModel = z.infer<typeof optionModelSchema>;
|
|
5069
5292
|
/**
|
|
@@ -5103,6 +5326,7 @@ export declare const productCreateRequestSchema: z.ZodObject<{
|
|
|
5103
5326
|
}, z.core.$strict>, z.ZodObject<{
|
|
5104
5327
|
type: z.ZodLiteral<"MANUAL">;
|
|
5105
5328
|
}, z.core.$strict>], "type">>;
|
|
5329
|
+
sourceOptionSetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5106
5330
|
optionGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5107
5331
|
groupId: z.ZodOptional<z.ZodString>;
|
|
5108
5332
|
name: z.ZodString;
|
|
@@ -5123,6 +5347,31 @@ export declare const productCreateRequestSchema: z.ZodObject<{
|
|
|
5123
5347
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5124
5348
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5125
5349
|
}, z.core.$strip>>;
|
|
5350
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5351
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5352
|
+
name: z.ZodString;
|
|
5353
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5354
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5355
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5356
|
+
name: z.ZodString;
|
|
5357
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5358
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5359
|
+
}, z.core.$strip>>;
|
|
5360
|
+
}, z.core.$strip>>>;
|
|
5361
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5362
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5363
|
+
label: z.ZodString;
|
|
5364
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5365
|
+
maxLength: z.ZodNumber;
|
|
5366
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5367
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5368
|
+
}, z.core.$strip>>>;
|
|
5369
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5370
|
+
REGISTERED: "REGISTERED";
|
|
5371
|
+
NAME: "NAME";
|
|
5372
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5373
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5374
|
+
}>>;
|
|
5126
5375
|
name: z.ZodString;
|
|
5127
5376
|
categoryId: z.ZodString;
|
|
5128
5377
|
salePrice: z.ZodNumber;
|
|
@@ -5162,6 +5411,7 @@ export declare const productReplaceRequestSchema: z.ZodObject<{
|
|
|
5162
5411
|
}, z.core.$strict>, z.ZodObject<{
|
|
5163
5412
|
type: z.ZodLiteral<"MANUAL">;
|
|
5164
5413
|
}, z.core.$strict>], "type">>;
|
|
5414
|
+
sourceOptionSetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5165
5415
|
optionGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5166
5416
|
groupId: z.ZodOptional<z.ZodString>;
|
|
5167
5417
|
name: z.ZodString;
|
|
@@ -5182,6 +5432,31 @@ export declare const productReplaceRequestSchema: z.ZodObject<{
|
|
|
5182
5432
|
sellerCode: z.ZodOptional<z.ZodString>;
|
|
5183
5433
|
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5184
5434
|
}, z.core.$strip>>;
|
|
5435
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5436
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
5437
|
+
name: z.ZodString;
|
|
5438
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5439
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5440
|
+
valueId: z.ZodOptional<z.ZodString>;
|
|
5441
|
+
name: z.ZodString;
|
|
5442
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5443
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5444
|
+
}, z.core.$strip>>;
|
|
5445
|
+
}, z.core.$strip>>>;
|
|
5446
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5447
|
+
inputId: z.ZodOptional<z.ZodString>;
|
|
5448
|
+
label: z.ZodString;
|
|
5449
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5450
|
+
maxLength: z.ZodNumber;
|
|
5451
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5452
|
+
usable: z.ZodDefault<z.ZodBoolean>;
|
|
5453
|
+
}, z.core.$strip>>>;
|
|
5454
|
+
optionSort: z.ZodOptional<z.ZodEnum<{
|
|
5455
|
+
REGISTERED: "REGISTERED";
|
|
5456
|
+
NAME: "NAME";
|
|
5457
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5458
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5459
|
+
}>>;
|
|
5185
5460
|
name: z.ZodString;
|
|
5186
5461
|
categoryId: z.ZodString;
|
|
5187
5462
|
salePrice: z.ZodNumber;
|
|
@@ -5284,6 +5559,210 @@ export declare const discountRequestSchema: z.ZodObject<{
|
|
|
5284
5559
|
}, z.core.$strip>;
|
|
5285
5560
|
export type DiscountRequest = z.infer<typeof discountRequestSchema>;
|
|
5286
5561
|
//#endregion
|
|
5562
|
+
//#region src/schemas/saved-option-set.d.ts
|
|
5563
|
+
/**
|
|
5564
|
+
* 저장 옵션 (이슈 #59) — 자주 쓰는 옵션 구성을 이름 붙여 두고 상품 등록에서 불러온다.
|
|
5565
|
+
*
|
|
5566
|
+
* **불러오기는 복사다.** 저장 옵션을 고치거나 지워도 이미 불러온 상품의 옵션은 그대로다. 재고·SKU·사용 여부는 상품마다
|
|
5567
|
+
* 달라 저장하지 않는다. 추가금은 조합별이 아니라 **값별**로 둔다 — 조합 옵션으로 불러오면 조합 추가금은 고른 값 추가금의 합이다.
|
|
5568
|
+
*/
|
|
5569
|
+
/** 스토어당 저장 옵션 최대 개수 */
|
|
5570
|
+
export declare const MAX_SAVED_OPTION_SETS = 200;
|
|
5571
|
+
/** 저장 옵션 이름 최대 글자 수 */
|
|
5572
|
+
export declare const MAX_SAVED_OPTION_SET_NAME = 50;
|
|
5573
|
+
/** 옵션명 방식 — `combination`(조합: 값의 조합이 판매 단위가 된다)·`addon`(추가 선택: 재고 없이 추가금만) */
|
|
5574
|
+
export declare const optionGroupKindSchema: z.ZodEnum<{
|
|
5575
|
+
combination: "combination";
|
|
5576
|
+
addon: "addon";
|
|
5577
|
+
}>;
|
|
5578
|
+
export type OptionGroupKind = z.infer<typeof optionGroupKindSchema>;
|
|
5579
|
+
export declare const savedOptionValueSchema: z.ZodObject<{
|
|
5580
|
+
name: z.ZodString;
|
|
5581
|
+
additionalPrice: z.ZodNumber;
|
|
5582
|
+
}, z.core.$strip>;
|
|
5583
|
+
export declare const savedOptionGroupSchema: z.ZodObject<{
|
|
5584
|
+
name: z.ZodString;
|
|
5585
|
+
kind: z.ZodString;
|
|
5586
|
+
required: z.ZodBoolean;
|
|
5587
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5588
|
+
name: z.ZodString;
|
|
5589
|
+
additionalPrice: z.ZodNumber;
|
|
5590
|
+
}, z.core.$strip>>;
|
|
5591
|
+
}, z.core.$strip>;
|
|
5592
|
+
export type SavedOptionGroup = z.infer<typeof savedOptionGroupSchema>;
|
|
5593
|
+
export declare const savedCustomInputSchema: z.ZodObject<{
|
|
5594
|
+
label: z.ZodString;
|
|
5595
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5596
|
+
maxLength: z.ZodNumber;
|
|
5597
|
+
required: z.ZodBoolean;
|
|
5598
|
+
}, z.core.$strip>;
|
|
5599
|
+
export type SavedCustomInput = z.infer<typeof savedCustomInputSchema>;
|
|
5600
|
+
export declare const savedOptionSetSchema: z.ZodObject<{
|
|
5601
|
+
optionSetId: z.ZodString;
|
|
5602
|
+
name: z.ZodString;
|
|
5603
|
+
optionSort: z.ZodEnum<{
|
|
5604
|
+
REGISTERED: "REGISTERED";
|
|
5605
|
+
NAME: "NAME";
|
|
5606
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5607
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5608
|
+
}>;
|
|
5609
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
5610
|
+
name: z.ZodString;
|
|
5611
|
+
kind: z.ZodString;
|
|
5612
|
+
required: z.ZodBoolean;
|
|
5613
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5614
|
+
name: z.ZodString;
|
|
5615
|
+
additionalPrice: z.ZodNumber;
|
|
5616
|
+
}, z.core.$strip>>;
|
|
5617
|
+
}, z.core.$strip>>;
|
|
5618
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
5619
|
+
label: z.ZodString;
|
|
5620
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5621
|
+
maxLength: z.ZodNumber;
|
|
5622
|
+
required: z.ZodBoolean;
|
|
5623
|
+
}, z.core.$strip>>;
|
|
5624
|
+
importedProductCount: z.ZodNumber;
|
|
5625
|
+
createdAt: z.ZodString;
|
|
5626
|
+
updatedAt: z.ZodString;
|
|
5627
|
+
}, z.core.$strip>;
|
|
5628
|
+
export type SavedOptionSet = z.infer<typeof savedOptionSetSchema>;
|
|
5629
|
+
export declare const savedOptionValueRequestSchema: z.ZodObject<{
|
|
5630
|
+
name: z.ZodString;
|
|
5631
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5632
|
+
}, z.core.$strip>;
|
|
5633
|
+
export declare const savedOptionGroupRequestSchema: z.ZodObject<{
|
|
5634
|
+
name: z.ZodString;
|
|
5635
|
+
kind: z.ZodEnum<{
|
|
5636
|
+
combination: "combination";
|
|
5637
|
+
addon: "addon";
|
|
5638
|
+
}>;
|
|
5639
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5640
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5641
|
+
name: z.ZodString;
|
|
5642
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5643
|
+
}, z.core.$strip>>;
|
|
5644
|
+
}, z.core.$strip>;
|
|
5645
|
+
export type SavedOptionGroupRequest = z.infer<typeof savedOptionGroupRequestSchema>;
|
|
5646
|
+
export declare const savedCustomInputRequestSchema: z.ZodObject<{
|
|
5647
|
+
label: z.ZodString;
|
|
5648
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5649
|
+
maxLength: z.ZodNumber;
|
|
5650
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5651
|
+
}, z.core.$strip>;
|
|
5652
|
+
/**
|
|
5653
|
+
* 저장 옵션 만들기·수정 본문. 조합 옵션명은 최대 `MAX_OPTION_GROUPS`개, 추가 선택은 최대 `MAX_ADDON_GROUPS`개이고
|
|
5654
|
+
* 옵션명과 직접 입력 항목이 모두 비면 400이다. 수정(PUT)은 통째로 바꾼다.
|
|
5655
|
+
*/
|
|
5656
|
+
export declare const savedOptionSetRequestSchema: z.ZodObject<{
|
|
5657
|
+
name: z.ZodString;
|
|
5658
|
+
optionSort: z.ZodDefault<z.ZodEnum<{
|
|
5659
|
+
REGISTERED: "REGISTERED";
|
|
5660
|
+
NAME: "NAME";
|
|
5661
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5662
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5663
|
+
}>>;
|
|
5664
|
+
groups: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5665
|
+
name: z.ZodString;
|
|
5666
|
+
kind: z.ZodEnum<{
|
|
5667
|
+
combination: "combination";
|
|
5668
|
+
addon: "addon";
|
|
5669
|
+
}>;
|
|
5670
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5671
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5672
|
+
name: z.ZodString;
|
|
5673
|
+
additionalPrice: z.ZodDefault<z.ZodNumber>;
|
|
5674
|
+
}, z.core.$strip>>;
|
|
5675
|
+
}, z.core.$strip>>>;
|
|
5676
|
+
customInputs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
5677
|
+
label: z.ZodString;
|
|
5678
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5679
|
+
maxLength: z.ZodNumber;
|
|
5680
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
5681
|
+
}, z.core.$strip>>>;
|
|
5682
|
+
}, z.core.$strip>;
|
|
5683
|
+
export type SavedOptionSetRequest = z.infer<typeof savedOptionSetRequestSchema>;
|
|
5684
|
+
export type SavedOptionSetRequestInput = z.input<typeof savedOptionSetRequestSchema>;
|
|
5685
|
+
/**
|
|
5686
|
+
* 상품에서 저장 (`POST /v1/saved-option-sets/from-product`) — 상품의 현재 옵션을 저장 옵션으로 만든다.
|
|
5687
|
+
*
|
|
5688
|
+
* 조합 추가금이 값별 추가금의 합으로 되돌려지면 값별로 저장하고, 조합마다 제각각이면 추가금을 빼고
|
|
5689
|
+
* 응답 `additionalPriceDropped: true`로 알린다. `replaceOptionSetId`를 주면 그 저장 옵션을 덮어쓴다(이름 중복의 덮어쓰기).
|
|
5690
|
+
*/
|
|
5691
|
+
export declare const savedOptionSetFromProductRequestSchema: z.ZodObject<{
|
|
5692
|
+
productId: z.ZodString;
|
|
5693
|
+
name: z.ZodString;
|
|
5694
|
+
includeOptions: z.ZodDefault<z.ZodBoolean>;
|
|
5695
|
+
includeCustomInputs: z.ZodDefault<z.ZodBoolean>;
|
|
5696
|
+
replaceOptionSetId: z.ZodOptional<z.ZodString>;
|
|
5697
|
+
}, z.core.$strip>;
|
|
5698
|
+
export type SavedOptionSetFromProductRequest = z.infer<typeof savedOptionSetFromProductRequestSchema>;
|
|
5699
|
+
export type SavedOptionSetFromProductRequestInput = z.input<typeof savedOptionSetFromProductRequestSchema>;
|
|
5700
|
+
export declare const savedOptionSetFromProductResultSchema: z.ZodObject<{
|
|
5701
|
+
optionSet: z.ZodObject<{
|
|
5702
|
+
optionSetId: z.ZodString;
|
|
5703
|
+
name: z.ZodString;
|
|
5704
|
+
optionSort: z.ZodEnum<{
|
|
5705
|
+
REGISTERED: "REGISTERED";
|
|
5706
|
+
NAME: "NAME";
|
|
5707
|
+
PRICE_ASC: "PRICE_ASC";
|
|
5708
|
+
PRICE_DESC: "PRICE_DESC";
|
|
5709
|
+
}>;
|
|
5710
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
5711
|
+
name: z.ZodString;
|
|
5712
|
+
kind: z.ZodString;
|
|
5713
|
+
required: z.ZodBoolean;
|
|
5714
|
+
values: z.ZodArray<z.ZodObject<{
|
|
5715
|
+
name: z.ZodString;
|
|
5716
|
+
additionalPrice: z.ZodNumber;
|
|
5717
|
+
}, z.core.$strip>>;
|
|
5718
|
+
}, z.core.$strip>>;
|
|
5719
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
5720
|
+
label: z.ZodString;
|
|
5721
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
5722
|
+
maxLength: z.ZodNumber;
|
|
5723
|
+
required: z.ZodBoolean;
|
|
5724
|
+
}, z.core.$strip>>;
|
|
5725
|
+
importedProductCount: z.ZodNumber;
|
|
5726
|
+
createdAt: z.ZodString;
|
|
5727
|
+
updatedAt: z.ZodString;
|
|
5728
|
+
}, z.core.$strip>;
|
|
5729
|
+
additionalPriceDropped: z.ZodBoolean;
|
|
5730
|
+
}, z.core.$strip>;
|
|
5731
|
+
export type SavedOptionSetFromProductResult = z.infer<typeof savedOptionSetFromProductResultSchema>;
|
|
5732
|
+
/** 구성 필터 — 조합 옵션명·추가 선택 옵션명·직접 입력 항목을 가진 저장 옵션 */
|
|
5733
|
+
export declare const savedOptionSetCompositionSchema: z.ZodEnum<{
|
|
5734
|
+
combination: "combination";
|
|
5735
|
+
addon: "addon";
|
|
5736
|
+
customInput: "customInput";
|
|
5737
|
+
}>;
|
|
5738
|
+
export declare const savedOptionSetSortSchema: z.ZodEnum<{
|
|
5739
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
5740
|
+
"name.asc": "name.asc";
|
|
5741
|
+
"importedProductCount.desc": "importedProductCount.desc";
|
|
5742
|
+
}>;
|
|
5743
|
+
export type SavedOptionSetSort = z.infer<typeof savedOptionSetSortSchema>;
|
|
5744
|
+
export interface SavedOptionSetListParams extends PageParams {
|
|
5745
|
+
keyword?: string;
|
|
5746
|
+
composition?: z.infer<typeof savedOptionSetCompositionSchema>;
|
|
5747
|
+
sort?: SavedOptionSetSort;
|
|
5748
|
+
}
|
|
5749
|
+
/** `GET /v1/saved-option-sets` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
|
|
5750
|
+
export declare const savedOptionSetListQuerySchema: z.ZodObject<{
|
|
5751
|
+
page: z.ZodOptional<z.ZodString>;
|
|
5752
|
+
size: z.ZodOptional<z.ZodString>;
|
|
5753
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
5754
|
+
composition: z.ZodOptional<z.ZodEnum<{
|
|
5755
|
+
combination: "combination";
|
|
5756
|
+
addon: "addon";
|
|
5757
|
+
customInput: "customInput";
|
|
5758
|
+
}>>;
|
|
5759
|
+
sort: z.ZodOptional<z.ZodEnum<{
|
|
5760
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
5761
|
+
"name.asc": "name.asc";
|
|
5762
|
+
"importedProductCount.desc": "importedProductCount.desc";
|
|
5763
|
+
}>>;
|
|
5764
|
+
}, z.core.$strip>;
|
|
5765
|
+
//#endregion
|
|
5287
5766
|
//#region src/schemas/store.d.ts
|
|
5288
5767
|
/**
|
|
5289
5768
|
* 스토어 코드 규칙 — 스토어프론트 API가 테넌트를 가르는 값이다(`X-Store-Code` 헤더).
|
|
@@ -5540,6 +6019,7 @@ export type SellerAddressRequest = z.infer<typeof sellerAddressRequestSchema>;
|
|
|
5540
6019
|
* - 409 `STOREFRONT_SITE_CREATE_LIMIT` — 사이트는 스토어당 30일에 3번까지 만든다
|
|
5541
6020
|
* - 409 `STOREFRONT_SITE_CHANGED` — 읽은 상태(`expected*`)와 현재 상태가 다르다. 다시 읽고 시도한다
|
|
5542
6021
|
* - 409 `STOREFRONT_SITE_NOT_ACTIVE` — 정지(`SUSPENDED`)된 사이트는 바꾸거나 끌 수 없다
|
|
6022
|
+
* - 409 `STORE_SUSPENDED` — 정지된 스토어에는 사이트를 만들 수 없다
|
|
5543
6023
|
* - 409 `STOREFRONT_VERSION_NOT_READY` — 빌드가 끝나지 않았거나 실패한 버전은 발행할 수 없다
|
|
5544
6024
|
* - 409 `STOREFRONT_NO_ROLLBACK_TARGET` — 되돌릴 이전 발행 버전이 없다
|
|
5545
6025
|
* - 400 `STOREFRONT_SLUG_CONFIRM_MISMATCH` — 호스팅 끄기 확인 입력이 현재 슬러그와 다르다
|
|
@@ -5685,6 +6165,15 @@ export declare const storefrontEditPreviewSchema: z.ZodObject<{
|
|
|
5685
6165
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5686
6166
|
}, z.core.$strip>;
|
|
5687
6167
|
export type StorefrontEditPreview = z.infer<typeof storefrontEditPreviewSchema>;
|
|
6168
|
+
/**
|
|
6169
|
+
* 사이트 정지 — 운영 정책에 따라 플랫폼 운영자가 사이트를 정지한다. 정지 중에는 방문자에게 정지 안내가 보이고 발행·되돌리기·템플릿 변경·
|
|
6170
|
+
* 공개 전환·슬러그 변경·끄기·편집이 409 `STOREFRONT_SITE_NOT_ACTIVE`다. 셀러가 풀 수 없다(고객센터로 문의한다).
|
|
6171
|
+
*/
|
|
6172
|
+
export declare const storefrontSuspensionSchema: z.ZodObject<{
|
|
6173
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6174
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6175
|
+
}, z.core.$strip>;
|
|
6176
|
+
export type StorefrontSuspension = z.infer<typeof storefrontSuspensionSchema>;
|
|
5688
6177
|
export declare const storefrontSiteSchema: z.ZodObject<{
|
|
5689
6178
|
siteId: z.ZodString;
|
|
5690
6179
|
slug: z.ZodString;
|
|
@@ -5751,6 +6240,10 @@ export declare const storefrontSiteSchema: z.ZodObject<{
|
|
|
5751
6240
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5752
6241
|
}, z.core.$strip>;
|
|
5753
6242
|
slugChangesRemaining: z.ZodNumber;
|
|
6243
|
+
suspension: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6244
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6245
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6246
|
+
}, z.core.$strip>>>;
|
|
5754
6247
|
createdAt: z.ZodString;
|
|
5755
6248
|
updatedAt: z.ZodString;
|
|
5756
6249
|
}, z.core.$strip>;
|
|
@@ -5826,6 +6319,10 @@ export declare const storefrontHostingSchema: z.ZodObject<{
|
|
|
5826
6319
|
hostname: z.ZodNullable<z.ZodString>;
|
|
5827
6320
|
}, z.core.$strip>;
|
|
5828
6321
|
slugChangesRemaining: z.ZodNumber;
|
|
6322
|
+
suspension: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
6323
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
6324
|
+
suspendedAt: z.ZodNullable<z.ZodString>;
|
|
6325
|
+
}, z.core.$strip>>>;
|
|
5829
6326
|
createdAt: z.ZodString;
|
|
5830
6327
|
updatedAt: z.ZodString;
|
|
5831
6328
|
}, z.core.$strip>>;
|
|
@@ -6817,7 +7314,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6817
7314
|
weightGram: number | null;
|
|
6818
7315
|
sellerCode: string | null;
|
|
6819
7316
|
usable: boolean;
|
|
7317
|
+
hasOrders?: boolean | undefined;
|
|
6820
7318
|
}[];
|
|
7319
|
+
addonGroups: {
|
|
7320
|
+
groupId: string;
|
|
7321
|
+
name: string;
|
|
7322
|
+
sortOrder: number;
|
|
7323
|
+
required: boolean;
|
|
7324
|
+
values: {
|
|
7325
|
+
valueId: string;
|
|
7326
|
+
name: string;
|
|
7327
|
+
sortOrder: number;
|
|
7328
|
+
additionalPrice: number;
|
|
7329
|
+
usable: boolean;
|
|
7330
|
+
}[];
|
|
7331
|
+
}[];
|
|
7332
|
+
customInputs: {
|
|
7333
|
+
inputId: string;
|
|
7334
|
+
label: string;
|
|
7335
|
+
placeholder: string | null;
|
|
7336
|
+
maxLength: number;
|
|
7337
|
+
required: boolean;
|
|
7338
|
+
usable: boolean;
|
|
7339
|
+
sortOrder: number;
|
|
7340
|
+
}[];
|
|
7341
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6821
7342
|
fulfillment: UnknownFulfillment | {
|
|
6822
7343
|
type: "SHIPPING";
|
|
6823
7344
|
shipping: {
|
|
@@ -6889,7 +7410,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6889
7410
|
weightGram: number | null;
|
|
6890
7411
|
sellerCode: string | null;
|
|
6891
7412
|
usable: boolean;
|
|
7413
|
+
hasOrders?: boolean | undefined;
|
|
6892
7414
|
}[];
|
|
7415
|
+
addonGroups: {
|
|
7416
|
+
groupId: string;
|
|
7417
|
+
name: string;
|
|
7418
|
+
sortOrder: number;
|
|
7419
|
+
required: boolean;
|
|
7420
|
+
values: {
|
|
7421
|
+
valueId: string;
|
|
7422
|
+
name: string;
|
|
7423
|
+
sortOrder: number;
|
|
7424
|
+
additionalPrice: number;
|
|
7425
|
+
usable: boolean;
|
|
7426
|
+
}[];
|
|
7427
|
+
}[];
|
|
7428
|
+
customInputs: {
|
|
7429
|
+
inputId: string;
|
|
7430
|
+
label: string;
|
|
7431
|
+
placeholder: string | null;
|
|
7432
|
+
maxLength: number;
|
|
7433
|
+
required: boolean;
|
|
7434
|
+
usable: boolean;
|
|
7435
|
+
sortOrder: number;
|
|
7436
|
+
}[];
|
|
7437
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6893
7438
|
fulfillment: UnknownFulfillment | {
|
|
6894
7439
|
type: "SHIPPING";
|
|
6895
7440
|
shipping: {
|
|
@@ -6961,7 +7506,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
6961
7506
|
weightGram: number | null;
|
|
6962
7507
|
sellerCode: string | null;
|
|
6963
7508
|
usable: boolean;
|
|
7509
|
+
hasOrders?: boolean | undefined;
|
|
7510
|
+
}[];
|
|
7511
|
+
addonGroups: {
|
|
7512
|
+
groupId: string;
|
|
7513
|
+
name: string;
|
|
7514
|
+
sortOrder: number;
|
|
7515
|
+
required: boolean;
|
|
7516
|
+
values: {
|
|
7517
|
+
valueId: string;
|
|
7518
|
+
name: string;
|
|
7519
|
+
sortOrder: number;
|
|
7520
|
+
additionalPrice: number;
|
|
7521
|
+
usable: boolean;
|
|
7522
|
+
}[];
|
|
7523
|
+
}[];
|
|
7524
|
+
customInputs: {
|
|
7525
|
+
inputId: string;
|
|
7526
|
+
label: string;
|
|
7527
|
+
placeholder: string | null;
|
|
7528
|
+
maxLength: number;
|
|
7529
|
+
required: boolean;
|
|
7530
|
+
usable: boolean;
|
|
7531
|
+
sortOrder: number;
|
|
6964
7532
|
}[];
|
|
7533
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
6965
7534
|
fulfillment: UnknownFulfillment | {
|
|
6966
7535
|
type: "SHIPPING";
|
|
6967
7536
|
shipping: {
|
|
@@ -7037,7 +7606,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7037
7606
|
weightGram: number | null;
|
|
7038
7607
|
sellerCode: string | null;
|
|
7039
7608
|
usable: boolean;
|
|
7609
|
+
hasOrders?: boolean | undefined;
|
|
7040
7610
|
}[];
|
|
7611
|
+
addonGroups: {
|
|
7612
|
+
groupId: string;
|
|
7613
|
+
name: string;
|
|
7614
|
+
sortOrder: number;
|
|
7615
|
+
required: boolean;
|
|
7616
|
+
values: {
|
|
7617
|
+
valueId: string;
|
|
7618
|
+
name: string;
|
|
7619
|
+
sortOrder: number;
|
|
7620
|
+
additionalPrice: number;
|
|
7621
|
+
usable: boolean;
|
|
7622
|
+
}[];
|
|
7623
|
+
}[];
|
|
7624
|
+
customInputs: {
|
|
7625
|
+
inputId: string;
|
|
7626
|
+
label: string;
|
|
7627
|
+
placeholder: string | null;
|
|
7628
|
+
maxLength: number;
|
|
7629
|
+
required: boolean;
|
|
7630
|
+
usable: boolean;
|
|
7631
|
+
sortOrder: number;
|
|
7632
|
+
}[];
|
|
7633
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7041
7634
|
}>;
|
|
7042
7635
|
/**
|
|
7043
7636
|
* 옵션 모델 전체 교체 — variants는 valueNames로 축 값을 지목한다.
|
|
@@ -7066,7 +7659,31 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7066
7659
|
weightGram: number | null;
|
|
7067
7660
|
sellerCode: string | null;
|
|
7068
7661
|
usable: boolean;
|
|
7662
|
+
hasOrders?: boolean | undefined;
|
|
7069
7663
|
}[];
|
|
7664
|
+
addonGroups: {
|
|
7665
|
+
groupId: string;
|
|
7666
|
+
name: string;
|
|
7667
|
+
sortOrder: number;
|
|
7668
|
+
required: boolean;
|
|
7669
|
+
values: {
|
|
7670
|
+
valueId: string;
|
|
7671
|
+
name: string;
|
|
7672
|
+
sortOrder: number;
|
|
7673
|
+
additionalPrice: number;
|
|
7674
|
+
usable: boolean;
|
|
7675
|
+
}[];
|
|
7676
|
+
}[];
|
|
7677
|
+
customInputs: {
|
|
7678
|
+
inputId: string;
|
|
7679
|
+
label: string;
|
|
7680
|
+
placeholder: string | null;
|
|
7681
|
+
maxLength: number;
|
|
7682
|
+
required: boolean;
|
|
7683
|
+
usable: boolean;
|
|
7684
|
+
sortOrder: number;
|
|
7685
|
+
}[];
|
|
7686
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7070
7687
|
}>;
|
|
7071
7688
|
/** 재고 변경 — stockQuantity(절대값) 또는 adjustment(증감) 하나만 전달한다 */
|
|
7072
7689
|
updateVariantStock: (productId: string, variantId: string, body: VariantStockRequest) => Promise<{
|
|
@@ -7091,6 +7708,140 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7091
7708
|
}>;
|
|
7092
7709
|
removeDiscount: (productId: string) => Promise<void>;
|
|
7093
7710
|
};
|
|
7711
|
+
/**
|
|
7712
|
+
* 저장 옵션 (이슈 #59) — 자주 쓰는 옵션 구성. 불러오기는 복사라 저장 옵션을 고쳐도 불러온 상품은 바뀌지 않는다.
|
|
7713
|
+
* 권한은 상품과 같다(`product:r`·`product:rw`).
|
|
7714
|
+
*/
|
|
7715
|
+
savedOptionSets: {
|
|
7716
|
+
list: (params?: SavedOptionSetListParams) => Promise<{
|
|
7717
|
+
page: number;
|
|
7718
|
+
size: number;
|
|
7719
|
+
totalElements: number;
|
|
7720
|
+
totalPages: number;
|
|
7721
|
+
contents: {
|
|
7722
|
+
optionSetId: string;
|
|
7723
|
+
name: string;
|
|
7724
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7725
|
+
groups: {
|
|
7726
|
+
name: string;
|
|
7727
|
+
kind: string;
|
|
7728
|
+
required: boolean;
|
|
7729
|
+
values: {
|
|
7730
|
+
name: string;
|
|
7731
|
+
additionalPrice: number;
|
|
7732
|
+
}[];
|
|
7733
|
+
}[];
|
|
7734
|
+
customInputs: {
|
|
7735
|
+
label: string;
|
|
7736
|
+
placeholder: string | null;
|
|
7737
|
+
maxLength: number;
|
|
7738
|
+
required: boolean;
|
|
7739
|
+
}[];
|
|
7740
|
+
importedProductCount: number;
|
|
7741
|
+
createdAt: string;
|
|
7742
|
+
updatedAt: string;
|
|
7743
|
+
}[];
|
|
7744
|
+
}>;
|
|
7745
|
+
get: (optionSetId: string) => Promise<{
|
|
7746
|
+
optionSetId: string;
|
|
7747
|
+
name: string;
|
|
7748
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7749
|
+
groups: {
|
|
7750
|
+
name: string;
|
|
7751
|
+
kind: string;
|
|
7752
|
+
required: boolean;
|
|
7753
|
+
values: {
|
|
7754
|
+
name: string;
|
|
7755
|
+
additionalPrice: number;
|
|
7756
|
+
}[];
|
|
7757
|
+
}[];
|
|
7758
|
+
customInputs: {
|
|
7759
|
+
label: string;
|
|
7760
|
+
placeholder: string | null;
|
|
7761
|
+
maxLength: number;
|
|
7762
|
+
required: boolean;
|
|
7763
|
+
}[];
|
|
7764
|
+
importedProductCount: number;
|
|
7765
|
+
createdAt: string;
|
|
7766
|
+
updatedAt: string;
|
|
7767
|
+
}>;
|
|
7768
|
+
/** 이름이 겹치면 409 `OPTION_SET_NAME_TAKEN`, 스토어당 200개를 넘으면 409 `OPTION_SET_LIMIT_EXCEEDED` */
|
|
7769
|
+
create: (body: SavedOptionSetRequestInput) => Promise<{
|
|
7770
|
+
optionSetId: string;
|
|
7771
|
+
name: string;
|
|
7772
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7773
|
+
groups: {
|
|
7774
|
+
name: string;
|
|
7775
|
+
kind: string;
|
|
7776
|
+
required: boolean;
|
|
7777
|
+
values: {
|
|
7778
|
+
name: string;
|
|
7779
|
+
additionalPrice: number;
|
|
7780
|
+
}[];
|
|
7781
|
+
}[];
|
|
7782
|
+
customInputs: {
|
|
7783
|
+
label: string;
|
|
7784
|
+
placeholder: string | null;
|
|
7785
|
+
maxLength: number;
|
|
7786
|
+
required: boolean;
|
|
7787
|
+
}[];
|
|
7788
|
+
importedProductCount: number;
|
|
7789
|
+
createdAt: string;
|
|
7790
|
+
updatedAt: string;
|
|
7791
|
+
}>;
|
|
7792
|
+
/** 통째로 바꾼다. 불러온 상품은 바뀌지 않는다 */
|
|
7793
|
+
update: (optionSetId: string, body: SavedOptionSetRequestInput) => Promise<{
|
|
7794
|
+
optionSetId: string;
|
|
7795
|
+
name: string;
|
|
7796
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7797
|
+
groups: {
|
|
7798
|
+
name: string;
|
|
7799
|
+
kind: string;
|
|
7800
|
+
required: boolean;
|
|
7801
|
+
values: {
|
|
7802
|
+
name: string;
|
|
7803
|
+
additionalPrice: number;
|
|
7804
|
+
}[];
|
|
7805
|
+
}[];
|
|
7806
|
+
customInputs: {
|
|
7807
|
+
label: string;
|
|
7808
|
+
placeholder: string | null;
|
|
7809
|
+
maxLength: number;
|
|
7810
|
+
required: boolean;
|
|
7811
|
+
}[];
|
|
7812
|
+
importedProductCount: number;
|
|
7813
|
+
createdAt: string;
|
|
7814
|
+
updatedAt: string;
|
|
7815
|
+
}>;
|
|
7816
|
+
remove: (optionSetId: string) => Promise<void>;
|
|
7817
|
+
/** 상품의 현재 옵션을 저장 옵션으로 만든다(또는 `replaceOptionSetId`를 덮어쓴다) */
|
|
7818
|
+
saveFromProduct: (body: SavedOptionSetFromProductRequestInput) => Promise<{
|
|
7819
|
+
optionSet: {
|
|
7820
|
+
optionSetId: string;
|
|
7821
|
+
name: string;
|
|
7822
|
+
optionSort: "REGISTERED" | "NAME" | "PRICE_ASC" | "PRICE_DESC";
|
|
7823
|
+
groups: {
|
|
7824
|
+
name: string;
|
|
7825
|
+
kind: string;
|
|
7826
|
+
required: boolean;
|
|
7827
|
+
values: {
|
|
7828
|
+
name: string;
|
|
7829
|
+
additionalPrice: number;
|
|
7830
|
+
}[];
|
|
7831
|
+
}[];
|
|
7832
|
+
customInputs: {
|
|
7833
|
+
label: string;
|
|
7834
|
+
placeholder: string | null;
|
|
7835
|
+
maxLength: number;
|
|
7836
|
+
required: boolean;
|
|
7837
|
+
}[];
|
|
7838
|
+
importedProductCount: number;
|
|
7839
|
+
createdAt: string;
|
|
7840
|
+
updatedAt: string;
|
|
7841
|
+
};
|
|
7842
|
+
additionalPriceDropped: boolean;
|
|
7843
|
+
}>;
|
|
7844
|
+
};
|
|
7094
7845
|
categories: {
|
|
7095
7846
|
list: (params?: {
|
|
7096
7847
|
parentId?: string;
|
|
@@ -7107,7 +7858,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7107
7858
|
visible: boolean;
|
|
7108
7859
|
showPc: boolean;
|
|
7109
7860
|
showMobile: boolean;
|
|
7110
|
-
productSort: "
|
|
7861
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7111
7862
|
metaTitle: string | null;
|
|
7112
7863
|
metaDescription: string | null;
|
|
7113
7864
|
metaKeywords: string | null;
|
|
@@ -7127,7 +7878,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7127
7878
|
visible: boolean;
|
|
7128
7879
|
showPc: boolean;
|
|
7129
7880
|
showMobile: boolean;
|
|
7130
|
-
productSort: "
|
|
7881
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7131
7882
|
metaTitle: string | null;
|
|
7132
7883
|
metaDescription: string | null;
|
|
7133
7884
|
metaKeywords: string | null;
|
|
@@ -7146,7 +7897,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7146
7897
|
visible: boolean;
|
|
7147
7898
|
showPc: boolean;
|
|
7148
7899
|
showMobile: boolean;
|
|
7149
|
-
productSort: "
|
|
7900
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7150
7901
|
metaTitle: string | null;
|
|
7151
7902
|
metaDescription: string | null;
|
|
7152
7903
|
metaKeywords: string | null;
|
|
@@ -7166,7 +7917,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7166
7917
|
visible: boolean;
|
|
7167
7918
|
showPc: boolean;
|
|
7168
7919
|
showMobile: boolean;
|
|
7169
|
-
productSort: "
|
|
7920
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7170
7921
|
metaTitle: string | null;
|
|
7171
7922
|
metaDescription: string | null;
|
|
7172
7923
|
metaKeywords: string | null;
|
|
@@ -7185,7 +7936,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7185
7936
|
visible: boolean;
|
|
7186
7937
|
showPc: boolean;
|
|
7187
7938
|
showMobile: boolean;
|
|
7188
|
-
productSort: "
|
|
7939
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7189
7940
|
metaTitle: string | null;
|
|
7190
7941
|
metaDescription: string | null;
|
|
7191
7942
|
metaKeywords: string | null;
|
|
@@ -7214,7 +7965,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7214
7965
|
visible: boolean;
|
|
7215
7966
|
showPc: boolean;
|
|
7216
7967
|
showMobile: boolean;
|
|
7217
|
-
productSort: "
|
|
7968
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7218
7969
|
metaTitle: string | null;
|
|
7219
7970
|
metaDescription: string | null;
|
|
7220
7971
|
metaKeywords: string | null;
|
|
@@ -7233,7 +7984,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7233
7984
|
visible: boolean;
|
|
7234
7985
|
showPc: boolean;
|
|
7235
7986
|
showMobile: boolean;
|
|
7236
|
-
productSort: "
|
|
7987
|
+
productSort: "NAME" | "RECENT" | "POPULAR" | "PRICE_LOW" | "PRICE_HIGH";
|
|
7237
7988
|
metaTitle: string | null;
|
|
7238
7989
|
metaDescription: string | null;
|
|
7239
7990
|
metaKeywords: string | null;
|
|
@@ -7330,6 +8081,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7330
8081
|
productName: string;
|
|
7331
8082
|
optionId: string | null;
|
|
7332
8083
|
optionName: string | null;
|
|
8084
|
+
optionSelections: {
|
|
8085
|
+
kind: string;
|
|
8086
|
+
groupName: string;
|
|
8087
|
+
valueName: string;
|
|
8088
|
+
additionalPrice: number;
|
|
8089
|
+
}[];
|
|
8090
|
+
customInputs: {
|
|
8091
|
+
label: string;
|
|
8092
|
+
value: string;
|
|
8093
|
+
}[];
|
|
7333
8094
|
sellerCode: string | null;
|
|
7334
8095
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7335
8096
|
type: "SHIPPING";
|
|
@@ -7405,6 +8166,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7405
8166
|
productName: string;
|
|
7406
8167
|
optionId: string | null;
|
|
7407
8168
|
optionName: string | null;
|
|
8169
|
+
optionSelections: {
|
|
8170
|
+
kind: string;
|
|
8171
|
+
groupName: string;
|
|
8172
|
+
valueName: string;
|
|
8173
|
+
additionalPrice: number;
|
|
8174
|
+
}[];
|
|
8175
|
+
customInputs: {
|
|
8176
|
+
label: string;
|
|
8177
|
+
value: string;
|
|
8178
|
+
}[];
|
|
7408
8179
|
sellerCode: string | null;
|
|
7409
8180
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7410
8181
|
type: "SHIPPING";
|
|
@@ -7508,6 +8279,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7508
8279
|
productName: string;
|
|
7509
8280
|
optionId: string | null;
|
|
7510
8281
|
optionName: string | null;
|
|
8282
|
+
optionSelections: {
|
|
8283
|
+
kind: string;
|
|
8284
|
+
groupName: string;
|
|
8285
|
+
valueName: string;
|
|
8286
|
+
additionalPrice: number;
|
|
8287
|
+
}[];
|
|
8288
|
+
customInputs: {
|
|
8289
|
+
label: string;
|
|
8290
|
+
value: string;
|
|
8291
|
+
}[];
|
|
7511
8292
|
sellerCode: string | null;
|
|
7512
8293
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7513
8294
|
type: "SHIPPING";
|
|
@@ -7566,6 +8347,16 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
7566
8347
|
productName: string;
|
|
7567
8348
|
optionId: string | null;
|
|
7568
8349
|
optionName: string | null;
|
|
8350
|
+
optionSelections: {
|
|
8351
|
+
kind: string;
|
|
8352
|
+
groupName: string;
|
|
8353
|
+
valueName: string;
|
|
8354
|
+
additionalPrice: number;
|
|
8355
|
+
}[];
|
|
8356
|
+
customInputs: {
|
|
8357
|
+
label: string;
|
|
8358
|
+
value: string;
|
|
8359
|
+
}[];
|
|
7569
8360
|
sellerCode: string | null;
|
|
7570
8361
|
fulfillmentSnapshot: UnknownFulfillment | {
|
|
7571
8362
|
type: "SHIPPING";
|
|
@@ -10169,6 +10960,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10169
10960
|
slugChangesRemaining: number;
|
|
10170
10961
|
createdAt: string;
|
|
10171
10962
|
updatedAt: string;
|
|
10963
|
+
suspension?: {
|
|
10964
|
+
reason: string | null;
|
|
10965
|
+
suspendedAt: string | null;
|
|
10966
|
+
} | null | undefined;
|
|
10172
10967
|
} | null;
|
|
10173
10968
|
}>;
|
|
10174
10969
|
/** `GET /v1/storefront/slug-availability?slug=` — 슬러그를 쓸 수 있는가 */
|
|
@@ -10219,6 +11014,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10219
11014
|
slugChangesRemaining: number;
|
|
10220
11015
|
createdAt: string;
|
|
10221
11016
|
updatedAt: string;
|
|
11017
|
+
suspension?: {
|
|
11018
|
+
reason: string | null;
|
|
11019
|
+
suspendedAt: string | null;
|
|
11020
|
+
} | null | undefined;
|
|
10222
11021
|
}>;
|
|
10223
11022
|
/** `POST /v1/storefront/site/template` — 템플릿을 바꾼다. 새 버전을 만들고 기본으로 곧바로 발행한다 */
|
|
10224
11023
|
changeTemplate: (body: ChangeStorefrontTemplateRequest) => Promise<{
|
|
@@ -10262,6 +11061,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10262
11061
|
slugChangesRemaining: number;
|
|
10263
11062
|
createdAt: string;
|
|
10264
11063
|
updatedAt: string;
|
|
11064
|
+
suspension?: {
|
|
11065
|
+
reason: string | null;
|
|
11066
|
+
suspendedAt: string | null;
|
|
11067
|
+
} | null | undefined;
|
|
10265
11068
|
}>;
|
|
10266
11069
|
/** `GET /v1/storefront/site/versions` — 버전 목록(최신 먼저) */
|
|
10267
11070
|
listVersions: () => Promise<{
|
|
@@ -10320,6 +11123,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10320
11123
|
slugChangesRemaining: number;
|
|
10321
11124
|
createdAt: string;
|
|
10322
11125
|
updatedAt: string;
|
|
11126
|
+
suspension?: {
|
|
11127
|
+
reason: string | null;
|
|
11128
|
+
suspendedAt: string | null;
|
|
11129
|
+
} | null | undefined;
|
|
10323
11130
|
}>;
|
|
10324
11131
|
/** `POST /v1/storefront/site/rollback` — 이전 발행 버전으로 되돌린다(재빌드 없음) */
|
|
10325
11132
|
rollback: (body?: RollbackStorefrontRequest) => Promise<{
|
|
@@ -10363,6 +11170,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10363
11170
|
slugChangesRemaining: number;
|
|
10364
11171
|
createdAt: string;
|
|
10365
11172
|
updatedAt: string;
|
|
11173
|
+
suspension?: {
|
|
11174
|
+
reason: string | null;
|
|
11175
|
+
suspendedAt: string | null;
|
|
11176
|
+
} | null | undefined;
|
|
10366
11177
|
}>;
|
|
10367
11178
|
/** `PUT /v1/storefront/site/slug` — 슬러그를 바꾼다. 옛 슬러그는 90일 보류되고 새 주소로 301한다 */
|
|
10368
11179
|
changeSlug: (body: ChangeStorefrontSlugRequest) => Promise<{
|
|
@@ -10406,6 +11217,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10406
11217
|
slugChangesRemaining: number;
|
|
10407
11218
|
createdAt: string;
|
|
10408
11219
|
updatedAt: string;
|
|
11220
|
+
suspension?: {
|
|
11221
|
+
reason: string | null;
|
|
11222
|
+
suspendedAt: string | null;
|
|
11223
|
+
} | null | undefined;
|
|
10409
11224
|
}>;
|
|
10410
11225
|
/** `PUT /v1/storefront/site/visibility` — 오픈 준비 중 ↔ 공개 */
|
|
10411
11226
|
setVisibility: (body: SetStorefrontVisibilityRequest) => Promise<{
|
|
@@ -10449,6 +11264,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10449
11264
|
slugChangesRemaining: number;
|
|
10450
11265
|
createdAt: string;
|
|
10451
11266
|
updatedAt: string;
|
|
11267
|
+
suspension?: {
|
|
11268
|
+
reason: string | null;
|
|
11269
|
+
suspendedAt: string | null;
|
|
11270
|
+
} | null | undefined;
|
|
10452
11271
|
}>;
|
|
10453
11272
|
/**
|
|
10454
11273
|
* `POST /v1/storefront/site/preview-link` — 오픈 준비 중인 사이트를 구성원이 볼 수 있는 5분짜리 링크.
|
|
@@ -10500,6 +11319,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
10500
11319
|
slugChangesRemaining: number;
|
|
10501
11320
|
createdAt: string;
|
|
10502
11321
|
updatedAt: string;
|
|
11322
|
+
suspension?: {
|
|
11323
|
+
reason: string | null;
|
|
11324
|
+
suspendedAt: string | null;
|
|
11325
|
+
} | null | undefined;
|
|
10503
11326
|
}>;
|
|
10504
11327
|
/** `GET /v1/storefront/site/editing` — 편집 환경 상태(열린 환경·동시 상한·미리보기 인증서) */
|
|
10505
11328
|
getEditing: () => Promise<{
|
|
@@ -11172,6 +11995,7 @@ export declare const couponRejectReasonSchema: z.ZodEnum<{
|
|
|
11172
11995
|
NO_ELIGIBLE_ITEMS: "NO_ELIGIBLE_ITEMS";
|
|
11173
11996
|
MIN_ORDER_AMOUNT: "MIN_ORDER_AMOUNT";
|
|
11174
11997
|
LINE_NOT_ELIGIBLE: "LINE_NOT_ELIGIBLE";
|
|
11998
|
+
LINE_AMBIGUOUS: "LINE_AMBIGUOUS";
|
|
11175
11999
|
NO_DISCOUNT: "NO_DISCOUNT";
|
|
11176
12000
|
}>;
|
|
11177
12001
|
export type CouponRejectReason = z.infer<typeof couponRejectReasonSchema>;
|
|
@@ -11841,6 +12665,19 @@ export declare const orderWebhookEventDataSchema: z.ZodObject<{
|
|
|
11841
12665
|
[x: string]: unknown;
|
|
11842
12666
|
type: string;
|
|
11843
12667
|
}>>]>>;
|
|
12668
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12669
|
+
orderItemId: z.ZodString;
|
|
12670
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
12671
|
+
kind: z.ZodString;
|
|
12672
|
+
groupName: z.ZodString;
|
|
12673
|
+
valueName: z.ZodString;
|
|
12674
|
+
additionalPrice: z.ZodNumber;
|
|
12675
|
+
}, z.core.$strip>>;
|
|
12676
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
12677
|
+
label: z.ZodString;
|
|
12678
|
+
value: z.ZodString;
|
|
12679
|
+
}, z.core.$strip>>;
|
|
12680
|
+
}, z.core.$strip>>>;
|
|
11844
12681
|
}, z.core.$strip>;
|
|
11845
12682
|
export type OrderWebhookEventData = z.infer<typeof orderWebhookEventDataSchema>;
|
|
11846
12683
|
/**
|
|
@@ -12004,6 +12841,19 @@ export declare const orderWebhookEventSchema: z.ZodObject<{
|
|
|
12004
12841
|
[x: string]: unknown;
|
|
12005
12842
|
type: string;
|
|
12006
12843
|
}>>]>>;
|
|
12844
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12845
|
+
orderItemId: z.ZodString;
|
|
12846
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
12847
|
+
kind: z.ZodString;
|
|
12848
|
+
groupName: z.ZodString;
|
|
12849
|
+
valueName: z.ZodString;
|
|
12850
|
+
additionalPrice: z.ZodNumber;
|
|
12851
|
+
}, z.core.$strip>>;
|
|
12852
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
12853
|
+
label: z.ZodString;
|
|
12854
|
+
value: z.ZodString;
|
|
12855
|
+
}, z.core.$strip>>;
|
|
12856
|
+
}, z.core.$strip>>>;
|
|
12007
12857
|
}, z.core.$strip>;
|
|
12008
12858
|
id: z.ZodString;
|
|
12009
12859
|
createdAt: z.ZodString;
|
|
@@ -12204,6 +13054,19 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
12204
13054
|
[x: string]: unknown;
|
|
12205
13055
|
type: string;
|
|
12206
13056
|
}>>]>>;
|
|
13057
|
+
itemOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13058
|
+
orderItemId: z.ZodString;
|
|
13059
|
+
optionSelections: z.ZodArray<z.ZodObject<{
|
|
13060
|
+
kind: z.ZodString;
|
|
13061
|
+
groupName: z.ZodString;
|
|
13062
|
+
valueName: z.ZodString;
|
|
13063
|
+
additionalPrice: z.ZodNumber;
|
|
13064
|
+
}, z.core.$strip>>;
|
|
13065
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
13066
|
+
label: z.ZodString;
|
|
13067
|
+
value: z.ZodString;
|
|
13068
|
+
}, z.core.$strip>>;
|
|
13069
|
+
}, z.core.$strip>>>;
|
|
12207
13070
|
}, z.core.$strip>;
|
|
12208
13071
|
id: z.ZodString;
|
|
12209
13072
|
createdAt: z.ZodString;
|