@behio/storefront-sdk 2.10.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1205,6 +1205,13 @@ interface CheckoutPreview {
1205
1205
  giftCardDeducted: number;
1206
1206
  roundingAdjustment: number;
1207
1207
  grandTotal: number;
1208
+ /** VAT contained in `grandTotal` split by rate: order discounts (always
1209
+ * VAT-inclusive) reduce base and VAT per rate, shipping and the payment fee
1210
+ * carry the goods rates. Same numbers as the invoice. SDK 2.12.0. */
1211
+ taxBreakdown?: TaxBreakdownLine[];
1212
+ /** VAT contained in `grandTotal`, the sum of `taxBreakdown[].taxAmount`.
1213
+ * `taxTotal` is the goods VAT before order discounts. SDK 2.12.0. */
1214
+ vatTotal?: number;
1208
1215
  previewToken: string;
1209
1216
  expiresAt: number;
1210
1217
  }
@@ -1362,8 +1369,11 @@ interface Cart {
1362
1369
  * `INCL_VAT`, VAT excluded when it runs `EXCL_VAT`. Not the payable amount,
1363
1370
  * that is `grandTotal`. */
1364
1371
  subtotal: number;
1365
- /** Discount from the applied code. Always based on `subtotal`, i.e. on the
1366
- * prices the customer sees, so "10 % off 200" is 20 in both price modes. */
1372
+ /** Discount from the applied code, VAT-inclusive. The base is always the
1373
+ * VAT-inclusive amount, also when the shop shows prices without VAT: a
1374
+ * discount is never taken from the net base (SDK 2.12.0; before, "10 % off
1375
+ * 200 net" was 20, now it is 24.20 at 21 %). It lowers base and VAT, see
1376
+ * `taxBreakdown` and `vatTotal`. */
1367
1377
  discountTotal: number;
1368
1378
  discount?: CartDiscount;
1369
1379
  /** Auto-apply promotion discount lines (sale/BOGO). */
@@ -1380,11 +1390,16 @@ interface Cart {
1380
1390
  * back to the catalog price), under `EXCL_VAT` it is added on top. Render
1381
1391
  * this as the cart total; do not add `taxTotal` to it. */
1382
1392
  grandTotal: number;
1383
- /** VAT contained in the prices (`INCL_VAT`) or added on top of them
1384
- * (`EXCL_VAT`), across all lines (GAP-30). An estimate finalized at checkout
1385
- * once the shipping country is known. */
1393
+ /** Goods VAT BEFORE order discounts: contained in the prices (`INCL_VAT`) or
1394
+ * added on top (`EXCL_VAT`). Use it for the goods subtotal
1395
+ * (`subtotal` net + `taxTotal`); the VAT the customer pays is `vatTotal`. */
1386
1396
  taxTotal: number;
1387
- /** VAT split by rate for "DPH 21 %: X Kč" summary rows. Empty for a
1397
+ /** VAT contained in `grandTotal`, after the order discount, as on the
1398
+ * invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1399
+ vatTotal?: number;
1400
+ /** VAT of the payable amount split by rate for "DPH 21 %: X Kč" rows. The
1401
+ * order discount reduces base and VAT per rate (since SDK 2.12.0; before it
1402
+ * showed the VAT of the goods before the discount). Empty for a
1388
1403
  * non-VAT-payer shop. */
1389
1404
  taxBreakdown: TaxBreakdownLine[];
1390
1405
  /** Delivery country set via `cart.setDestination()`, null until known. SDK 1.17.0. */
@@ -1610,6 +1625,8 @@ interface OrderTracking {
1610
1625
  paymentFee?: number | null;
1611
1626
  discountTotal?: number;
1612
1627
  taxTotal?: number;
1628
+ /** VAT contained in `grandTotal`, as on the invoice. SDK 2.12.0. */
1629
+ vatTotal?: number;
1613
1630
  taxBreakdown?: TaxBreakdownLine[];
1614
1631
  /** Shipping method as the customer chose it (SDK 2.8.0). */
1615
1632
  shippingMethodName?: string | null;
@@ -1662,9 +1679,15 @@ interface OrderDetail extends OrderListItem {
1662
1679
  phone?: string;
1663
1680
  customerNote?: string;
1664
1681
  subtotal: number;
1682
+ /** Goods VAT before order discounts (goods subtotal = `subtotal` + `taxTotal`). */
1665
1683
  taxTotal: number;
1666
- /** VAT split by rate (GAP-30), summed from the order lines. Render
1667
- * "DPH 21 %: X Kč" rows. Empty for a non-VAT order. */
1684
+ /** VAT contained in `grandTotal` (after discounts, incl. shipping), the same
1685
+ * as on the invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1686
+ vatTotal?: number;
1687
+ /** VAT of the amount paid split by rate (GAP-30) for "DPH 21 %: X Kč" rows.
1688
+ * Order discounts reduce base and VAT, shipping and the payment fee carry
1689
+ * the goods rates (since SDK 2.12.0, matching the invoice). Empty for a
1690
+ * non-VAT order. */
1668
1691
  taxBreakdown: TaxBreakdownLine[];
1669
1692
  /** DOMESTIC, OSS, REVERSE_CHARGE (no VAT, buyer accounts for it) or EXPORT (no VAT, outside EU). SDK 1.17.0. */
1670
1693
  vatMode?: "DOMESTIC" | "OSS" | "REVERSE_CHARGE" | "EXPORT" | null;
@@ -2642,6 +2665,13 @@ interface CrossSellItem {
2642
2665
  compareAtPrice: number | null;
2643
2666
  /** Currency code the `price` / `compareAtPrice` are expressed in. */
2644
2667
  currency: string;
2668
+ /**
2669
+ * true when `price` was FX-converted from the shop's default currency (no
2670
+ * price row for `currency`). Show it as approximate (for example with "≈");
2671
+ * the cart charges only real price rows. Same meaning as
2672
+ * `ProductPrice.isApproximate`. Backend 2026-10-02+, absent on older APIs.
2673
+ */
2674
+ priceIsApproximate?: boolean;
2645
2675
  imageUrl: string | null;
2646
2676
  /** Selected-warehouse quantity; null when the merchant hides exact stock. */
2647
2677
  stockCached: number | null;
@@ -1205,6 +1205,13 @@ interface CheckoutPreview {
1205
1205
  giftCardDeducted: number;
1206
1206
  roundingAdjustment: number;
1207
1207
  grandTotal: number;
1208
+ /** VAT contained in `grandTotal` split by rate: order discounts (always
1209
+ * VAT-inclusive) reduce base and VAT per rate, shipping and the payment fee
1210
+ * carry the goods rates. Same numbers as the invoice. SDK 2.12.0. */
1211
+ taxBreakdown?: TaxBreakdownLine[];
1212
+ /** VAT contained in `grandTotal`, the sum of `taxBreakdown[].taxAmount`.
1213
+ * `taxTotal` is the goods VAT before order discounts. SDK 2.12.0. */
1214
+ vatTotal?: number;
1208
1215
  previewToken: string;
1209
1216
  expiresAt: number;
1210
1217
  }
@@ -1362,8 +1369,11 @@ interface Cart {
1362
1369
  * `INCL_VAT`, VAT excluded when it runs `EXCL_VAT`. Not the payable amount,
1363
1370
  * that is `grandTotal`. */
1364
1371
  subtotal: number;
1365
- /** Discount from the applied code. Always based on `subtotal`, i.e. on the
1366
- * prices the customer sees, so "10 % off 200" is 20 in both price modes. */
1372
+ /** Discount from the applied code, VAT-inclusive. The base is always the
1373
+ * VAT-inclusive amount, also when the shop shows prices without VAT: a
1374
+ * discount is never taken from the net base (SDK 2.12.0; before, "10 % off
1375
+ * 200 net" was 20, now it is 24.20 at 21 %). It lowers base and VAT, see
1376
+ * `taxBreakdown` and `vatTotal`. */
1367
1377
  discountTotal: number;
1368
1378
  discount?: CartDiscount;
1369
1379
  /** Auto-apply promotion discount lines (sale/BOGO). */
@@ -1380,11 +1390,16 @@ interface Cart {
1380
1390
  * back to the catalog price), under `EXCL_VAT` it is added on top. Render
1381
1391
  * this as the cart total; do not add `taxTotal` to it. */
1382
1392
  grandTotal: number;
1383
- /** VAT contained in the prices (`INCL_VAT`) or added on top of them
1384
- * (`EXCL_VAT`), across all lines (GAP-30). An estimate finalized at checkout
1385
- * once the shipping country is known. */
1393
+ /** Goods VAT BEFORE order discounts: contained in the prices (`INCL_VAT`) or
1394
+ * added on top (`EXCL_VAT`). Use it for the goods subtotal
1395
+ * (`subtotal` net + `taxTotal`); the VAT the customer pays is `vatTotal`. */
1386
1396
  taxTotal: number;
1387
- /** VAT split by rate for "DPH 21 %: X Kč" summary rows. Empty for a
1397
+ /** VAT contained in `grandTotal`, after the order discount, as on the
1398
+ * invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1399
+ vatTotal?: number;
1400
+ /** VAT of the payable amount split by rate for "DPH 21 %: X Kč" rows. The
1401
+ * order discount reduces base and VAT per rate (since SDK 2.12.0; before it
1402
+ * showed the VAT of the goods before the discount). Empty for a
1388
1403
  * non-VAT-payer shop. */
1389
1404
  taxBreakdown: TaxBreakdownLine[];
1390
1405
  /** Delivery country set via `cart.setDestination()`, null until known. SDK 1.17.0. */
@@ -1610,6 +1625,8 @@ interface OrderTracking {
1610
1625
  paymentFee?: number | null;
1611
1626
  discountTotal?: number;
1612
1627
  taxTotal?: number;
1628
+ /** VAT contained in `grandTotal`, as on the invoice. SDK 2.12.0. */
1629
+ vatTotal?: number;
1613
1630
  taxBreakdown?: TaxBreakdownLine[];
1614
1631
  /** Shipping method as the customer chose it (SDK 2.8.0). */
1615
1632
  shippingMethodName?: string | null;
@@ -1662,9 +1679,15 @@ interface OrderDetail extends OrderListItem {
1662
1679
  phone?: string;
1663
1680
  customerNote?: string;
1664
1681
  subtotal: number;
1682
+ /** Goods VAT before order discounts (goods subtotal = `subtotal` + `taxTotal`). */
1665
1683
  taxTotal: number;
1666
- /** VAT split by rate (GAP-30), summed from the order lines. Render
1667
- * "DPH 21 %: X Kč" rows. Empty for a non-VAT order. */
1684
+ /** VAT contained in `grandTotal` (after discounts, incl. shipping), the same
1685
+ * as on the invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1686
+ vatTotal?: number;
1687
+ /** VAT of the amount paid split by rate (GAP-30) for "DPH 21 %: X Kč" rows.
1688
+ * Order discounts reduce base and VAT, shipping and the payment fee carry
1689
+ * the goods rates (since SDK 2.12.0, matching the invoice). Empty for a
1690
+ * non-VAT order. */
1668
1691
  taxBreakdown: TaxBreakdownLine[];
1669
1692
  /** DOMESTIC, OSS, REVERSE_CHARGE (no VAT, buyer accounts for it) or EXPORT (no VAT, outside EU). SDK 1.17.0. */
1670
1693
  vatMode?: "DOMESTIC" | "OSS" | "REVERSE_CHARGE" | "EXPORT" | null;
@@ -2642,6 +2665,13 @@ interface CrossSellItem {
2642
2665
  compareAtPrice: number | null;
2643
2666
  /** Currency code the `price` / `compareAtPrice` are expressed in. */
2644
2667
  currency: string;
2668
+ /**
2669
+ * true when `price` was FX-converted from the shop's default currency (no
2670
+ * price row for `currency`). Show it as approximate (for example with "≈");
2671
+ * the cart charges only real price rows. Same meaning as
2672
+ * `ProductPrice.isApproximate`. Backend 2026-10-02+, absent on older APIs.
2673
+ */
2674
+ priceIsApproximate?: boolean;
2645
2675
  imageUrl: string | null;
2646
2676
  /** Selected-warehouse quantity; null when the merchant hides exact stock. */
2647
2677
  stockCached: number | null;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as ProductDetail, a as ProductVariant, B as BehioStorefront, S as SdkResult, C as CookieConsent, b as StorefrontFormFieldError } from './client-GId6Qj64.mjs';
2
- export { A as ActivePromotion, c as AddToCartInput, d as AddressDetail, e as AddressSuggestion, f as AddressType, g as AddressTypes, h as AuthTokens, i as BackInStockSubscription, j as BadgeTone, k as BehioApiError, l as BehioErrorCode, m as BehioEventHandler, n as BehioEventType, o as BehioNetworkError, p as BehioStorefrontConfig, q as Blog, r as BlogPostDetail, s as BlogPostListItem, t as BlogPostsPage, u as BlogPostsQuery, v as BlogSettings, w as BlogTag, x as Bundle, y as BundleCatalogQuery, z as BundleItem, D as Cart, E as CartBundleLine, F as CartBundleLineItem, G as CartDiscount, H as CartItem, I as CartItemProduct, J as CartLinkClaimed, K as CartPromotion, L as CartSummaryEvent, M as Category, N as CategoryDetail, O as CertificateVerification, Q as CheckoutAddress, R as CheckoutInput, T as CheckoutPaymentMethod, U as CheckoutPreview, V as CheckoutResult, W as CheckoutSettings, X as CookieConsentInput, Y as CourseAttachment, Z as CourseCertificate, _ as CourseComment, $ as CourseCommentReply, a0 as CourseCommentsList, a1 as CourseDetail, a2 as CourseLesson, a3 as CourseListItem, a4 as CourseModule, a5 as CoursePostedComment, a6 as CourseProgress, a7 as CourseTutorMessage, a8 as CourseTutorThread, a9 as CrossSellItem, aa as CurrencyDisplayFormat, ab as CustomerAddress, ac as CustomerBadge, ad as CustomerChallenge, ae as CustomerGamification, af as CustomerGamificationQuery, ag as CustomerProfile, ah as DigitalDownload, ai as DownloadUrl, aj as Facet, ak as FacetAvailability, al as FacetCategory, am as FacetLabel, an as FacetPriceRange, ao as FacetRange, ap as FacetRatingBucket, aq as FacetValue, ar as FacetsResponse, as as FilterField, at as FulfillmentStatus, au as FulfillmentStatuses, av as GamificationRefreshResult, aw as GiftCardBalance, ax as GiftCardPurchaseInput, ay as GiftCardPurchaseResult, az as GiftCardSummary, aA as LessonNote, aB as LessonQuiz, aC as LoginInput, aD as LoyaltyBalance, aE as LoyaltyNextTier, aF as LoyaltyProgram, aG as LoyaltyQuery, aH as LoyaltyReferralResult, aI as LoyaltySummary, aJ as LoyaltyTier, aK as LoyaltyTierPerks, aL as LoyaltyTransaction, aM as Menu, aN as MenuItem, aO as MenuItemRef, aP as MenuItemType, aQ as MessageResponse, aR as NewsletterOptInDefault, aS as NewsletterSubscribeInput, aT as NewsletterSubscribeResult, aU as NewsletterUnsubscribeResult, aV as OrderAccessRequestResponse, aW as OrderAccessVerifyResponse, aX as OrderDetail, aY as OrderItem, aZ as OrderListItem, a_ as OrderPickupPoint, a$ as OrderShipment, b0 as OrderStatus, b1 as OrderStatusHistory, b2 as OrderStatuses, b3 as OrderTracking, b4 as Page, b5 as PageAttachment, b6 as PageDetail, b7 as PaginatedResponse, b8 as PaymentInstrument, b9 as PaymentStatus, ba as PaymentStatuses, bb as PaymentSwift, bc as PickupPoint, bd as PickupPointHours, be as PickupPointsInput, bf as PickupWidgetConfig, bg as PriceDisplay, bh as ProductAssetGroup, bi as ProductAssetItem, bj as ProductAvailability, bk as ProductGroup, bl as ProductLabel, bm as ProductListItem, bn as ProductMedia, bo as ProductMediaVariant, bp as ProductParameter, bq as ProductParameterGroup, br as ProductParametersResponse, bs as ProductPrice, bt as ProductPromotionSummary, bu as ProductReview, bv as ProductReviewsResponse, bw as ProductSibling, bx as ProductSort, by as ProductSortValue, bz as ProductVolumePrice, bA as ProductsQuery, bB as QuizAnswerInput, bC as QuizAnswerResult, bD as QuizQuestion, bE as QuizResult, bF as QuoteItem, bG as QuoteRequest, bH as RegisterInput, bI as RegisterResult, bJ as RequestInterceptor, bK as RequestInterceptorConfig, bL as ResponseInterceptor, bM as ResponseInterceptorData, bN as ReturnRequest, bO as ReturnRequestItem, bP as ReturnStatus, bQ as ReturnStatusItem, bR as ReturnableOrder, bS as ReturnableOrderItem, bT as SdkError, bU as ShippingMethodSummary, bV as ShippingQuote, bW as ShippingQuoteInput, bX as ShopAppearance, bY as ShopInfo, bZ as ShopScript, b_ as ShopScriptPlacement, b$ as ShopScriptType, c0 as ShopScripts, c1 as ShopSeo, c2 as ShopSeoIdentity, c3 as SiteFormField, c4 as SiteFormFieldOption, c5 as SiteFormFieldType, c6 as Sitemap, c7 as SitemapEntry, c8 as StockBehavior, c9 as StockMode, ca as StorefrontForm, cb as StorefrontFormFieldErrorCode, cc as StorefrontFormFile, cd as StorefrontFormSettings, ce as StorefrontFormSubmitInput, cf as StorefrontFormSubmitResult, cg as StorefrontFormUpload, ch as SubmitQuoteInput, ci as SubmitReturnInput, cj as SubmitReviewInput, ck as Subscription, cl as SubscriptionAction, cm as SubscriptionFrequency, cn as SubscriptionItem, co as SubscriptionStatus, cp as TaxBreakdownLine, cq as VariantAxis, cr as VariantAxisValue, cs as WishlistItem, ct as clearCartSummary, cu as err, cv as ok, cw as publishCartSummary, cx as toSdkError } from './client-GId6Qj64.mjs';
1
+ import { P as ProductDetail, a as ProductVariant, B as BehioStorefront, S as SdkResult, C as CookieConsent, b as StorefrontFormFieldError } from './client-D1nNDDVw.mjs';
2
+ export { A as ActivePromotion, c as AddToCartInput, d as AddressDetail, e as AddressSuggestion, f as AddressType, g as AddressTypes, h as AuthTokens, i as BackInStockSubscription, j as BadgeTone, k as BehioApiError, l as BehioErrorCode, m as BehioEventHandler, n as BehioEventType, o as BehioNetworkError, p as BehioStorefrontConfig, q as Blog, r as BlogPostDetail, s as BlogPostListItem, t as BlogPostsPage, u as BlogPostsQuery, v as BlogSettings, w as BlogTag, x as Bundle, y as BundleCatalogQuery, z as BundleItem, D as Cart, E as CartBundleLine, F as CartBundleLineItem, G as CartDiscount, H as CartItem, I as CartItemProduct, J as CartLinkClaimed, K as CartPromotion, L as CartSummaryEvent, M as Category, N as CategoryDetail, O as CertificateVerification, Q as CheckoutAddress, R as CheckoutInput, T as CheckoutPaymentMethod, U as CheckoutPreview, V as CheckoutResult, W as CheckoutSettings, X as CookieConsentInput, Y as CourseAttachment, Z as CourseCertificate, _ as CourseComment, $ as CourseCommentReply, a0 as CourseCommentsList, a1 as CourseDetail, a2 as CourseLesson, a3 as CourseListItem, a4 as CourseModule, a5 as CoursePostedComment, a6 as CourseProgress, a7 as CourseTutorMessage, a8 as CourseTutorThread, a9 as CrossSellItem, aa as CurrencyDisplayFormat, ab as CustomerAddress, ac as CustomerBadge, ad as CustomerChallenge, ae as CustomerGamification, af as CustomerGamificationQuery, ag as CustomerProfile, ah as DigitalDownload, ai as DownloadUrl, aj as Facet, ak as FacetAvailability, al as FacetCategory, am as FacetLabel, an as FacetPriceRange, ao as FacetRange, ap as FacetRatingBucket, aq as FacetValue, ar as FacetsResponse, as as FilterField, at as FulfillmentStatus, au as FulfillmentStatuses, av as GamificationRefreshResult, aw as GiftCardBalance, ax as GiftCardPurchaseInput, ay as GiftCardPurchaseResult, az as GiftCardSummary, aA as LessonNote, aB as LessonQuiz, aC as LoginInput, aD as LoyaltyBalance, aE as LoyaltyNextTier, aF as LoyaltyProgram, aG as LoyaltyQuery, aH as LoyaltyReferralResult, aI as LoyaltySummary, aJ as LoyaltyTier, aK as LoyaltyTierPerks, aL as LoyaltyTransaction, aM as Menu, aN as MenuItem, aO as MenuItemRef, aP as MenuItemType, aQ as MessageResponse, aR as NewsletterOptInDefault, aS as NewsletterSubscribeInput, aT as NewsletterSubscribeResult, aU as NewsletterUnsubscribeResult, aV as OrderAccessRequestResponse, aW as OrderAccessVerifyResponse, aX as OrderDetail, aY as OrderItem, aZ as OrderListItem, a_ as OrderPickupPoint, a$ as OrderShipment, b0 as OrderStatus, b1 as OrderStatusHistory, b2 as OrderStatuses, b3 as OrderTracking, b4 as Page, b5 as PageAttachment, b6 as PageDetail, b7 as PaginatedResponse, b8 as PaymentInstrument, b9 as PaymentStatus, ba as PaymentStatuses, bb as PaymentSwift, bc as PickupPoint, bd as PickupPointHours, be as PickupPointsInput, bf as PickupWidgetConfig, bg as PriceDisplay, bh as ProductAssetGroup, bi as ProductAssetItem, bj as ProductAvailability, bk as ProductGroup, bl as ProductLabel, bm as ProductListItem, bn as ProductMedia, bo as ProductMediaVariant, bp as ProductParameter, bq as ProductParameterGroup, br as ProductParametersResponse, bs as ProductPrice, bt as ProductPromotionSummary, bu as ProductReview, bv as ProductReviewsResponse, bw as ProductSibling, bx as ProductSort, by as ProductSortValue, bz as ProductVolumePrice, bA as ProductsQuery, bB as QuizAnswerInput, bC as QuizAnswerResult, bD as QuizQuestion, bE as QuizResult, bF as QuoteItem, bG as QuoteRequest, bH as RegisterInput, bI as RegisterResult, bJ as RequestInterceptor, bK as RequestInterceptorConfig, bL as ResponseInterceptor, bM as ResponseInterceptorData, bN as ReturnRequest, bO as ReturnRequestItem, bP as ReturnStatus, bQ as ReturnStatusItem, bR as ReturnableOrder, bS as ReturnableOrderItem, bT as SdkError, bU as ShippingMethodSummary, bV as ShippingQuote, bW as ShippingQuoteInput, bX as ShopAppearance, bY as ShopInfo, bZ as ShopScript, b_ as ShopScriptPlacement, b$ as ShopScriptType, c0 as ShopScripts, c1 as ShopSeo, c2 as ShopSeoIdentity, c3 as SiteFormField, c4 as SiteFormFieldOption, c5 as SiteFormFieldType, c6 as Sitemap, c7 as SitemapEntry, c8 as StockBehavior, c9 as StockMode, ca as StorefrontForm, cb as StorefrontFormFieldErrorCode, cc as StorefrontFormFile, cd as StorefrontFormSettings, ce as StorefrontFormSubmitInput, cf as StorefrontFormSubmitResult, cg as StorefrontFormUpload, ch as SubmitQuoteInput, ci as SubmitReturnInput, cj as SubmitReviewInput, ck as Subscription, cl as SubscriptionAction, cm as SubscriptionFrequency, cn as SubscriptionItem, co as SubscriptionStatus, cp as TaxBreakdownLine, cq as VariantAxis, cr as VariantAxisValue, cs as WishlistItem, ct as clearCartSummary, cu as err, cv as ok, cw as publishCartSummary, cx as toSdkError } from './client-D1nNDDVw.mjs';
3
3
 
4
4
  /**
5
5
  * Format a price amount with currency using Intl.NumberFormat.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as ProductDetail, a as ProductVariant, B as BehioStorefront, S as SdkResult, C as CookieConsent, b as StorefrontFormFieldError } from './client-GId6Qj64.js';
2
- export { A as ActivePromotion, c as AddToCartInput, d as AddressDetail, e as AddressSuggestion, f as AddressType, g as AddressTypes, h as AuthTokens, i as BackInStockSubscription, j as BadgeTone, k as BehioApiError, l as BehioErrorCode, m as BehioEventHandler, n as BehioEventType, o as BehioNetworkError, p as BehioStorefrontConfig, q as Blog, r as BlogPostDetail, s as BlogPostListItem, t as BlogPostsPage, u as BlogPostsQuery, v as BlogSettings, w as BlogTag, x as Bundle, y as BundleCatalogQuery, z as BundleItem, D as Cart, E as CartBundleLine, F as CartBundleLineItem, G as CartDiscount, H as CartItem, I as CartItemProduct, J as CartLinkClaimed, K as CartPromotion, L as CartSummaryEvent, M as Category, N as CategoryDetail, O as CertificateVerification, Q as CheckoutAddress, R as CheckoutInput, T as CheckoutPaymentMethod, U as CheckoutPreview, V as CheckoutResult, W as CheckoutSettings, X as CookieConsentInput, Y as CourseAttachment, Z as CourseCertificate, _ as CourseComment, $ as CourseCommentReply, a0 as CourseCommentsList, a1 as CourseDetail, a2 as CourseLesson, a3 as CourseListItem, a4 as CourseModule, a5 as CoursePostedComment, a6 as CourseProgress, a7 as CourseTutorMessage, a8 as CourseTutorThread, a9 as CrossSellItem, aa as CurrencyDisplayFormat, ab as CustomerAddress, ac as CustomerBadge, ad as CustomerChallenge, ae as CustomerGamification, af as CustomerGamificationQuery, ag as CustomerProfile, ah as DigitalDownload, ai as DownloadUrl, aj as Facet, ak as FacetAvailability, al as FacetCategory, am as FacetLabel, an as FacetPriceRange, ao as FacetRange, ap as FacetRatingBucket, aq as FacetValue, ar as FacetsResponse, as as FilterField, at as FulfillmentStatus, au as FulfillmentStatuses, av as GamificationRefreshResult, aw as GiftCardBalance, ax as GiftCardPurchaseInput, ay as GiftCardPurchaseResult, az as GiftCardSummary, aA as LessonNote, aB as LessonQuiz, aC as LoginInput, aD as LoyaltyBalance, aE as LoyaltyNextTier, aF as LoyaltyProgram, aG as LoyaltyQuery, aH as LoyaltyReferralResult, aI as LoyaltySummary, aJ as LoyaltyTier, aK as LoyaltyTierPerks, aL as LoyaltyTransaction, aM as Menu, aN as MenuItem, aO as MenuItemRef, aP as MenuItemType, aQ as MessageResponse, aR as NewsletterOptInDefault, aS as NewsletterSubscribeInput, aT as NewsletterSubscribeResult, aU as NewsletterUnsubscribeResult, aV as OrderAccessRequestResponse, aW as OrderAccessVerifyResponse, aX as OrderDetail, aY as OrderItem, aZ as OrderListItem, a_ as OrderPickupPoint, a$ as OrderShipment, b0 as OrderStatus, b1 as OrderStatusHistory, b2 as OrderStatuses, b3 as OrderTracking, b4 as Page, b5 as PageAttachment, b6 as PageDetail, b7 as PaginatedResponse, b8 as PaymentInstrument, b9 as PaymentStatus, ba as PaymentStatuses, bb as PaymentSwift, bc as PickupPoint, bd as PickupPointHours, be as PickupPointsInput, bf as PickupWidgetConfig, bg as PriceDisplay, bh as ProductAssetGroup, bi as ProductAssetItem, bj as ProductAvailability, bk as ProductGroup, bl as ProductLabel, bm as ProductListItem, bn as ProductMedia, bo as ProductMediaVariant, bp as ProductParameter, bq as ProductParameterGroup, br as ProductParametersResponse, bs as ProductPrice, bt as ProductPromotionSummary, bu as ProductReview, bv as ProductReviewsResponse, bw as ProductSibling, bx as ProductSort, by as ProductSortValue, bz as ProductVolumePrice, bA as ProductsQuery, bB as QuizAnswerInput, bC as QuizAnswerResult, bD as QuizQuestion, bE as QuizResult, bF as QuoteItem, bG as QuoteRequest, bH as RegisterInput, bI as RegisterResult, bJ as RequestInterceptor, bK as RequestInterceptorConfig, bL as ResponseInterceptor, bM as ResponseInterceptorData, bN as ReturnRequest, bO as ReturnRequestItem, bP as ReturnStatus, bQ as ReturnStatusItem, bR as ReturnableOrder, bS as ReturnableOrderItem, bT as SdkError, bU as ShippingMethodSummary, bV as ShippingQuote, bW as ShippingQuoteInput, bX as ShopAppearance, bY as ShopInfo, bZ as ShopScript, b_ as ShopScriptPlacement, b$ as ShopScriptType, c0 as ShopScripts, c1 as ShopSeo, c2 as ShopSeoIdentity, c3 as SiteFormField, c4 as SiteFormFieldOption, c5 as SiteFormFieldType, c6 as Sitemap, c7 as SitemapEntry, c8 as StockBehavior, c9 as StockMode, ca as StorefrontForm, cb as StorefrontFormFieldErrorCode, cc as StorefrontFormFile, cd as StorefrontFormSettings, ce as StorefrontFormSubmitInput, cf as StorefrontFormSubmitResult, cg as StorefrontFormUpload, ch as SubmitQuoteInput, ci as SubmitReturnInput, cj as SubmitReviewInput, ck as Subscription, cl as SubscriptionAction, cm as SubscriptionFrequency, cn as SubscriptionItem, co as SubscriptionStatus, cp as TaxBreakdownLine, cq as VariantAxis, cr as VariantAxisValue, cs as WishlistItem, ct as clearCartSummary, cu as err, cv as ok, cw as publishCartSummary, cx as toSdkError } from './client-GId6Qj64.js';
1
+ import { P as ProductDetail, a as ProductVariant, B as BehioStorefront, S as SdkResult, C as CookieConsent, b as StorefrontFormFieldError } from './client-D1nNDDVw.js';
2
+ export { A as ActivePromotion, c as AddToCartInput, d as AddressDetail, e as AddressSuggestion, f as AddressType, g as AddressTypes, h as AuthTokens, i as BackInStockSubscription, j as BadgeTone, k as BehioApiError, l as BehioErrorCode, m as BehioEventHandler, n as BehioEventType, o as BehioNetworkError, p as BehioStorefrontConfig, q as Blog, r as BlogPostDetail, s as BlogPostListItem, t as BlogPostsPage, u as BlogPostsQuery, v as BlogSettings, w as BlogTag, x as Bundle, y as BundleCatalogQuery, z as BundleItem, D as Cart, E as CartBundleLine, F as CartBundleLineItem, G as CartDiscount, H as CartItem, I as CartItemProduct, J as CartLinkClaimed, K as CartPromotion, L as CartSummaryEvent, M as Category, N as CategoryDetail, O as CertificateVerification, Q as CheckoutAddress, R as CheckoutInput, T as CheckoutPaymentMethod, U as CheckoutPreview, V as CheckoutResult, W as CheckoutSettings, X as CookieConsentInput, Y as CourseAttachment, Z as CourseCertificate, _ as CourseComment, $ as CourseCommentReply, a0 as CourseCommentsList, a1 as CourseDetail, a2 as CourseLesson, a3 as CourseListItem, a4 as CourseModule, a5 as CoursePostedComment, a6 as CourseProgress, a7 as CourseTutorMessage, a8 as CourseTutorThread, a9 as CrossSellItem, aa as CurrencyDisplayFormat, ab as CustomerAddress, ac as CustomerBadge, ad as CustomerChallenge, ae as CustomerGamification, af as CustomerGamificationQuery, ag as CustomerProfile, ah as DigitalDownload, ai as DownloadUrl, aj as Facet, ak as FacetAvailability, al as FacetCategory, am as FacetLabel, an as FacetPriceRange, ao as FacetRange, ap as FacetRatingBucket, aq as FacetValue, ar as FacetsResponse, as as FilterField, at as FulfillmentStatus, au as FulfillmentStatuses, av as GamificationRefreshResult, aw as GiftCardBalance, ax as GiftCardPurchaseInput, ay as GiftCardPurchaseResult, az as GiftCardSummary, aA as LessonNote, aB as LessonQuiz, aC as LoginInput, aD as LoyaltyBalance, aE as LoyaltyNextTier, aF as LoyaltyProgram, aG as LoyaltyQuery, aH as LoyaltyReferralResult, aI as LoyaltySummary, aJ as LoyaltyTier, aK as LoyaltyTierPerks, aL as LoyaltyTransaction, aM as Menu, aN as MenuItem, aO as MenuItemRef, aP as MenuItemType, aQ as MessageResponse, aR as NewsletterOptInDefault, aS as NewsletterSubscribeInput, aT as NewsletterSubscribeResult, aU as NewsletterUnsubscribeResult, aV as OrderAccessRequestResponse, aW as OrderAccessVerifyResponse, aX as OrderDetail, aY as OrderItem, aZ as OrderListItem, a_ as OrderPickupPoint, a$ as OrderShipment, b0 as OrderStatus, b1 as OrderStatusHistory, b2 as OrderStatuses, b3 as OrderTracking, b4 as Page, b5 as PageAttachment, b6 as PageDetail, b7 as PaginatedResponse, b8 as PaymentInstrument, b9 as PaymentStatus, ba as PaymentStatuses, bb as PaymentSwift, bc as PickupPoint, bd as PickupPointHours, be as PickupPointsInput, bf as PickupWidgetConfig, bg as PriceDisplay, bh as ProductAssetGroup, bi as ProductAssetItem, bj as ProductAvailability, bk as ProductGroup, bl as ProductLabel, bm as ProductListItem, bn as ProductMedia, bo as ProductMediaVariant, bp as ProductParameter, bq as ProductParameterGroup, br as ProductParametersResponse, bs as ProductPrice, bt as ProductPromotionSummary, bu as ProductReview, bv as ProductReviewsResponse, bw as ProductSibling, bx as ProductSort, by as ProductSortValue, bz as ProductVolumePrice, bA as ProductsQuery, bB as QuizAnswerInput, bC as QuizAnswerResult, bD as QuizQuestion, bE as QuizResult, bF as QuoteItem, bG as QuoteRequest, bH as RegisterInput, bI as RegisterResult, bJ as RequestInterceptor, bK as RequestInterceptorConfig, bL as ResponseInterceptor, bM as ResponseInterceptorData, bN as ReturnRequest, bO as ReturnRequestItem, bP as ReturnStatus, bQ as ReturnStatusItem, bR as ReturnableOrder, bS as ReturnableOrderItem, bT as SdkError, bU as ShippingMethodSummary, bV as ShippingQuote, bW as ShippingQuoteInput, bX as ShopAppearance, bY as ShopInfo, bZ as ShopScript, b_ as ShopScriptPlacement, b$ as ShopScriptType, c0 as ShopScripts, c1 as ShopSeo, c2 as ShopSeoIdentity, c3 as SiteFormField, c4 as SiteFormFieldOption, c5 as SiteFormFieldType, c6 as Sitemap, c7 as SitemapEntry, c8 as StockBehavior, c9 as StockMode, ca as StorefrontForm, cb as StorefrontFormFieldErrorCode, cc as StorefrontFormFile, cd as StorefrontFormSettings, ce as StorefrontFormSubmitInput, cf as StorefrontFormSubmitResult, cg as StorefrontFormUpload, ch as SubmitQuoteInput, ci as SubmitReturnInput, cj as SubmitReviewInput, ck as Subscription, cl as SubscriptionAction, cm as SubscriptionFrequency, cn as SubscriptionItem, co as SubscriptionStatus, cp as TaxBreakdownLine, cq as VariantAxis, cr as VariantAxisValue, cs as WishlistItem, ct as clearCartSummary, cu as err, cv as ok, cw as publishCartSummary, cx as toSdkError } from './client-D1nNDDVw.js';
3
3
 
4
4
  /**
5
5
  * Format a price amount with currency using Intl.NumberFormat.
package/dist/next.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { p as BehioStorefrontConfig, B as BehioStorefront } from './client-GId6Qj64.mjs';
1
+ import { p as BehioStorefrontConfig, B as BehioStorefront } from './client-D1nNDDVw.mjs';
2
2
 
3
3
  interface GetBehioOptions extends Partial<BehioStorefrontConfig> {
4
4
  /** Override the cart session cookie name (default: "behio_cart_session"). */
package/dist/next.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { p as BehioStorefrontConfig, B as BehioStorefront } from './client-GId6Qj64.js';
1
+ import { p as BehioStorefrontConfig, B as BehioStorefront } from './client-D1nNDDVw.js';
2
2
 
3
3
  interface GetBehioOptions extends Partial<BehioStorefrontConfig> {
4
4
  /** Override the cart session cookie name (default: "behio_cart_session"). */
package/dist/react.d.mts CHANGED
@@ -1261,6 +1261,13 @@ interface CheckoutPreview {
1261
1261
  giftCardDeducted: number;
1262
1262
  roundingAdjustment: number;
1263
1263
  grandTotal: number;
1264
+ /** VAT contained in `grandTotal` split by rate: order discounts (always
1265
+ * VAT-inclusive) reduce base and VAT per rate, shipping and the payment fee
1266
+ * carry the goods rates. Same numbers as the invoice. SDK 2.12.0. */
1267
+ taxBreakdown?: TaxBreakdownLine[];
1268
+ /** VAT contained in `grandTotal`, the sum of `taxBreakdown[].taxAmount`.
1269
+ * `taxTotal` is the goods VAT before order discounts. SDK 2.12.0. */
1270
+ vatTotal?: number;
1264
1271
  previewToken: string;
1265
1272
  expiresAt: number;
1266
1273
  }
@@ -1418,8 +1425,11 @@ interface Cart {
1418
1425
  * `INCL_VAT`, VAT excluded when it runs `EXCL_VAT`. Not the payable amount,
1419
1426
  * that is `grandTotal`. */
1420
1427
  subtotal: number;
1421
- /** Discount from the applied code. Always based on `subtotal`, i.e. on the
1422
- * prices the customer sees, so "10 % off 200" is 20 in both price modes. */
1428
+ /** Discount from the applied code, VAT-inclusive. The base is always the
1429
+ * VAT-inclusive amount, also when the shop shows prices without VAT: a
1430
+ * discount is never taken from the net base (SDK 2.12.0; before, "10 % off
1431
+ * 200 net" was 20, now it is 24.20 at 21 %). It lowers base and VAT, see
1432
+ * `taxBreakdown` and `vatTotal`. */
1423
1433
  discountTotal: number;
1424
1434
  discount?: CartDiscount;
1425
1435
  /** Auto-apply promotion discount lines (sale/BOGO). */
@@ -1436,11 +1446,16 @@ interface Cart {
1436
1446
  * back to the catalog price), under `EXCL_VAT` it is added on top. Render
1437
1447
  * this as the cart total; do not add `taxTotal` to it. */
1438
1448
  grandTotal: number;
1439
- /** VAT contained in the prices (`INCL_VAT`) or added on top of them
1440
- * (`EXCL_VAT`), across all lines (GAP-30). An estimate finalized at checkout
1441
- * once the shipping country is known. */
1449
+ /** Goods VAT BEFORE order discounts: contained in the prices (`INCL_VAT`) or
1450
+ * added on top (`EXCL_VAT`). Use it for the goods subtotal
1451
+ * (`subtotal` net + `taxTotal`); the VAT the customer pays is `vatTotal`. */
1442
1452
  taxTotal: number;
1443
- /** VAT split by rate for "DPH 21 %: X Kč" summary rows. Empty for a
1453
+ /** VAT contained in `grandTotal`, after the order discount, as on the
1454
+ * invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1455
+ vatTotal?: number;
1456
+ /** VAT of the payable amount split by rate for "DPH 21 %: X Kč" rows. The
1457
+ * order discount reduces base and VAT per rate (since SDK 2.12.0; before it
1458
+ * showed the VAT of the goods before the discount). Empty for a
1444
1459
  * non-VAT-payer shop. */
1445
1460
  taxBreakdown: TaxBreakdownLine[];
1446
1461
  /** Delivery country set via `cart.setDestination()`, null until known. SDK 1.17.0. */
@@ -1666,6 +1681,8 @@ interface OrderTracking {
1666
1681
  paymentFee?: number | null;
1667
1682
  discountTotal?: number;
1668
1683
  taxTotal?: number;
1684
+ /** VAT contained in `grandTotal`, as on the invoice. SDK 2.12.0. */
1685
+ vatTotal?: number;
1669
1686
  taxBreakdown?: TaxBreakdownLine[];
1670
1687
  /** Shipping method as the customer chose it (SDK 2.8.0). */
1671
1688
  shippingMethodName?: string | null;
@@ -1718,9 +1735,15 @@ interface OrderDetail extends OrderListItem {
1718
1735
  phone?: string;
1719
1736
  customerNote?: string;
1720
1737
  subtotal: number;
1738
+ /** Goods VAT before order discounts (goods subtotal = `subtotal` + `taxTotal`). */
1721
1739
  taxTotal: number;
1722
- /** VAT split by rate (GAP-30), summed from the order lines. Render
1723
- * "DPH 21 %: X Kč" rows. Empty for a non-VAT order. */
1740
+ /** VAT contained in `grandTotal` (after discounts, incl. shipping), the same
1741
+ * as on the invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1742
+ vatTotal?: number;
1743
+ /** VAT of the amount paid split by rate (GAP-30) for "DPH 21 %: X Kč" rows.
1744
+ * Order discounts reduce base and VAT, shipping and the payment fee carry
1745
+ * the goods rates (since SDK 2.12.0, matching the invoice). Empty for a
1746
+ * non-VAT order. */
1724
1747
  taxBreakdown: TaxBreakdownLine[];
1725
1748
  /** DOMESTIC, OSS, REVERSE_CHARGE (no VAT, buyer accounts for it) or EXPORT (no VAT, outside EU). SDK 1.17.0. */
1726
1749
  vatMode?: "DOMESTIC" | "OSS" | "REVERSE_CHARGE" | "EXPORT" | null;
@@ -2652,6 +2675,13 @@ interface CrossSellItem {
2652
2675
  compareAtPrice: number | null;
2653
2676
  /** Currency code the `price` / `compareAtPrice` are expressed in. */
2654
2677
  currency: string;
2678
+ /**
2679
+ * true when `price` was FX-converted from the shop's default currency (no
2680
+ * price row for `currency`). Show it as approximate (for example with "≈");
2681
+ * the cart charges only real price rows. Same meaning as
2682
+ * `ProductPrice.isApproximate`. Backend 2026-10-02+, absent on older APIs.
2683
+ */
2684
+ priceIsApproximate?: boolean;
2655
2685
  imageUrl: string | null;
2656
2686
  /** Selected-warehouse quantity; null when the merchant hides exact stock. */
2657
2687
  stockCached: number | null;
package/dist/react.d.ts CHANGED
@@ -1261,6 +1261,13 @@ interface CheckoutPreview {
1261
1261
  giftCardDeducted: number;
1262
1262
  roundingAdjustment: number;
1263
1263
  grandTotal: number;
1264
+ /** VAT contained in `grandTotal` split by rate: order discounts (always
1265
+ * VAT-inclusive) reduce base and VAT per rate, shipping and the payment fee
1266
+ * carry the goods rates. Same numbers as the invoice. SDK 2.12.0. */
1267
+ taxBreakdown?: TaxBreakdownLine[];
1268
+ /** VAT contained in `grandTotal`, the sum of `taxBreakdown[].taxAmount`.
1269
+ * `taxTotal` is the goods VAT before order discounts. SDK 2.12.0. */
1270
+ vatTotal?: number;
1264
1271
  previewToken: string;
1265
1272
  expiresAt: number;
1266
1273
  }
@@ -1418,8 +1425,11 @@ interface Cart {
1418
1425
  * `INCL_VAT`, VAT excluded when it runs `EXCL_VAT`. Not the payable amount,
1419
1426
  * that is `grandTotal`. */
1420
1427
  subtotal: number;
1421
- /** Discount from the applied code. Always based on `subtotal`, i.e. on the
1422
- * prices the customer sees, so "10 % off 200" is 20 in both price modes. */
1428
+ /** Discount from the applied code, VAT-inclusive. The base is always the
1429
+ * VAT-inclusive amount, also when the shop shows prices without VAT: a
1430
+ * discount is never taken from the net base (SDK 2.12.0; before, "10 % off
1431
+ * 200 net" was 20, now it is 24.20 at 21 %). It lowers base and VAT, see
1432
+ * `taxBreakdown` and `vatTotal`. */
1423
1433
  discountTotal: number;
1424
1434
  discount?: CartDiscount;
1425
1435
  /** Auto-apply promotion discount lines (sale/BOGO). */
@@ -1436,11 +1446,16 @@ interface Cart {
1436
1446
  * back to the catalog price), under `EXCL_VAT` it is added on top. Render
1437
1447
  * this as the cart total; do not add `taxTotal` to it. */
1438
1448
  grandTotal: number;
1439
- /** VAT contained in the prices (`INCL_VAT`) or added on top of them
1440
- * (`EXCL_VAT`), across all lines (GAP-30). An estimate finalized at checkout
1441
- * once the shipping country is known. */
1449
+ /** Goods VAT BEFORE order discounts: contained in the prices (`INCL_VAT`) or
1450
+ * added on top (`EXCL_VAT`). Use it for the goods subtotal
1451
+ * (`subtotal` net + `taxTotal`); the VAT the customer pays is `vatTotal`. */
1442
1452
  taxTotal: number;
1443
- /** VAT split by rate for "DPH 21 %: X Kč" summary rows. Empty for a
1453
+ /** VAT contained in `grandTotal`, after the order discount, as on the
1454
+ * invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1455
+ vatTotal?: number;
1456
+ /** VAT of the payable amount split by rate for "DPH 21 %: X Kč" rows. The
1457
+ * order discount reduces base and VAT per rate (since SDK 2.12.0; before it
1458
+ * showed the VAT of the goods before the discount). Empty for a
1444
1459
  * non-VAT-payer shop. */
1445
1460
  taxBreakdown: TaxBreakdownLine[];
1446
1461
  /** Delivery country set via `cart.setDestination()`, null until known. SDK 1.17.0. */
@@ -1666,6 +1681,8 @@ interface OrderTracking {
1666
1681
  paymentFee?: number | null;
1667
1682
  discountTotal?: number;
1668
1683
  taxTotal?: number;
1684
+ /** VAT contained in `grandTotal`, as on the invoice. SDK 2.12.0. */
1685
+ vatTotal?: number;
1669
1686
  taxBreakdown?: TaxBreakdownLine[];
1670
1687
  /** Shipping method as the customer chose it (SDK 2.8.0). */
1671
1688
  shippingMethodName?: string | null;
@@ -1718,9 +1735,15 @@ interface OrderDetail extends OrderListItem {
1718
1735
  phone?: string;
1719
1736
  customerNote?: string;
1720
1737
  subtotal: number;
1738
+ /** Goods VAT before order discounts (goods subtotal = `subtotal` + `taxTotal`). */
1721
1739
  taxTotal: number;
1722
- /** VAT split by rate (GAP-30), summed from the order lines. Render
1723
- * "DPH 21 %: X Kč" rows. Empty for a non-VAT order. */
1740
+ /** VAT contained in `grandTotal` (after discounts, incl. shipping), the same
1741
+ * as on the invoice. Sum of `taxBreakdown[].taxAmount`. SDK 2.12.0. */
1742
+ vatTotal?: number;
1743
+ /** VAT of the amount paid split by rate (GAP-30) for "DPH 21 %: X Kč" rows.
1744
+ * Order discounts reduce base and VAT, shipping and the payment fee carry
1745
+ * the goods rates (since SDK 2.12.0, matching the invoice). Empty for a
1746
+ * non-VAT order. */
1724
1747
  taxBreakdown: TaxBreakdownLine[];
1725
1748
  /** DOMESTIC, OSS, REVERSE_CHARGE (no VAT, buyer accounts for it) or EXPORT (no VAT, outside EU). SDK 1.17.0. */
1726
1749
  vatMode?: "DOMESTIC" | "OSS" | "REVERSE_CHARGE" | "EXPORT" | null;
@@ -2652,6 +2675,13 @@ interface CrossSellItem {
2652
2675
  compareAtPrice: number | null;
2653
2676
  /** Currency code the `price` / `compareAtPrice` are expressed in. */
2654
2677
  currency: string;
2678
+ /**
2679
+ * true when `price` was FX-converted from the shop's default currency (no
2680
+ * price row for `currency`). Show it as approximate (for example with "≈");
2681
+ * the cart charges only real price rows. Same meaning as
2682
+ * `ProductPrice.isApproximate`. Backend 2026-10-02+, absent on older APIs.
2683
+ */
2684
+ priceIsApproximate?: boolean;
2655
2685
  imageUrl: string | null;
2656
2686
  /** Selected-warehouse quantity; null when the merchant hides exact stock. */
2657
2687
  stockCached: number | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@behio/storefront-sdk",
3
- "version": "2.10.0",
3
+ "version": "2.12.0",
4
4
  "description": "TypeScript SDK for Behio headless e-commerce: core client + React hooks",
5
5
  "author": "Behio",
6
6
  "license": "MIT",