@sixtyninecommerce/client 0.31.0 → 0.32.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.
Files changed (42) hide show
  1. package/README.md +27 -1
  2. package/dist/commerce/customer.d.ts +3 -2
  3. package/dist/commerce/customer.d.ts.map +1 -1
  4. package/dist/commerce/customer.js +6 -3
  5. package/dist/commerce/customer.js.map +1 -1
  6. package/dist/commerce/index.d.ts +6 -1
  7. package/dist/commerce/index.d.ts.map +1 -1
  8. package/dist/commerce/index.js +6 -0
  9. package/dist/commerce/index.js.map +1 -1
  10. package/dist/commerce/queries.d.ts +19 -1
  11. package/dist/commerce/queries.d.ts.map +1 -1
  12. package/dist/commerce/queries.js +62 -1
  13. package/dist/commerce/queries.js.map +1 -1
  14. package/dist/commerce/receipt-claim.d.ts +35 -0
  15. package/dist/commerce/receipt-claim.d.ts.map +1 -0
  16. package/dist/commerce/receipt-claim.js +66 -0
  17. package/dist/commerce/receipt-claim.js.map +1 -0
  18. package/dist/commerce/returns.d.ts +2 -2
  19. package/dist/commerce/returns.d.ts.map +1 -1
  20. package/dist/commerce/returns.js +24 -3
  21. package/dist/commerce/returns.js.map +1 -1
  22. package/dist/commerce/store-pickup.d.ts +37 -0
  23. package/dist/commerce/store-pickup.d.ts.map +1 -0
  24. package/dist/commerce/store-pickup.js +66 -0
  25. package/dist/commerce/store-pickup.js.map +1 -0
  26. package/dist/events/payloads.d.ts +1 -1
  27. package/dist/events/payloads.d.ts.map +1 -1
  28. package/dist/generated/plugins.d.ts +2 -2
  29. package/dist/generated/plugins.d.ts.map +1 -1
  30. package/dist/generated/shop.d.ts +126 -2
  31. package/dist/generated/shop.d.ts.map +1 -1
  32. package/dist/index.d.ts +2 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/pricing/validation.d.ts +25 -0
  37. package/dist/pricing/validation.d.ts.map +1 -1
  38. package/dist/pricing/validation.js +37 -4
  39. package/dist/pricing/validation.js.map +1 -1
  40. package/dist/types.d.ts +142 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -17,6 +17,7 @@ export { createStorefrontClient } from './client.js';
17
17
  export type { OrderWithWritableCustomFields } from './commerce/checkout.js';
18
18
  export { type ParcelPricing, readParcelPricing } from './commerce/parcel-pricing.js';
19
19
  export type { CatalogDetailOptions, CollectionWithMetafields, MetafieldsOption, ProductVariantWithMetafields, ProductWithMetafields, } from './commerce/products.js';
20
+ export { RECEIPT_CLAIM_NOT_FOUND, RECEIPT_CLAIM_PATH, receiptClaimTokenFrom, } from './commerce/receipt-claim.js';
20
21
  export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, ORDER_SCOPE_HEADER, RESERVED_STOREFRONT_PATHS, type ReservedStorefrontPath, SHOP_API_PATH, } from './constants.js';
21
22
  export { isAssetReference, resolveContentAssetUrls, resolveContentFieldValues, } from './content/asset-urls.js';
22
23
  export { buildFilteredProductsSearch, type FilteredProductsConfig, type FilteredProductsValue, } from './content/filtered-products.js';
@@ -28,5 +29,5 @@ export { orderScopeMatches } from './order-scope.js';
28
29
  export { createRedirectStore, normalizeLookupPath, REDIRECT_STATUS_CODES, type RedirectMatch, type RedirectRule, type RedirectSnapshot, type RedirectStatusCode, type RedirectStore, type RedirectStoreConfig, } from './redirects/index.js';
29
30
  export type { AiSummaryInput, AvailabilityForSeo, BotDirective, BreadcrumbOverrideEntry, CmsItemMetadata, CmsMetaTagsInput, CmsSeoExtras, CollectionForSeo, CollectionMetadata, CollectionMetaTagsInput, CollectionSeoExtras, CommonSeoMetadata, HreflangLink, HreflangLinkTag, HreflangOverrideEntry, LlmsTxtEntryInput, MetaRobots, MetaRobotsFollowDirective, MetaRobotsIndexDirective, MetaRobotsMaxImagePreview, MetaTagsEntityInput, MetaTagsResult, OpenGraphTag, PerBotDirectives, ProductForSeo, ProductMetadata, ProductMetadataAi, ProductMetadataSocial, ProductMetadataTwitter, ProductMetaTagsInput, ProductSeoExtras, QAPair, RawCmsSeo, RawCollectionSeo, RawProductMetadata, RobotsMetaTag, RobotsXRobotsHeader, SchemaOrgAvailability, SeoArtifact, SeoArtifactFetchOptions, SeoArtifactResult, SeoArtifactsModule, SeoEntityInput, SeoMeta, SeoModule, SocialOgType, TwitterCardType, TwitterTag, UrlLocaleStrategy, UrlStrategyConfig, } from './seo/index.js';
30
31
  export { buildUrl, DEFAULT_PRODUCT_PATH_SEGMENT, isSitemapChildFile, isUserFacingRoot, normalizeProductPathSegment, openGraphAvailability, parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, pickCanonicalRootIndex, readUrlStrategy, robotsFromFlags, SEO_ARTIFACTS, schemaOrgAvailability, } from './seo/index.js';
31
- export type { AddItemInput, AdjustmentType, Asset, AssetPresetSize, AssetPresets, AuthenticationInput, AuthenticationStrategy, AuthenticationStrategyInput, B2bCreditStatus, BooleanOperators, BrandingAssetRef, BrandingContact, BrandingFontResource, BrandingIdentity, BrandingInfo, BrandingLegal, BrandingLegalAddress, BrandingSocialLinks, BrandingStorefrontConfig, BrandingTheme, BreadcrumbFragment, CacheTagResolver, ChannelCustomFieldsFragment, ChannelInfo, CmsCollectionItemList, CollectionDetailFragment, CollectionFragment, CollectionItemsQuery, CollectionListOptions, CollectionProductListOptions, CollectionProductSummary, CollectionProductVariant, CollectionRefFragment, CommerceModule, ContentModule, ContentQueryOptions, ContentSearchQuery, ContentStrings, ConvertedAmountFragment, CreateAddressInput, CreateCustomerInput, CreateProductReviewInput, CreateQuoteRequestInput, CreditBalanceSource, CreditModule, CurrencyCode, CurrencyModule, CurrentUserFragment, CustomerPaymentTermsFragment, CustomerReturnFragment, CustomerReturnListOptions, CustomerSubscriptionFragment, DeliveryAdvice, DeliveryOption, DeliverySelectionSource, DeliveryTermsStatus, DeliveryTimeFrame, DepositPaymentIntentInput, DisplayPrice, DropOffPoint, EndpointDeprecationNotice, FacetFragment, FacetValueFilterInput, FacetValueFragment, FavoriteListOptions, FormDefinition, FormFieldTypeRegistry, FormListOptions, FormSubmissionResult, HeadKey, LanguageCode, LoginResult, MagicLinkPortal, MediaModule, Menu, MenuItem, MergedSelection, MethodDeprecationNotice, MolliePaymentIntentInput, MolliePaymentIntentResult, MolliePaymentMethodsInput, MyPaymentMandateFragment, MyparcelDeliveryOptionsInput, MyparcelDropOffPointInput, NativeAuthInput, NavigationModule, OrderDeliveryTermsFragment, OrderFragment, OrderFulfillmentParcelsFragment, OrderFulfillmentsFragment, OrderListOptions, OrderPaymentIntent, OrderPaymentTermsFragment, OrderReturnReasonCode, OrderReturnSettlementMethod, OrderReturnState, OrderScope, OrderSummaryFragment, OrderValidationError, OrderValidationResult, OrderWritableCustomFieldsFragment, PaginatedList, ParkedOrderFragment, ParkedOrderPaymentIntentInput, PayDepositInput, PaymentInput, PaymentTermsClassification, PaymentTermsStatus, PayParkedOrderInput, PlacementRejection, PlacementRejectionCode, PlacementRejectionFragment, PlacementRejectionLine, PresetName, PriceDisplay, PriceTierFragment, PricingModule, Product, ProductAvailabilityFragment, ProductAvailabilityState, ProductCardFragment, ProductFilterParameter, ProductFragment, ProductListOptions, ProductListPage, ProductMetadataFragment, ProductPropertyGroupValuesFragment, ProductPropertyRecord, ProductReviewFragment, ProductReviewListOptions, ProductSummaryFragment, ProductVariantFragment, PropertyGroupFragment, PublicAssetDto, PublicAssetPresetsDto, PublicAssetPresetUrlsDto, PublicAssetTranslationDto, PublicBreadcrumbDto, PublicCapabilitiesDto, PublicCapabilityManifestDto, PublicCapabilityReadinessDto, PublicChannelDto, PublicCollectionDetailDto, PublicCollectionDto, PublicCollectionFieldDto, PublicCollectionItemDetailDto, PublicCollectionItemDto, PublicCollectionItemSearchResultDto, PublicCollectionPageValuesDto, PublicContentStringDto, PublicContentStringListResponseDto, PublicContentStringValueDto, PublicFormDto, PublicFormFieldConstraintDto, PublicFormFieldDto, PublicFormFieldTypeDto, PublicFormListResponseDto, PublicFormSlugRuleDto, PublicFormSlugRulesDto, PublicFormTranslationDto, PublicItemSummaryDto, PublicItemWithFieldsDto, PublicMenuDetailDto, PublicMenuSummaryDto, PublicPaginationTotalDto, PublicPaymentMethodFragment, PublicResolvedCollectionDto, PublicResolvedContentDto, PublicResolvedFieldDto, PublicResolvedItemDto, PublicResolvedSubFieldDto, PublicRouteEntryDto, PublicRoutesMetadataDto, PublicRoutesResponseDto, PublicSeoMetadataDto, PublicShippingMethodFragment, PublicSitemapEntryDto, PublicSitemapSeoDto, PublicVendureAssetDescriptionDto, Quote, QuoteLine, QuoteLineDiscountType, QuoteLineRequestInput, QuoteList, QuoteListOptions, QuoteStatus, RecentReviewsOptions, RecommendedProductGroupFragment, RegisterCustomerInput, RequestMagicLinkOptions, RequestOptions, RequestReturnInput, ResolvedRoute, ResolvedTaxDisplay, ResponsiveImageData, RetryConfig, ReturnRequestLineInput, ReviewSortKey, ReviewStatus, SavedListFragment, SearchInput, SearchResultFragment, SearchResultItemFragment, SetupPaymentMandateInput, ShipmentTrackingHistoryEntry, ShipmentTrackingInfo, StockNotificationSubscriptionResult, StoreContext, StorefrontClient, StorefrontClientConfig, StorefrontDeprecationNotice, StoreRename, StripePaymentIntentResult, SubscriptionFirstChargeTiming, SubscriptionLifecycleAction, SubscriptionLifecycleCommand, SubscriptionPaymentActionInput, SubscriptionPlanPublicFragment, SubscriptionPurchaseInput, SubscriptionPurchaseResultFragment, TaxDisplayB2bMode, TaxDisplayDefault, TaxDisplayInputs, TaxDisplayMode, TaxDisplayPolicy, TierTableEntry, UpdateAddressInput, UpdateCustomerInput, UpdateOrderCustomFieldsInput, UpdateProductReviewInput, VariantLocationAvailabilityFragment, VariantPriceData, VatValidationResultFragment, } from './types.js';
32
+ export type { AddItemInput, AdjustmentType, Asset, AssetPresetSize, AssetPresets, AuthenticationInput, AuthenticationStrategy, AuthenticationStrategyInput, B2bCreditStatus, BooleanOperators, BrandingAssetRef, BrandingContact, BrandingFontResource, BrandingIdentity, BrandingInfo, BrandingLegal, BrandingLegalAddress, BrandingSocialLinks, BrandingStorefrontConfig, BrandingTheme, BreadcrumbFragment, CacheTagResolver, ChannelCustomFieldsFragment, ChannelInfo, CmsCollectionItemList, CollectionDetailFragment, CollectionFragment, CollectionItemsQuery, CollectionListOptions, CollectionProductListOptions, CollectionProductSummary, CollectionProductVariant, CollectionRefFragment, CommerceModule, ContentModule, ContentQueryOptions, ContentSearchQuery, ContentStrings, ConvertedAmountFragment, CreateAddressInput, CreateCustomerInput, CreateProductReviewInput, CreateQuoteRequestInput, CreditBalanceSource, CreditModule, CurrencyCode, CurrencyModule, CurrentUserFragment, CustomerPaymentTermsFragment, CustomerReturnFragment, CustomerReturnListOptions, CustomerSubscriptionFragment, DeliveryAdvice, DeliveryOption, DeliverySelectionSource, DeliveryTermsStatus, DeliveryTimeFrame, DepositPaymentIntentInput, DisplayPrice, DropOffPoint, EndpointDeprecationNotice, FacetFragment, FacetValueFilterInput, FacetValueFragment, FavoriteListOptions, FormDefinition, FormFieldTypeRegistry, FormListOptions, FormSubmissionResult, HeadKey, LanguageCode, LoginResult, MagicLinkPortal, MediaModule, Menu, MenuItem, MergedSelection, MethodDeprecationNotice, MolliePaymentIntentInput, MolliePaymentIntentResult, MolliePaymentMethodsInput, MyPaymentMandateFragment, MyparcelDeliveryOptionsInput, MyparcelDropOffPointInput, NativeAuthInput, NavigationModule, OrderDeliveryTermsFragment, OrderFragment, OrderFulfillmentParcelsFragment, OrderFulfillmentsFragment, OrderListOptions, OrderPaymentIntent, OrderPaymentTermsFragment, OrderReturnReasonCode, OrderReturnSettlementMethod, OrderReturnState, OrderScope, OrderSummaryFragment, OrderValidationError, OrderValidationResult, OrderWritableCustomFieldsFragment, PaginatedList, ParkedOrderFragment, ParkedOrderPaymentIntentInput, PayDepositInput, PaymentInput, PaymentTermsClassification, PaymentTermsStatus, PayParkedOrderInput, PlacementRejection, PlacementRejectionCode, PlacementRejectionFragment, PlacementRejectionLine, PresetName, PriceDisplay, PriceTierFragment, PricingModule, Product, ProductAvailabilityFragment, ProductAvailabilityState, ProductCardFragment, ProductFilterParameter, ProductFragment, ProductListOptions, ProductListPage, ProductMetadataFragment, ProductPropertyGroupValuesFragment, ProductPropertyRecord, ProductReviewFragment, ProductReviewListOptions, ProductSummaryFragment, ProductVariantFragment, PropertyGroupFragment, PublicAssetDto, PublicAssetPresetsDto, PublicAssetPresetUrlsDto, PublicAssetTranslationDto, PublicBreadcrumbDto, PublicCapabilitiesDto, PublicCapabilityManifestDto, PublicCapabilityReadinessDto, PublicChannelDto, PublicCollectionDetailDto, PublicCollectionDto, PublicCollectionFieldDto, PublicCollectionItemDetailDto, PublicCollectionItemDto, PublicCollectionItemSearchResultDto, PublicCollectionPageValuesDto, PublicContentStringDto, PublicContentStringListResponseDto, PublicContentStringValueDto, PublicFormDto, PublicFormFieldConstraintDto, PublicFormFieldDto, PublicFormFieldTypeDto, PublicFormListResponseDto, PublicFormSlugRuleDto, PublicFormSlugRulesDto, PublicFormTranslationDto, PublicItemSummaryDto, PublicItemWithFieldsDto, PublicMenuDetailDto, PublicMenuSummaryDto, PublicPaginationTotalDto, PublicPaymentMethodFragment, PublicResolvedCollectionDto, PublicResolvedContentDto, PublicResolvedFieldDto, PublicResolvedItemDto, PublicResolvedSubFieldDto, PublicRouteEntryDto, PublicRoutesMetadataDto, PublicRoutesResponseDto, PublicSeoMetadataDto, PublicShippingMethodFragment, PublicSitemapEntryDto, PublicSitemapSeoDto, PublicVendureAssetDescriptionDto, Quote, QuoteLine, QuoteLineDiscountType, QuoteLineRequestInput, QuoteList, QuoteListOptions, QuoteStatus, RecentReviewsOptions, RecommendedProductGroupFragment, RegisterCustomerInput, RequestMagicLinkOptions, RequestOptions, RequestReturnInput, ResolvedRoute, ResolvedTaxDisplay, ResponsiveImageData, RetryConfig, ReturnableLineForOrder, ReturnableLinesForOrder, ReturnRequestLineInput, ReviewSortKey, ReviewStatus, SavedListFragment, SearchInput, SearchResultFragment, SearchResultItemFragment, SetupPaymentMandateInput, ShipmentTrackingHistoryEntry, ShipmentTrackingInfo, StockNotificationSubscriptionResult, StoreContext, StorefrontClient, StorefrontClientConfig, StorefrontDeprecationNotice, StoreRename, StripePaymentIntentResult, SubscriptionFirstChargeTiming, SubscriptionLifecycleAction, SubscriptionLifecycleCommand, SubscriptionPaymentActionInput, SubscriptionPlanPublicFragment, SubscriptionPurchaseInput, SubscriptionPurchaseResultFragment, TaxDisplayB2bMode, TaxDisplayDefault, TaxDisplayInputs, TaxDisplayMode, TaxDisplayPolicy, TierTableEntry, UpdateAddressInput, UpdateCustomerInput, UpdateOrderCustomFieldsInput, UpdateProductReviewInput, VariantLocationAvailabilityFragment, VariantPriceData, VatValidationResultFragment, } from './types.js';
32
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ export { PlatformError } from '@sixtyninecommerce/core';
15
15
  export { CATALOG_TAG, cacheTagsForRoute, collectionCacheTag, menuCacheTag, PRODUCT_FEED_TAG, productCacheTag, SEO_ARTIFACT_TAG, storeCacheTag, } from './cache-tags.js';
16
16
  export { createStorefrontClient } from './client.js';
17
17
  export { readParcelPricing } from './commerce/parcel-pricing.js';
18
+ export { RECEIPT_CLAIM_NOT_FOUND, RECEIPT_CLAIM_PATH, receiptClaimTokenFrom, } from './commerce/receipt-claim.js';
18
19
  export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, ORDER_SCOPE_HEADER, RESERVED_STOREFRONT_PATHS, SHOP_API_PATH, } from './constants.js';
19
20
  export { isAssetReference, resolveContentAssetUrls, resolveContentFieldValues, } from './content/asset-urls.js';
20
21
  export { buildFilteredProductsSearch, } from './content/filtered-products.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,OAAO,EAAoB,aAAa,EAAuB,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAsB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAQrF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAQlB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GAOtB,MAAM,sBAAsB,CAAC;AAqD9B,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,OAAO,EAAoB,aAAa,EAAuB,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAsB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAQrF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAQlB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GAOtB,MAAM,sBAAsB,CAAC;AAqD9B,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
@@ -21,6 +21,14 @@ import type { OrderableStockInput, OrderValidationResult } from '../types.js';
21
21
  * (`customerIsExempt`), as the engine skips it then;
22
22
  * - the item count (`minOrderQuantity`) against `totalQuantity`.
23
23
  *
24
+ * The gross and net minimums are judged BEFORE a price-list order-rule
25
+ * discount ("Order discount"), as the engine judges them, so reaching that
26
+ * discount never shows a shortfall checkout would accept. The order's
27
+ * `discounts` and `promotions` (with their `conditions`, as `OrderFragment`
28
+ * carries them) say which discount that is; an order passed without them is
29
+ * compared as it is. The delivery minimum keeps it taken off, as the engine
30
+ * does.
31
+ *
24
32
  * The engine leaves out of its totals the lines of collections the store
25
33
  * exempts from minimums, and any surcharge; the client cannot tell those
26
34
  * apart, so on such a cart the hint and checkout can disagree. The server
@@ -61,6 +69,23 @@ export declare function validateOrderMinimums(order: {
61
69
  */
62
70
  subTotal?: number;
63
71
  total?: number;
72
+ /**
73
+ * The order's discounts (`Order.discounts`). With `promotions`, the
74
+ * price-list order-rule discount is added back before the gross and net
75
+ * minimums are compared.
76
+ */
77
+ discounts?: ReadonlyArray<{
78
+ adjustmentSource: string;
79
+ amount: number;
80
+ amountWithTax: number;
81
+ }>;
82
+ /** The order's promotions with their condition codes (`OrderFragment.promotions`). */
83
+ promotions?: ReadonlyArray<{
84
+ id: string;
85
+ conditions?: ReadonlyArray<{
86
+ code: string;
87
+ }> | null;
88
+ }>;
64
89
  }, constraints: {
65
90
  /** Minimum vs the GROSS line total, minor units. As returned by `getOrderConstraints()`. */
66
91
  minOrderAmountGross?: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/pricing/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAwB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE;IACL;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,WAAW,EAAE;IACX,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,qBAAqB,CA8EvB;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAIhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,GAAG,IAAI,CAMjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC9C,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAIf"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/pricing/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAwB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE;IACL;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,sFAAsF;IACtF,UAAU,CAAC,EAAE,aAAa,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,CAAC,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;KACrD,CAAC,CAAC;CACJ,EACD,WAAW,EAAE;IACX,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,qBAAqB,CAgFvB;AAgCD,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAIhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,GAAG,IAAI,CAMjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC9C,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAIf"}
@@ -21,6 +21,14 @@ import { formatPrice } from './format.js';
21
21
  * (`customerIsExempt`), as the engine skips it then;
22
22
  * - the item count (`minOrderQuantity`) against `totalQuantity`.
23
23
  *
24
+ * The gross and net minimums are judged BEFORE a price-list order-rule
25
+ * discount ("Order discount"), as the engine judges them, so reaching that
26
+ * discount never shows a shortfall checkout would accept. The order's
27
+ * `discounts` and `promotions` (with their `conditions`, as `OrderFragment`
28
+ * carries them) say which discount that is; an order passed without them is
29
+ * compared as it is. The delivery minimum keeps it taken off, as the engine
30
+ * does.
31
+ *
24
32
  * The engine leaves out of its totals the lines of collections the store
25
33
  * exempts from minimums, and any surcharge; the client cannot tell those
26
34
  * apart, so on such a cart the hint and checkout can disagree. The server
@@ -48,7 +56,8 @@ export function validateOrderMinimums(order, constraints) {
48
56
  const amountCurrency = constraints.currencyCode ?? order.currencyCode;
49
57
  const amountsComparable = amountCurrency === order.currencyCode;
50
58
  const minAmount = constraints.minOrderAmountGross ?? constraints.minOrderAmount;
51
- const grossTotal = order.subTotalWithTax ?? order.totalWithTax;
59
+ const orderRule = orderRuleDiscount(order);
60
+ const grossTotal = (order.subTotalWithTax ?? order.totalWithTax) + orderRule.gross;
52
61
  if (amountsComparable && minAmount != null && minAmount > 0 && grossTotal < minAmount) {
53
62
  errors.push({
54
63
  type: 'min_amount',
@@ -62,18 +71,19 @@ export function validateOrderMinimums(order, constraints) {
62
71
  // client does not have. Both can fail on the same cart.
63
72
  const minAmountNet = constraints.minOrderAmountNet;
64
73
  const netTotal = order.subTotal ?? order.total;
74
+ const netBeforeOrderRule = netTotal == null ? null : netTotal + orderRule.net;
65
75
  if (amountsComparable &&
66
76
  minAmountNet != null &&
67
77
  minAmountNet > 0 &&
68
- netTotal != null &&
69
- netTotal < minAmountNet) {
78
+ netBeforeOrderRule != null &&
79
+ netBeforeOrderRule < minAmountNet) {
70
80
  errors.push({
71
81
  type: 'min_amount',
72
82
  // Says "excl. tax" so the figure is not read against the gross total the
73
83
  // buyer sees on screen, where it would look wrong.
74
84
  message: `Minimum order amount is ${formatPrice(minAmountNet, amountCurrency)} excl. tax`,
75
85
  required: minAmountNet,
76
- actual: netTotal,
86
+ actual: netBeforeOrderRule,
77
87
  });
78
88
  }
79
89
  const minDeliveryNet = constraints.fulfillmentMinOrderNet;
@@ -107,6 +117,29 @@ export function validateOrderMinimums(order, constraints) {
107
117
  }
108
118
  return { valid: errors.length === 0, errors };
109
119
  }
120
+ /** The condition every price-list order-rule promotion carries (the engine's "Order discount"). */
121
+ const ORDER_RULE_CONDITION = 'price_list_order_rules';
122
+ /**
123
+ * What the price-list order-rule discount took off the order, positive, net and gross: the
124
+ * discounts whose source is a promotion carrying the order-rule condition. Zero when the order
125
+ * does not say (no `discounts`, or promotions without their conditions).
126
+ */
127
+ function orderRuleDiscount(order) {
128
+ const sources = new Set((order.promotions ?? [])
129
+ .filter((promotion) => (promotion.conditions ?? []).some((condition) => condition.code === ORDER_RULE_CONDITION))
130
+ .map((promotion) => `PROMOTION:${promotion.id}`));
131
+ let net = 0;
132
+ let gross = 0;
133
+ if (sources.size === 0)
134
+ return { net, gross };
135
+ for (const discount of order.discounts ?? []) {
136
+ if (!sources.has(discount.adjustmentSource))
137
+ continue;
138
+ net -= discount.amount;
139
+ gross -= discount.amountWithTax;
140
+ }
141
+ return { net, gross };
142
+ }
110
143
  /**
111
144
  * How many units of a variant the current shopper may put in the cart:
112
145
  * `max(0, saleable) + backorderAllowance` — or `0` when the merchant is not
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/pricing/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/pricing/validation.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -627,6 +627,15 @@ export type Product = Omit<Shop.ProductFragment, 'metadata'> & {
627
627
  * sells (`lines` names them; the store stopped offering a product its
628
628
  * organization shares). The buyer removes them. Adding one is refused with the
629
629
  * same code.
630
+ * - `GIFT_CARD_LINE_FREE` — the cart holds a gift card priced at nothing
631
+ * (`lines` names it). Gift cards are sold at their price.
632
+ * - `GIFT_CARD_ORDER_DISCOUNT` — money would come off an order that sells gift
633
+ * cards: an order-wide coupon (`details` names it as `couponCode`) or a
634
+ * discount. Gift cards are sold without discounts: the buyer removes the
635
+ * coupon, or buys the gift cards in an order of their own.
636
+ * - `GIFT_CARD_NEEDS_BUYER_EMAIL` — the order sells gift cards, whose codes are
637
+ * sent only by email, and its customer has no address that can receive one.
638
+ * The buyer gives a real email address and places again.
630
639
  */
631
640
  export type PlacementRejectionCode = Shop.PlacementRejectionCode;
632
641
  /**
@@ -1371,6 +1380,11 @@ export interface CommerceModule {
1371
1380
  * released on or after 2026-10-05) when the store no longer sells the product;
1372
1381
  * so are `addItemsToCart` (the whole call) and `updateCartLine` raising such a
1373
1382
  * line. Lowering or removing a line always works.
1383
+ *
1384
+ * Refused with `StorefrontError` `ORDER_LINE_VARIANT_UNPRICED` (422, an engine
1385
+ * released on or after 2026-10-10) when the store has no price for the product
1386
+ * (`extensions.productVariantIds` names it); the same for `addItemsToCart` and
1387
+ * `updateCartLine` raising such a line. Nothing is added.
1374
1388
  */
1375
1389
  addToCart(variantId: string, quantity: number): Promise<Shop.OrderFragment>;
1376
1390
  /** Add several variants in one call (e.g. favourite-box bundles). */
@@ -1937,9 +1951,27 @@ export interface CommerceModule {
1937
1951
  subscribeToStockNotification(productVariantId: string, emailAddress?: string): Promise<StockNotificationSubscriptionResult>;
1938
1952
  unsubscribeFromStockNotification(token: string): Promise<boolean>;
1939
1953
  getProductRecommendations(productId: string, groupSlug?: string): Promise<Shop.RecommendedProductGroupFragment[]>;
1954
+ /** The shops that offer pickup, each with `available` for the active order (never a quantity). */
1955
+ getStorePickupLocations(): Promise<Shop.StorePickupLocationFragment[]>;
1956
+ /** The active order's store pickup: the chosen shop, then the pickup's state once placed. */
1957
+ getActiveOrderStorePickup(): Promise<NonNullable<Shop.ActiveOrderStorePickupQuery['activeOrder']>['storePickup'] | null>;
1958
+ /**
1959
+ * Collect the active order at a shop: names it (the shipping address becomes the shop's), then
1960
+ * selects the store-pickup method. `STORE_PICKUP_METHOD_UNAVAILABLE` when the method is not
1961
+ * eligible (the shop is short of an item, or the store has none).
1962
+ */
1963
+ chooseStorePickup(stockLocationId: string): Promise<Shop.OrderFragment>;
1964
+ /** Stop collecting at a shop (call it before the shopper's own address and method). */
1965
+ clearStorePickup(): Promise<Shop.OrderFragment>;
1940
1966
  getAgeVerificationStatus(): Promise<Shop.AgeVerificationStatusQuery['ageVerificationStatus']>;
1941
1967
  submitDateOfBirth(dateOfBirth: string): Promise<Shop.SubmitDateOfBirthMutation['submitDateOfBirth']>;
1942
1968
  confirmAge(): Promise<Shop.ConfirmAgeMutation['confirmAge']>;
1969
+ /**
1970
+ * Add a till purchase to the signed-in shopper's account with the token of its receipt link
1971
+ * (read it with `receiptClaimTokenFrom(window.location)`). `alreadyYours` when it already was.
1972
+ * Every refusal is `POS_RECEIPT_CLAIM_NOT_FOUND`; a guest is `FORBIDDEN`.
1973
+ */
1974
+ claimReceipt(token: string): Promise<Shop.ClaimPosReceiptMutation['claimPosReceipt']>;
1943
1975
  getProductReviews(productId: string, options?: Shop.ProductReviewListOptions): Promise<Shop.ProductReviewsQuery['productReviews']>;
1944
1976
  getRecentProductReviews(options?: Shop.RecentReviewsOptions): Promise<Shop.ProductReviewFragment[]>;
1945
1977
  getReviewRatingSummary(productId: string): Promise<Shop.ProductRatingSummaryQuery['productRatingSummary']>;
@@ -1953,24 +1985,83 @@ export interface CommerceModule {
1953
1985
  voteReview(reviewId: string, isHelpful: boolean): Promise<boolean>;
1954
1986
  reportReview(reviewId: string, reason: string): Promise<boolean>;
1955
1987
  uploadReviewMedia(files: File[]): Promise<Shop.UploadReviewMediaMutation['uploadReviewMedia']>;
1988
+ /**
1989
+ * Refusals: `FORBIDDEN` (signed out), `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this
1990
+ * store), `SUBSCRIPTION_NOT_FOUND` (not the customer's, or not in this store).
1991
+ */
1956
1992
  getMySubscription(id: string): Promise<Shop.CustomerSubscriptionFragment | null>;
1993
+ /**
1994
+ * Refusals: `SUBSCRIPTION_PLAN_UNAVAILABLE`, `SUBSCRIPTION_MANDATE_UNAVAILABLE`,
1995
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (a `mandateId` while signed out), and what stops the store
1996
+ * billing the plan (`SUBSCRIPTION_PRODUCT_UNAVAILABLE`, `SUBSCRIPTION_SHIPPING_UNAVAILABLE`,
1997
+ * `SUBSCRIPTION_CURRENCY_NOT_AVAILABLE`).
1998
+ */
1957
1999
  previewSubscriptionPurchase(planId: string, options?: {
1958
2000
  provider?: 'mollie' | 'stripe';
1959
2001
  mandateId?: string;
1960
2002
  }): Promise<Shop.SubscriptionPurchasePreviewQuery['subscriptionPurchasePreview']>;
2003
+ /**
2004
+ * Refusals, each before any payment starts: `SUBSCRIPTION_PREVIEW_CONFLICT` (the price changed
2005
+ * since the preview: preview again and confirm again), `SUBSCRIPTION_REQUEST_KEY_CONFLICT` (the
2006
+ * key belongs to another action), `SUBSCRIPTION_REQUEST_KEY_INVALID`,
2007
+ * `SUBSCRIPTION_RETURN_URL_INVALID`, `SUBSCRIPTION_INPUT_INVALID` (no or an unknown provider),
2008
+ * `SUBSCRIPTION_PLAN_UNAVAILABLE`, `SUBSCRIPTION_MANDATE_UNAVAILABLE`,
2009
+ * `SUBSCRIPTION_AMOUNT_UNREPRESENTABLE`, the order the store cannot build
2010
+ * (`SUBSCRIPTION_ADDRESS_REQUIRED`, `SUBSCRIPTION_PRODUCT_UNAVAILABLE`,
2011
+ * `SUBSCRIPTION_SHIPPING_UNAVAILABLE`, `SUBSCRIPTION_STOCK_INSUFFICIENT`,
2012
+ * `SUBSCRIPTION_ORDER_REFUSED`), `FORBIDDEN` (signed out) and `SUBSCRIPTION_GUEST_NOT_ALLOWED`
2013
+ * (no customer in this store).
2014
+ */
1961
2015
  startSubscriptionPurchase(input: SubscriptionPurchaseInput): Promise<Shop.SubscriptionPurchaseResultFragment>;
2016
+ /**
2017
+ * Refusals: `SUBSCRIPTION_PURCHASE_NOT_FOUND`, `FORBIDDEN` (signed out),
2018
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this store).
2019
+ */
1962
2020
  getSubscriptionPurchaseStatus(id: string): Promise<Shop.SubscriptionPurchaseResultFragment>;
2021
+ /**
2022
+ * Refusals: `SUBSCRIPTION_NOT_FOUND`, `FORBIDDEN` (signed out),
2023
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this store),
2024
+ * `SUBSCRIPTION_INPUT_INVALID` (an action the storefront may not ask for). A change that is not
2025
+ * possible now is not refused here: it answers `allowed: false` with its `reason`.
2026
+ */
1963
2027
  previewMySubscriptionChange(id: string, input: SubscriptionLifecycleCommand): Promise<Shop.PreviewMySubscriptionChangeQuery['previewMySubscriptionChange']>;
2028
+ /**
2029
+ * Refusals (also of `skipMySubscription`, `rescheduleMySubscription`,
2030
+ * `undoMySubscriptionCancellation`): `SUBSCRIPTION_NOT_FOUND`, `FORBIDDEN` (signed out),
2031
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this store),
2032
+ * `SUBSCRIPTION_OVERRIDE_NOT_ALLOWED` (a staff-only option), `SUBSCRIPTION_INPUT_INVALID`,
2033
+ * `SUBSCRIPTION_DATE_INVALID`, `SUBSCRIPTION_REQUEST_KEY_CONFLICT` /
2034
+ * `SUBSCRIPTION_REQUEST_KEY_INVALID`, and the change not possible now:
2035
+ * `SUBSCRIPTION_CHANGE_CUTOFF_PASSED`, `SUBSCRIPTION_CYCLE_UNRESOLVED`,
2036
+ * `SUBSCRIPTION_STATUS_BLOCKS_CHANGE`, `SUBSCRIPTION_AWAITING_PAYMENT_METHOD`,
2037
+ * `SUBSCRIPTION_CANCELLATION_EFFECTIVE`, `SUBSCRIPTION_NO_NEXT_RENEWAL` (re-read the
2038
+ * subscription and show its `allowedActions`).
2039
+ */
1964
2040
  manageMySubscription(id: string, input: SubscriptionLifecycleCommand): Promise<Shop.CustomerSubscriptionFragment>;
1965
2041
  skipMySubscription(id: string, requestKey: string): Promise<Shop.CustomerSubscriptionFragment>;
1966
2042
  rescheduleMySubscription(id: string, date: string, requestKey: string): Promise<Shop.CustomerSubscriptionFragment>;
1967
2043
  undoMySubscriptionCancellation(id: string, requestKey: string): Promise<Shop.CustomerSubscriptionFragment>;
2044
+ /**
2045
+ * Refusals: `SUBSCRIPTION_NOT_FOUND`, `FORBIDDEN` (signed out),
2046
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this store),
2047
+ * `SUBSCRIPTION_INPUT_INVALID` (no or an unknown provider), `SUBSCRIPTION_RETURN_URL_INVALID`,
2048
+ * `SUBSCRIPTION_REQUEST_KEY_CONFLICT` / `SUBSCRIPTION_REQUEST_KEY_INVALID`,
2049
+ * `SUBSCRIPTION_STATUS_BLOCKS_CHANGE`, `SUBSCRIPTION_PAYMENT_UNRESOLVED` (a setup is still open).
2050
+ */
1968
2051
  replaceMySubscriptionMandate(id: string, input: SubscriptionPaymentActionInput & {
1969
2052
  provider: 'mollie' | 'stripe';
1970
2053
  }): Promise<Shop.SubscriptionPurchaseResultFragment>;
1971
2054
  /**
1972
2055
  * A hosted link that pays the outstanding failed or charged-back cycle again,
1973
2056
  * without another delivery. Reuse `upcomingPayment.checkoutUrl` while it is live.
2057
+ *
2058
+ * Refusals: `SUBSCRIPTION_NOT_FOUND`, `FORBIDDEN` (signed out),
2059
+ * `SUBSCRIPTION_GUEST_NOT_ALLOWED` (no customer in this store),
2060
+ * `SUBSCRIPTION_RETURN_URL_INVALID`, `SUBSCRIPTION_REQUEST_KEY_CONFLICT` /
2061
+ * `SUBSCRIPTION_REQUEST_KEY_INVALID`, `SUBSCRIPTION_STATUS_BLOCKS_CHANGE`,
2062
+ * `SUBSCRIPTION_PAYMENT_UNRESOLVED` (the previous payment is not definitively over),
2063
+ * `SUBSCRIPTION_CYCLE_PAYMENT_HELD` (the store must reconcile a payment it holds),
2064
+ * `SUBSCRIPTION_AMOUNT_UNREPRESENTABLE`.
1974
2065
  */
1975
2066
  recoverMySubscriptionPayment(id: string, input: SubscriptionPaymentActionInput): Promise<Shop.SubscriptionPurchaseResultFragment>;
1976
2067
  getMySubscriptions(): Promise<Shop.CustomerSubscriptionFragment[]>;
@@ -1987,14 +2078,26 @@ export interface CommerceModule {
1987
2078
  /**
1988
2079
  * Begin establishing a payment mandate. Returns a `checkoutUrl` (Mollie) or
1989
2080
  * `clientSecret` (Stripe) for the frontend to complete the setup.
2081
+ *
2082
+ * Refusals: `FORBIDDEN` (signed out), `SUBSCRIPTION_RETURN_URL_INVALID` (`redirectUrl`),
2083
+ * `SUBSCRIPTION_INPUT_INVALID` (an unknown provider).
1990
2084
  */
1991
2085
  setupPaymentMandate(input: Shop.SetupPaymentMandateInput): Promise<Shop.SetupPaymentMandateMutation['setupPaymentMandate']>;
1992
2086
  /**
1993
2087
  * Create a subscription for the active customer against an enabled plan
1994
2088
  * using one of their valid mandates.
2089
+ *
2090
+ * Refusals: `FORBIDDEN` (signed out, or another customer's mandate),
2091
+ * `SUBSCRIPTION_MANDATE_NOT_FOUND`, `SUBSCRIPTION_MANDATE_NOT_VALID` (not verified yet),
2092
+ * `SUBSCRIPTION_PLAN_UNAVAILABLE`, and `startSubscriptionPurchase`'s order and request-key
2093
+ * refusals.
1995
2094
  */
1996
2095
  createSubscription(planId: string, mandateId: string, requestKey?: string): Promise<Shop.CustomerSubscriptionFragment>;
1997
- /** Pause an active or trial subscription owned by the active customer. */
2096
+ /**
2097
+ * Pause an active or trial subscription owned by the active customer. Refusals (also of
2098
+ * `resumeMySubscription` and `cancelMySubscription`): `FORBIDDEN` (signed out, or another
2099
+ * customer's), `SUBSCRIPTION_NOT_FOUND`, and `manageMySubscription`'s "not possible now" codes.
2100
+ */
1998
2101
  pauseMySubscription(id: string, reason?: string): Promise<Shop.CustomerSubscriptionFragment>;
1999
2102
  /** Resume a paused subscription owned by the active customer. */
2000
2103
  resumeMySubscription(id: string): Promise<Shop.CustomerSubscriptionFragment>;
@@ -2056,8 +2159,15 @@ export interface CommerceModule {
2056
2159
  * Per-line returnable quantities and the return window for one of the
2057
2160
  * active customer's orders — drives the return-request UI. Lines only
2058
2161
  * appear once they have shipped/delivered quantity.
2162
+ *
2163
+ * A unit an invoice correction already credited is not returnable: each
2164
+ * line says how many (`creditedQty`) and on which credit notes
2165
+ * (`correctionCredits`), so the UI can say "1 already credited on
2166
+ * CN-00053"; `requestReturn` refuses more with
2167
+ * `RETURN_QUANTITY_ALREADY_CREDITED`. Needs a vendure-server that serves
2168
+ * those fields.
2059
2169
  */
2060
- getReturnableLinesForOrder(orderId: string): Promise<Shop.ReturnableLinesForOrderQuery['returnableLinesForOrder']>;
2170
+ getReturnableLinesForOrder(orderId: string): Promise<ReturnableLinesForOrder>;
2061
2171
  getMyVatValidationStatus(): Promise<Shop.VatValidationResultFragment | null>;
2062
2172
  setMyVatNumber(vatNumber: string): Promise<Shop.VatValidationResultFragment>;
2063
2173
  clearMyVatNumber(): Promise<boolean>;
@@ -2237,6 +2347,9 @@ export interface PricingModule {
2237
2347
  * lines' gross total (`subTotalWithTax`, no shipping), the net minimum and
2238
2348
  * the delivery minimum (`fulfillmentMinOrderNet`, skipped for an exempt
2239
2349
  * customer) against the lines' net total (`subTotal`), and the item count.
2350
+ * The gross and net minimums are judged before a price-list order-rule
2351
+ * discount ("Order discount"), as the engine judges them, when the order
2352
+ * carries its `discounts` and `promotions` (as `OrderFragment` does).
2240
2353
  *
2241
2354
  * Amounts are formatted in `constraints.currencyCode` and compared only with
2242
2355
  * an order in that currency; when the two differ (constraints fetched before
@@ -2262,6 +2375,23 @@ export interface PricingModule {
2262
2375
  */
2263
2376
  subTotal?: number;
2264
2377
  total?: number;
2378
+ /**
2379
+ * The order's discounts (`Order.discounts`). With `promotions`, the
2380
+ * price-list order-rule discount is added back before the gross and net
2381
+ * minimums are compared.
2382
+ */
2383
+ discounts?: ReadonlyArray<{
2384
+ adjustmentSource: string;
2385
+ amount: number;
2386
+ amountWithTax: number;
2387
+ }>;
2388
+ /** The order's promotions with their condition codes (`OrderFragment.promotions`). */
2389
+ promotions?: ReadonlyArray<{
2390
+ id: string;
2391
+ conditions?: ReadonlyArray<{
2392
+ code: string;
2393
+ }> | null;
2394
+ }>;
2265
2395
  }, constraints: {
2266
2396
  minOrderAmountGross?: number | null;
2267
2397
  minOrderAmountNet?: number | null;
@@ -2434,4 +2564,14 @@ export interface StorefrontClient {
2434
2564
  */
2435
2565
  graphql<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<T>;
2436
2566
  }
2567
+ /** One line of {@link ReturnableLinesForOrder}. */
2568
+ export type ReturnableLineForOrder = Shop.ReturnableLinesForOrderLegacyQuery['returnableLinesForOrder']['lines'][number] & Partial<Pick<Shop.ReturnableLinesForOrderQuery['returnableLinesForOrder']['lines'][number], 'creditedQty' | 'correctionCredits'>>;
2569
+ /**
2570
+ * What `getReturnableLinesForOrder` answers. `creditedQty` and `correctionCredits` are absent from
2571
+ * an engine released before 2026-10-09, which does not subtract what an invoice correction
2572
+ * credited.
2573
+ */
2574
+ export type ReturnableLinesForOrder = Omit<Shop.ReturnableLinesForOrderLegacyQuery['returnableLinesForOrder'], 'lines'> & {
2575
+ lines: ReturnableLineForOrder[];
2576
+ };
2437
2577
  //# sourceMappingURL=types.d.ts.map