@sayren/store-sdk 0.29.3 → 0.29.5

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 CHANGED
@@ -213,11 +213,11 @@ export declare const writeDryRunResultSchema: z.ZodObject<{
213
213
  }, z.core.$strip>;
214
214
  export type WriteDryRunResult = z.infer<typeof writeDryRunResultSchema>;
215
215
  export declare const approvalStatusSchema: z.ZodEnum<{
216
+ UNKNOWN: "UNKNOWN";
216
217
  PENDING: "PENDING";
217
218
  FAILED: "FAILED";
218
219
  SUCCEEDED: "SUCCEEDED";
219
220
  EXECUTING: "EXECUTING";
220
- UNKNOWN: "UNKNOWN";
221
221
  REJECTED: "REJECTED";
222
222
  EXPIRED: "EXPIRED";
223
223
  }>;
@@ -225,11 +225,11 @@ export type ApprovalStatus = z.infer<typeof approvalStatusSchema>;
225
225
  export declare const approvalRequestSchema: z.ZodObject<{
226
226
  approvalId: z.ZodString;
227
227
  status: z.ZodEnum<{
228
+ UNKNOWN: "UNKNOWN";
228
229
  PENDING: "PENDING";
229
230
  FAILED: "FAILED";
230
231
  SUCCEEDED: "SUCCEEDED";
231
232
  EXECUTING: "EXECUTING";
232
- UNKNOWN: "UNKNOWN";
233
233
  REJECTED: "REJECTED";
234
234
  EXPIRED: "EXPIRED";
235
235
  }>;
@@ -287,11 +287,11 @@ export declare const approvalRequestSchema: z.ZodObject<{
287
287
  export type ApprovalRequest = z.infer<typeof approvalRequestSchema>;
288
288
  export declare const approvalListQuerySchema: z.ZodObject<{
289
289
  status: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<{
290
+ UNKNOWN: "UNKNOWN";
290
291
  PENDING: "PENDING";
291
292
  FAILED: "FAILED";
292
293
  SUCCEEDED: "SUCCEEDED";
293
294
  EXECUTING: "EXECUTING";
294
- UNKNOWN: "UNKNOWN";
295
295
  REJECTED: "REJECTED";
296
296
  EXPIRED: "EXPIRED";
297
297
  }>>>>;
@@ -306,11 +306,11 @@ export declare const approvalPageSchema: z.ZodObject<{
306
306
  items: z.ZodArray<z.ZodObject<{
307
307
  approvalId: z.ZodString;
308
308
  status: z.ZodEnum<{
309
+ UNKNOWN: "UNKNOWN";
309
310
  PENDING: "PENDING";
310
311
  FAILED: "FAILED";
311
312
  SUCCEEDED: "SUCCEEDED";
312
313
  EXECUTING: "EXECUTING";
313
- UNKNOWN: "UNKNOWN";
314
314
  REJECTED: "REJECTED";
315
315
  EXPIRED: "EXPIRED";
316
316
  }>;
@@ -448,11 +448,11 @@ export declare const analyticsTotalsSchema: z.ZodObject<{
448
448
  export type AnalyticsTotals = z.infer<typeof analyticsTotalsSchema>;
449
449
  export declare const analyticsFunnelStepSchema: z.ZodObject<{
450
450
  step: z.ZodEnum<{
451
- PURCHASE: "PURCHASE";
452
451
  SESSION: "SESSION";
453
452
  PRODUCT_VIEW: "PRODUCT_VIEW";
454
453
  ADD_TO_CART: "ADD_TO_CART";
455
454
  BEGIN_CHECKOUT: "BEGIN_CHECKOUT";
455
+ PURCHASE: "PURCHASE";
456
456
  }>;
457
457
  sessions: z.ZodNumber;
458
458
  rateFromPrevious: z.ZodNullable<z.ZodNumber>;
@@ -477,11 +477,11 @@ export declare const analyticsOverviewSchema: z.ZodObject<{
477
477
  }, z.core.$strip>;
478
478
  funnel: z.ZodArray<z.ZodObject<{
479
479
  step: z.ZodEnum<{
480
- PURCHASE: "PURCHASE";
481
480
  SESSION: "SESSION";
482
481
  PRODUCT_VIEW: "PRODUCT_VIEW";
483
482
  ADD_TO_CART: "ADD_TO_CART";
484
483
  BEGIN_CHECKOUT: "BEGIN_CHECKOUT";
484
+ PURCHASE: "PURCHASE";
485
485
  }>;
486
486
  sessions: z.ZodNumber;
487
487
  rateFromPrevious: z.ZodNullable<z.ZodNumber>;
@@ -581,20 +581,20 @@ export declare const analyticsProductsSchema: z.ZodObject<{
581
581
  }, z.core.$strip>;
582
582
  export type AnalyticsProducts = z.infer<typeof analyticsProductsSchema>;
583
583
  export declare const analyticsChannelSchema: z.ZodEnum<{
584
- PAID: "PAID";
585
584
  DIRECT: "DIRECT";
586
- CAMPAIGN: "CAMPAIGN";
587
- UNKNOWN: "UNKNOWN";
588
585
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
589
586
  SOCIAL: "SOCIAL";
587
+ PAID: "PAID";
590
588
  EMAIL: "EMAIL";
589
+ CAMPAIGN: "CAMPAIGN";
591
590
  REFERRAL: "REFERRAL";
591
+ UNKNOWN: "UNKNOWN";
592
592
  }>;
593
593
  export type AnalyticsChannel = z.infer<typeof analyticsChannelSchema>;
594
594
  export declare const analyticsSourceGroupBySchema: z.ZodEnum<{
595
+ CAMPAIGN: "CAMPAIGN";
595
596
  CHANNEL: "CHANNEL";
596
597
  SOURCE: "SOURCE";
597
- CAMPAIGN: "CAMPAIGN";
598
598
  DEVICE: "DEVICE";
599
599
  }>;
600
600
  export type AnalyticsSourceGroupBy = z.infer<typeof analyticsSourceGroupBySchema>;
@@ -606,23 +606,23 @@ export declare const analyticsSourcesQuerySchema: z.ZodObject<{
606
606
  false: "false";
607
607
  }>>;
608
608
  groupBy: z.ZodOptional<z.ZodEnum<{
609
+ CAMPAIGN: "CAMPAIGN";
609
610
  CHANNEL: "CHANNEL";
610
611
  SOURCE: "SOURCE";
611
- CAMPAIGN: "CAMPAIGN";
612
612
  DEVICE: "DEVICE";
613
613
  }>>;
614
614
  }, z.core.$strip>;
615
615
  export type AnalyticsSourcesParams = z.infer<typeof analyticsSourcesQuerySchema>;
616
616
  export declare const analyticsSourceRowSchema: z.ZodObject<{
617
617
  channel: z.ZodNullable<z.ZodEnum<{
618
- PAID: "PAID";
619
618
  DIRECT: "DIRECT";
620
- CAMPAIGN: "CAMPAIGN";
621
- UNKNOWN: "UNKNOWN";
622
619
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
623
620
  SOCIAL: "SOCIAL";
621
+ PAID: "PAID";
624
622
  EMAIL: "EMAIL";
623
+ CAMPAIGN: "CAMPAIGN";
625
624
  REFERRAL: "REFERRAL";
625
+ UNKNOWN: "UNKNOWN";
626
626
  }>>;
627
627
  source: z.ZodNullable<z.ZodString>;
628
628
  medium: z.ZodNullable<z.ZodString>;
@@ -644,21 +644,21 @@ export declare const analyticsSourceRowSchema: z.ZodObject<{
644
644
  export type AnalyticsSourceRow = z.infer<typeof analyticsSourceRowSchema>;
645
645
  export declare const analyticsSourcesSchema: z.ZodObject<{
646
646
  groupBy: z.ZodEnum<{
647
+ CAMPAIGN: "CAMPAIGN";
647
648
  CHANNEL: "CHANNEL";
648
649
  SOURCE: "SOURCE";
649
- CAMPAIGN: "CAMPAIGN";
650
650
  DEVICE: "DEVICE";
651
651
  }>;
652
652
  rows: z.ZodArray<z.ZodObject<{
653
653
  channel: z.ZodNullable<z.ZodEnum<{
654
- PAID: "PAID";
655
654
  DIRECT: "DIRECT";
656
- CAMPAIGN: "CAMPAIGN";
657
- UNKNOWN: "UNKNOWN";
658
655
  ORGANIC_SEARCH: "ORGANIC_SEARCH";
659
656
  SOCIAL: "SOCIAL";
657
+ PAID: "PAID";
660
658
  EMAIL: "EMAIL";
659
+ CAMPAIGN: "CAMPAIGN";
661
660
  REFERRAL: "REFERRAL";
661
+ UNKNOWN: "UNKNOWN";
662
662
  }>>;
663
663
  source: z.ZodNullable<z.ZodString>;
664
664
  medium: z.ZodNullable<z.ZodString>;
@@ -807,12 +807,12 @@ export declare const analyticsSearchSchema: z.ZodObject<{
807
807
  }, z.core.$strip>;
808
808
  export type AnalyticsSearch = z.infer<typeof analyticsSearchSchema>;
809
809
  export declare const analyticsCheckoutOutcomeSchema: z.ZodEnum<{
810
- OTHER: "OTHER";
811
810
  COMPLETED: "COMPLETED";
812
811
  NOT_OPENED: "NOT_OPENED";
813
812
  USER_CANCELED: "USER_CANCELED";
814
813
  DECLINED: "DECLINED";
815
814
  PREPARE_FAILURE: "PREPARE_FAILURE";
815
+ OTHER: "OTHER";
816
816
  IN_PROGRESS: "IN_PROGRESS";
817
817
  }>;
818
818
  export type AnalyticsCheckoutOutcome = z.infer<typeof analyticsCheckoutOutcomeSchema>;
@@ -820,12 +820,12 @@ export declare const analyticsCheckoutSchema: z.ZodObject<{
820
820
  sessions: z.ZodNumber;
821
821
  outcomes: z.ZodArray<z.ZodObject<{
822
822
  outcome: z.ZodEnum<{
823
- OTHER: "OTHER";
824
823
  COMPLETED: "COMPLETED";
825
824
  NOT_OPENED: "NOT_OPENED";
826
825
  USER_CANCELED: "USER_CANCELED";
827
826
  DECLINED: "DECLINED";
828
827
  PREPARE_FAILURE: "PREPARE_FAILURE";
828
+ OTHER: "OTHER";
829
829
  IN_PROGRESS: "IN_PROGRESS";
830
830
  }>;
831
831
  sessions: z.ZodNumber;
@@ -1264,6 +1264,7 @@ export declare const claimTypeSchema: z.ZodEnum<{
1264
1264
  }>;
1265
1265
  export type ClaimType = z.infer<typeof claimTypeSchema>;
1266
1266
  export declare const claimStatusSchema: z.ZodEnum<{
1267
+ COMPLETED: "COMPLETED";
1267
1268
  REJECTED: "REJECTED";
1268
1269
  REQUESTED: "REQUESTED";
1269
1270
  HELD: "HELD";
@@ -1271,7 +1272,6 @@ export declare const claimStatusSchema: z.ZodEnum<{
1271
1272
  COLLECTED: "COLLECTED";
1272
1273
  REDELIVERING: "REDELIVERING";
1273
1274
  APPROVED: "APPROVED";
1274
- COMPLETED: "COMPLETED";
1275
1275
  WITHDRAWN: "WITHDRAWN";
1276
1276
  }>;
1277
1277
  export type ClaimStatus = z.infer<typeof claimStatusSchema>;
@@ -1308,6 +1308,7 @@ export declare const claimSchema: z.ZodObject<{
1308
1308
  CANCEL: "CANCEL";
1309
1309
  }>;
1310
1310
  status: z.ZodEnum<{
1311
+ COMPLETED: "COMPLETED";
1311
1312
  REJECTED: "REJECTED";
1312
1313
  REQUESTED: "REQUESTED";
1313
1314
  HELD: "HELD";
@@ -1315,7 +1316,6 @@ export declare const claimSchema: z.ZodObject<{
1315
1316
  COLLECTED: "COLLECTED";
1316
1317
  REDELIVERING: "REDELIVERING";
1317
1318
  APPROVED: "APPROVED";
1318
- COMPLETED: "COMPLETED";
1319
1319
  WITHDRAWN: "WITHDRAWN";
1320
1320
  }>;
1321
1321
  orderId: z.ZodString;
@@ -1397,6 +1397,7 @@ export declare const claimDetailSchema: z.ZodObject<{
1397
1397
  CANCEL: "CANCEL";
1398
1398
  }>;
1399
1399
  status: z.ZodEnum<{
1400
+ COMPLETED: "COMPLETED";
1400
1401
  REJECTED: "REJECTED";
1401
1402
  REQUESTED: "REQUESTED";
1402
1403
  HELD: "HELD";
@@ -1404,7 +1405,6 @@ export declare const claimDetailSchema: z.ZodObject<{
1404
1405
  COLLECTED: "COLLECTED";
1405
1406
  REDELIVERING: "REDELIVERING";
1406
1407
  APPROVED: "APPROVED";
1407
- COMPLETED: "COMPLETED";
1408
1408
  WITHDRAWN: "WITHDRAWN";
1409
1409
  }>;
1410
1410
  orderId: z.ZodString;
@@ -1455,6 +1455,7 @@ export declare const claimDetailSchema: z.ZodObject<{
1455
1455
  }, z.core.$strip>>;
1456
1456
  histories: z.ZodOptional<z.ZodArray<z.ZodObject<{
1457
1457
  status: z.ZodEnum<{
1458
+ COMPLETED: "COMPLETED";
1458
1459
  REJECTED: "REJECTED";
1459
1460
  REQUESTED: "REQUESTED";
1460
1461
  HELD: "HELD";
@@ -1462,7 +1463,6 @@ export declare const claimDetailSchema: z.ZodObject<{
1462
1463
  COLLECTED: "COLLECTED";
1463
1464
  REDELIVERING: "REDELIVERING";
1464
1465
  APPROVED: "APPROVED";
1465
- COMPLETED: "COMPLETED";
1466
1466
  WITHDRAWN: "WITHDRAWN";
1467
1467
  }>;
1468
1468
  actor: z.ZodEnum<{
@@ -1530,7 +1530,7 @@ export declare const COLLECTION_SLUG_PATTERN: RegExp;
1530
1530
  export declare const COLLECTION_TYPES: readonly ["MANUAL", "AUTOMATIC"];
1531
1531
  export type CollectionType = (typeof COLLECTION_TYPES)[number];
1532
1532
  /**
1533
- * 상품 정렬 — `MANUAL`은 직접 정한 순서(직접 선택 컬렉션만)다. `BEST_SELLING`(판매량순)은 판매량 집계가 열릴 때 받는다.
1533
+ * 상품 정렬 — `MANUAL`은 직접 정한 순서(직접 선택 컬렉션만)다. `BEST_SELLING`(판매량순)은 판매 수량이 많은 순이다(M3).
1534
1534
  * 저장 값 전체 목록이고, 쓰기에서 받는 값은 `collectionProductSortRequestSchema`다.
1535
1535
  */
1536
1536
  export declare const COLLECTION_PRODUCT_SORTS: readonly ["MANUAL", "LATEST", "BEST_SELLING", "PRICE_ASC", "PRICE_DESC", "REVIEW_COUNT", "RATING_DESC", "RECOMMEND"];
@@ -1540,6 +1540,7 @@ export declare const collectionProductSortRequestSchema: z.ZodEnum<{
1540
1540
  PRICE_DESC: "PRICE_DESC";
1541
1541
  MANUAL: "MANUAL";
1542
1542
  LATEST: "LATEST";
1543
+ BEST_SELLING: "BEST_SELLING";
1543
1544
  REVIEW_COUNT: "REVIEW_COUNT";
1544
1545
  RATING_DESC: "RATING_DESC";
1545
1546
  RECOMMEND: "RECOMMEND";
@@ -1566,9 +1567,17 @@ export declare const MAX_COLLECTION_RULE_CATEGORIES = 20;
1566
1567
  export declare const MAX_COLLECTION_CREATED_WITHIN_DAYS = 365;
1567
1568
  /** 미리보기(`POST /v1/collections/preview`)가 싣는 상품 최대 개수 */
1568
1569
  export declare const COLLECTION_PREVIEW_SIZE = 20;
1570
+ /** 판매량 상위 조건의 기간 선택지(일, 오늘 포함 한국 날짜) */
1571
+ export declare const COLLECTION_BEST_SELLING_DAYS: readonly [7, 30, 90];
1572
+ export type CollectionBestSellingDays = (typeof COLLECTION_BEST_SELLING_DAYS)[number];
1573
+ /** 판매량 상위 조건이 담는 상품 최대 개수 */
1574
+ export declare const MAX_COLLECTION_BEST_SELLING_TOP = 100;
1575
+ /** 판매량순(`BEST_SELLING`) 정렬의 기간 — 판매량 상위 조건이 없을 때 쓴다 */
1576
+ export declare const COLLECTION_SALES_SORT_DEFAULT_DAYS: CollectionBestSellingDays;
1569
1577
  /**
1570
1578
  * 조건 하나 — `field`로 가른다. 가격은 즉시할인을 반영한 판매가(`discountedPrice ?? salePrice`)다.
1571
- * 판매량 상위(`bestSelling`)는 판매량 집계가 열릴 때 더한다.
1579
+ * 판매량 상위(`bestSelling`)는 술어가 아니라 순위 자르기다. 다른 조건을 모두 만족한 상품 중 판매 수량 상위 N개만 남긴다(`rankBestSelling`).
1580
+ * 판매 수량은 실결제 주문의 결제 수량에서 취소·반품 수량을 뺀 값이고, 날짜는 주문 시각의 한국 날짜다. 집계는 최대 10분 늦다.
1572
1581
  */
1573
1582
  export declare const collectionRuleSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1574
1583
  field: z.ZodLiteral<"createdWithinDays">;
@@ -1583,6 +1592,10 @@ export declare const collectionRuleSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
1583
1592
  }, z.core.$strip>, z.ZodObject<{
1584
1593
  field: z.ZodLiteral<"discounted">;
1585
1594
  value: z.ZodLiteral<true>;
1595
+ }, z.core.$strip>, z.ZodObject<{
1596
+ field: z.ZodLiteral<"bestSelling">;
1597
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1598
+ top: z.ZodNumber;
1586
1599
  }, z.core.$strip>], "field">;
1587
1600
  export type CollectionRule = z.infer<typeof collectionRuleSchema>;
1588
1601
  export type CollectionRuleField = CollectionRule["field"];
@@ -1600,6 +1613,10 @@ export declare const collectionRulesSchema: z.ZodArray<z.ZodDiscriminatedUnion<[
1600
1613
  }, z.core.$strip>, z.ZodObject<{
1601
1614
  field: z.ZodLiteral<"discounted">;
1602
1615
  value: z.ZodLiteral<true>;
1616
+ }, z.core.$strip>, z.ZodObject<{
1617
+ field: z.ZodLiteral<"bestSelling">;
1618
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1619
+ top: z.ZodNumber;
1603
1620
  }, z.core.$strip>], "field">>;
1604
1621
  /**
1605
1622
  * 응답의 조건 — 이 SDK가 아는 조건이거나 뒤에 더해질 조건(`field`만 확인한다)이다. 새 조건이 생겨도 옛 SDK의 응답 검증이 깨지지 않는다.
@@ -1617,6 +1634,10 @@ export declare const collectionRuleViewSchema: z.ZodUnion<readonly [z.ZodObject<
1617
1634
  }, z.core.$strip>, z.ZodObject<{
1618
1635
  field: z.ZodLiteral<"discounted">;
1619
1636
  value: z.ZodLiteral<true>;
1637
+ }, z.core.$strip>, z.ZodObject<{
1638
+ field: z.ZodLiteral<"bestSelling">;
1639
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1640
+ top: z.ZodNumber;
1620
1641
  }, z.core.$strip>, z.ZodObject<{
1621
1642
  field: z.ZodString;
1622
1643
  }, z.core.$loose>]>;
@@ -1643,11 +1664,33 @@ export declare function descendantCategoryIdsOf(roots: readonly string[], catego
1643
1664
  /**
1644
1665
  * 조건 판정 함수를 만든다 — 모든 조건을 만족해야 true다(AND). 카테고리 트리는 여기서 한 번만 푼다.
1645
1666
  * 알 수 없는 조건(`field`)은 만족하지 않는 것으로 본다. 모르는 조건을 건너뛰면 상품이 예고 없이 늘어난다.
1667
+ * 판매량 상위(`bestSelling`)는 여기서 모두 통과시킨다. 순위 자르기는 판매량을 아는 호출부가 `rankBestSelling`으로 한다.
1646
1668
  * 판매 상태는 보지 않는다. 판매 중만 거르는 것은 호출부다.
1647
1669
  */
1648
1670
  export declare function collectionRulesPredicate(rules: readonly CollectionRuleView[], context: CollectionRuleContext): (product: CollectionRuleProduct) => boolean;
1649
1671
  /** 상품 하나가 조건을 모두 만족하는가 — 여러 상품을 판정할 때는 `collectionRulesPredicate`를 한 번 만들어 쓴다 */
1650
1672
  export declare function matchesCollectionRules(product: CollectionRuleProduct, rules: readonly CollectionRuleView[], context: CollectionRuleContext): boolean;
1673
+ /** 판매량 상위 조건 — 없으면 null. 같은 조건은 한 번만 쓰므로 첫 번째다 */
1674
+ export declare function bestSellingRuleOf(rules: readonly CollectionRuleView[]): {
1675
+ days: CollectionBestSellingDays;
1676
+ top: number;
1677
+ } | null;
1678
+ /**
1679
+ * 판매량 비교 — 판매 수량이 많은 순, 같으면 최근 등록 순, 그것도 같으면 상품 id 순이다. 결과가 입력 순서에 기대지 않는다.
1680
+ * `sales`에 없는 상품은 0개다.
1681
+ */
1682
+ export declare function compareBySales<T extends {
1683
+ productId: string;
1684
+ createdAt: string;
1685
+ }>(sales: ReadonlyMap<string, number>): (a: T, b: T) => number;
1686
+ /**
1687
+ * 판매량 상위 자르기 — 다른 조건을 통과한 상품 중 판매 수량이 1개 이상인 상품을 `compareBySales` 순으로 `top`개 남긴다.
1688
+ * 판매가 없는 상품은 넣지 않는다.
1689
+ */
1690
+ export declare function rankBestSelling<T extends {
1691
+ productId: string;
1692
+ createdAt: string;
1693
+ }>(products: readonly T[], sales: ReadonlyMap<string, number>, top: number): T[];
1651
1694
  /** 조건이 참조하는 카테고리 id — 카테고리 삭제의 참조 검사에 쓴다 */
1652
1695
  export declare function collectionRuleCategoryIds(rules: readonly CollectionRuleView[]): string[];
1653
1696
  export declare const collectionSchema: z.ZodObject<{
@@ -1671,6 +1714,10 @@ export declare const collectionSchema: z.ZodObject<{
1671
1714
  }, z.core.$strip>, z.ZodObject<{
1672
1715
  field: z.ZodLiteral<"discounted">;
1673
1716
  value: z.ZodLiteral<true>;
1717
+ }, z.core.$strip>, z.ZodObject<{
1718
+ field: z.ZodLiteral<"bestSelling">;
1719
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1720
+ top: z.ZodNumber;
1674
1721
  }, z.core.$strip>, z.ZodObject<{
1675
1722
  field: z.ZodString;
1676
1723
  }, z.core.$loose>]>>>;
@@ -1686,6 +1733,7 @@ export declare const collectionSchema: z.ZodObject<{
1686
1733
  SCHEDULED: "SCHEDULED";
1687
1734
  HIDDEN: "HIDDEN";
1688
1735
  }>;
1736
+ salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1689
1737
  productCount: z.ZodNumber;
1690
1738
  revision: z.ZodNumber;
1691
1739
  createdAt: z.ZodString;
@@ -1695,7 +1743,7 @@ export type Collection = z.infer<typeof collectionSchema>;
1695
1743
  /**
1696
1744
  * `POST /v1/collections` — 컬렉션을 만든다. `slug`를 생략하면 `c-{id 뒤 8자}`로 만든다.
1697
1745
  * 직접 선택(`MANUAL`)은 `productIds`가 처음 담을 상품과 순서다. 조건 자동(`AUTOMATIC`)은 `rules`가 있어야 하고 `productIds`를 받지 않는다.
1698
- * `productSort`를 생략하면 직접 선택은 `MANUAL`, 조건 자동은 `LATEST`다. 조건 자동은 `MANUAL`을 쓸 수 없다.
1746
+ * `productSort`를 생략하면 직접 선택은 `MANUAL`, 조건 자동은 `LATEST`(판매량 상위 조건이 있으면 `BEST_SELLING`)다. 조건 자동은 `MANUAL`을 쓸 수 없다.
1699
1747
  */
1700
1748
  export declare const collectionCreateRequestSchema: z.ZodObject<{
1701
1749
  title: z.ZodString;
@@ -1717,6 +1765,10 @@ export declare const collectionCreateRequestSchema: z.ZodObject<{
1717
1765
  }, z.core.$strip>, z.ZodObject<{
1718
1766
  field: z.ZodLiteral<"discounted">;
1719
1767
  value: z.ZodLiteral<true>;
1768
+ }, z.core.$strip>, z.ZodObject<{
1769
+ field: z.ZodLiteral<"bestSelling">;
1770
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1771
+ top: z.ZodNumber;
1720
1772
  }, z.core.$strip>], "field">>>;
1721
1773
  description: z.ZodDefault<z.ZodString>;
1722
1774
  imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
@@ -1725,6 +1777,7 @@ export declare const collectionCreateRequestSchema: z.ZodObject<{
1725
1777
  PRICE_DESC: "PRICE_DESC";
1726
1778
  MANUAL: "MANUAL";
1727
1779
  LATEST: "LATEST";
1780
+ BEST_SELLING: "BEST_SELLING";
1728
1781
  REVIEW_COUNT: "REVIEW_COUNT";
1729
1782
  RATING_DESC: "RATING_DESC";
1730
1783
  RECOMMEND: "RECOMMEND";
@@ -1760,6 +1813,10 @@ export declare const collectionPatchRequestSchema: z.ZodObject<{
1760
1813
  }, z.core.$strip>, z.ZodObject<{
1761
1814
  field: z.ZodLiteral<"discounted">;
1762
1815
  value: z.ZodLiteral<true>;
1816
+ }, z.core.$strip>, z.ZodObject<{
1817
+ field: z.ZodLiteral<"bestSelling">;
1818
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1819
+ top: z.ZodNumber;
1763
1820
  }, z.core.$strip>], "field">>>;
1764
1821
  description: z.ZodOptional<z.ZodString>;
1765
1822
  imageUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
@@ -1768,6 +1825,7 @@ export declare const collectionPatchRequestSchema: z.ZodObject<{
1768
1825
  PRICE_DESC: "PRICE_DESC";
1769
1826
  MANUAL: "MANUAL";
1770
1827
  LATEST: "LATEST";
1828
+ BEST_SELLING: "BEST_SELLING";
1771
1829
  REVIEW_COUNT: "REVIEW_COUNT";
1772
1830
  RATING_DESC: "RATING_DESC";
1773
1831
  RECOMMEND: "RECOMMEND";
@@ -1837,6 +1895,10 @@ export declare const collectionPageSchema: z.ZodObject<{
1837
1895
  }, z.core.$strip>, z.ZodObject<{
1838
1896
  field: z.ZodLiteral<"discounted">;
1839
1897
  value: z.ZodLiteral<true>;
1898
+ }, z.core.$strip>, z.ZodObject<{
1899
+ field: z.ZodLiteral<"bestSelling">;
1900
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1901
+ top: z.ZodNumber;
1840
1902
  }, z.core.$strip>, z.ZodObject<{
1841
1903
  field: z.ZodString;
1842
1904
  }, z.core.$loose>]>>>;
@@ -1852,6 +1914,7 @@ export declare const collectionPageSchema: z.ZodObject<{
1852
1914
  SCHEDULED: "SCHEDULED";
1853
1915
  HIDDEN: "HIDDEN";
1854
1916
  }>;
1917
+ salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1855
1918
  productCount: z.ZodNumber;
1856
1919
  revision: z.ZodNumber;
1857
1920
  createdAt: z.ZodString;
@@ -1909,12 +1972,17 @@ export declare const collectionPreviewRequestSchema: z.ZodObject<{
1909
1972
  }, z.core.$strip>, z.ZodObject<{
1910
1973
  field: z.ZodLiteral<"discounted">;
1911
1974
  value: z.ZodLiteral<true>;
1975
+ }, z.core.$strip>, z.ZodObject<{
1976
+ field: z.ZodLiteral<"bestSelling">;
1977
+ days: z.ZodUnion<readonly [z.ZodLiteral<7>, z.ZodLiteral<30>, z.ZodLiteral<90>]>;
1978
+ top: z.ZodNumber;
1912
1979
  }, z.core.$strip>], "field">>;
1913
1980
  productSort: z.ZodOptional<z.ZodEnum<{
1914
1981
  PRICE_ASC: "PRICE_ASC";
1915
1982
  PRICE_DESC: "PRICE_DESC";
1916
1983
  MANUAL: "MANUAL";
1917
1984
  LATEST: "LATEST";
1985
+ BEST_SELLING: "BEST_SELLING";
1918
1986
  REVIEW_COUNT: "REVIEW_COUNT";
1919
1987
  RATING_DESC: "RATING_DESC";
1920
1988
  RECOMMEND: "RECOMMEND";
@@ -1933,6 +2001,7 @@ export declare const collectionPreviewSchema: z.ZodObject<{
1933
2001
  position: z.ZodNumber;
1934
2002
  addedAt: z.ZodString;
1935
2003
  }, z.core.$strip>>;
2004
+ salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1936
2005
  }, z.core.$strip>;
1937
2006
  export type CollectionPreview = z.infer<typeof collectionPreviewSchema>;
1938
2007
  //#endregion
@@ -2526,10 +2595,10 @@ export type CustomerOrder = z.infer<typeof customerOrderSchema>;
2526
2595
  /** `POST /v1/customers/{id}/withdraw` 본문 */
2527
2596
  export declare const withdrawCustomerRequestSchema: z.ZodObject<{
2528
2597
  reason: z.ZodEnum<{
2598
+ OTHER: "OTHER";
2529
2599
  BUYER_REQUEST: "BUYER_REQUEST";
2530
2600
  DORMANT: "DORMANT";
2531
2601
  ABUSE: "ABUSE";
2532
- OTHER: "OTHER";
2533
2602
  }>;
2534
2603
  memo: z.ZodOptional<z.ZodString>;
2535
2604
  }, z.core.$strip>;
@@ -3263,8 +3332,8 @@ export declare function requiresCollection(type: string | null | undefined): boo
3263
3332
  export declare const NO_SHIPPING_BUNDLE_KEY = "none";
3264
3333
  /** 배송비 유형 — 무료·유료·조건부 무료 */
3265
3334
  export declare const deliveryTypeSchema: z.ZodEnum<{
3266
- FREE: "FREE";
3267
3335
  PAID: "PAID";
3336
+ FREE: "FREE";
3268
3337
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3269
3338
  }>;
3270
3339
  export type DeliveryType = z.infer<typeof deliveryTypeSchema>;
@@ -3275,8 +3344,8 @@ export declare const productFulfillmentCreateSchema: z.ZodDiscriminatedUnion<[z.
3275
3344
  type: z.ZodLiteral<"SHIPPING">;
3276
3345
  shipping: z.ZodOptional<z.ZodObject<{
3277
3346
  deliveryType: z.ZodDefault<z.ZodEnum<{
3278
- FREE: "FREE";
3279
3347
  PAID: "PAID";
3348
+ FREE: "FREE";
3280
3349
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3281
3350
  }>>;
3282
3351
  deliveryFee: z.ZodOptional<z.ZodNumber>;
@@ -3298,8 +3367,8 @@ export declare const productFulfillmentUpdateSchema: z.ZodDiscriminatedUnion<[z.
3298
3367
  type: z.ZodLiteral<"SHIPPING">;
3299
3368
  shipping: z.ZodObject<{
3300
3369
  deliveryType: z.ZodEnum<{
3301
- FREE: "FREE";
3302
3370
  PAID: "PAID";
3371
+ FREE: "FREE";
3303
3372
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3304
3373
  }>;
3305
3374
  deliveryFee: z.ZodNumber;
@@ -3319,8 +3388,8 @@ export declare const productFulfillmentSchema: z.ZodDiscriminatedUnion<[z.ZodObj
3319
3388
  type: z.ZodLiteral<"SHIPPING">;
3320
3389
  shipping: z.ZodObject<{
3321
3390
  deliveryType: z.ZodEnum<{
3322
- FREE: "FREE";
3323
3391
  PAID: "PAID";
3392
+ FREE: "FREE";
3324
3393
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3325
3394
  }>;
3326
3395
  deliveryFee: z.ZodNumber;
@@ -3358,8 +3427,8 @@ export declare const productFulfillmentResponseSchema: z.ZodUnion<readonly [z.Zo
3358
3427
  type: z.ZodLiteral<"SHIPPING">;
3359
3428
  shipping: z.ZodObject<{
3360
3429
  deliveryType: z.ZodEnum<{
3361
- FREE: "FREE";
3362
3430
  PAID: "PAID";
3431
+ FREE: "FREE";
3363
3432
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
3364
3433
  }>;
3365
3434
  deliveryFee: z.ZodNumber;
@@ -3878,16 +3947,16 @@ export interface OrderItemListParams extends PageParams {
3878
3947
  testPayment?: "true" | "false";
3879
3948
  }
3880
3949
  export declare const deliveryMethodSchema: z.ZodEnum<{
3881
- COURIER: "COURIER";
3882
3950
  DIRECT: "DIRECT";
3951
+ COURIER: "COURIER";
3883
3952
  QUICK: "QUICK";
3884
3953
  NOTHING: "NOTHING";
3885
3954
  }>;
3886
3955
  export type DeliveryMethod = z.infer<typeof deliveryMethodSchema>;
3887
3956
  export declare const dispatchRequestSchema: z.ZodObject<{
3888
3957
  deliveryMethod: z.ZodEnum<{
3889
- COURIER: "COURIER";
3890
3958
  DIRECT: "DIRECT";
3959
+ COURIER: "COURIER";
3891
3960
  QUICK: "QUICK";
3892
3961
  NOTHING: "NOTHING";
3893
3962
  }>;
@@ -3899,8 +3968,8 @@ export type DispatchRequest = z.infer<typeof dispatchRequestSchema>;
3899
3968
  export declare const deliveryInfoSchema: z.ZodObject<{
3900
3969
  orderItemId: z.ZodString;
3901
3970
  deliveryMethod: z.ZodEnum<{
3902
- COURIER: "COURIER";
3903
3971
  DIRECT: "DIRECT";
3972
+ COURIER: "COURIER";
3904
3973
  QUICK: "QUICK";
3905
3974
  NOTHING: "NOTHING";
3906
3975
  }>;
@@ -3926,8 +3995,8 @@ export declare const trackingStageResponseSchema: z.ZodString;
3926
3995
  export declare const deliveryStatusSchema: z.ZodObject<{
3927
3996
  orderItemId: z.ZodString;
3928
3997
  deliveryMethod: z.ZodEnum<{
3929
- COURIER: "COURIER";
3930
3998
  DIRECT: "DIRECT";
3999
+ COURIER: "COURIER";
3931
4000
  QUICK: "QUICK";
3932
4001
  NOTHING: "NOTHING";
3933
4002
  }>;
@@ -5273,11 +5342,11 @@ export type PointEntry = z.infer<typeof pointEntrySchema>;
5273
5342
  export declare const pointLotSchema: z.ZodObject<{
5274
5343
  lotId: z.ZodString;
5275
5344
  source: z.ZodUnion<readonly [z.ZodEnum<{
5345
+ PURCHASE: "PURCHASE";
5276
5346
  REFUND_RESTORE: "REFUND_RESTORE";
5277
5347
  ADJUST: "ADJUST";
5278
5348
  OPENING: "OPENING";
5279
5349
  REVIEW: "REVIEW";
5280
- PURCHASE: "PURCHASE";
5281
5350
  }>, z.ZodString]>;
5282
5351
  amount: z.ZodNumber;
5283
5352
  remaining: z.ZodNumber;
@@ -5292,11 +5361,11 @@ export declare const customerPointsSchema: z.ZodObject<{
5292
5361
  lots: z.ZodArray<z.ZodObject<{
5293
5362
  lotId: z.ZodString;
5294
5363
  source: z.ZodUnion<readonly [z.ZodEnum<{
5364
+ PURCHASE: "PURCHASE";
5295
5365
  REFUND_RESTORE: "REFUND_RESTORE";
5296
5366
  ADJUST: "ADJUST";
5297
5367
  OPENING: "OPENING";
5298
5368
  REVIEW: "REVIEW";
5299
- PURCHASE: "PURCHASE";
5300
5369
  }>, z.ZodString]>;
5301
5370
  amount: z.ZodNumber;
5302
5371
  remaining: z.ZodNumber;
@@ -5656,8 +5725,8 @@ export declare const productSchema: z.ZodObject<{
5656
5725
  type: z.ZodLiteral<"SHIPPING">;
5657
5726
  shipping: z.ZodObject<{
5658
5727
  deliveryType: z.ZodEnum<{
5659
- FREE: "FREE";
5660
5728
  PAID: "PAID";
5729
+ FREE: "FREE";
5661
5730
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
5662
5731
  }>;
5663
5732
  deliveryFee: z.ZodNumber;
@@ -5879,8 +5948,8 @@ export declare const productCreateRequestSchema: z.ZodObject<{
5879
5948
  type: z.ZodLiteral<"SHIPPING">;
5880
5949
  shipping: z.ZodOptional<z.ZodObject<{
5881
5950
  deliveryType: z.ZodDefault<z.ZodEnum<{
5882
- FREE: "FREE";
5883
5951
  PAID: "PAID";
5952
+ FREE: "FREE";
5884
5953
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
5885
5954
  }>>;
5886
5955
  deliveryFee: z.ZodOptional<z.ZodNumber>;
@@ -5965,8 +6034,8 @@ export declare const productReplaceRequestSchema: z.ZodObject<{
5965
6034
  type: z.ZodLiteral<"SHIPPING">;
5966
6035
  shipping: z.ZodObject<{
5967
6036
  deliveryType: z.ZodEnum<{
5968
- FREE: "FREE";
5969
6037
  PAID: "PAID";
6038
+ FREE: "FREE";
5970
6039
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
5971
6040
  }>;
5972
6041
  deliveryFee: z.ZodNumber;
@@ -6059,8 +6128,8 @@ export declare const productPatchRequestSchema: z.ZodObject<{
6059
6128
  type: z.ZodLiteral<"SHIPPING">;
6060
6129
  shipping: z.ZodObject<{
6061
6130
  deliveryType: z.ZodEnum<{
6062
- FREE: "FREE";
6063
6131
  PAID: "PAID";
6132
+ FREE: "FREE";
6064
6133
  CONDITIONAL_FREE: "CONDITIONAL_FREE";
6065
6134
  }>;
6066
6135
  deliveryFee: z.ZodNumber;
@@ -6084,9 +6153,9 @@ export type ProductPatchRequest = z.infer<typeof productPatchRequestSchema>;
6084
6153
  export declare const productSortSchema: z.ZodEnum<{
6085
6154
  "createdAt.desc": "createdAt.desc";
6086
6155
  "createdAt.asc": "createdAt.asc";
6087
- "updatedAt.desc": "updatedAt.desc";
6088
6156
  "salePrice.asc": "salePrice.asc";
6089
6157
  "salePrice.desc": "salePrice.desc";
6158
+ "updatedAt.desc": "updatedAt.desc";
6090
6159
  }>;
6091
6160
  export type ProductSort = z.infer<typeof productSortSchema>;
6092
6161
  export interface ProductListParams extends PageParams {
@@ -6112,9 +6181,9 @@ export declare const productListQuerySchema: z.ZodObject<{
6112
6181
  sort: z.ZodOptional<z.ZodEnum<{
6113
6182
  "createdAt.desc": "createdAt.desc";
6114
6183
  "createdAt.asc": "createdAt.asc";
6115
- "updatedAt.desc": "updatedAt.desc";
6116
6184
  "salePrice.asc": "salePrice.asc";
6117
6185
  "salePrice.desc": "salePrice.desc";
6186
+ "updatedAt.desc": "updatedAt.desc";
6118
6187
  }>>;
6119
6188
  }, z.core.$strip>;
6120
6189
  export declare const discountRequestSchema: z.ZodObject<{
@@ -7021,9 +7090,9 @@ export type StorefrontDeploymentLog = z.infer<typeof storefrontDeploymentLogSche
7021
7090
  export declare const storefrontDeploymentSchema: z.ZodObject<{
7022
7091
  siteId: z.ZodString;
7023
7092
  status: z.ZodEnum<{
7093
+ IN_PROGRESS: "IN_PROGRESS";
7024
7094
  FAILED: "FAILED";
7025
7095
  SUCCEEDED: "SUCCEEDED";
7026
- IN_PROGRESS: "IN_PROGRESS";
7027
7096
  }>;
7028
7097
  url: z.ZodString;
7029
7098
  startedAt: z.ZodString;
@@ -7481,8 +7550,8 @@ export declare const runStorefrontCheckRequestSchema: z.ZodObject<{
7481
7550
  }, z.core.$strip>;
7482
7551
  export type RunStorefrontCheckRequest = z.infer<typeof runStorefrontCheckRequestSchema>;
7483
7552
  export declare const storefrontCheckStatusSchema: z.ZodEnum<{
7484
- FAILED: "FAILED";
7485
7553
  UNKNOWN: "UNKNOWN";
7554
+ FAILED: "FAILED";
7486
7555
  RUNNING: "RUNNING";
7487
7556
  QUEUED: "QUEUED";
7488
7557
  PASSED: "PASSED";
@@ -7495,8 +7564,8 @@ export declare const storefrontCheckSchema: z.ZodObject<{
7495
7564
  checkId: z.ZodString;
7496
7565
  check: z.ZodString;
7497
7566
  status: z.ZodEnum<{
7498
- FAILED: "FAILED";
7499
7567
  UNKNOWN: "UNKNOWN";
7568
+ FAILED: "FAILED";
7500
7569
  RUNNING: "RUNNING";
7501
7570
  QUEUED: "QUEUED";
7502
7571
  PASSED: "PASSED";
@@ -8317,7 +8386,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8317
8386
  fulfillment: UnknownFulfillment | {
8318
8387
  type: "SHIPPING";
8319
8388
  shipping: {
8320
- deliveryType: "FREE" | "PAID" | "CONDITIONAL_FREE";
8389
+ deliveryType: "PAID" | "FREE" | "CONDITIONAL_FREE";
8321
8390
  deliveryFee: number;
8322
8391
  conditionalFreeAmount: number | null;
8323
8392
  shippingAddressId: string | null;
@@ -8415,7 +8484,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8415
8484
  fulfillment: UnknownFulfillment | {
8416
8485
  type: "SHIPPING";
8417
8486
  shipping: {
8418
- deliveryType: "FREE" | "PAID" | "CONDITIONAL_FREE";
8487
+ deliveryType: "PAID" | "FREE" | "CONDITIONAL_FREE";
8419
8488
  deliveryFee: number;
8420
8489
  conditionalFreeAmount: number | null;
8421
8490
  shippingAddressId: string | null;
@@ -8513,7 +8582,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8513
8582
  fulfillment: UnknownFulfillment | {
8514
8583
  type: "SHIPPING";
8515
8584
  shipping: {
8516
- deliveryType: "FREE" | "PAID" | "CONDITIONAL_FREE";
8585
+ deliveryType: "PAID" | "FREE" | "CONDITIONAL_FREE";
8517
8586
  deliveryFee: number;
8518
8587
  conditionalFreeAmount: number | null;
8519
8588
  shippingAddressId: string | null;
@@ -8853,6 +8922,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
8853
8922
  } | {
8854
8923
  field: "discounted";
8855
8924
  value: true;
8925
+ } | {
8926
+ field: "bestSelling";
8927
+ days: 7 | 30 | 90;
8928
+ top: number;
8856
8929
  } | {
8857
8930
  [x: string]: unknown;
8858
8931
  field: string;
@@ -8864,6 +8937,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8864
8937
  metaTitle: string | null;
8865
8938
  metaDescription: string | null;
8866
8939
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
8940
+ salesComputedAt: string | null;
8867
8941
  productCount: number;
8868
8942
  revision: number;
8869
8943
  createdAt: string;
@@ -8898,6 +8972,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
8898
8972
  } | {
8899
8973
  field: "discounted";
8900
8974
  value: true;
8975
+ } | {
8976
+ field: "bestSelling";
8977
+ days: 7 | 30 | 90;
8978
+ top: number;
8901
8979
  } | {
8902
8980
  [x: string]: unknown;
8903
8981
  field: string;
@@ -8909,6 +8987,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8909
8987
  metaTitle: string | null;
8910
8988
  metaDescription: string | null;
8911
8989
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
8990
+ salesComputedAt: string | null;
8912
8991
  productCount: number;
8913
8992
  revision: number;
8914
8993
  createdAt: string;
@@ -8936,6 +9015,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
8936
9015
  } | {
8937
9016
  field: "discounted";
8938
9017
  value: true;
9018
+ } | {
9019
+ field: "bestSelling";
9020
+ days: 7 | 30 | 90;
9021
+ top: number;
8939
9022
  } | {
8940
9023
  [x: string]: unknown;
8941
9024
  field: string;
@@ -8947,6 +9030,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8947
9030
  metaTitle: string | null;
8948
9031
  metaDescription: string | null;
8949
9032
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
9033
+ salesComputedAt: string | null;
8950
9034
  productCount: number;
8951
9035
  revision: number;
8952
9036
  createdAt: string;
@@ -8973,6 +9057,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
8973
9057
  } | {
8974
9058
  field: "discounted";
8975
9059
  value: true;
9060
+ } | {
9061
+ field: "bestSelling";
9062
+ days: 7 | 30 | 90;
9063
+ top: number;
8976
9064
  } | {
8977
9065
  [x: string]: unknown;
8978
9066
  field: string;
@@ -8984,6 +9072,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
8984
9072
  metaTitle: string | null;
8985
9073
  metaDescription: string | null;
8986
9074
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
9075
+ salesComputedAt: string | null;
8987
9076
  productCount: number;
8988
9077
  revision: number;
8989
9078
  createdAt: string;
@@ -9031,6 +9120,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
9031
9120
  } | {
9032
9121
  field: "discounted";
9033
9122
  value: true;
9123
+ } | {
9124
+ field: "bestSelling";
9125
+ days: 7 | 30 | 90;
9126
+ top: number;
9034
9127
  } | {
9035
9128
  [x: string]: unknown;
9036
9129
  field: string;
@@ -9042,6 +9135,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9042
9135
  metaTitle: string | null;
9043
9136
  metaDescription: string | null;
9044
9137
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
9138
+ salesComputedAt: string | null;
9045
9139
  productCount: number;
9046
9140
  revision: number;
9047
9141
  createdAt: string;
@@ -9069,6 +9163,10 @@ export declare function createStoreClient(options: StoreClientOptions): {
9069
9163
  } | {
9070
9164
  field: "discounted";
9071
9165
  value: true;
9166
+ } | {
9167
+ field: "bestSelling";
9168
+ days: 7 | 30 | 90;
9169
+ top: number;
9072
9170
  } | {
9073
9171
  [x: string]: unknown;
9074
9172
  field: string;
@@ -9080,6 +9178,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9080
9178
  metaTitle: string | null;
9081
9179
  metaDescription: string | null;
9082
9180
  state: "ACTIVE" | "ENDED" | "SCHEDULED" | "HIDDEN";
9181
+ salesComputedAt: string | null;
9083
9182
  productCount: number;
9084
9183
  revision: number;
9085
9184
  createdAt: string;
@@ -9098,6 +9197,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9098
9197
  position: number;
9099
9198
  addedAt: string;
9100
9199
  }[];
9200
+ salesComputedAt: string | null;
9101
9201
  }>;
9102
9202
  };
9103
9203
  categories: {
@@ -9506,7 +9606,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9506
9606
  }>;
9507
9607
  dispatch: (orderItemId: string, body: DispatchRequest, idempotencyKey?: string) => Promise<{
9508
9608
  orderItemId: string;
9509
- deliveryMethod: "COURIER" | "DIRECT" | "QUICK" | "NOTHING";
9609
+ deliveryMethod: "DIRECT" | "COURIER" | "QUICK" | "NOTHING";
9510
9610
  carrierCode: string | null;
9511
9611
  carrierName: string | null;
9512
9612
  trackingNumber: string | null;
@@ -9668,7 +9768,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9668
9768
  }>;
9669
9769
  getDelivery: (orderItemId: string) => Promise<{
9670
9770
  orderItemId: string;
9671
- deliveryMethod: "COURIER" | "DIRECT" | "QUICK" | "NOTHING";
9771
+ deliveryMethod: "DIRECT" | "COURIER" | "QUICK" | "NOTHING";
9672
9772
  carrierCode: string | null;
9673
9773
  carrierName: string | null;
9674
9774
  trackingNumber: string | null;
@@ -9706,7 +9806,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9706
9806
  contents: {
9707
9807
  claimId: string;
9708
9808
  type: "RETURN" | "EXCHANGE" | "CANCEL";
9709
- status: "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "COMPLETED" | "WITHDRAWN";
9809
+ status: "COMPLETED" | "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "WITHDRAWN";
9710
9810
  orderId: string;
9711
9811
  orderItemId: string;
9712
9812
  productName: string;
@@ -9745,7 +9845,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9745
9845
  get: (claimId: string) => Promise<{
9746
9846
  claimId: string;
9747
9847
  type: "RETURN" | "EXCHANGE" | "CANCEL";
9748
- status: "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "COMPLETED" | "WITHDRAWN";
9848
+ status: "COMPLETED" | "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "WITHDRAWN";
9749
9849
  orderId: string;
9750
9850
  orderItemId: string;
9751
9851
  productName: string;
@@ -9780,7 +9880,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9780
9880
  address2: string | null;
9781
9881
  } | null;
9782
9882
  histories?: {
9783
- status: "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "COMPLETED" | "WITHDRAWN";
9883
+ status: "COMPLETED" | "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "WITHDRAWN";
9784
9884
  actor: "SYSTEM" | "BUYER" | "SELLER";
9785
9885
  occurredAt: string;
9786
9886
  }[] | undefined;
@@ -9813,7 +9913,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
9813
9913
  completeExchange: (claimId: string) => Promise<{
9814
9914
  claimId: string;
9815
9915
  type: "RETURN" | "EXCHANGE" | "CANCEL";
9816
- status: "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "COMPLETED" | "WITHDRAWN";
9916
+ status: "COMPLETED" | "REJECTED" | "REQUESTED" | "HELD" | "COLLECTING" | "COLLECTED" | "REDELIVERING" | "APPROVED" | "WITHDRAWN";
9817
9917
  orderId: string;
9818
9918
  orderItemId: string;
9819
9919
  productName: string;
@@ -10734,7 +10834,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
10734
10834
  conversionRate: number | null;
10735
10835
  };
10736
10836
  funnel: {
10737
- step: "PURCHASE" | "SESSION" | "PRODUCT_VIEW" | "ADD_TO_CART" | "BEGIN_CHECKOUT";
10837
+ step: "SESSION" | "PRODUCT_VIEW" | "ADD_TO_CART" | "BEGIN_CHECKOUT" | "PURCHASE";
10738
10838
  sessions: number;
10739
10839
  rateFromPrevious: number | null;
10740
10840
  }[];
@@ -10788,9 +10888,9 @@ export declare function createStoreClient(options: StoreClientOptions): {
10788
10888
  }>;
10789
10889
  /** `GET /v1/analytics/sources` — 채널·소스·캠페인·기기별 세션과 구매 */
10790
10890
  sources: (params: AnalyticsSourcesParams) => Promise<{
10791
- groupBy: "CHANNEL" | "SOURCE" | "CAMPAIGN" | "DEVICE";
10891
+ groupBy: "CAMPAIGN" | "CHANNEL" | "SOURCE" | "DEVICE";
10792
10892
  rows: {
10793
- channel: "PAID" | "DIRECT" | "CAMPAIGN" | "UNKNOWN" | "ORGANIC_SEARCH" | "SOCIAL" | "EMAIL" | "REFERRAL" | null;
10893
+ channel: "DIRECT" | "ORGANIC_SEARCH" | "SOCIAL" | "PAID" | "EMAIL" | "CAMPAIGN" | "REFERRAL" | "UNKNOWN" | null;
10794
10894
  source: string | null;
10795
10895
  medium: string | null;
10796
10896
  campaign: string | null;
@@ -10895,7 +10995,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
10895
10995
  checkout: (params: AnalyticsRangeParams) => Promise<{
10896
10996
  sessions: number;
10897
10997
  outcomes: {
10898
- outcome: "OTHER" | "COMPLETED" | "NOT_OPENED" | "USER_CANCELED" | "DECLINED" | "PREPARE_FAILURE" | "IN_PROGRESS";
10998
+ outcome: "COMPLETED" | "NOT_OPENED" | "USER_CANCELED" | "DECLINED" | "PREPARE_FAILURE" | "OTHER" | "IN_PROGRESS";
10899
10999
  sessions: number;
10900
11000
  }[];
10901
11001
  from: string;
@@ -11996,7 +12096,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
11996
12096
  list: (params?: ApprovalListOptions) => Promise<{
11997
12097
  items: {
11998
12098
  approvalId: string;
11999
- status: "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "UNKNOWN" | "REJECTED" | "EXPIRED";
12099
+ status: "UNKNOWN" | "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "REJECTED" | "EXPIRED";
12000
12100
  operationId: string;
12001
12101
  method: string;
12002
12102
  path: string;
@@ -12046,7 +12146,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12046
12146
  }>;
12047
12147
  get: (approvalId: string) => Promise<{
12048
12148
  approvalId: string;
12049
- status: "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "UNKNOWN" | "REJECTED" | "EXPIRED";
12149
+ status: "UNKNOWN" | "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "REJECTED" | "EXPIRED";
12050
12150
  operationId: string;
12051
12151
  method: string;
12052
12152
  path: string;
@@ -12098,7 +12198,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12098
12198
  */
12099
12199
  approve: (approvalId: string, body?: ApprovalDecisionRequest) => Promise<{
12100
12200
  approvalId: string;
12101
- status: "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "UNKNOWN" | "REJECTED" | "EXPIRED";
12201
+ status: "UNKNOWN" | "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "REJECTED" | "EXPIRED";
12102
12202
  operationId: string;
12103
12203
  method: string;
12104
12204
  path: string;
@@ -12146,7 +12246,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12146
12246
  }>;
12147
12247
  reject: (approvalId: string, body?: ApprovalDecisionRequest) => Promise<{
12148
12248
  approvalId: string;
12149
- status: "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "UNKNOWN" | "REJECTED" | "EXPIRED";
12249
+ status: "UNKNOWN" | "PENDING" | "FAILED" | "SUCCEEDED" | "EXECUTING" | "REJECTED" | "EXPIRED";
12150
12250
  operationId: string;
12151
12251
  method: string;
12152
12252
  path: string;
@@ -12390,7 +12490,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12390
12490
  /** `GET /v1/storefront/site/deployment` — 배포 진행(단계·기록). 만든 뒤 반영이 끝날 때까지 폴링한다 */
12391
12491
  getDeployment: () => Promise<{
12392
12492
  siteId: string;
12393
- status: "FAILED" | "SUCCEEDED" | "IN_PROGRESS";
12493
+ status: "IN_PROGRESS" | "FAILED" | "SUCCEEDED";
12394
12494
  url: string;
12395
12495
  startedAt: string;
12396
12496
  finishedAt: string | null;
@@ -12412,7 +12512,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12412
12512
  /** `POST /v1/storefront/site/deployment/retry` (202) — 밀린 반영을 곧바로 다시 시도한다. 이미 반영됐으면 그대로다 */
12413
12513
  retryDeployment: () => Promise<{
12414
12514
  siteId: string;
12415
- status: "FAILED" | "SUCCEEDED" | "IN_PROGRESS";
12515
+ status: "IN_PROGRESS" | "FAILED" | "SUCCEEDED";
12416
12516
  url: string;
12417
12517
  startedAt: string;
12418
12518
  finishedAt: string | null;
@@ -12987,7 +13087,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
12987
13087
  runCheck: (body: RunStorefrontCheckRequest) => Promise<{
12988
13088
  checkId: string;
12989
13089
  check: string;
12990
- status: "FAILED" | "UNKNOWN" | "RUNNING" | "QUEUED" | "PASSED" | "TIMED_OUT";
13090
+ status: "UNKNOWN" | "FAILED" | "RUNNING" | "QUEUED" | "PASSED" | "TIMED_OUT";
12991
13091
  exitCode: number | null;
12992
13092
  durationMs: number | null;
12993
13093
  outputTail: string | null;
@@ -13001,7 +13101,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
13001
13101
  getCheck: (checkId: string) => Promise<{
13002
13102
  checkId: string;
13003
13103
  check: string;
13004
- status: "FAILED" | "UNKNOWN" | "RUNNING" | "QUEUED" | "PASSED" | "TIMED_OUT";
13104
+ status: "UNKNOWN" | "FAILED" | "RUNNING" | "QUEUED" | "PASSED" | "TIMED_OUT";
13005
13105
  exitCode: number | null;
13006
13106
  durationMs: number | null;
13007
13107
  outputTail: string | null;
@@ -13992,7 +14092,7 @@ export interface PricingResult {
13992
14092
  pointAmount: number;
13993
14093
  /** 지금 쓸 수 있는 최대 적립금 — 주문서 안내값(잔액을 모두 요청했을 때의 금액). 적립금 입력이 없으면 0 */
13994
14094
  pointMaxUsable: number;
13995
- /** 요청보다 적게 썼다면 그 이유 — `MIN_PAYMENT`: 결제 금액 100원을 남기려고 줄였다 */
14095
+ /** 요청보다 적게 썼다면 그 이유 — `MIN_PAYMENT`: 남는 결제 금액이 1~99원이라 100원을 남기려고 줄였다(전액이면 0원 결제) */
13996
14096
  pointAdjustReason: "MIN_PAYMENT" | null;
13997
14097
  /** 요청했지만 쓰지 못했다면 그 이유 */
13998
14098
  pointRejectReason: PointRejectReason | null;
@@ -14026,8 +14126,10 @@ export declare function isCouponTargetLine(rule: Pick<CouponRule, "target" | "co
14026
14126
  */
14027
14127
  export declare function quotePricing(input: PricingInput): PricingResult;
14028
14128
  /**
14029
- * 사용 적립금 금액(순수) — 요청·잔액·최대 비율·「결제 금액 100원 남기기」 중 작은 값을 단위로 내린다.
14030
- * 최소 보유액·최소 사용액에 못 미치면 0이다. 결제 금액이 0원이 되는 사용(적립금 전액 결제)은 아직 받지 않는다(P4).
14129
+ * 사용 적립금 금액(순수) — 요청·잔액·최대 비율 중 작은 값을 쓴다(#93 P3·P4).
14130
+ * - 결제 금액 전체를 덮을 수 있으면 전액을 쓴다(0원 결제, 이때만 사용 단위를 보지 않는다)
14131
+ * - 그 밖에는 사용 단위로 내리고, 남는 결제 금액이 1~99원이면 적립금을 줄여 100원을 남긴다(`MIN_PAYMENT`)
14132
+ * 최소 보유액·최소 사용액에 못 미치면 0이다.
14031
14133
  */
14032
14134
  export declare function pointUseOf(points: PricingPoints | null, amounts: {
14033
14135
  productPaid: number;
@@ -14988,6 +15090,7 @@ export declare const claimWebhookEventDataSchema: z.ZodObject<{
14988
15090
  CANCEL: "CANCEL";
14989
15091
  }>;
14990
15092
  status: z.ZodEnum<{
15093
+ COMPLETED: "COMPLETED";
14991
15094
  REJECTED: "REJECTED";
14992
15095
  REQUESTED: "REQUESTED";
14993
15096
  HELD: "HELD";
@@ -14995,7 +15098,6 @@ export declare const claimWebhookEventDataSchema: z.ZodObject<{
14995
15098
  COLLECTED: "COLLECTED";
14996
15099
  REDELIVERING: "REDELIVERING";
14997
15100
  APPROVED: "APPROVED";
14998
- COMPLETED: "COMPLETED";
14999
15101
  WITHDRAWN: "WITHDRAWN";
15000
15102
  }>;
15001
15103
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -15181,6 +15283,7 @@ export declare const claimWebhookEventSchema: z.ZodObject<{
15181
15283
  CANCEL: "CANCEL";
15182
15284
  }>;
15183
15285
  status: z.ZodEnum<{
15286
+ COMPLETED: "COMPLETED";
15184
15287
  REJECTED: "REJECTED";
15185
15288
  REQUESTED: "REQUESTED";
15186
15289
  HELD: "HELD";
@@ -15188,7 +15291,6 @@ export declare const claimWebhookEventSchema: z.ZodObject<{
15188
15291
  COLLECTED: "COLLECTED";
15189
15292
  REDELIVERING: "REDELIVERING";
15190
15293
  APPROVED: "APPROVED";
15191
- COMPLETED: "COMPLETED";
15192
15294
  WITHDRAWN: "WITHDRAWN";
15193
15295
  }>;
15194
15296
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -15394,6 +15496,7 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15394
15496
  CANCEL: "CANCEL";
15395
15497
  }>;
15396
15498
  status: z.ZodEnum<{
15499
+ COMPLETED: "COMPLETED";
15397
15500
  REJECTED: "REJECTED";
15398
15501
  REQUESTED: "REQUESTED";
15399
15502
  HELD: "HELD";
@@ -15401,7 +15504,6 @@ export declare const webhookEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15401
15504
  COLLECTED: "COLLECTED";
15402
15505
  REDELIVERING: "REDELIVERING";
15403
15506
  APPROVED: "APPROVED";
15404
- COMPLETED: "COMPLETED";
15405
15507
  WITHDRAWN: "WITHDRAWN";
15406
15508
  }>;
15407
15509
  quantity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;