@sayren/storefront-sdk 0.20.0 → 0.20.2

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.
@@ -1,4 +1,4 @@
1
- import { kt as ApiError, t as createStorefrontClient } from "../client-NPFWqMgT.mjs";
1
+ import { kt as ApiError, t as createStorefrontClient } from "../client-vMd6bgQs.mjs";
2
2
  //#region src/auth/index.ts
3
3
  /** 소셜 로그인 실패 — 구매자가 취소했거나(`access_denied`) state가 맞지 않는다 */
4
4
  var IdpCallbackError = class extends Error {
@@ -178,12 +178,14 @@ const pricingAmountsSchema = z.object({
178
178
  deliveryFee: z.number().int(),
179
179
  couponDiscountAmount: z.number().int(),
180
180
  deliveryDiscountAmount: z.number().int(),
181
+ pointAmount: z.number().int().optional().default(0).describe("사용 적립금(#93). 요청에 `pointAmount`가 없으면 0. 서버는 항상 싣는다"),
181
182
  totalAmount: z.number().int().describe("결제 금액")
182
183
  });
183
184
  /** `POST /checkout/{checkoutId}/pricing` 요청 */
184
185
  const checkoutPricingRequestSchema = z.object({
185
186
  zipCode: z.string().regex(/^[0-9]{5}$/, "우편번호 5자리를 입력해 주십시오").optional().describe("배송지 우편번호. 주면 제주·도서산간 추가 배송비까지 반영한다"),
186
- coupons: couponApplicationListSchema
187
+ coupons: couponApplicationListSchema,
188
+ pointAmount: z.number().int().min(0).optional().describe("쓸 적립금(#93, 회원만). 결제 시작과 같은 규칙으로 실제 사용액을 계산한다(예약하지 않는다)")
187
189
  });
188
190
  /** 결제 금액의 하한 — 쿠폰 적용 뒤 결제 금액이 이보다 작으면 결제를 시작할 수 없다 */
189
191
  const MIN_PAYMENT_AMOUNT = 100;
@@ -193,8 +195,15 @@ const checkoutPricingSchema = z.object({
193
195
  items: z.array(z.object({
194
196
  optionId: z.string().nullable(),
195
197
  lineId: z.string().optional().describe("주문서 줄의 `lineId`(이슈 #59). 서버는 항상 싣는다"),
196
- couponDiscountAmount: z.number().int().describe("이 항목에 들어간 쿠폰 할인")
198
+ couponDiscountAmount: z.number().int().describe("이 항목에 들어간 쿠폰 할인"),
199
+ pointAllocation: z.number().int().optional().default(0).describe("이 항목에 배분한 적립금(#93). 서버는 항상 싣는다")
197
200
  })).describe("주문서 항목별 쿠폰 할인 — 주문서 `items`와 같은 순서"),
201
+ points: z.object({
202
+ balance: z.number().int().describe("내 적립금 잔액"),
203
+ maxUsable: z.number().int().describe("이 금액(쿠폰·배송지 반영)에서 쓸 수 있는 최대 적립금"),
204
+ adjustReason: z.string().nullable().describe("요청보다 적게 쓴 이유. `MIN_PAYMENT`: 결제 금액 100원을 남기려고 줄였다"),
205
+ rejectReason: z.string().nullable().describe("요청했지만 쓰지 못한 이유 — `MIN_BALANCE`·`MIN_AMOUNT`·`NOT_PAYABLE`. 값이 추가될 수 있다")
206
+ }).nullable().optional().default(null).describe("적립금(#93). 비회원이거나 적립금 사용이 꺼져 있으면 null"),
198
207
  payable: z.boolean().describe("이 금액으로 결제를 시작할 수 있는가 — 적용하지 못한 쿠폰이 있거나 결제 금액이 100원 미만이면 false")
199
208
  });
200
209
  /** `GET /checkout/{checkoutId}/coupons` 항목 — 이 주문서에 쓸 수 있는 내 쿠폰 */
@@ -287,8 +296,17 @@ const checkoutSessionSchema = z.object({
287
296
  deliveryFee: z.number().int(),
288
297
  totalAmount: z.number().int(),
289
298
  couponDiscountAmount: z.number().int().optional().default(0).describe("쿠폰 할인(상품·주문 쿠폰). 주문서는 쿠폰 전이라 0이고, 결제 시작 응답은 적용한 쿠폰의 할인이다"),
290
- deliveryDiscountAmount: z.number().int().optional().default(0).describe("배송비 쿠폰 할인. 쿠폰이 없으면 0")
299
+ deliveryDiscountAmount: z.number().int().optional().default(0).describe("배송비 쿠폰 할인. 쿠폰이 없으면 0"),
300
+ pointAmount: z.number().int().optional().default(0).describe("사용 적립금(#93). 주문서는 적립금 전이라 0이고, 결제 시작 응답은 쓴 적립금이다. `totalAmount`는 적립금을 뺀 금액이다")
291
301
  }),
302
+ points: z.object({
303
+ enabled: z.boolean().describe("이 주문서에서 적립금을 쓸 수 있는가. 비회원·사용 꺼짐이면 false"),
304
+ balance: z.number().int().describe("내 적립금 잔액"),
305
+ maxUsable: z.number().int().describe("이 주문서(쿠폰 전, 배송지 반영 전)에서 쓸 수 있는 최대 금액. 쿠폰·배송지를 바꾸면 금액 미리보기로 다시 받는다"),
306
+ unit: z.number().int().describe("사용 단위(원)"),
307
+ minAmount: z.number().int().describe("한 번에 쓰는 최소 금액(원)"),
308
+ minBalance: z.number().int().describe("쓸 수 있는 최소 보유액(원)")
309
+ }).nullable().optional().default(null).describe("적립금 사용 안내(#93). 비회원이거나 상점이 적립금 사용을 끄면 null"),
292
310
  delivery: checkoutDeliverySchema.describe("배송비 내역. 배송지를 입력하면 금액이 바뀔 수 있다 — 최종 금액은 결제 시작 응답의 `amounts`다"),
293
311
  requiresShipping: z.boolean().describe("택배 배송이 필요한 상품이 있는가. false면 배송지를 받지 않는다 — 결제 시작에 `shippingAddress`를 보내지 않아도 된다"),
294
312
  withdrawal: z.object({
@@ -486,7 +504,8 @@ const startPaymentRequestSchema = z.object({
486
504
  shippingAddress: shippingAddressInputSchema.optional().describe("배송지. 주문서의 `requiresShipping`이 true면 필수이고 없으면 400 `SHIPPING_ADDRESS_REQUIRED`다. 배송이 필요 없는 주문(배송 없는 상품만)은 보내지 않아도 된다. 보내면 형식을 검사한 뒤 버린다"),
487
505
  guest: guestInfoSchema.optional(),
488
506
  cashReceipt: cashReceiptField,
489
- coupons: couponApplicationListSchema.optional().describe("적용할 쿠폰(이슈 #47). 결제 시작이 쿠폰을 예약하고 할인한 금액으로 결제 금액을 정한다 — 응답의 `amounts`가 확정 금액이다. 적용하지 못하는 쿠폰이 하나라도 있으면 400 `COUPON_NOT_APPLICABLE`(`details`에 사유)이다. 결제가 실패하거나 만료되면 예약이 풀린다. 쿠폰을 바꾸려면 새로 결제를 시작한다(재시도는 같은 쿠폰을 쓴다)")
507
+ coupons: couponApplicationListSchema.optional().describe("적용할 쿠폰(이슈 #47). 결제 시작이 쿠폰을 예약하고 할인한 금액으로 결제 금액을 정한다 — 응답의 `amounts`가 확정 금액이다. 적용하지 못하는 쿠폰이 하나라도 있으면 400 `COUPON_NOT_APPLICABLE`(`details`에 사유)이다. 결제가 실패하거나 만료되면 예약이 풀린다. 쿠폰을 바꾸려면 새로 결제를 시작한다(재시도는 같은 쿠폰을 쓴다)"),
508
+ pointAmount: z.number().int().min(0).optional().describe("쓸 적립금(#93, 회원만). 결제 시작이 예약하고 쿠폰 뒤 금액에서 뺀다 — 응답 `amounts.pointAmount`가 실제 사용액이다(단위로 내리고 결제 금액 100원을 남긴다). 적립금 사용이 꺼져 있으면 409 `POINTS_UNAVAILABLE`, 쓸 수 없으면 400 `POINT_NOT_APPLICABLE`(`details.reason`), 그 사이 잔액이 줄었으면 409 `POINT_BALANCE_CHANGED`다. 결제가 실패하거나 만료되면 예약이 풀린다")
490
509
  });
491
510
  /**
492
511
  * 같은 결제에서 다른 결제 옵션으로 다시 시도. `returnUrl`을 생략하면 결제 시작 때의 복귀 주소를 쓴다.
@@ -1,5 +1,5 @@
1
1
  import { a as ANALYTICS_VISITOR_HEADER, r as ANALYTICS_SESSION_HEADER } from "./analytics-CgD70OqH.mjs";
2
- import { A as retryPaymentRequestSchema, F as applicableCouponSchema, G as addonGroupViewSchema, I as checkoutPricingRequestSchema, L as checkoutPricingSchema, M as startPaymentRequestSchema, Q as lineSelectionResponseShape, T as paymentStatusSchema, U as myCouponSchema, X as customInputViewSchema, Z as lineSelectionRequestShape, d as checkoutSessionSchema, f as createCheckoutRequestSchema, h as easyPayProviderResponseSchema, it as productFulfillmentViewSchema, k as responsePaymentMethodSchema, m as deliveryQuoteSchema, nt as myOrderItemFulfillmentSnapshotSchema, p as deliveryQuoteRequestSchema, rt as productCardFulfillmentSchema, tt as lineFulfillmentSchema, w as paymentStartSchema } from "./checkout-f7iFQV88.mjs";
2
+ import { A as retryPaymentRequestSchema, F as applicableCouponSchema, G as addonGroupViewSchema, I as checkoutPricingRequestSchema, L as checkoutPricingSchema, M as startPaymentRequestSchema, Q as lineSelectionResponseShape, T as paymentStatusSchema, U as myCouponSchema, X as customInputViewSchema, Z as lineSelectionRequestShape, d as checkoutSessionSchema, f as createCheckoutRequestSchema, h as easyPayProviderResponseSchema, it as productFulfillmentViewSchema, k as responsePaymentMethodSchema, m as deliveryQuoteSchema, nt as myOrderItemFulfillmentSnapshotSchema, p as deliveryQuoteRequestSchema, rt as productCardFulfillmentSchema, tt as lineFulfillmentSchema, w as paymentStartSchema } from "./checkout-DSAf758s.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/http.ts
5
5
  /** 표준 엔벨로프의 $.error 상세 */
@@ -401,7 +401,8 @@ const collectionProductSortSchema = z.enum(["manual", ...productSortSchema.optio
401
401
  const storefrontCollectionDetailSchema = storefrontCollectionSchema.extend({
402
402
  productSort: z.string().describe("상품 목록 기본 정렬(`sort`를 생략하면 이 정렬이다). 현재 값은 `CollectionProductSortParam`이고 값이 늘 수 있어 문자열이다"),
403
403
  metaTitle: z.string().nullable(),
404
- metaDescription: z.string().nullable()
404
+ metaDescription: z.string().nullable(),
405
+ salesComputedAt: z.string().nullable().default(null).describe("판매량 기준 시각. 판매량 상위·판매량순 컬렉션은 이 시각까지의 실결제 주문을 센다(최대 10분 늦다). 판매량을 쓰지 않거나 집계 전이면 null")
405
406
  });
406
407
  /** `GET /collections/{slug}/products` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열) */
407
408
  const collectionProductQuerySchema = z.object({
@@ -449,7 +450,8 @@ const createClaimResultSchema = z.object({
449
450
  quantity: z.number().int().describe("접수된 수량. 요청에서 생략하면 남은 수량 전체다"),
450
451
  deliveryFeeRefundAmount: z.number().int().describe("환불 예정 배송비. 배송 묶음이 모두 취소되거나 판매자 귀책일 때만 0보다 크다"),
451
452
  couponChargeAmount: z.number().int().optional().default(0).describe("쿠폰 조건 미달 차감 예상액. 이 취소·반품으로 남은 주문상품이 쿠폰 조건(최소 주문 금액 등)을 잃으면 남은 주문상품이 받던 쿠폰 할인을 환불액에서 뺀다. 예상 환불액에 이미 반영돼 있다. 서버는 항상 싣는다"),
452
- couponChargeRefundAmount: z.number().int().optional().default(0).describe("되돌릴 쿠폰 차감 예상액 — 앞선 취소·반품에서 뺀 쿠폰 조건 미달 차감 중 이번에 돌려받을 몫이다. 예상 환불액에 이미 반영돼 있다. 서버는 항상 싣는다")
453
+ couponChargeRefundAmount: z.number().int().optional().default(0).describe("되돌릴 쿠폰 차감 예상액 — 앞선 취소·반품에서 뺀 쿠폰 조건 미달 차감 중 이번에 돌려받을 몫이다. 예상 환불액에 이미 반영돼 있다. 서버는 항상 싣는다"),
454
+ pointRefundAmount: z.number().int().optional().default(0).describe("돌려받을 적립금 예상액 (원, #93) — 결제에 쓴 적립금 중 이번 취소·반품 수량의 몫이다. 예상 환불액(현금)과 별개다. 차감은 현금에서 먼저 빼고 모자란 몫만 여기서 뺀다. 적립금을 쓰지 않은 주문은 0이다. 서버는 항상 싣는다")
453
455
  });
454
456
  /**
455
457
  * 반품지 (이슈 #30) — 반품·교환 수거가 안내하는 주소다. 상점 주소록의 기본 반품지이거나,
@@ -476,6 +478,7 @@ const myClaimSchema = z.object({
476
478
  reason: z.string(),
477
479
  expectedRefundAmount: z.number().int().nullable().describe("예상 환불액 — 수량 비율 상품 실결제 금액 − 반품 배송비 − 조건부 무료배송 미달 차감 − 쿠폰 조건 미달 차감 + 되돌릴 쿠폰 차감. **배송비 환불은 포함되지 않고 `expectedDeliveryFeeRefundAmount`로 따로 온다.** 교환은 null이다"),
478
480
  expectedDeliveryFeeRefundAmount: z.number().int().nullable().describe("예상 배송비 환불액. 배송 묶음이 모두 취소되거나 판매자 귀책일 때만 0보다 크다. 이 필드가 생기기 전에 접수된 클레임은 null이다"),
481
+ expectedPointRefundAmount: z.number().int().optional().default(0).describe("예상 반환 적립금 (원, #93) — 결제에 쓴 적립금 중 이 수량의 몫이다. 예상 환불액(현금)과 별개이고, 차감은 현금에서 먼저 뺀다. 교환·적립금을 쓰지 않은 주문은 0이다. 서버는 항상 싣는다"),
479
482
  rejectReason: z.string().nullable(),
480
483
  returnAddress: claimReturnAddressSchema.nullable().describe("반품·교환 물건을 보낼 반품지(이슈 #30). 직접 보내는 수거 안내에 쓴다. 취소 클레임은 null"),
481
484
  requestedAt: z.string(),
@@ -666,6 +669,7 @@ const myOrderItemSchema = z.object({
666
669
  activeQuantity: z.number().int().describe("남은 수량 (`quantity` − `canceledQuantity`). 취소·반품·교환 요청 수량의 상한이다"),
667
670
  totalPrice: z.number().int().describe("주문상품 금액 (즉시할인 반영, 쿠폰 전)"),
668
671
  couponDiscountAmount: z.number().int().optional().default(0).describe("이 주문상품에 배분된 쿠폰 할인. 실결제 금액은 `totalPrice − couponDiscountAmount`다. 쿠폰이 없으면 0. 서버는 항상 싣는다"),
672
+ pointAllocation: z.number().int().optional().default(0).describe("이 주문상품에 쓴 적립금 (원, #93). 현금 실결제는 `totalPrice − couponDiscountAmount − pointAllocation`이다. 적립금을 쓰지 않았으면 0. 서버는 항상 싣는다"),
669
673
  status: orderItemStatusSchema,
670
674
  fulfillmentSnapshot: myOrderItemFulfillmentSnapshotSchema.describe("주문 시점 이행 스냅샷(이슈 #57). `type`이 주문 시점 상품 유형이다. 배송 없는 상품(`MANUAL`)이면 `DELIVERED`는 제공 완료다"),
671
675
  fulfillment: z.object({
@@ -701,6 +705,7 @@ const myOrderSchema = z.object({
701
705
  easyPayProvider: easyPayProviderResponseSchema.nullable().optional().default(null).describe("간편결제사. `method`가 `EASY_PAY`일 때만 값이 있고, PG가 알려 주지 않았으면 주문서에서 고른 간편결제사다. 그 밖의 결제수단과 간편결제 이전 주문은 null. 서버는 항상 싣는다. 현재 값은 `NAVERPAY`·`KAKAOPAY`·`TOSSPAY`·`PAYCO`이고 값이 추가될 수 있어 문자열로 받는다"),
702
706
  couponDiscountAmount: z.number().int().optional().default(0).describe("상품·주문 쿠폰 할인 합계. 쿠폰이 없으면 0. 서버는 항상 싣는다"),
703
707
  deliveryDiscountAmount: z.number().int().optional().default(0).describe("배송비 쿠폰 할인. 쿠폰이 없으면 0. 서버는 항상 싣는다"),
708
+ pointAmount: z.number().int().optional().default(0).describe("사용 적립금 (원, #93). `totalAmount`는 적립금을 뺀 결제 금액이다. 적립금을 쓰지 않았으면 0. 서버는 항상 싣는다"),
704
709
  discounts: z.array(z.object({
705
710
  couponId: z.string(),
706
711
  name: z.string().describe("주문 시점 쿠폰 이름"),
@@ -773,7 +778,7 @@ const memberPointsSchema = z.object({
773
778
  /** 내 적립금 내역 한 줄 — 셀러 메모는 싣지 않는다 */
774
779
  const memberPointEntrySchema = z.object({
775
780
  entryId: z.string(),
776
- type: z.string().describe("유형. `EARN_REVIEW` 리뷰 적립 · `REVOKE_REVIEW` 리뷰 삭제 회수 · `EARN_PURCHASE` 구매 적립 · `EXPIRE` 소멸 · `ADJUST` 상점 지급·차감 · `OPENING` 기존 적립금. 값이 추가될 수 있어 문자열로 받는다"),
781
+ type: z.string().describe("유형. `EARN_REVIEW` 리뷰 적립 · `REVOKE_REVIEW` 리뷰 삭제 회수 · `EARN_PURCHASE` 구매 적립 · `EXPIRE` 소멸 · `ADJUST` 상점 지급·차감 · `OPENING` 기존 적립금 · `USE_RESERVE` 결제 사용 · `USE_RELEASE` 결제가 실패·만료되어 되돌림 · `REFUND_RESTORE` 취소·반품 환불로 반환. 값이 추가될 수 있어 문자열로 받는다"),
777
782
  amount: z.number().int().describe("변동액. 적립 +, 회수·차감·소멸 −"),
778
783
  balanceAfter: z.number().int().describe("이 변동 직후 잔액"),
779
784
  createdAt: z.string()
@@ -429,6 +429,7 @@ declare const storefrontCollectionDetailSchema: z.ZodObject<{
429
429
  productSort: z.ZodString;
430
430
  metaTitle: z.ZodNullable<z.ZodString>;
431
431
  metaDescription: z.ZodNullable<z.ZodString>;
432
+ salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
432
433
  }, z.core.$strip>;
433
434
  type StorefrontCollectionDetail = z.infer<typeof storefrontCollectionDetailSchema>;
434
435
  interface CollectionProductParams extends PageParams {
@@ -565,7 +566,16 @@ declare const checkoutSessionSchema: z.ZodObject<{
565
566
  totalAmount: z.ZodNumber;
566
567
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
567
568
  deliveryDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
569
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
568
570
  }, z.core.$strip>;
571
+ points: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<{
572
+ enabled: z.ZodBoolean;
573
+ balance: z.ZodNumber;
574
+ maxUsable: z.ZodNumber;
575
+ unit: z.ZodNumber;
576
+ minAmount: z.ZodNumber;
577
+ minBalance: z.ZodNumber;
578
+ }, z.core.$strip>>>>;
569
579
  delivery: z.ZodObject<{
570
580
  baseFee: z.ZodNumber;
571
581
  remoteSurcharge: z.ZodNumber;
@@ -645,6 +655,7 @@ declare const deliveryQuoteSchema: z.ZodObject<{
645
655
  totalAmount: z.ZodNumber;
646
656
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
647
657
  deliveryDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
658
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
648
659
  }, z.core.$strip>;
649
660
  delivery: z.ZodObject<{
650
661
  baseFee: z.ZodNumber;
@@ -981,6 +992,7 @@ declare const startPaymentRequestSchema: z.ZodObject<{
981
992
  optionId: z.ZodOptional<z.ZodString>;
982
993
  lineId: z.ZodOptional<z.ZodString>;
983
994
  }, z.core.$strip>>>;
995
+ pointAmount: z.ZodOptional<z.ZodNumber>;
984
996
  }, z.core.$strip>;
985
997
  type StartPaymentRequest = z.infer<typeof startPaymentRequestSchema>;
986
998
  /**
@@ -1093,6 +1105,7 @@ declare const paymentStartSchema: z.ZodObject<{
1093
1105
  totalAmount: z.ZodNumber;
1094
1106
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1095
1107
  deliveryDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1108
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1096
1109
  }, z.core.$strip>;
1097
1110
  delivery: z.ZodObject<{
1098
1111
  baseFee: z.ZodNumber;
@@ -1198,6 +1211,7 @@ declare const createClaimResultSchema: z.ZodObject<{
1198
1211
  deliveryFeeRefundAmount: z.ZodNumber;
1199
1212
  couponChargeAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1200
1213
  couponChargeRefundAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1214
+ pointRefundAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1201
1215
  }, z.core.$strip>;
1202
1216
  type CreateClaimResult = z.infer<typeof createClaimResultSchema>;
1203
1217
  /**
@@ -1240,6 +1254,7 @@ declare const myClaimSchema: z.ZodObject<{
1240
1254
  reason: z.ZodString;
1241
1255
  expectedRefundAmount: z.ZodNullable<z.ZodNumber>;
1242
1256
  expectedDeliveryFeeRefundAmount: z.ZodNullable<z.ZodNumber>;
1257
+ expectedPointRefundAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1243
1258
  rejectReason: z.ZodNullable<z.ZodString>;
1244
1259
  returnAddress: z.ZodNullable<z.ZodObject<{
1245
1260
  name: z.ZodString;
@@ -1412,6 +1427,7 @@ declare const pricingAmountsSchema: z.ZodObject<{
1412
1427
  deliveryFee: z.ZodNumber;
1413
1428
  couponDiscountAmount: z.ZodNumber;
1414
1429
  deliveryDiscountAmount: z.ZodNumber;
1430
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1415
1431
  totalAmount: z.ZodNumber;
1416
1432
  }, z.core.$strip>;
1417
1433
  /** `POST /checkout/{checkoutId}/pricing` 요청 */
@@ -1423,6 +1439,7 @@ declare const checkoutPricingRequestSchema: z.ZodObject<{
1423
1439
  optionId: z.ZodOptional<z.ZodString>;
1424
1440
  lineId: z.ZodOptional<z.ZodString>;
1425
1441
  }, z.core.$strip>>;
1442
+ pointAmount: z.ZodOptional<z.ZodNumber>;
1426
1443
  }, z.core.$strip>;
1427
1444
  type CheckoutPricingRequest = z.infer<typeof checkoutPricingRequestSchema>;
1428
1445
  /** 결제 금액의 하한 — 쿠폰 적용 뒤 결제 금액이 이보다 작으면 결제를 시작할 수 없다 */
@@ -1433,6 +1450,7 @@ declare const checkoutPricingSchema: z.ZodObject<{
1433
1450
  deliveryFee: z.ZodNumber;
1434
1451
  couponDiscountAmount: z.ZodNumber;
1435
1452
  deliveryDiscountAmount: z.ZodNumber;
1453
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1436
1454
  totalAmount: z.ZodNumber;
1437
1455
  }, z.core.$strip>;
1438
1456
  coupons: z.ZodArray<z.ZodObject<{
@@ -1456,7 +1474,14 @@ declare const checkoutPricingSchema: z.ZodObject<{
1456
1474
  optionId: z.ZodNullable<z.ZodString>;
1457
1475
  lineId: z.ZodOptional<z.ZodString>;
1458
1476
  couponDiscountAmount: z.ZodNumber;
1477
+ pointAllocation: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1459
1478
  }, z.core.$strip>>;
1479
+ points: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<{
1480
+ balance: z.ZodNumber;
1481
+ maxUsable: z.ZodNumber;
1482
+ adjustReason: z.ZodNullable<z.ZodString>;
1483
+ rejectReason: z.ZodNullable<z.ZodString>;
1484
+ }, z.core.$strip>>>>;
1460
1485
  payable: z.ZodBoolean;
1461
1486
  }, z.core.$strip>;
1462
1487
  type CheckoutPricing = z.infer<typeof checkoutPricingSchema>;
@@ -2197,6 +2222,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2197
2222
  productSort: string;
2198
2223
  metaTitle: string | null;
2199
2224
  metaDescription: string | null;
2225
+ salesComputedAt: string | null;
2200
2226
  }>;
2201
2227
  /** 컬렉션 상품(판매 중만). `sort`를 생략하면 컬렉션의 기본 정렬이다 */
2202
2228
  listCollectionProducts: (slug: string, params?: CollectionProductParams) => Promise<{
@@ -2368,7 +2394,16 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2368
2394
  totalAmount: number;
2369
2395
  couponDiscountAmount: number;
2370
2396
  deliveryDiscountAmount: number;
2397
+ pointAmount: number;
2371
2398
  };
2399
+ points: {
2400
+ enabled: boolean;
2401
+ balance: number;
2402
+ maxUsable: number;
2403
+ unit: number;
2404
+ minAmount: number;
2405
+ minBalance: number;
2406
+ } | null;
2372
2407
  delivery: {
2373
2408
  baseFee: number;
2374
2409
  remoteSurcharge: number;
@@ -2422,6 +2457,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2422
2457
  totalAmount: number;
2423
2458
  couponDiscountAmount: number;
2424
2459
  deliveryDiscountAmount: number;
2460
+ pointAmount: number;
2425
2461
  };
2426
2462
  delivery: {
2427
2463
  baseFee: number;
@@ -2476,6 +2512,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2476
2512
  totalAmount: number;
2477
2513
  couponDiscountAmount: number;
2478
2514
  deliveryDiscountAmount: number;
2515
+ pointAmount: number;
2479
2516
  };
2480
2517
  delivery: {
2481
2518
  baseFee: number;
@@ -2499,6 +2536,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2499
2536
  deliveryFee: number;
2500
2537
  couponDiscountAmount: number;
2501
2538
  deliveryDiscountAmount: number;
2539
+ pointAmount: number;
2502
2540
  totalAmount: number;
2503
2541
  };
2504
2542
  coupons: {
@@ -2521,8 +2559,15 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2521
2559
  items: {
2522
2560
  optionId: string | null;
2523
2561
  couponDiscountAmount: number;
2562
+ pointAllocation: number;
2524
2563
  lineId?: string | undefined;
2525
2564
  }[];
2565
+ points: {
2566
+ balance: number;
2567
+ maxUsable: number;
2568
+ adjustReason: string | null;
2569
+ rejectReason: string | null;
2570
+ } | null;
2526
2571
  payable: boolean;
2527
2572
  }>;
2528
2573
  /** `GET /checkout/{checkoutId}/coupons` — 이 주문서에 쓸 수 있는 내 쿠폰과 예상 할인(회원 전용) */
@@ -2602,6 +2647,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2602
2647
  totalAmount: number;
2603
2648
  couponDiscountAmount: number;
2604
2649
  deliveryDiscountAmount: number;
2650
+ pointAmount: number;
2605
2651
  };
2606
2652
  delivery: {
2607
2653
  baseFee: number;
@@ -2632,6 +2678,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2632
2678
  activeQuantity: number;
2633
2679
  totalPrice: number;
2634
2680
  couponDiscountAmount: number;
2681
+ pointAllocation: number;
2635
2682
  status: "CANCELED" | "PAYMENT_WAITING" | "PAID" | "CONFIRMED" | "DISPATCHED" | "DELIVERING" | "DELIVERED" | "PURCHASE_DECIDED";
2636
2683
  fulfillmentSnapshot: UnknownFulfillmentView | {
2637
2684
  type: "SHIPPING";
@@ -2679,6 +2726,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2679
2726
  easyPayProvider: string | null;
2680
2727
  couponDiscountAmount: number;
2681
2728
  deliveryDiscountAmount: number;
2729
+ pointAmount: number;
2682
2730
  discounts: {
2683
2731
  couponId: string;
2684
2732
  name: string;
@@ -2701,6 +2749,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2701
2749
  activeQuantity: number;
2702
2750
  totalPrice: number;
2703
2751
  couponDiscountAmount: number;
2752
+ pointAllocation: number;
2704
2753
  status: "CANCELED" | "PAYMENT_WAITING" | "PAID" | "CONFIRMED" | "DISPATCHED" | "DELIVERING" | "DELIVERED" | "PURCHASE_DECIDED";
2705
2754
  fulfillmentSnapshot: UnknownFulfillmentView | {
2706
2755
  type: "SHIPPING";
@@ -2748,6 +2797,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2748
2797
  easyPayProvider: string | null;
2749
2798
  couponDiscountAmount: number;
2750
2799
  deliveryDiscountAmount: number;
2800
+ pointAmount: number;
2751
2801
  discounts: {
2752
2802
  couponId: string;
2753
2803
  name: string;
@@ -2781,6 +2831,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2781
2831
  activeQuantity: number;
2782
2832
  totalPrice: number;
2783
2833
  couponDiscountAmount: number;
2834
+ pointAllocation: number;
2784
2835
  status: "CANCELED" | "PAYMENT_WAITING" | "PAID" | "CONFIRMED" | "DISPATCHED" | "DELIVERING" | "DELIVERED" | "PURCHASE_DECIDED";
2785
2836
  fulfillmentSnapshot: UnknownFulfillmentView | {
2786
2837
  type: "SHIPPING";
@@ -2828,6 +2879,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2828
2879
  easyPayProvider: string | null;
2829
2880
  couponDiscountAmount: number;
2830
2881
  deliveryDiscountAmount: number;
2882
+ pointAmount: number;
2831
2883
  discounts: {
2832
2884
  couponId: string;
2833
2885
  name: string;
@@ -2866,6 +2918,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2866
2918
  deliveryFeeRefundAmount: number;
2867
2919
  couponChargeAmount: number;
2868
2920
  couponChargeRefundAmount: number;
2921
+ pointRefundAmount: number;
2869
2922
  }>;
2870
2923
  list: (params?: PageParams & {
2871
2924
  status?: ClaimStatus;
@@ -2884,6 +2937,7 @@ declare function createStorefrontClient(options: StorefrontClientOptions): {
2884
2937
  reason: string;
2885
2938
  expectedRefundAmount: number | null;
2886
2939
  expectedDeliveryFeeRefundAmount: number | null;
2940
+ expectedPointRefundAmount: number;
2887
2941
  rejectReason: string | null;
2888
2942
  returnAddress: {
2889
2943
  name: string;
@@ -3306,6 +3360,7 @@ declare const myOrderItemSchema: z.ZodObject<{
3306
3360
  activeQuantity: z.ZodNumber;
3307
3361
  totalPrice: z.ZodNumber;
3308
3362
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3363
+ pointAllocation: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3309
3364
  status: z.ZodEnum<{
3310
3365
  CANCELED: "CANCELED";
3311
3366
  PAYMENT_WAITING: "PAYMENT_WAITING";
@@ -3378,6 +3433,7 @@ declare const myOrderSchema: z.ZodObject<{
3378
3433
  activeQuantity: z.ZodNumber;
3379
3434
  totalPrice: z.ZodNumber;
3380
3435
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3436
+ pointAllocation: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3381
3437
  status: z.ZodEnum<{
3382
3438
  CANCELED: "CANCELED";
3383
3439
  PAYMENT_WAITING: "PAYMENT_WAITING";
@@ -3447,6 +3503,7 @@ declare const myOrderSchema: z.ZodObject<{
3447
3503
  easyPayProvider: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3448
3504
  couponDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3449
3505
  deliveryDiscountAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3506
+ pointAmount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3450
3507
  discounts: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
3451
3508
  couponId: z.ZodString;
3452
3509
  name: z.ZodString;
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { C as loginRequestSchema, D as tokenPairSchema, E as socialProviderSchema, O as withdrawRequestSchema, S as linkIdentityRequestSchema, T as signupRequestSchema, _ as anonymousSessionSchema, a as AnonymousSession, b as idpAuthorizeResponseSchema, c as IdpTokenRequest, d as MemberIdentities, f as SignupRequest, g as WithdrawalBlockedDetails, h as WithdrawRequest, i as buildQuery, k as withdrawalBlockedDetailsSchema, l as LinkIdentityRequest, m as TokenPair, n as Query, o as IdpAgreements, p as SocialProvider, r as TokenSource, s as IdpAuthorizeRequest, t as ApiError, u as LoginRequest, v as idpAgreementsSchema, w as memberIdentitiesSchema, x as idpTokenRequestSchema, y as idpAuthorizeRequestSchema } from "./http-1ab7tP4-.mjs";
2
- import { $ as StorefrontClientOptions, $n as DeliveryQuoteResult, $r as ProductDetail, $t as createCustomerInquiryRequestSchema, A as PurchaseDecisionResult, Ai as UnknownFulfillmentView, An as consentUpdateRequestSchema, Ar as easyPayProviderResponseSchema, At as uploadTicketSchema, B as ANALYTICS_VISITOR_COOKIE, Bi as cartItemSchema, Bn as claimTypeSchema, Br as paymentStatusSchema, Bt as updateProfileRequestSchema, C as memberPointEntrySchema, Ci as orderItemStatusSchema, Cn as ConsentState, Cr as cashReceiptRequestSchema, Ct as productReviewSortSchema, D as MyOrder, Di as MyOrderItemFulfillmentSnapshot, Dn as consentKindSchema, Dr as createCheckoutRequestSchema, Dt as reviewSummarySchema, E as DeliveryTracking, Ei as LineFulfillment, En as consentActionSchema, Er as checkoutSessionSchema, Et as reviewPageSchema, F as purchaseDecisionResultSchema, Fi as AddCartItemRequest, Fn as CreateClaimRequest, Fr as paymentMethodSchema, Ft as UpdateProfileRequest, G as AnalyticsEventName, Gn as CASH_RECEIPT_METHODS, Gr as retryPaymentRequestSchema, Gt as PublicInquiry, H as AnalyticsBatch, Hi as updateCartItemRequestSchema, Hn as createClaimResultSchema, Hr as remoteAreaSchema, Ht as CreateInquiryRequest, I as trackingStageResponseSchema, Ii as Cart, In as CreateClaimResult, Ir as paymentOptionKey, It as WishlistAddResult, J as analyticsClientEventNameSchema, Jn as CashReceiptType, Jr as CategoryNode, Jt as productInquiryCategorySchema, K as AnalyticsServerEventName, Kn as CashReceiptIdentityType, Kr as shippingAddressInputSchema, Kt as createInquiryRequestSchema, L as ANALYTICS_MAX_BATCH_BYTES, Li as CartItem, Ln as MyClaim, Lr as paymentOptionListSchema, Lt as memberAddressRequestSchema, M as myOrderItemSchema, Mi as myOrderItemFulfillmentSnapshotSchema, Mn as ClaimReason, Mr as guestInfoSchema, Mt as Member, N as myOrderSchema, Ni as productCardFulfillmentSchema, Nn as ClaimReturnAddress, Nr as paymentFailureCategorySchema, Nt as MemberAddress, O as MyOrderItem, Oi as ProductCardFulfillment, On as consentSourceSchema, Or as deliveryQuoteRequestSchema, Ot as updateReviewRequestSchema, P as orderShippingAddressSchema, Pi as productFulfillmentViewSchema, Pn as ClaimType, Pr as paymentMessageSchema, Pt as MemberAddressRequest, Q as StorefrontClient, Qn as DeliveryQuoteRequest, Qr as ProductCard, Qt as CustomerInquiryCategory, R as ANALYTICS_SESSION_COOKIE, Ri as UpdateCartItemRequest, Rn as claimReasonSchema, Rr as paymentOptionSchema, Rt as memberAddressSchema, S as memberPointEntryPageSchema, Si as claimStatusSchema, Sn as ConsentSource, Sr as cashReceiptIdentityTypeOf, St as productReviewQuerySchema, T as storefrontPointPolicySchema, Ti as pageSchema, Tn as MemberConsents, Tr as checkoutDeliverySchema, Tt as reviewImageUploadRequestSchema, U as AnalyticsClientEvent, Ui as analyticsIdsFromCookie, Un as myClaimSchema, Ur as residentNumberLike, Ut as CreateInquiryResult, V as ANALYTICS_VISITOR_HEADER, Vi as cartSchema, Vn as createClaimRequestSchema, Vr as pgProviderSchema, Vt as wishlistAddResultSchema, W as AnalyticsClientEventName, Wn as AvailablePaymentOption, Wr as responsePaymentMethodSchema, Wt as ProductInquiryCategory, X as analyticsIdSchema, Xn as CheckoutSession, Xr as CollectionProductParams, Xt as CreateCustomerInquiryRequest, Y as analyticsClientEventSchema, Yn as CheckoutDelivery, Yr as CollectionProductPage, Yt as publicInquirySchema, Z as analyticsServerEventNameSchema, Zn as CreateCheckoutRequest, Zr as CollectionProductSortParam, Zt as CustomerInquiry, _ as normalizeCustomInputValue, _i as storefrontCollectionSchema, _n as myCouponListQuerySchema, _r as RetryPaymentRequest, _t as UploadTicket, a as CustomInputEntry, ai as StorefrontCollectionDetail, an as CouponApplication, ar as PAYMENT_RESULT_VALUES, at as createStorefrontSession, b as MemberPoints, bi as PageInfo, bn as ConsentAction, br as availablePaymentOptionSchema, bt as createReviewResultSchema, c as OptionSelectionView, ci as collectionProductQuerySchema, cn as MIN_PAYMENT_AMOUNT, cr as PaymentFailureCategory, ct as MyReview, d as customInputEntrySchema, di as productDetailSchema, dn as checkoutPricingRequestSchema, dr as PaymentOption, dt as PublicReview, ei as ProductFacets, en as customerInquiryCategorySchema, er as EasyPayProvider, et as createStorefrontClient, f as customInputLength, fi as productFacetsSchema, fn as checkoutPricingSchema, fr as PaymentStart, ft as ReviewImageUploadRequest, g as lineSelectionResponseShape, gi as storefrontCollectionListQuerySchema, gn as couponResultSchema, gr as ResponsePaymentMethod, gt as UpdateReviewResult, h as lineSelectionRequestShape, hi as storefrontCollectionDetailSchema, hn as couponBenefitViewSchema, hr as RemoteArea, ht as UpdateReviewRequest, i as AddonSelection, ii as StorefrontCollection, in as CheckoutPricingRequest, ir as KnownPaymentStatus, it as StorefrontSessionOptions, j as deliveryTrackingSchema, ji as lineFulfillmentSchema, jn as memberConsentsSchema, jr as easyPayProviderSchema, jt as writableReviewSchema, k as OrderShippingAddress, ki as ProductFulfillmentView, kn as consentStateSchema, kr as deliveryQuoteSchema, kt as updateReviewResultSchema, l as addonGroupViewSchema, li as collectionProductSortSchema, ln as MyCoupon, lr as PaymentMessage, lt as ProductReviewParams, m as customInputViewSchema, mi as productSortSchema, mn as couponApplicationSchema, mr as PgProvider, mt as ReviewSummary, n as storefrontStoreSchema, ni as ProductSearchParams, nn as ApplicableCoupon, nr as KnownPaymentResult, nt as SessionStorage, o as CustomInputValueView, oi as categoryNodeSchema, on as CouponResult, or as PAYMENT_START_STATUS_VALUES, ot as CreateReviewRequest, p as customInputValueViewSchema, pi as productPageSchema, pn as couponApplicationListSchema, pr as PaymentStatus, pt as ReviewPage, q as analyticsBatchSchema, qn as CashReceiptRequest, qr as startPaymentRequestSchema, qt as createInquiryResultSchema, r as AddonGroupView, ri as ProductSort, rn as CheckoutPricing, rr as KnownPaymentStartStatus, rt as StorefrontSession, s as CustomInputView, si as collectionProductPageSchema, sn as MAX_COUPONS_PER_CHECKOUT, sr as PAYMENT_STATUS_VALUES, st as CreateReviewResult, t as StorefrontStore, ti as ProductPage, tn as customerInquirySchema, tr as GuestInfo, tt as STOREFRONT_SESSION_KEYS, u as addonSelectionSchema, ui as productCardSchema, un as applicableCouponSchema, ur as PaymentMethod, ut as ProductReviewSort, v as optionSelectionViewSchema, vi as ClaimStatus, vn as myCouponSchema, vr as ShippingAddressInput, vt as WritableReview, w as memberPointsSchema, wi as pageInfoSchema, wn as ConsentUpdateRequest, wr as cashReceiptTypeSchema, wt as publicReviewSchema, x as StorefrontPointPolicy, xi as PageParams, xn as ConsentKind, xr as cashReceiptAvailable, xt as myReviewSchema, y as MemberPointEntry, yi as OrderItemStatus, yn as pricingAmountsSchema, yr as StartPaymentRequest, yt as createReviewRequestSchema, z as ANALYTICS_SESSION_HEADER, zi as addCartItemRequestSchema, zn as claimReturnAddressSchema, zr as paymentStartSchema, zt as memberSchema } from "./index-UhlK7HG7.mjs";
2
+ import { $ as StorefrontClientOptions, $n as DeliveryQuoteResult, $r as ProductDetail, $t as createCustomerInquiryRequestSchema, A as PurchaseDecisionResult, Ai as UnknownFulfillmentView, An as consentUpdateRequestSchema, Ar as easyPayProviderResponseSchema, At as uploadTicketSchema, B as ANALYTICS_VISITOR_COOKIE, Bi as cartItemSchema, Bn as claimTypeSchema, Br as paymentStatusSchema, Bt as updateProfileRequestSchema, C as memberPointEntrySchema, Ci as orderItemStatusSchema, Cn as ConsentState, Cr as cashReceiptRequestSchema, Ct as productReviewSortSchema, D as MyOrder, Di as MyOrderItemFulfillmentSnapshot, Dn as consentKindSchema, Dr as createCheckoutRequestSchema, Dt as reviewSummarySchema, E as DeliveryTracking, Ei as LineFulfillment, En as consentActionSchema, Er as checkoutSessionSchema, Et as reviewPageSchema, F as purchaseDecisionResultSchema, Fi as AddCartItemRequest, Fn as CreateClaimRequest, Fr as paymentMethodSchema, Ft as UpdateProfileRequest, G as AnalyticsEventName, Gn as CASH_RECEIPT_METHODS, Gr as retryPaymentRequestSchema, Gt as PublicInquiry, H as AnalyticsBatch, Hi as updateCartItemRequestSchema, Hn as createClaimResultSchema, Hr as remoteAreaSchema, Ht as CreateInquiryRequest, I as trackingStageResponseSchema, Ii as Cart, In as CreateClaimResult, Ir as paymentOptionKey, It as WishlistAddResult, J as analyticsClientEventNameSchema, Jn as CashReceiptType, Jr as CategoryNode, Jt as productInquiryCategorySchema, K as AnalyticsServerEventName, Kn as CashReceiptIdentityType, Kr as shippingAddressInputSchema, Kt as createInquiryRequestSchema, L as ANALYTICS_MAX_BATCH_BYTES, Li as CartItem, Ln as MyClaim, Lr as paymentOptionListSchema, Lt as memberAddressRequestSchema, M as myOrderItemSchema, Mi as myOrderItemFulfillmentSnapshotSchema, Mn as ClaimReason, Mr as guestInfoSchema, Mt as Member, N as myOrderSchema, Ni as productCardFulfillmentSchema, Nn as ClaimReturnAddress, Nr as paymentFailureCategorySchema, Nt as MemberAddress, O as MyOrderItem, Oi as ProductCardFulfillment, On as consentSourceSchema, Or as deliveryQuoteRequestSchema, Ot as updateReviewRequestSchema, P as orderShippingAddressSchema, Pi as productFulfillmentViewSchema, Pn as ClaimType, Pr as paymentMessageSchema, Pt as MemberAddressRequest, Q as StorefrontClient, Qn as DeliveryQuoteRequest, Qr as ProductCard, Qt as CustomerInquiryCategory, R as ANALYTICS_SESSION_COOKIE, Ri as UpdateCartItemRequest, Rn as claimReasonSchema, Rr as paymentOptionSchema, Rt as memberAddressSchema, S as memberPointEntryPageSchema, Si as claimStatusSchema, Sn as ConsentSource, Sr as cashReceiptIdentityTypeOf, St as productReviewQuerySchema, T as storefrontPointPolicySchema, Ti as pageSchema, Tn as MemberConsents, Tr as checkoutDeliverySchema, Tt as reviewImageUploadRequestSchema, U as AnalyticsClientEvent, Ui as analyticsIdsFromCookie, Un as myClaimSchema, Ur as residentNumberLike, Ut as CreateInquiryResult, V as ANALYTICS_VISITOR_HEADER, Vi as cartSchema, Vn as createClaimRequestSchema, Vr as pgProviderSchema, Vt as wishlistAddResultSchema, W as AnalyticsClientEventName, Wn as AvailablePaymentOption, Wr as responsePaymentMethodSchema, Wt as ProductInquiryCategory, X as analyticsIdSchema, Xn as CheckoutSession, Xr as CollectionProductParams, Xt as CreateCustomerInquiryRequest, Y as analyticsClientEventSchema, Yn as CheckoutDelivery, Yr as CollectionProductPage, Yt as publicInquirySchema, Z as analyticsServerEventNameSchema, Zn as CreateCheckoutRequest, Zr as CollectionProductSortParam, Zt as CustomerInquiry, _ as normalizeCustomInputValue, _i as storefrontCollectionSchema, _n as myCouponListQuerySchema, _r as RetryPaymentRequest, _t as UploadTicket, a as CustomInputEntry, ai as StorefrontCollectionDetail, an as CouponApplication, ar as PAYMENT_RESULT_VALUES, at as createStorefrontSession, b as MemberPoints, bi as PageInfo, bn as ConsentAction, br as availablePaymentOptionSchema, bt as createReviewResultSchema, c as OptionSelectionView, ci as collectionProductQuerySchema, cn as MIN_PAYMENT_AMOUNT, cr as PaymentFailureCategory, ct as MyReview, d as customInputEntrySchema, di as productDetailSchema, dn as checkoutPricingRequestSchema, dr as PaymentOption, dt as PublicReview, ei as ProductFacets, en as customerInquiryCategorySchema, er as EasyPayProvider, et as createStorefrontClient, f as customInputLength, fi as productFacetsSchema, fn as checkoutPricingSchema, fr as PaymentStart, ft as ReviewImageUploadRequest, g as lineSelectionResponseShape, gi as storefrontCollectionListQuerySchema, gn as couponResultSchema, gr as ResponsePaymentMethod, gt as UpdateReviewResult, h as lineSelectionRequestShape, hi as storefrontCollectionDetailSchema, hn as couponBenefitViewSchema, hr as RemoteArea, ht as UpdateReviewRequest, i as AddonSelection, ii as StorefrontCollection, in as CheckoutPricingRequest, ir as KnownPaymentStatus, it as StorefrontSessionOptions, j as deliveryTrackingSchema, ji as lineFulfillmentSchema, jn as memberConsentsSchema, jr as easyPayProviderSchema, jt as writableReviewSchema, k as OrderShippingAddress, ki as ProductFulfillmentView, kn as consentStateSchema, kr as deliveryQuoteSchema, kt as updateReviewResultSchema, l as addonGroupViewSchema, li as collectionProductSortSchema, ln as MyCoupon, lr as PaymentMessage, lt as ProductReviewParams, m as customInputViewSchema, mi as productSortSchema, mn as couponApplicationSchema, mr as PgProvider, mt as ReviewSummary, n as storefrontStoreSchema, ni as ProductSearchParams, nn as ApplicableCoupon, nr as KnownPaymentResult, nt as SessionStorage, o as CustomInputValueView, oi as categoryNodeSchema, on as CouponResult, or as PAYMENT_START_STATUS_VALUES, ot as CreateReviewRequest, p as customInputValueViewSchema, pi as productPageSchema, pn as couponApplicationListSchema, pr as PaymentStatus, pt as ReviewPage, q as analyticsBatchSchema, qn as CashReceiptRequest, qr as startPaymentRequestSchema, qt as createInquiryResultSchema, r as AddonGroupView, ri as ProductSort, rn as CheckoutPricing, rr as KnownPaymentStartStatus, rt as StorefrontSession, s as CustomInputView, si as collectionProductPageSchema, sn as MAX_COUPONS_PER_CHECKOUT, sr as PAYMENT_STATUS_VALUES, st as CreateReviewResult, t as StorefrontStore, ti as ProductPage, tn as customerInquirySchema, tr as GuestInfo, tt as STOREFRONT_SESSION_KEYS, u as addonSelectionSchema, ui as productCardSchema, un as applicableCouponSchema, ur as PaymentMethod, ut as ProductReviewSort, v as optionSelectionViewSchema, vi as ClaimStatus, vn as myCouponSchema, vr as ShippingAddressInput, vt as WritableReview, w as memberPointsSchema, wi as pageInfoSchema, wn as ConsentUpdateRequest, wr as cashReceiptTypeSchema, wt as publicReviewSchema, x as StorefrontPointPolicy, xi as PageParams, xn as ConsentKind, xr as cashReceiptAvailable, xt as myReviewSchema, y as MemberPointEntry, yi as OrderItemStatus, yn as pricingAmountsSchema, yr as StartPaymentRequest, yt as createReviewRequestSchema, z as ANALYTICS_SESSION_HEADER, zi as addCartItemRequestSchema, zn as claimReturnAddressSchema, zr as paymentStartSchema, zt as memberSchema } from "./index-C3kjGNxd.mjs";
3
3
  export { ANALYTICS_MAX_BATCH_BYTES, ANALYTICS_SESSION_COOKIE, ANALYTICS_SESSION_HEADER, ANALYTICS_VISITOR_COOKIE, ANALYTICS_VISITOR_HEADER, AddCartItemRequest, AddonGroupView, AddonSelection, AnalyticsBatch, AnalyticsClientEvent, AnalyticsClientEventName, AnalyticsEventName, AnalyticsServerEventName, AnonymousSession, ApiError, ApplicableCoupon, AvailablePaymentOption, CASH_RECEIPT_METHODS, Cart, CartItem, CashReceiptIdentityType, CashReceiptRequest, CashReceiptType, CategoryNode, CheckoutDelivery, CheckoutPricing, CheckoutPricingRequest, CheckoutSession, ClaimReason, ClaimReturnAddress, ClaimStatus, ClaimType, CollectionProductPage, CollectionProductParams, CollectionProductSortParam, ConsentAction, ConsentKind, ConsentSource, ConsentState, ConsentUpdateRequest, CouponApplication, CouponResult, CreateCheckoutRequest, CreateClaimRequest, CreateClaimResult, CreateCustomerInquiryRequest, CreateInquiryRequest, CreateInquiryResult, CreateReviewRequest, CreateReviewResult, CustomInputEntry, CustomInputValueView, CustomInputView, CustomerInquiry, CustomerInquiryCategory, DeliveryQuoteRequest, DeliveryQuoteResult, DeliveryTracking, EasyPayProvider, GuestInfo, IdpAgreements, IdpAuthorizeRequest, IdpTokenRequest, KnownPaymentResult, KnownPaymentStartStatus, KnownPaymentStatus, LineFulfillment, LinkIdentityRequest, LoginRequest, MAX_COUPONS_PER_CHECKOUT, MIN_PAYMENT_AMOUNT, Member, MemberAddress, MemberAddressRequest, MemberConsents, MemberIdentities, MemberPointEntry, MemberPoints, MyClaim, MyCoupon, MyOrder, MyOrderItem, MyOrderItemFulfillmentSnapshot, MyReview, OptionSelectionView, OrderItemStatus, OrderShippingAddress, PAYMENT_RESULT_VALUES, PAYMENT_START_STATUS_VALUES, PAYMENT_STATUS_VALUES, PageInfo, PageParams, PaymentFailureCategory, PaymentMessage, PaymentMethod, PaymentOption, PaymentStart, PaymentStatus, PgProvider, ProductCard, ProductCardFulfillment, ProductDetail, ProductFacets, ProductFulfillmentView, ProductInquiryCategory, ProductPage, ProductReviewParams, ProductReviewSort, ProductSearchParams, ProductSort, PublicInquiry, PublicReview, PurchaseDecisionResult, type Query, RemoteArea, ResponsePaymentMethod, RetryPaymentRequest, ReviewImageUploadRequest, ReviewPage, ReviewSummary, STOREFRONT_SESSION_KEYS, type SessionStorage, ShippingAddressInput, SignupRequest, SocialProvider, StartPaymentRequest, type StorefrontClient, type StorefrontClientOptions, StorefrontCollection, StorefrontCollectionDetail, StorefrontPointPolicy, type StorefrontSession, type StorefrontSessionOptions, StorefrontStore, TokenPair, type TokenSource, UnknownFulfillmentView, UpdateCartItemRequest, UpdateProfileRequest, UpdateReviewRequest, UpdateReviewResult, UploadTicket, WishlistAddResult, WithdrawRequest, WithdrawalBlockedDetails, WritableReview, addCartItemRequestSchema, addonGroupViewSchema, addonSelectionSchema, analyticsBatchSchema, analyticsClientEventNameSchema, analyticsClientEventSchema, analyticsIdSchema, analyticsIdsFromCookie, analyticsServerEventNameSchema, anonymousSessionSchema, applicableCouponSchema, availablePaymentOptionSchema, buildQuery, cartItemSchema, cartSchema, cashReceiptAvailable, cashReceiptIdentityTypeOf, cashReceiptRequestSchema, cashReceiptTypeSchema, categoryNodeSchema, checkoutDeliverySchema, checkoutPricingRequestSchema, checkoutPricingSchema, checkoutSessionSchema, claimReasonSchema, claimReturnAddressSchema, claimStatusSchema, claimTypeSchema, collectionProductPageSchema, collectionProductQuerySchema, collectionProductSortSchema, consentActionSchema, consentKindSchema, consentSourceSchema, consentStateSchema, consentUpdateRequestSchema, couponApplicationListSchema, couponApplicationSchema, couponBenefitViewSchema, couponResultSchema, createCheckoutRequestSchema, createClaimRequestSchema, createClaimResultSchema, createCustomerInquiryRequestSchema, createInquiryRequestSchema, createInquiryResultSchema, createReviewRequestSchema, createReviewResultSchema, createStorefrontClient, createStorefrontSession, customInputEntrySchema, customInputLength, customInputValueViewSchema, customInputViewSchema, customerInquiryCategorySchema, customerInquirySchema, deliveryQuoteRequestSchema, deliveryQuoteSchema, deliveryTrackingSchema, easyPayProviderResponseSchema, easyPayProviderSchema, guestInfoSchema, idpAgreementsSchema, idpAuthorizeRequestSchema, idpAuthorizeResponseSchema, idpTokenRequestSchema, lineFulfillmentSchema, lineSelectionRequestShape, lineSelectionResponseShape, linkIdentityRequestSchema, loginRequestSchema, memberAddressRequestSchema, memberAddressSchema, memberConsentsSchema, memberIdentitiesSchema, memberPointEntryPageSchema, memberPointEntrySchema, memberPointsSchema, memberSchema, myClaimSchema, myCouponListQuerySchema, myCouponSchema, myOrderItemFulfillmentSnapshotSchema, myOrderItemSchema, myOrderSchema, myReviewSchema, normalizeCustomInputValue, optionSelectionViewSchema, orderItemStatusSchema, orderShippingAddressSchema, pageInfoSchema, pageSchema, paymentFailureCategorySchema, paymentMessageSchema, paymentMethodSchema, paymentOptionKey, paymentOptionListSchema, paymentOptionSchema, paymentStartSchema, paymentStatusSchema, pgProviderSchema, pricingAmountsSchema, productCardFulfillmentSchema, productCardSchema, productDetailSchema, productFacetsSchema, productFulfillmentViewSchema, productInquiryCategorySchema, productPageSchema, productReviewQuerySchema, productReviewSortSchema, productSortSchema, publicInquirySchema, publicReviewSchema, purchaseDecisionResultSchema, remoteAreaSchema, residentNumberLike, responsePaymentMethodSchema, retryPaymentRequestSchema, reviewImageUploadRequestSchema, reviewPageSchema, reviewSummarySchema, shippingAddressInputSchema, signupRequestSchema, socialProviderSchema, startPaymentRequestSchema, storefrontCollectionDetailSchema, storefrontCollectionListQuerySchema, storefrontCollectionSchema, storefrontPointPolicySchema, storefrontStoreSchema, tokenPairSchema, trackingStageResponseSchema, updateCartItemRequestSchema, updateProfileRequestSchema, updateReviewRequestSchema, updateReviewResultSchema, uploadTicketSchema, wishlistAddResultSchema, withdrawRequestSchema, withdrawalBlockedDetailsSchema, writableReviewSchema };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { a as ANALYTICS_VISITOR_HEADER, c as analyticsClientEventSchema, i as ANALYTICS_VISITOR_COOKIE, l as analyticsIdSchema, n as ANALYTICS_SESSION_COOKIE, o as analyticsBatchSchema, r as ANALYTICS_SESSION_HEADER, s as analyticsClientEventNameSchema, t as ANALYTICS_MAX_BATCH_BYTES, u as analyticsServerEventNameSchema } from "./analytics-CgD70OqH.mjs";
2
2
  import { t as analyticsIdsFromCookie } from "./analytics-ids-COElZiI3.mjs";
3
- import { $ as collectionProductSortSchema, A as wishlistAddResultSchema, At as buildQuery, B as consentSourceSchema, C as orderShippingAddressSchema, Ct as memberIdentitiesSchema, D as memberAddressSchema, Dt as withdrawRequestSchema, E as memberAddressRequestSchema, Et as tokenPairSchema, F as createCustomerInquiryRequestSchema, G as claimReturnAddressSchema, H as consentUpdateRequestSchema, I as customerInquiryCategorySchema, J as createClaimResultSchema, K as claimTypeSchema, L as customerInquirySchema, M as createInquiryResultSchema, Mt as unwrapData, N as productInquiryCategorySchema, O as memberSchema, Ot as withdrawalBlockedDetailsSchema, P as publicInquirySchema, Q as collectionProductQuerySchema, R as consentActionSchema, S as myOrderSchema, St as loginRequestSchema, T as trackingStageResponseSchema, Tt as socialProviderSchema, U as memberConsentsSchema, V as consentStateSchema, W as claimReasonSchema, X as categoryNodeSchema, Y as myClaimSchema, Z as collectionProductPageSchema, _ as memberPointEntrySchema, _t as idpAgreementsSchema, a as myReviewSchema, at as storefrontCollectionDetailSchema, b as deliveryTrackingSchema, bt as idpTokenRequestSchema, c as publicReviewSchema, ct as claimStatusSchema, d as reviewSummarySchema, dt as pageSchema, et as productCardSchema, f as updateReviewRequestSchema, ft as addCartItemRequestSchema, g as memberPointEntryPageSchema, gt as anonymousSessionSchema, h as writableReviewSchema, ht as updateCartItemRequestSchema, i as createReviewResultSchema, it as productSortSchema, j as createInquiryRequestSchema, jt as toApiError, k as updateProfileRequestSchema, kt as ApiError, l as reviewImageUploadRequestSchema, lt as orderItemStatusSchema, m as uploadTicketSchema, mt as cartSchema, n as storefrontStoreSchema, nt as productFacetsSchema, o as productReviewQuerySchema, ot as storefrontCollectionListQuerySchema, p as updateReviewResultSchema, pt as cartItemSchema, q as createClaimRequestSchema, r as createReviewRequestSchema, rt as productPageSchema, s as productReviewSortSchema, st as storefrontCollectionSchema, t as createStorefrontClient, tt as productDetailSchema, u as reviewPageSchema, ut as pageInfoSchema, v as memberPointsSchema, vt as idpAuthorizeRequestSchema, w as purchaseDecisionResultSchema, wt as signupRequestSchema, x as myOrderItemSchema, xt as linkIdentityRequestSchema, y as storefrontPointPolicySchema, yt as idpAuthorizeResponseSchema, z as consentKindSchema } from "./client-NPFWqMgT.mjs";
4
- import { $ as normalizeCustomInputValue, A as retryPaymentRequestSchema, B as couponBenefitViewSchema, C as paymentOptionSchema, D as remoteAreaSchema, E as pgProviderSchema, F as applicableCouponSchema, G as addonGroupViewSchema, H as myCouponListQuerySchema, I as checkoutPricingRequestSchema, J as customInputLength, K as addonSelectionSchema, L as checkoutPricingSchema, M as startPaymentRequestSchema, N as MAX_COUPONS_PER_CHECKOUT, O as residentNumberLike, P as MIN_PAYMENT_AMOUNT, Q as lineSelectionResponseShape, R as couponApplicationListSchema, S as paymentOptionListSchema, T as paymentStatusSchema, U as myCouponSchema, V as couponResultSchema, W as pricingAmountsSchema, X as customInputViewSchema, Y as customInputValueViewSchema, Z as lineSelectionRequestShape, _ as guestInfoSchema, a as availablePaymentOptionSchema, b as paymentMethodSchema, c as cashReceiptRequestSchema, d as checkoutSessionSchema, et as optionSelectionViewSchema, f as createCheckoutRequestSchema, g as easyPayProviderSchema, h as easyPayProviderResponseSchema, i as PAYMENT_STATUS_VALUES, it as productFulfillmentViewSchema, j as shippingAddressInputSchema, k as responsePaymentMethodSchema, l as cashReceiptTypeSchema, m as deliveryQuoteSchema, n as PAYMENT_RESULT_VALUES, nt as myOrderItemFulfillmentSnapshotSchema, o as cashReceiptAvailable, p as deliveryQuoteRequestSchema, q as customInputEntrySchema, r as PAYMENT_START_STATUS_VALUES, rt as productCardFulfillmentSchema, s as cashReceiptIdentityTypeOf, t as CASH_RECEIPT_METHODS, tt as lineFulfillmentSchema, u as checkoutDeliverySchema, v as paymentFailureCategorySchema, w as paymentStartSchema, x as paymentOptionKey, y as paymentMessageSchema, z as couponApplicationSchema } from "./checkout-f7iFQV88.mjs";
3
+ import { $ as collectionProductSortSchema, A as wishlistAddResultSchema, At as buildQuery, B as consentSourceSchema, C as orderShippingAddressSchema, Ct as memberIdentitiesSchema, D as memberAddressSchema, Dt as withdrawRequestSchema, E as memberAddressRequestSchema, Et as tokenPairSchema, F as createCustomerInquiryRequestSchema, G as claimReturnAddressSchema, H as consentUpdateRequestSchema, I as customerInquiryCategorySchema, J as createClaimResultSchema, K as claimTypeSchema, L as customerInquirySchema, M as createInquiryResultSchema, Mt as unwrapData, N as productInquiryCategorySchema, O as memberSchema, Ot as withdrawalBlockedDetailsSchema, P as publicInquirySchema, Q as collectionProductQuerySchema, R as consentActionSchema, S as myOrderSchema, St as loginRequestSchema, T as trackingStageResponseSchema, Tt as socialProviderSchema, U as memberConsentsSchema, V as consentStateSchema, W as claimReasonSchema, X as categoryNodeSchema, Y as myClaimSchema, Z as collectionProductPageSchema, _ as memberPointEntrySchema, _t as idpAgreementsSchema, a as myReviewSchema, at as storefrontCollectionDetailSchema, b as deliveryTrackingSchema, bt as idpTokenRequestSchema, c as publicReviewSchema, ct as claimStatusSchema, d as reviewSummarySchema, dt as pageSchema, et as productCardSchema, f as updateReviewRequestSchema, ft as addCartItemRequestSchema, g as memberPointEntryPageSchema, gt as anonymousSessionSchema, h as writableReviewSchema, ht as updateCartItemRequestSchema, i as createReviewResultSchema, it as productSortSchema, j as createInquiryRequestSchema, jt as toApiError, k as updateProfileRequestSchema, kt as ApiError, l as reviewImageUploadRequestSchema, lt as orderItemStatusSchema, m as uploadTicketSchema, mt as cartSchema, n as storefrontStoreSchema, nt as productFacetsSchema, o as productReviewQuerySchema, ot as storefrontCollectionListQuerySchema, p as updateReviewResultSchema, pt as cartItemSchema, q as createClaimRequestSchema, r as createReviewRequestSchema, rt as productPageSchema, s as productReviewSortSchema, st as storefrontCollectionSchema, t as createStorefrontClient, tt as productDetailSchema, u as reviewPageSchema, ut as pageInfoSchema, v as memberPointsSchema, vt as idpAuthorizeRequestSchema, w as purchaseDecisionResultSchema, wt as signupRequestSchema, x as myOrderItemSchema, xt as linkIdentityRequestSchema, y as storefrontPointPolicySchema, yt as idpAuthorizeResponseSchema, z as consentKindSchema } from "./client-vMd6bgQs.mjs";
4
+ import { $ as normalizeCustomInputValue, A as retryPaymentRequestSchema, B as couponBenefitViewSchema, C as paymentOptionSchema, D as remoteAreaSchema, E as pgProviderSchema, F as applicableCouponSchema, G as addonGroupViewSchema, H as myCouponListQuerySchema, I as checkoutPricingRequestSchema, J as customInputLength, K as addonSelectionSchema, L as checkoutPricingSchema, M as startPaymentRequestSchema, N as MAX_COUPONS_PER_CHECKOUT, O as residentNumberLike, P as MIN_PAYMENT_AMOUNT, Q as lineSelectionResponseShape, R as couponApplicationListSchema, S as paymentOptionListSchema, T as paymentStatusSchema, U as myCouponSchema, V as couponResultSchema, W as pricingAmountsSchema, X as customInputViewSchema, Y as customInputValueViewSchema, Z as lineSelectionRequestShape, _ as guestInfoSchema, a as availablePaymentOptionSchema, b as paymentMethodSchema, c as cashReceiptRequestSchema, d as checkoutSessionSchema, et as optionSelectionViewSchema, f as createCheckoutRequestSchema, g as easyPayProviderSchema, h as easyPayProviderResponseSchema, i as PAYMENT_STATUS_VALUES, it as productFulfillmentViewSchema, j as shippingAddressInputSchema, k as responsePaymentMethodSchema, l as cashReceiptTypeSchema, m as deliveryQuoteSchema, n as PAYMENT_RESULT_VALUES, nt as myOrderItemFulfillmentSnapshotSchema, o as cashReceiptAvailable, p as deliveryQuoteRequestSchema, q as customInputEntrySchema, r as PAYMENT_START_STATUS_VALUES, rt as productCardFulfillmentSchema, s as cashReceiptIdentityTypeOf, t as CASH_RECEIPT_METHODS, tt as lineFulfillmentSchema, u as checkoutDeliverySchema, v as paymentFailureCategorySchema, w as paymentStartSchema, x as paymentOptionKey, y as paymentMessageSchema, z as couponApplicationSchema } from "./checkout-DSAf758s.mjs";
5
5
  //#region src/session.ts
6
6
  /** 세션 키 상수 — SDK가 소유한다. store-sdk와 겹치지 않는 별도 네임스페이스. */
7
7
  const STOREFRONT_SESSION_KEYS = {
@@ -1,4 +1,4 @@
1
- import { dr as PaymentOption, et as createStorefrontClient, fr as PaymentStart, pr as PaymentStatus, qn as CashReceiptRequest, tr as GuestInfo, vr as ShippingAddressInput, yr as StartPaymentRequest } from "../index-UhlK7HG7.mjs";
1
+ import { dr as PaymentOption, et as createStorefrontClient, fr as PaymentStart, pr as PaymentStatus, qn as CashReceiptRequest, tr as GuestInfo, vr as ShippingAddressInput, yr as StartPaymentRequest } from "../index-C3kjGNxd.mjs";
2
2
  //#region src/payments/index.d.ts
3
3
  /**
4
4
  * 스토어프론트 결제 — 브라우저 전용(`@sayren/storefront-sdk/payments`).
@@ -1,4 +1,4 @@
1
- import { y as paymentMessageSchema } from "../checkout-f7iFQV88.mjs";
1
+ import { y as paymentMessageSchema } from "../checkout-DSAf758s.mjs";
2
2
  //#region src/payments/index.ts
3
3
  /** 복귀 주소에 결제 서비스가 붙이는 쿼리 */
4
4
  const RETURN_PAYMENT_ID = "sayrenPaymentId";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sayren/storefront-sdk",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "main": "./dist/index.mjs",
5
5
  "types": "./dist/index.d.mts",
6
6
  "exports": {
@@ -176,6 +176,13 @@ export const storefrontCollectionDetailSchema = storefrontCollectionSchema.exten
176
176
  ),
177
177
  metaTitle: z.string().nullable(),
178
178
  metaDescription: z.string().nullable(),
179
+ salesComputedAt: z
180
+ .string()
181
+ .nullable()
182
+ .default(null)
183
+ .describe(
184
+ "판매량 기준 시각. 판매량 상위·판매량순 컬렉션은 이 시각까지의 실결제 주문을 센다(최대 10분 늦다). 판매량을 쓰지 않거나 집계 전이면 null",
185
+ ),
179
186
  });
180
187
 
181
188
  export type StorefrontCollectionDetail = z.infer<typeof storefrontCollectionDetailSchema>;
@@ -102,7 +102,35 @@ export const checkoutSessionSchema = z.object({
102
102
  .optional()
103
103
  .default(0)
104
104
  .describe("배송비 쿠폰 할인. 쿠폰이 없으면 0"),
105
+ pointAmount: z
106
+ .number()
107
+ .int()
108
+ .optional()
109
+ .default(0)
110
+ .describe(
111
+ "사용 적립금(#93). 주문서는 적립금 전이라 0이고, 결제 시작 응답은 쓴 적립금이다. `totalAmount`는 적립금을 뺀 금액이다",
112
+ ),
105
113
  }),
114
+ points: z
115
+ .object({
116
+ enabled: z
117
+ .boolean()
118
+ .describe("이 주문서에서 적립금을 쓸 수 있는가. 비회원·사용 꺼짐이면 false"),
119
+ balance: z.number().int().describe("내 적립금 잔액"),
120
+ maxUsable: z
121
+ .number()
122
+ .int()
123
+ .describe(
124
+ "이 주문서(쿠폰 전, 배송지 반영 전)에서 쓸 수 있는 최대 금액. 쿠폰·배송지를 바꾸면 금액 미리보기로 다시 받는다",
125
+ ),
126
+ unit: z.number().int().describe("사용 단위(원)"),
127
+ minAmount: z.number().int().describe("한 번에 쓰는 최소 금액(원)"),
128
+ minBalance: z.number().int().describe("쓸 수 있는 최소 보유액(원)"),
129
+ })
130
+ .nullable()
131
+ .optional()
132
+ .default(null)
133
+ .describe("적립금 사용 안내(#93). 비회원이거나 상점이 적립금 사용을 끄면 null"),
106
134
  delivery: checkoutDeliverySchema.describe(
107
135
  "배송비 내역. 배송지를 입력하면 금액이 바뀔 수 있다 — 최종 금액은 결제 시작 응답의 `amounts`다",
108
136
  ),
@@ -412,6 +440,16 @@ export const startPaymentRequestSchema = z.object({
412
440
  "적용하지 못하는 쿠폰이 하나라도 있으면 400 `COUPON_NOT_APPLICABLE`(`details`에 사유)이다. 결제가 실패하거나 만료되면 예약이 풀린다. " +
413
441
  "쿠폰을 바꾸려면 새로 결제를 시작한다(재시도는 같은 쿠폰을 쓴다)",
414
442
  ),
443
+ pointAmount: z
444
+ .number()
445
+ .int()
446
+ .min(0)
447
+ .optional()
448
+ .describe(
449
+ "쓸 적립금(#93, 회원만). 결제 시작이 예약하고 쿠폰 뒤 금액에서 뺀다 — 응답 `amounts.pointAmount`가 실제 사용액이다(단위로 내리고 결제 금액 100원을 남긴다). " +
450
+ "적립금 사용이 꺼져 있으면 409 `POINTS_UNAVAILABLE`, 쓸 수 없으면 400 `POINT_NOT_APPLICABLE`(`details.reason`), 그 사이 잔액이 줄었으면 409 `POINT_BALANCE_CHANGED`다. " +
451
+ "결제가 실패하거나 만료되면 예약이 풀린다",
452
+ ),
415
453
  });
416
454
 
417
455
  export type StartPaymentRequest = z.infer<typeof startPaymentRequestSchema>;
@@ -71,6 +71,15 @@ export const createClaimResultSchema = z.object({
71
71
  "되돌릴 쿠폰 차감 예상액 — 앞선 취소·반품에서 뺀 쿠폰 조건 미달 차감 중 이번에 돌려받을 몫이다. " +
72
72
  "예상 환불액에 이미 반영돼 있다. 서버는 항상 싣는다",
73
73
  ),
74
+ pointRefundAmount: z
75
+ .number()
76
+ .int()
77
+ .optional()
78
+ .default(0)
79
+ .describe(
80
+ "돌려받을 적립금 예상액 (원, #93) — 결제에 쓴 적립금 중 이번 취소·반품 수량의 몫이다. 예상 환불액(현금)과 별개다. " +
81
+ "차감은 현금에서 먼저 빼고 모자란 몫만 여기서 뺀다. 적립금을 쓰지 않은 주문은 0이다. 서버는 항상 싣는다",
82
+ ),
74
83
  });
75
84
 
76
85
  export type CreateClaimResult = z.infer<typeof createClaimResultSchema>;
@@ -117,6 +126,15 @@ export const myClaimSchema = z.object({
117
126
  "예상 배송비 환불액. 배송 묶음이 모두 취소되거나 판매자 귀책일 때만 0보다 크다. " +
118
127
  "이 필드가 생기기 전에 접수된 클레임은 null이다",
119
128
  ),
129
+ expectedPointRefundAmount: z
130
+ .number()
131
+ .int()
132
+ .optional()
133
+ .default(0)
134
+ .describe(
135
+ "예상 반환 적립금 (원, #93) — 결제에 쓴 적립금 중 이 수량의 몫이다. 예상 환불액(현금)과 별개이고, 차감은 현금에서 먼저 뺀다. " +
136
+ "교환·적립금을 쓰지 않은 주문은 0이다. 서버는 항상 싣는다",
137
+ ),
120
138
  rejectReason: z.string().nullable(),
121
139
  returnAddress: claimReturnAddressSchema
122
140
  .nullable()
@@ -96,6 +96,12 @@ export const pricingAmountsSchema = z.object({
96
96
  deliveryFee: z.number().int(),
97
97
  couponDiscountAmount: z.number().int(),
98
98
  deliveryDiscountAmount: z.number().int(),
99
+ pointAmount: z
100
+ .number()
101
+ .int()
102
+ .optional()
103
+ .default(0)
104
+ .describe("사용 적립금(#93). 요청에 `pointAmount`가 없으면 0. 서버는 항상 싣는다"),
99
105
  totalAmount: z.number().int().describe("결제 금액"),
100
106
  });
101
107
 
@@ -107,6 +113,14 @@ export const checkoutPricingRequestSchema = z.object({
107
113
  .optional()
108
114
  .describe("배송지 우편번호. 주면 제주·도서산간 추가 배송비까지 반영한다"),
109
115
  coupons: couponApplicationListSchema,
116
+ pointAmount: z
117
+ .number()
118
+ .int()
119
+ .min(0)
120
+ .optional()
121
+ .describe(
122
+ "쓸 적립금(#93, 회원만). 결제 시작과 같은 규칙으로 실제 사용액을 계산한다(예약하지 않는다)",
123
+ ),
110
124
  });
111
125
  export type CheckoutPricingRequest = z.infer<typeof checkoutPricingRequestSchema>;
112
126
 
@@ -125,9 +139,34 @@ export const checkoutPricingSchema = z.object({
125
139
  .optional()
126
140
  .describe("주문서 줄의 `lineId`(이슈 #59). 서버는 항상 싣는다"),
127
141
  couponDiscountAmount: z.number().int().describe("이 항목에 들어간 쿠폰 할인"),
142
+ pointAllocation: z
143
+ .number()
144
+ .int()
145
+ .optional()
146
+ .default(0)
147
+ .describe("이 항목에 배분한 적립금(#93). 서버는 항상 싣는다"),
128
148
  }),
129
149
  )
130
150
  .describe("주문서 항목별 쿠폰 할인 — 주문서 `items`와 같은 순서"),
151
+ points: z
152
+ .object({
153
+ balance: z.number().int().describe("내 적립금 잔액"),
154
+ maxUsable: z.number().int().describe("이 금액(쿠폰·배송지 반영)에서 쓸 수 있는 최대 적립금"),
155
+ adjustReason: z
156
+ .string()
157
+ .nullable()
158
+ .describe("요청보다 적게 쓴 이유. `MIN_PAYMENT`: 결제 금액 100원을 남기려고 줄였다"),
159
+ rejectReason: z
160
+ .string()
161
+ .nullable()
162
+ .describe(
163
+ "요청했지만 쓰지 못한 이유 — `MIN_BALANCE`·`MIN_AMOUNT`·`NOT_PAYABLE`. 값이 추가될 수 있다",
164
+ ),
165
+ })
166
+ .nullable()
167
+ .optional()
168
+ .default(null)
169
+ .describe("적립금(#93). 비회원이거나 적립금 사용이 꺼져 있으면 null"),
131
170
  payable: z
132
171
  .boolean()
133
172
  .describe(
@@ -32,6 +32,14 @@ export const myOrderItemSchema = z.object({
32
32
  .describe(
33
33
  "이 주문상품에 배분된 쿠폰 할인. 실결제 금액은 `totalPrice − couponDiscountAmount`다. 쿠폰이 없으면 0. 서버는 항상 싣는다",
34
34
  ),
35
+ pointAllocation: z
36
+ .number()
37
+ .int()
38
+ .optional()
39
+ .default(0)
40
+ .describe(
41
+ "이 주문상품에 쓴 적립금 (원, #93). 현금 실결제는 `totalPrice − couponDiscountAmount − pointAllocation`이다. 적립금을 쓰지 않았으면 0. 서버는 항상 싣는다",
42
+ ),
35
43
  status: orderItemStatusSchema,
36
44
  fulfillmentSnapshot: myOrderItemFulfillmentSnapshotSchema.describe(
37
45
  "주문 시점 이행 스냅샷(이슈 #57). `type`이 주문 시점 상품 유형이다. 배송 없는 상품(`MANUAL`)이면 `DELIVERED`는 제공 완료다",
@@ -115,6 +123,14 @@ export const myOrderSchema = z.object({
115
123
  .optional()
116
124
  .default(0)
117
125
  .describe("배송비 쿠폰 할인. 쿠폰이 없으면 0. 서버는 항상 싣는다"),
126
+ pointAmount: z
127
+ .number()
128
+ .int()
129
+ .optional()
130
+ .default(0)
131
+ .describe(
132
+ "사용 적립금 (원, #93). `totalAmount`는 적립금을 뺀 결제 금액이다. 적립금을 쓰지 않았으면 0. 서버는 항상 싣는다",
133
+ ),
118
134
  discounts: z
119
135
  .array(
120
136
  z.object({
@@ -51,7 +51,8 @@ export const memberPointEntrySchema = z.object({
51
51
  .string()
52
52
  .describe(
53
53
  "유형. `EARN_REVIEW` 리뷰 적립 · `REVOKE_REVIEW` 리뷰 삭제 회수 · `EARN_PURCHASE` 구매 적립 · `EXPIRE` 소멸 · `ADJUST` 상점 지급·차감 · " +
54
- "`OPENING` 기존 적립금. 값이 추가될 수 있어 문자열로 받는다",
54
+ "`OPENING` 기존 적립금 · `USE_RESERVE` 결제 사용 · `USE_RELEASE` 결제가 실패·만료되어 되돌림 · `REFUND_RESTORE` 취소·반품 환불로 반환. " +
55
+ "값이 추가될 수 있어 문자열로 받는다",
55
56
  ),
56
57
  amount: z.number().int().describe("변동액. 적립 +, 회수·차감·소멸 −"),
57
58
  balanceAfter: z.number().int().describe("이 변동 직후 잔액"),