@epcc-sdk/sdks-shopper 0.10.1 → 0.11.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/@tanstack/react-query.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport {\n type DefaultError,\n queryOptions,\n type UseMutationOptions,\n} from \"@tanstack/react-query\"\n\nimport { client } from \"../client.gen\"\nimport {\n addCustomDiscountToCartItem,\n addTaxItemToCart,\n addTaxItemToCartItemComponent,\n anonymizeOrders,\n bulkAddCustomDiscountsToCart,\n bulkAddTaxItemsToCart,\n bulkDeleteCustomDiscountsFromCart,\n bulkDeleteTaxItemsFromCart,\n bulkUpdateItemsInCart,\n cancelATransaction,\n captureATransaction,\n checkoutApi,\n configureByContextProduct,\n confirmOrder,\n confirmPayment,\n createACart,\n createAccountCartAssociation,\n createAnAccessToken,\n createCartPaymentIntent,\n createCatalog,\n createCustomerCartAssociation,\n createOneTimePasswordTokenRequest,\n createOrderShippingGroup,\n createRule,\n createShippingGroup,\n createSubscriptionState,\n deleteACart,\n deleteACartItem,\n deleteAccountCartAssociation,\n deleteAllCartItems,\n deleteAPromotionViaPromotionCode,\n deleteATaxItem,\n deleteCartShippingGroup,\n deleteCatalogById,\n deleteCustomDiscountFromCart,\n deleteCustomDiscountFromCartItem,\n deleteCustomerCartAssociation,\n deleteReleaseById,\n deleteReleases,\n deleteRuleById,\n deleteTaxItemFromCartItemComponent,\n deleteV2AccountAddress,\n getACart,\n getACurrency,\n getAFile,\n getAllCurrencies,\n getAllFiles,\n getAllHierarchies,\n getAllNodes,\n getAllProducts,\n getAllRelatedProducts,\n getAnOrder,\n getATransaction,\n getByContextAllHierarchies,\n getByContextAllNodes,\n getByContextAllProducts,\n getByContextAllRelatedProducts,\n getByContextChildNodes,\n getByContextChildProducts,\n getByContextComponentProductIds,\n getByContextHierarchy,\n getByContextHierarchyChildNodes,\n getByContextHierarchyNodes,\n getByContextNode,\n getByContextProduct,\n getByContextProductsForHierarchy,\n getByContextProductsForNode,\n getByContextRelease,\n getCartItems,\n getCarts,\n getCatalogById,\n getCatalogs,\n getChildNodes,\n getChildProducts,\n getComponentProductIds,\n getCustomerOrders,\n getFeature,\n getHierarchy,\n getHierarchyChildNodes,\n getHierarchyNodes,\n getInvoice,\n getNode,\n getOffering,\n getOrderItems,\n getOrderShippingGroups,\n getOrderTransactions,\n getProduct,\n getProductsForHierarchy,\n getProductsForNode,\n getReleaseById,\n getReleases,\n getRuleById,\n getRules,\n getShippingGroupById,\n getShippingGroups,\n getShippingGroupsById,\n getStock,\n getSubscription,\n getSubscriptionInvoice,\n getSubscriptionInvoicePayment,\n getSubscriptionState,\n getV2AccountAddress,\n getV2AccountAddresses,\n getV2AccountMembers,\n getV2AccountMembersAccountMemberId,\n getV2Accounts,\n getV2AccountsAccountId,\n getV2AccountsAccountIdAccountMemberships,\n getV2SettingsCart,\n getV2SettingsCartStoreId,\n listInvoices,\n listLocations,\n listOfferingFeatures,\n listOfferingPlanPricingOptions,\n listOfferingPlans,\n listOfferingPricingOptions,\n listOfferings,\n listSubscriptionInvoicePayments,\n listSubscriptionInvoices,\n listSubscriptionPlans,\n listSubscriptionPricingOptions,\n listSubscriptions,\n listSubscriptionStates,\n manageCarts,\n type Options,\n paymentSetup,\n postMultiSearch,\n postV2AccountAddress,\n postV2AccountMembersTokens,\n postV2Accounts,\n publishRelease,\n putShippingGroupById,\n putV2AccountAddress,\n putV2AccountsAccountId,\n putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoId,\n putV2SettingsCart,\n putV2SettingsCartStoreId,\n refundATransaction,\n updateACart,\n updateACartItem,\n updateAnOrder,\n updateATaxItem,\n updateCartPaymentIntent,\n updateCatalog,\n updateCustomDiscountForCart,\n updateCustomDiscountForCartItem,\n updatePasswordProfileInfo,\n updateRule,\n updateShippingGroup,\n updateTaxItemFromCartItemComponent,\n validateCatalogRules,\n} from \"../sdk.gen\"\nimport type {\n AddCustomDiscountToCartItemData,\n AddCustomDiscountToCartItemError,\n AddCustomDiscountToCartItemResponse,\n AddTaxItemToCartData,\n AddTaxItemToCartError,\n AddTaxItemToCartItemComponentData,\n AddTaxItemToCartItemComponentError,\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartResponse,\n AnonymizeOrdersData,\n AnonymizeOrdersError,\n AnonymizeOrdersResponse,\n BulkAddCustomDiscountsToCartData,\n BulkAddCustomDiscountsToCartError,\n BulkAddCustomDiscountsToCartResponse,\n BulkAddTaxItemsToCartData,\n BulkAddTaxItemsToCartError,\n BulkAddTaxItemsToCartResponse,\n BulkDeleteCustomDiscountsFromCartData,\n BulkDeleteCustomDiscountsFromCartResponse,\n BulkDeleteTaxItemsFromCartData,\n BulkDeleteTaxItemsFromCartError,\n BulkDeleteTaxItemsFromCartResponse,\n BulkUpdateItemsInCartData,\n BulkUpdateItemsInCartError,\n BulkUpdateItemsInCartResponse,\n CancelATransactionData,\n CancelATransactionError,\n CancelATransactionResponse,\n CaptureATransactionData,\n CaptureATransactionError,\n CaptureATransactionResponse,\n CheckoutApiData,\n CheckoutApiError,\n CheckoutApiResponse,\n ConfigureByContextProductData,\n ConfigureByContextProductError,\n ConfigureByContextProductResponse,\n ConfirmOrderData,\n ConfirmOrderError,\n ConfirmOrderResponse,\n ConfirmPaymentData,\n ConfirmPaymentError,\n ConfirmPaymentResponse,\n CreateACartData,\n CreateACartError,\n CreateACartResponse,\n CreateAccountCartAssociationData,\n CreateAccountCartAssociationError,\n CreateAccountCartAssociationResponse,\n CreateAnAccessTokenData,\n CreateAnAccessTokenError,\n CreateAnAccessTokenResponse,\n CreateCartPaymentIntentData,\n CreateCartPaymentIntentResponse,\n CreateCatalogData,\n CreateCatalogError,\n CreateCatalogResponse,\n CreateCustomerCartAssociationData,\n CreateCustomerCartAssociationError,\n CreateCustomerCartAssociationResponse,\n CreateOneTimePasswordTokenRequestData,\n CreateOneTimePasswordTokenRequestError,\n CreateOneTimePasswordTokenRequestResponse,\n CreateOrderShippingGroupData,\n CreateOrderShippingGroupError,\n CreateOrderShippingGroupResponse,\n CreateRuleData,\n CreateRuleError,\n CreateRuleResponse,\n CreateShippingGroupData,\n CreateShippingGroupError,\n CreateShippingGroupResponse,\n CreateSubscriptionStateData,\n CreateSubscriptionStateError,\n CreateSubscriptionStateResponse,\n DeleteACartData,\n DeleteACartError,\n DeleteACartItemData,\n DeleteACartItemResponse,\n DeleteACartResponse,\n DeleteAccountCartAssociationData,\n DeleteAccountCartAssociationError,\n DeleteAccountCartAssociationResponse,\n DeleteAllCartItemsData,\n DeleteAllCartItemsError,\n DeleteAllCartItemsResponse,\n DeleteAPromotionViaPromotionCodeData,\n DeleteAPromotionViaPromotionCodeResponse,\n DeleteATaxItemData,\n DeleteATaxItemResponse,\n DeleteCartShippingGroupData,\n DeleteCartShippingGroupError,\n DeleteCartShippingGroupResponse,\n DeleteCatalogByIdData,\n DeleteCatalogByIdError,\n DeleteCatalogByIdResponse,\n DeleteCustomDiscountFromCartData,\n DeleteCustomDiscountFromCartItemData,\n DeleteCustomDiscountFromCartItemResponse,\n DeleteCustomDiscountFromCartResponse,\n DeleteCustomerCartAssociationData,\n DeleteCustomerCartAssociationError,\n DeleteCustomerCartAssociationResponse,\n DeleteReleaseByIdData,\n DeleteReleaseByIdError,\n DeleteReleaseByIdResponse,\n DeleteReleasesData,\n DeleteReleasesError,\n DeleteReleasesResponse,\n DeleteRuleByIdData,\n DeleteRuleByIdError,\n DeleteRuleByIdResponse,\n DeleteTaxItemFromCartItemComponentData,\n DeleteTaxItemFromCartItemComponentError,\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteV2AccountAddressData,\n DeleteV2AccountAddressError,\n DeleteV2AccountAddressResponse,\n GetACartData,\n GetACartError,\n GetACartResponse,\n GetACurrencyData,\n GetACurrencyError,\n GetACurrencyResponse,\n GetAFileData,\n GetAFileError,\n GetAFileResponse,\n GetAllCurrenciesData,\n GetAllCurrenciesError,\n GetAllCurrenciesResponse,\n GetAllFilesData,\n GetAllFilesError,\n GetAllFilesResponse,\n GetAllHierarchiesData,\n GetAllHierarchiesError,\n GetAllHierarchiesResponse,\n GetAllNodesData,\n GetAllNodesError,\n GetAllNodesResponse,\n GetAllProductsData,\n GetAllProductsError,\n GetAllProductsResponse,\n GetAllRelatedProductsData,\n GetAllRelatedProductsError,\n GetAllRelatedProductsResponse,\n GetAnOrderData,\n GetAnOrderError,\n GetAnOrderResponse,\n GetATransactionData,\n GetATransactionResponse,\n GetByContextAllHierarchiesData,\n GetByContextAllHierarchiesError,\n GetByContextAllHierarchiesResponse,\n GetByContextAllNodesData,\n GetByContextAllNodesError,\n GetByContextAllNodesResponse,\n GetByContextAllProductsData,\n GetByContextAllProductsError,\n GetByContextAllProductsResponse,\n GetByContextAllRelatedProductsData,\n GetByContextAllRelatedProductsError,\n GetByContextAllRelatedProductsResponse,\n GetByContextChildNodesData,\n GetByContextChildNodesError,\n GetByContextChildNodesResponse,\n GetByContextChildProductsData,\n GetByContextChildProductsError,\n GetByContextChildProductsResponse,\n GetByContextComponentProductIdsData,\n GetByContextComponentProductIdsError,\n GetByContextComponentProductIdsResponse,\n GetByContextHierarchyChildNodesData,\n GetByContextHierarchyChildNodesError,\n GetByContextHierarchyChildNodesResponse,\n GetByContextHierarchyData,\n GetByContextHierarchyError,\n GetByContextHierarchyNodesData,\n GetByContextHierarchyNodesError,\n GetByContextHierarchyNodesResponse,\n GetByContextHierarchyResponse,\n GetByContextNodeData,\n GetByContextNodeError,\n GetByContextNodeResponse,\n GetByContextProductData,\n GetByContextProductError,\n GetByContextProductResponse,\n GetByContextProductsForHierarchyData,\n GetByContextProductsForHierarchyError,\n GetByContextProductsForHierarchyResponse,\n GetByContextProductsForNodeData,\n GetByContextProductsForNodeError,\n GetByContextProductsForNodeResponse,\n GetByContextReleaseData,\n GetByContextReleaseError,\n GetByContextReleaseResponse,\n GetCartItemsData,\n GetCartItemsResponse,\n GetCartsData,\n GetCartsError,\n GetCartsResponse,\n GetCatalogByIdData,\n GetCatalogByIdError,\n GetCatalogByIdResponse,\n GetCatalogsData,\n GetCatalogsError,\n GetCatalogsResponse,\n GetChildNodesData,\n GetChildNodesError,\n GetChildNodesResponse,\n GetChildProductsData,\n GetChildProductsError,\n GetChildProductsResponse,\n GetComponentProductIdsData,\n GetComponentProductIdsError,\n GetComponentProductIdsResponse,\n GetCustomerOrdersData,\n GetCustomerOrdersResponse,\n GetFeatureData,\n GetFeatureError,\n GetFeatureResponse,\n GetHierarchyChildNodesData,\n GetHierarchyChildNodesError,\n GetHierarchyChildNodesResponse,\n GetHierarchyData,\n GetHierarchyError,\n GetHierarchyNodesData,\n GetHierarchyNodesError,\n GetHierarchyNodesResponse,\n GetHierarchyResponse,\n GetInvoiceData,\n GetInvoiceError,\n GetInvoiceResponse,\n GetNodeData,\n GetNodeError,\n GetNodeResponse,\n GetOfferingData,\n GetOfferingError,\n GetOfferingResponse,\n GetOrderItemsData,\n GetOrderItemsResponse,\n GetOrderShippingGroupsData,\n GetOrderShippingGroupsError,\n GetOrderShippingGroupsResponse,\n GetOrderTransactionsData,\n GetOrderTransactionsError,\n GetOrderTransactionsResponse,\n GetProductData,\n GetProductError,\n GetProductResponse,\n GetProductsForHierarchyData,\n GetProductsForHierarchyError,\n GetProductsForHierarchyResponse,\n GetProductsForNodeData,\n GetProductsForNodeError,\n GetProductsForNodeResponse,\n GetReleaseByIdData,\n GetReleaseByIdError,\n GetReleaseByIdResponse,\n GetReleasesData,\n GetReleasesError,\n GetReleasesResponse,\n GetRuleByIdData,\n GetRuleByIdError,\n GetRuleByIdResponse,\n GetRulesData,\n GetRulesError,\n GetRulesResponse,\n GetShippingGroupByIdData,\n GetShippingGroupByIdError,\n GetShippingGroupByIdResponse,\n GetShippingGroupsByIdData,\n GetShippingGroupsByIdError,\n GetShippingGroupsByIdResponse,\n GetShippingGroupsData,\n GetShippingGroupsError,\n GetShippingGroupsResponse,\n GetStockData,\n GetStockError,\n GetStockResponse,\n GetSubscriptionData,\n GetSubscriptionError,\n GetSubscriptionInvoiceData,\n GetSubscriptionInvoiceError,\n GetSubscriptionInvoicePaymentData,\n GetSubscriptionInvoicePaymentError,\n GetSubscriptionInvoicePaymentResponse,\n GetSubscriptionInvoiceResponse,\n GetSubscriptionResponse,\n GetSubscriptionStateData,\n GetSubscriptionStateError,\n GetSubscriptionStateResponse,\n GetV2AccountAddressData,\n GetV2AccountAddressError,\n GetV2AccountAddressesData,\n GetV2AccountAddressesError,\n GetV2AccountAddressesResponse,\n GetV2AccountAddressResponse,\n GetV2AccountMembersAccountMemberIdData,\n GetV2AccountMembersAccountMemberIdError,\n GetV2AccountMembersAccountMemberIdResponse,\n GetV2AccountMembersData,\n GetV2AccountMembersError,\n GetV2AccountMembersResponse,\n GetV2AccountsAccountIdAccountMembershipsData,\n GetV2AccountsAccountIdAccountMembershipsError,\n GetV2AccountsAccountIdAccountMembershipsResponse,\n GetV2AccountsAccountIdData,\n GetV2AccountsAccountIdError,\n GetV2AccountsAccountIdResponse,\n GetV2AccountsData,\n GetV2AccountsError,\n GetV2AccountsResponse,\n GetV2SettingsCartData,\n GetV2SettingsCartError,\n GetV2SettingsCartResponse,\n GetV2SettingsCartStoreIdData,\n GetV2SettingsCartStoreIdError,\n GetV2SettingsCartStoreIdResponse,\n ListInvoicesData,\n ListInvoicesError,\n ListInvoicesResponse,\n ListLocationsData,\n ListLocationsError,\n ListLocationsResponse,\n ListOfferingFeaturesData,\n ListOfferingFeaturesError,\n ListOfferingFeaturesResponse,\n ListOfferingPlanPricingOptionsData,\n ListOfferingPlanPricingOptionsError,\n ListOfferingPlanPricingOptionsResponse,\n ListOfferingPlansData,\n ListOfferingPlansError,\n ListOfferingPlansResponse,\n ListOfferingPricingOptionsData,\n ListOfferingPricingOptionsError,\n ListOfferingPricingOptionsResponse,\n ListOfferingsData,\n ListOfferingsError,\n ListOfferingsResponse,\n ListSubscriptionInvoicePaymentsData,\n ListSubscriptionInvoicePaymentsResponse,\n ListSubscriptionInvoicesData,\n ListSubscriptionInvoicesError,\n ListSubscriptionInvoicesResponse,\n ListSubscriptionPlansData,\n ListSubscriptionPlansError,\n ListSubscriptionPlansResponse,\n ListSubscriptionPricingOptionsData,\n ListSubscriptionPricingOptionsError,\n ListSubscriptionPricingOptionsResponse,\n ListSubscriptionsData,\n ListSubscriptionsError,\n ListSubscriptionsResponse,\n ListSubscriptionStatesData,\n ListSubscriptionStatesError,\n ListSubscriptionStatesResponse,\n ManageCartsData,\n ManageCartsError,\n ManageCartsResponse,\n PaymentSetupData,\n PaymentSetupError,\n PaymentSetupResponse,\n PostMultiSearchData,\n PostMultiSearchError,\n PostMultiSearchResponse,\n PostV2AccountAddressData,\n PostV2AccountAddressError,\n PostV2AccountAddressResponse,\n PostV2AccountMembersTokensData,\n PostV2AccountMembersTokensError,\n PostV2AccountMembersTokensResponse,\n PostV2AccountsData,\n PostV2AccountsError,\n PostV2AccountsResponse,\n PublishReleaseData,\n PublishReleaseError,\n PublishReleaseResponse,\n PutShippingGroupByIdData,\n PutShippingGroupByIdError,\n PutShippingGroupByIdResponse,\n PutV2AccountAddressData,\n PutV2AccountAddressError,\n PutV2AccountAddressResponse,\n PutV2AccountsAccountIdData,\n PutV2AccountsAccountIdError,\n PutV2AccountsAccountIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2SettingsCartData,\n PutV2SettingsCartError,\n PutV2SettingsCartResponse,\n PutV2SettingsCartStoreIdData,\n PutV2SettingsCartStoreIdError,\n PutV2SettingsCartStoreIdResponse,\n RefundATransactionData,\n RefundATransactionError,\n RefundATransactionResponse,\n UpdateACartData,\n UpdateACartError,\n UpdateACartItemData,\n UpdateACartItemError,\n UpdateACartItemResponse,\n UpdateACartResponse,\n UpdateAnOrderData,\n UpdateAnOrderError,\n UpdateAnOrderResponse,\n UpdateATaxItemData,\n UpdateATaxItemResponse,\n UpdateCartPaymentIntentData,\n UpdateCartPaymentIntentResponse,\n UpdateCatalogData,\n UpdateCatalogError,\n UpdateCatalogResponse,\n UpdateCustomDiscountForCartData,\n UpdateCustomDiscountForCartItemData,\n UpdateCustomDiscountForCartItemResponse,\n UpdateCustomDiscountForCartResponse,\n UpdatePasswordProfileInfoData,\n UpdatePasswordProfileInfoError,\n UpdatePasswordProfileInfoResponse,\n UpdateRuleData,\n UpdateRuleError,\n UpdateRuleResponse,\n UpdateShippingGroupData,\n UpdateShippingGroupError,\n UpdateShippingGroupResponse,\n UpdateTaxItemFromCartItemComponentData,\n UpdateTaxItemFromCartItemComponentResponse,\n ValidateCatalogRulesData,\n ValidateCatalogRulesError,\n ValidateCatalogRulesResponse,\n} from \"../types.gen\"\n\nexport type QueryKey<TOptions extends Options> = [\n Pick<TOptions, \"baseUrl\" | \"body\" | \"headers\" | \"path\" | \"query\"> & {\n _id: string\n _infinite?: boolean\n tags?: ReadonlyArray<string>\n },\n]\n\nconst createQueryKey = <TOptions extends Options>(\n id: string,\n options?: TOptions,\n infinite?: boolean,\n tags?: ReadonlyArray<string>,\n): [QueryKey<TOptions>[0]] => {\n const params: QueryKey<TOptions>[0] = {\n _id: id,\n baseUrl:\n options?.baseUrl || (options?.client ?? client).getConfig().baseUrl,\n } as QueryKey<TOptions>[0]\n if (infinite) {\n params._infinite = infinite\n }\n if (tags) {\n params.tags = tags\n }\n if (options?.body) {\n params.body = options.body\n }\n if (options?.headers) {\n params.headers = options.headers\n }\n if (options?.path) {\n params.path = options.path\n }\n if (options?.query) {\n params.query = options.query\n }\n return [params]\n}\n\nexport const getByContextReleaseQueryKey = (\n options?: Options<GetByContextReleaseData>,\n) => createQueryKey(\"getByContextRelease\", options)\n\n/**\n * Get the catalog release as shoppers\n *\n * Returns a list of all published releases of the specified catalog.\n */\nexport const getByContextReleaseOptions = (\n options?: Options<GetByContextReleaseData>,\n) =>\n queryOptions<\n GetByContextReleaseResponse,\n GetByContextReleaseError,\n GetByContextReleaseResponse,\n ReturnType<typeof getByContextReleaseQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextRelease({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextReleaseQueryKey(options),\n })\n\nexport const getByContextAllHierarchiesQueryKey = (\n options?: Options<GetByContextAllHierarchiesData>,\n) => createQueryKey(\"getByContextAllHierarchies\", options)\n\n/**\n * Get all Hierarchies\n *\n * Returns all hierarchies from a catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllHierarchiesOptions = (\n options?: Options<GetByContextAllHierarchiesData>,\n) =>\n queryOptions<\n GetByContextAllHierarchiesResponse,\n GetByContextAllHierarchiesError,\n GetByContextAllHierarchiesResponse,\n ReturnType<typeof getByContextAllHierarchiesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllHierarchies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllHierarchiesQueryKey(options),\n })\n\nexport const getByContextHierarchyQueryKey = (\n options: Options<GetByContextHierarchyData>,\n) => createQueryKey(\"getByContextHierarchy\", options)\n\n/**\n * Get a Hierarchy\n *\n * Returns a hierarchy from the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog to retrieve. For information about how catalog rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules).\n *\n */\nexport const getByContextHierarchyOptions = (\n options: Options<GetByContextHierarchyData>,\n) =>\n queryOptions<\n GetByContextHierarchyResponse,\n GetByContextHierarchyError,\n GetByContextHierarchyResponse,\n ReturnType<typeof getByContextHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyQueryKey(options),\n })\n\nexport const getByContextHierarchyNodesQueryKey = (\n options: Options<GetByContextHierarchyNodesData>,\n) => createQueryKey(\"getByContextHierarchyNodes\", options)\n\n/**\n * Get a Hierarchy's Nodes\n *\n * Returns all the nodes for the specified hierarchy.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextHierarchyNodesOptions = (\n options: Options<GetByContextHierarchyNodesData>,\n) =>\n queryOptions<\n GetByContextHierarchyNodesResponse,\n GetByContextHierarchyNodesError,\n GetByContextHierarchyNodesResponse,\n ReturnType<typeof getByContextHierarchyNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchyNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyNodesQueryKey(options),\n })\n\nexport const getByContextHierarchyChildNodesQueryKey = (\n options: Options<GetByContextHierarchyChildNodesData>,\n) => createQueryKey(\"getByContextHierarchyChildNodes\", options)\n\n/**\n * Get a Hierarchy's Children\n *\n * Returns the parent nodes for the specified hierarchy.\n *\n * ![Parent Nodes](/assets/rootnodes.PNG)\n *\n * If you have multiple catalog rules defined, the rule that best matches the shopperʼs context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * For more information, see [Filtering](/guides/Getting-Started/filtering).\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextHierarchyChildNodesOptions = (\n options: Options<GetByContextHierarchyChildNodesData>,\n) =>\n queryOptions<\n GetByContextHierarchyChildNodesResponse,\n GetByContextHierarchyChildNodesError,\n GetByContextHierarchyChildNodesResponse,\n ReturnType<typeof getByContextHierarchyChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchyChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyChildNodesQueryKey(options),\n })\n\nexport const getByContextAllNodesQueryKey = (\n options?: Options<GetByContextAllNodesData>,\n) => createQueryKey(\"getByContextAllNodes\", options)\n\n/**\n * Get all Nodes\n *\n * Returns all nodes in the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. For more information, see [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllNodesOptions = (\n options?: Options<GetByContextAllNodesData>,\n) =>\n queryOptions<\n GetByContextAllNodesResponse,\n GetByContextAllNodesError,\n GetByContextAllNodesResponse,\n ReturnType<typeof getByContextAllNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllNodesQueryKey(options),\n })\n\nexport const getByContextNodeQueryKey = (\n options: Options<GetByContextNodeData>,\n) => createQueryKey(\"getByContextNode\", options)\n\n/**\n * Get a Node\n *\n * Returns a node from the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with a node. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your nodes, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n *\n */\nexport const getByContextNodeOptions = (\n options: Options<GetByContextNodeData>,\n) =>\n queryOptions<\n GetByContextNodeResponse,\n GetByContextNodeError,\n GetByContextNodeResponse,\n ReturnType<typeof getByContextNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextNodeQueryKey(options),\n })\n\nexport const getByContextChildNodesQueryKey = (\n options: Options<GetByContextChildNodesData>,\n) => createQueryKey(\"getByContextChildNodes\", options)\n\n/**\n * Get a Node's Children\n *\n * Returns the child nodes for a node in the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see which parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any curated_products, products are listed by their updated_at time in descending order, with the most recently updated product first.\n * - If you configure curated_products for only a few products, the curated products are displayed first and the other products are displayed in the order of updated_at time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - A product that is curated has the \"curated_product\": true attribute displayed.\n * - If a curated product is removed from a node, the product is also removed from the curated_products list.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextChildNodesOptions = (\n options: Options<GetByContextChildNodesData>,\n) =>\n queryOptions<\n GetByContextChildNodesResponse,\n GetByContextChildNodesError,\n GetByContextChildNodesResponse,\n ReturnType<typeof getByContextChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextChildNodesQueryKey(options),\n })\n\nexport const getByContextAllProductsQueryKey = (\n options?: Options<GetByContextAllProductsData>,\n) => createQueryKey(\"getByContextAllProducts\", options)\n\n/**\n * Get all Products\n *\n * Retrieves the list of products from the catalog. Only the products in a live status are retrieved.\n *\n * ### Catalog Rules\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * ### Product and Node Associations\n *\n * You can see the parent nodes a product is associated within the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllProductsOptions = (\n options?: Options<GetByContextAllProductsData>,\n) =>\n queryOptions<\n GetByContextAllProductsResponse,\n GetByContextAllProductsError,\n GetByContextAllProductsResponse,\n ReturnType<typeof getByContextAllProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllProductsQueryKey(options),\n })\n\nexport const getByContextProductQueryKey = (\n options: Options<GetByContextProductData>,\n) => createQueryKey(\"getByContextProduct\", options)\n\n/**\n * Get a Product\n *\n * Returns the specified product from the catalog. The product must be in the `live` status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductOptions = (\n options: Options<GetByContextProductData>,\n) =>\n queryOptions<\n GetByContextProductResponse,\n GetByContextProductError,\n GetByContextProductResponse,\n ReturnType<typeof getByContextProductQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProduct({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductQueryKey(options),\n })\n\nexport const getByContextAllRelatedProductsQueryKey = (\n options: Options<GetByContextAllRelatedProductsData>,\n) => createQueryKey(\"getByContextAllRelatedProducts\", options)\n\n/**\n * Get all Related Products of a Product\n *\n * Returns related products of the provided product ID from a catalog.\n *\n */\nexport const getByContextAllRelatedProductsOptions = (\n options: Options<GetByContextAllRelatedProductsData>,\n) =>\n queryOptions<\n GetByContextAllRelatedProductsResponse,\n GetByContextAllRelatedProductsError,\n GetByContextAllRelatedProductsResponse,\n ReturnType<typeof getByContextAllRelatedProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllRelatedProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllRelatedProductsQueryKey(options),\n })\n\nexport const getByContextComponentProductIdsQueryKey = (\n options: Options<GetByContextComponentProductIdsData>,\n) => createQueryKey(\"getByContextComponentProductIds\", options)\n\n/**\n * Get a Bundle's Component Products\n *\n * With Product Experience Manager, you can [create](/docs/api/pxm/products/create-product) and manage bundles. A bundle is a purchasable product, comprising of one or more products that you want to sell together.\n *\n * You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.\n *\n * This endpoint returns a list of component product IDs for the specified bundle.\n *\n */\nexport const getByContextComponentProductIdsOptions = (\n options: Options<GetByContextComponentProductIdsData>,\n) =>\n queryOptions<\n GetByContextComponentProductIdsResponse,\n GetByContextComponentProductIdsError,\n GetByContextComponentProductIdsResponse,\n ReturnType<typeof getByContextComponentProductIdsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextComponentProductIds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextComponentProductIdsQueryKey(options),\n })\n\nexport const getByContextChildProductsQueryKey = (\n options: Options<GetByContextChildProductsData>,\n) => createQueryKey(\"getByContextChildProducts\", options)\n\n/**\n * Get a Parent Product's Child Products\n *\n * For a specified product and catalog release, retrieves a list of child products from a parent product. Any product other than a base product results in a `422 Unprocessable Entity` response. Only the products in a `live` status are retrieved.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shopperʼs context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated within the `breadcrumbs` metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextChildProductsOptions = (\n options: Options<GetByContextChildProductsData>,\n) =>\n queryOptions<\n GetByContextChildProductsResponse,\n GetByContextChildProductsError,\n GetByContextChildProductsResponse,\n ReturnType<typeof getByContextChildProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextChildProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextChildProductsQueryKey(options),\n })\n\nexport const getByContextProductsForHierarchyQueryKey = (\n options: Options<GetByContextProductsForHierarchyData>,\n) => createQueryKey(\"getByContextProductsForHierarchy\", options)\n\n/**\n * Get a Hierarchy's Products\n *\n * Returns the products associated with the specified hierarchy in the catalog. The products must be in the live status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductsForHierarchyOptions = (\n options: Options<GetByContextProductsForHierarchyData>,\n) =>\n queryOptions<\n GetByContextProductsForHierarchyResponse,\n GetByContextProductsForHierarchyError,\n GetByContextProductsForHierarchyResponse,\n ReturnType<typeof getByContextProductsForHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProductsForHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductsForHierarchyQueryKey(options),\n })\n\nexport const getByContextProductsForNodeQueryKey = (\n options: Options<GetByContextProductsForNodeData>,\n) => createQueryKey(\"getByContextProductsForNode\", options)\n\n/**\n * Get a Node's Products\n *\n * Returns the products associated with the specified hierarchy node in the catalog. The products must be in the `live` status. If the products have been curated then the products are returned in the order specified in the `curated_products` attribute. A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductsForNodeOptions = (\n options: Options<GetByContextProductsForNodeData>,\n) =>\n queryOptions<\n GetByContextProductsForNodeResponse,\n GetByContextProductsForNodeError,\n GetByContextProductsForNodeResponse,\n ReturnType<typeof getByContextProductsForNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProductsForNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductsForNodeQueryKey(options),\n })\n\n/**\n * Configure a Shopper Bundle\n *\n * Once you have configured your product bundles, you can display them in your storefront in your published catalog. Depending on how you have configured the minimum and maximum values for the product options in your components, you can allow your shoppers to choose which products they want to select. For example, you can enable a shopper to select 1 or more product options from a list of 10, giving your shoppers greater flexibility when selecting products in your store front.\n *\n * - Products must be in a `live` status.\n * - If you have not specified any minimum or maximum values for the product options in your components, your shoppers can select any combination of product options.\n *\n * If you have configured minimum and maximum values using [Create a Bundle](/docs/api/pxm/products/create-product), this becomes part of the `bundle_configuration`. You can check how your bundle is configured using [Get a product in a catalog release](/docs/api/pxm/catalog/get-product) in `bundle_configuration` under `meta`. The `bundle_configuration` forms the body of the request.\n *\n * The response updates the `bundle_configuration` with the product options the shopper selects. The `meta` data is updated with the `meta` data of the selected product options. In your storefront, you could display this as a summary of the product options a shopper has selected.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const configureByContextProductMutation = (\n options?: Partial<Options<ConfigureByContextProductData>>,\n): UseMutationOptions<\n ConfigureByContextProductResponse,\n ConfigureByContextProductError,\n Options<ConfigureByContextProductData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfigureByContextProductResponse,\n ConfigureByContextProductError,\n Options<ConfigureByContextProductData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await configureByContextProduct({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCatalogsQueryKey = (options?: Options<GetCatalogsData>) =>\n createQueryKey(\"getCatalogs\", options)\n\n/**\n * Gets all authorized catalogs\n *\n * Retrieves a list of all the catalogs that you are authorized to view. Currently, published catalogs are limited to the current release and two releases prior to the current release. You can see the differences between the last 2 consecutive catalog releases using the delta link returned in the response of a [publish a catalog](/docs/api/pxm/catalog/publish-release) endpoint.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before publishing a catalog release and injecting fresh data in a delta link. The `is_full_delta` attribute tells you if this is a full publish of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file. See [Publish a catalog](/docs/api/pxm/catalog/publish-release).\n *\n * If the `is_full_publish` attribute returned in the response is `false`, data from the previous catalog release overlaid the existing data in the delta file. The `is_full_publish` attribute is always `true` the first time a catalog is published. When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified list. If they are, the condition is true. | `name` | `filter=in(name,some-name,some-name2)` |\n * | `like` | Checks if the operand contains the specified string. Wildcards are supported | `name` | `filter=like(name,*some-name*)` |\n *\n */\nexport const getCatalogsOptions = (options?: Options<GetCatalogsData>) =>\n queryOptions<\n GetCatalogsResponse,\n GetCatalogsError,\n GetCatalogsResponse,\n ReturnType<typeof getCatalogsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCatalogs({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCatalogsQueryKey(options),\n })\n\n/**\n * Creates a new catalog\n *\n * Before you create a catalog, you must define the following resources:\n *\n * - Hierarchies - hierarchies and nodes to categorize the products.\n * - Products - product information, associated assets, and links to hierarchy nodes.\n * - Price Books - prices for the products associated with the hierarchies. You can create multiple price books for different scenarios, such as seasonal sales, business versus retail customer pricing, and reward programs. When creating a catalog, you can specify up to five price books. You must configure a priority for your price books. Product prices are displayed in the catalog according to the priority of the price books. Priority is a number and the price book with the highest number has the highest priority.\n *\n */\nexport const createCatalogMutation = (\n options?: Partial<Options<CreateCatalogData>>,\n): UseMutationOptions<\n CreateCatalogResponse,\n CreateCatalogError,\n Options<CreateCatalogData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCatalogResponse,\n CreateCatalogError,\n Options<CreateCatalogData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCatalog({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a catalog\n *\n * Deletes an unpublished catalog. Use [**Delete a Release**](/docs/api/pxm/catalog/delete-release-by-id) and [**Delete All Releases**](/docs/api/pxm/catalog/delete-releases) to delete releases of a catalog. If the catalog is associated with any catalog rules, you must first update the catalog rules to remove the catalog.\n */\nexport const deleteCatalogByIdMutation = (\n options?: Partial<Options<DeleteCatalogByIdData>>,\n): UseMutationOptions<\n DeleteCatalogByIdResponse,\n DeleteCatalogByIdError,\n Options<DeleteCatalogByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCatalogByIdResponse,\n DeleteCatalogByIdError,\n Options<DeleteCatalogByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCatalogById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCatalogByIdQueryKey = (options: Options<GetCatalogByIdData>) =>\n createQueryKey(\"getCatalogById\", options)\n\n/**\n * Get a catalog by ID\n *\n * Retrieves the specified catalog.\n */\nexport const getCatalogByIdOptions = (options: Options<GetCatalogByIdData>) =>\n queryOptions<\n GetCatalogByIdResponse,\n GetCatalogByIdError,\n GetCatalogByIdResponse,\n ReturnType<typeof getCatalogByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCatalogById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCatalogByIdQueryKey(options),\n })\n\n/**\n * Updates a catalog\n *\n * Specify whichever attributes you want to change. The values of the other attributes remain the same. If the attributes section is empty, the catalog is not updated.\n */\nexport const updateCatalogMutation = (\n options?: Partial<Options<UpdateCatalogData>>,\n): UseMutationOptions<\n UpdateCatalogResponse,\n UpdateCatalogError,\n Options<UpdateCatalogData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCatalogResponse,\n UpdateCatalogError,\n Options<UpdateCatalogData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCatalog({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes all releases\n *\n * Deletes all releases of the specified published catalog.\n */\nexport const deleteReleasesMutation = (\n options?: Partial<Options<DeleteReleasesData>>,\n): UseMutationOptions<\n DeleteReleasesResponse,\n DeleteReleasesError,\n Options<DeleteReleasesData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteReleasesResponse,\n DeleteReleasesError,\n Options<DeleteReleasesData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteReleases({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getReleasesQueryKey = (options: Options<GetReleasesData>) =>\n createQueryKey(\"getReleases\", options)\n\n/**\n * Gets all authorized catalog releases\n *\n * Returns a list of all published releases of the specified catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release. You can see the differences between the last 2 consecutive catalog releases using the `delta` link returned in the response of a `publish a catalog` endpoint.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before publishing a catalog release and injecting fresh data in a delta link. The `is_full_delta` attribute tells you if this is a full publish of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file.\n *\n * If the `is_full_publish` attribute returned in the response is `false`, data from the previous catalog release overlaid the existing data in the delta file. The `is_full_publish` attribute is always `true` the first time a catalog is published. When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.\n *\n */\nexport const getReleasesOptions = (options: Options<GetReleasesData>) =>\n queryOptions<\n GetReleasesResponse,\n GetReleasesError,\n GetReleasesResponse,\n ReturnType<typeof getReleasesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getReleases({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getReleasesQueryKey(options),\n })\n\n/**\n * Publishes a catalog\n *\n *\n * Publishes a catalog. You must publish a catalog before you can retrieve that catalog in an organization or store. The hierarchies, live products, and prices associated with a published catalog are in read-only mode. If you make a change to these resources, for example, a change to your price book or hierarchies, you need to republish the catalog.\n *\n * You can get [a catalog release](/docs/api/pxm/catalog/get-release-by-id) to retrieve a published catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * You can see the differences between the last 2 consecutive catalog releases. This is useful if want to understand how your products have changed in your catalog, ensuring your site search integration is kept up-to-date.\n *\n * Once a catalog release has completed publishing, the delta relationship links to the delta document.\n *\n * The `delta` links are signed and only valid for 1 hour. Re-reading a catalog release, for example, using [Getting a release of a catalog](/docs/api/pxm/catalog/get-release-by-id) returns a fresh a link.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before injecting fresh data in a `delta` link. The `is_full_delta` attribute tells you if this is a full publish of the catalog. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before injecting fresh data from the `delta` file. If the `is_full_delta` attribute is `false`, then data from the previous catalog overlays the existing data in the `delta` file. To publish a catalog and inject fresh data in a `delta` link, set `export_full_delta` to `true`.\n *\n * If a previous catalog publish date is greater than 90 days, then a full catalog publish is automatically performed. If you publish your catalogs infrequently, Commerce may perform a full publish when you are expecting a delta publish.\n *\n * :::caution\n *\n * Generating a full delta is resource intensive and slows down the publishing process and so should only be performed in certain circumstances, for example, when initializing an integration with a service like Algolia.\n *\n * :::\n *\n * The `is_full_delta` attribute is always `true` the first time a catalog is published. The information is stored in a collection of `json` documents in a compressed file. You can either manually check the file or, for example, use them to automatically update another company system you may have.\n *\n * - Delta files are only available for 30 days.\n * - Delta files are removed when a catalog release is deleted.\n *\n * Each document has a `delta_type` with one of the following values, depending on whether a product has been deleted, updated or created in a catalog release.\n *\n * - `delete` describes products deleted from this release of a catalog.\n * - `createupdate` describes products updated in this release of a catalog.\n *\n * ### Multi-Store Management Solutions\n *\n * In a multi-store management solution.\n *\n * - You can create organization catalogs. Your organization catalogs are available for your stores to use.\n * - Your stores can create their own catalogs.\n * - Your stores can create catalogs that have a combination of organization products and store products.\n *\n * If you are publishing a catalog in a store that contains resources from an organization, in Commerce Manager, you must enable the **Include Organization Resources in Catalog Publishes** checkbox.\n *\n * 1. Go to **SYSTEM** > **Store Settings**.\n * 2. Click **General Settings**.\n * 3. Select **PXM** from the list.\n * 4. Select the **Include Organization Resources in Catalog Publishes** checkbox.\n *\n */\nexport const publishReleaseMutation = (\n options?: Partial<Options<PublishReleaseData>>,\n): UseMutationOptions<\n PublishReleaseResponse,\n PublishReleaseError,\n Options<PublishReleaseData>\n> => {\n const mutationOptions: UseMutationOptions<\n PublishReleaseResponse,\n PublishReleaseError,\n Options<PublishReleaseData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await publishRelease({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a release\n *\n * Deletes the specified published catalog release.\n */\nexport const deleteReleaseByIdMutation = (\n options?: Partial<Options<DeleteReleaseByIdData>>,\n): UseMutationOptions<\n DeleteReleaseByIdResponse,\n DeleteReleaseByIdError,\n Options<DeleteReleaseByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteReleaseByIdResponse,\n DeleteReleaseByIdError,\n Options<DeleteReleaseByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteReleaseById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getReleaseByIdQueryKey = (options: Options<GetReleaseByIdData>) =>\n createQueryKey(\"getReleaseById\", options)\n\n/**\n * Get a catalog release by ID\n *\n * Retrieves the specified catalog release.\n */\nexport const getReleaseByIdOptions = (options: Options<GetReleaseByIdData>) =>\n queryOptions<\n GetReleaseByIdResponse,\n GetReleaseByIdError,\n GetReleaseByIdResponse,\n ReturnType<typeof getReleaseByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getReleaseById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getReleaseByIdQueryKey(options),\n })\n\nexport const getRulesQueryKey = (options?: Options<GetRulesData>) =>\n createQueryKey(\"getRules\", options)\n\n/**\n * Gets all authorized catalog rules\n *\n * Retrieves all authorized catalog rules.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are supported.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `eq` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. | `id`,`catalog_id`,`account_ids`,`customer_ids`,`channels`,`tags`,`pricebook_ids`,`search_profile_slug` | `filter=eq(id,some-id)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true. | `id`,`account_ids`,`customer_ids`,`channels`,`tags`,`pricebook_ids`,`search_profile_slug` | `filter=in(account_ids,some-id,another-id)` |\n *\n */\nexport const getRulesOptions = (options?: Options<GetRulesData>) =>\n queryOptions<\n GetRulesResponse,\n GetRulesError,\n GetRulesResponse,\n ReturnType<typeof getRulesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getRules({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getRulesQueryKey(options),\n })\n\n/**\n * Creates a new catalog rule\n *\n * If you have multiple catalogs, create catalog rule resources. With catalog rules, you can display different catalogs to different shoppers. For example, you can display a preferred pricing catalog to a few special customers. Or you can display one catalog to shoppers using your website and a different catalog to shoppers using your mobile app. Finally, you can define custom criteria by creating tags.\n *\n * :::note\n *\n * - If you have one catalog for all customers and channels, you can omit creating this resource.\n * - Due to the way catalogs are cached in Commerce, using catalog rules to display catalogs sometimes causes a 5-minute time delay before the catalogs are displayed.\n * - You cannot create catalog rules for organization catalogs.\n *\n * :::\n *\n * For ideas about the kinds of business scenarios you can achieve with catalog rules, see [Catalog Rules](/docs/api/pxm/catalog/rules). To understand how catalogs are matched to shoppers by using rules, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n */\nexport const createRuleMutation = (\n options?: Partial<Options<CreateRuleData>>,\n): UseMutationOptions<\n CreateRuleResponse,\n CreateRuleError,\n Options<CreateRuleData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateRuleResponse,\n CreateRuleError,\n Options<CreateRuleData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createRule({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a catalog rule\n */\nexport const deleteRuleByIdMutation = (\n options?: Partial<Options<DeleteRuleByIdData>>,\n): UseMutationOptions<\n DeleteRuleByIdResponse,\n DeleteRuleByIdError,\n Options<DeleteRuleByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteRuleByIdResponse,\n DeleteRuleByIdError,\n Options<DeleteRuleByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteRuleById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getRuleByIdQueryKey = (options: Options<GetRuleByIdData>) =>\n createQueryKey(\"getRuleById\", options)\n\n/**\n * Get a catalog rule by ID\n */\nexport const getRuleByIdOptions = (options: Options<GetRuleByIdData>) =>\n queryOptions<\n GetRuleByIdResponse,\n GetRuleByIdError,\n GetRuleByIdResponse,\n ReturnType<typeof getRuleByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getRuleById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getRuleByIdQueryKey(options),\n })\n\n/**\n * Updates a catalog rule\n *\n * Specify whichever attributes you want to change. The values of the other attributes remain the same. If the attributes section is empty, the catalog rule is not updated.\n */\nexport const updateRuleMutation = (\n options?: Partial<Options<UpdateRuleData>>,\n): UseMutationOptions<\n UpdateRuleResponse,\n UpdateRuleError,\n Options<UpdateRuleData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateRuleResponse,\n UpdateRuleError,\n Options<UpdateRuleData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateRule({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Validate catalog rules for a given context\n *\n * Validates catalog rules for a given context and returns a list of matching catalog rules.\n *\n */\nexport const validateCatalogRulesMutation = (\n options?: Partial<Options<ValidateCatalogRulesData>>,\n): UseMutationOptions<\n ValidateCatalogRulesResponse,\n ValidateCatalogRulesError,\n Options<ValidateCatalogRulesData>\n> => {\n const mutationOptions: UseMutationOptions<\n ValidateCatalogRulesResponse,\n ValidateCatalogRulesError,\n Options<ValidateCatalogRulesData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await validateCatalogRules({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getAllHierarchiesQueryKey = (\n options: Options<GetAllHierarchiesData>,\n) => createQueryKey(\"getAllHierarchies\", options)\n\n/**\n * Get all Hierarchies\n *\n * Returns the hierarchies from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllHierarchiesOptions = (\n options: Options<GetAllHierarchiesData>,\n) =>\n queryOptions<\n GetAllHierarchiesResponse,\n GetAllHierarchiesError,\n GetAllHierarchiesResponse,\n ReturnType<typeof getAllHierarchiesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllHierarchies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllHierarchiesQueryKey(options),\n })\n\nexport const getHierarchyQueryKey = (options: Options<GetHierarchyData>) =>\n createQueryKey(\"getHierarchy\", options)\n\n/**\n * Get a Hierarchy\n *\n * Returns the specified hierarchy from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n */\nexport const getHierarchyOptions = (options: Options<GetHierarchyData>) =>\n queryOptions<\n GetHierarchyResponse,\n GetHierarchyError,\n GetHierarchyResponse,\n ReturnType<typeof getHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyQueryKey(options),\n })\n\nexport const getHierarchyNodesQueryKey = (\n options: Options<GetHierarchyNodesData>,\n) => createQueryKey(\"getHierarchyNodes\", options)\n\n/**\n * Get a Hierarchy's Nodes\n *\n * Returns all nodes for the specified hierarchy from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getHierarchyNodesOptions = (\n options: Options<GetHierarchyNodesData>,\n) =>\n queryOptions<\n GetHierarchyNodesResponse,\n GetHierarchyNodesError,\n GetHierarchyNodesResponse,\n ReturnType<typeof getHierarchyNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchyNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyNodesQueryKey(options),\n })\n\nexport const getHierarchyChildNodesQueryKey = (\n options: Options<GetHierarchyChildNodesData>,\n) => createQueryKey(\"getHierarchyChildNodes\", options)\n\n/**\n * Get a Hierarchy's Children\n *\n * Returns the parent nodes for the specified hierarchy from a published catalog.\n *\n * ![Parent Nodes](/assets/rootnodes.PNG)\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getHierarchyChildNodesOptions = (\n options: Options<GetHierarchyChildNodesData>,\n) =>\n queryOptions<\n GetHierarchyChildNodesResponse,\n GetHierarchyChildNodesError,\n GetHierarchyChildNodesResponse,\n ReturnType<typeof getHierarchyChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchyChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyChildNodesQueryKey(options),\n })\n\nexport const getAllNodesQueryKey = (options: Options<GetAllNodesData>) =>\n createQueryKey(\"getAllNodes\", options)\n\n/**\n * Get all Nodes\n *\n * Returns the child nodes from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. See [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllNodesOptions = (options: Options<GetAllNodesData>) =>\n queryOptions<\n GetAllNodesResponse,\n GetAllNodesError,\n GetAllNodesResponse,\n ReturnType<typeof getAllNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllNodesQueryKey(options),\n })\n\nexport const getNodeQueryKey = (options: Options<GetNodeData>) =>\n createQueryKey(\"getNode\", options)\n\n/**\n * Get a Node\n *\n * Returns a node from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n */\nexport const getNodeOptions = (options: Options<GetNodeData>) =>\n queryOptions<\n GetNodeResponse,\n GetNodeError,\n GetNodeResponse,\n ReturnType<typeof getNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getNodeQueryKey(options),\n })\n\nexport const getChildNodesQueryKey = (options: Options<GetChildNodesData>) =>\n createQueryKey(\"getChildNodes\", options)\n\n/**\n * Get a Node's Children\n *\n * Returns the child nodes for a node from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. For more information, see [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getChildNodesOptions = (options: Options<GetChildNodesData>) =>\n queryOptions<\n GetChildNodesResponse,\n GetChildNodesError,\n GetChildNodesResponse,\n ReturnType<typeof getChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getChildNodesQueryKey(options),\n })\n\nexport const getAllProductsQueryKey = (options: Options<GetAllProductsData>) =>\n createQueryKey(\"getAllProducts\", options)\n\n/**\n * Get all Products\n *\n * Returns the products from a published catalog. Only the products in a `live` status are retrieved. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the [Get a List of products in a catalog release](/docs/api/pxm/catalog/get-all-products) response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product.\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllProductsOptions = (options: Options<GetAllProductsData>) =>\n queryOptions<\n GetAllProductsResponse,\n GetAllProductsError,\n GetAllProductsResponse,\n ReturnType<typeof getAllProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllProductsQueryKey(options),\n })\n\nexport const getProductQueryKey = (options: Options<GetProductData>) =>\n createQueryKey(\"getProduct\", options)\n\n/**\n * Get a Product\n *\n * Returns a product from a published catalog. The product must be in `live` status. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * ### Product and Node Associations in Breadcrumb Metadata\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Product Variations\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order`attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the get a product in a catalog release response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product.\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductOptions = (options: Options<GetProductData>) =>\n queryOptions<\n GetProductResponse,\n GetProductError,\n GetProductResponse,\n ReturnType<typeof getProductQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProduct({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductQueryKey(options),\n })\n\nexport const getAllRelatedProductsQueryKey = (\n options: Options<GetAllRelatedProductsData>,\n) => createQueryKey(\"getAllRelatedProducts\", options)\n\n/**\n * Get all Related Products of a Product\n *\n * Returns related products of the provided product ID from a published catalog.\n *\n */\nexport const getAllRelatedProductsOptions = (\n options: Options<GetAllRelatedProductsData>,\n) =>\n queryOptions<\n GetAllRelatedProductsResponse,\n GetAllRelatedProductsError,\n GetAllRelatedProductsResponse,\n ReturnType<typeof getAllRelatedProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllRelatedProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllRelatedProductsQueryKey(options),\n })\n\nexport const getComponentProductIdsQueryKey = (\n options: Options<GetComponentProductIdsData>,\n) => createQueryKey(\"getComponentProductIds\", options)\n\n/**\n * Get a Bundle's Component Products\n *\n * With Product Experience Manager, you can [create](/docs/api/pxm/products/create-product) and manage bundles. A bundle is a purchasable product, comprising of one or more products that you want to sell together.\n *\n * You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.\n *\n * This endpoint returns a list of component product IDs for the specified bundle.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getComponentProductIdsOptions = (\n options: Options<GetComponentProductIdsData>,\n) =>\n queryOptions<\n GetComponentProductIdsResponse,\n GetComponentProductIdsError,\n GetComponentProductIdsResponse,\n ReturnType<typeof getComponentProductIdsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getComponentProductIds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getComponentProductIdsQueryKey(options),\n })\n\nexport const getChildProductsQueryKey = (\n options: Options<GetChildProductsData>,\n) => createQueryKey(\"getChildProducts\", options)\n\n/**\n * Get a Parent Product's Child Products\n *\n * For a specified product and catalog release, retrieves a list of child products from a parent product. Any product other than a base product results in a `422 Unprocessable Entity` response. Only the products in a `live` status are retrieved.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated within the breadcrumbs metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getChildProductsOptions = (\n options: Options<GetChildProductsData>,\n) =>\n queryOptions<\n GetChildProductsResponse,\n GetChildProductsError,\n GetChildProductsResponse,\n ReturnType<typeof getChildProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getChildProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getChildProductsQueryKey(options),\n })\n\nexport const getProductsForHierarchyQueryKey = (\n options: Options<GetProductsForHierarchyData>,\n) => createQueryKey(\"getProductsForHierarchy\", options)\n\n/**\n * Get a Hierarchy's Products\n *\n * Returns the products associated with the specified hierarchy in the catalog. The products must be in the `live` status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The variations object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in variations. Once a parent product is published in a catalog, the [Get a List of products in a catalog](/docs/api/pxm/catalog/get-all-products) release response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductsForHierarchyOptions = (\n options: Options<GetProductsForHierarchyData>,\n) =>\n queryOptions<\n GetProductsForHierarchyResponse,\n GetProductsForHierarchyError,\n GetProductsForHierarchyResponse,\n ReturnType<typeof getProductsForHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProductsForHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductsForHierarchyQueryKey(options),\n })\n\nexport const getProductsForNodeQueryKey = (\n options: Options<GetProductsForNodeData>,\n) => createQueryKey(\"getProductsForNode\", options)\n\n/**\n * Get a Node's Products\n *\n * Returns the products associated with the specified hierarchy node in the catalog. The products must be in the `live` status. If the products have been curated, then the products are returned in the order specified in the `curated_products` attribute. A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the [Get a List of products in a catalog release](/docs/api/pxm/catalog/get-all-products) response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductsForNodeOptions = (\n options: Options<GetProductsForNodeData>,\n) =>\n queryOptions<\n GetProductsForNodeResponse,\n GetProductsForNodeError,\n GetProductsForNodeResponse,\n ReturnType<typeof getProductsForNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProductsForNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductsForNodeQueryKey(options),\n })\n\nexport const getCartsQueryKey = (options?: Options<GetCartsData>) =>\n createQueryKey(\"getCarts\", options)\n\n/**\n * Get Carts\n *\n * Retrieves a list of carts. The carts returned depend on the authentication method used:\n *\n * | Authentication Method | Header | Returns |\n * | :--- | :--- | :--- |\n * | **Customer Token** | `X-Moltin-Customer-Token` | Carts for the specified customer. See [Customer Tokens](/docs/customer-management/customer-management-api/customer-tokens). |\n * | **Account Token** | `EP-Account-Management-Authentication-Token` | Carts for the specified account. See [Account Management Token](/docs/api/accounts/post-v-2-account-members-tokens). |\n * | **Client Credentials** | `Authorization: Bearer <token>` | All carts or only registered carts, controlled by the `show_all_carts` setting. See [Cart Settings](/docs/api/carts/put-v-2-settings-cart). |\n *\n * **Client Credentials Behavior:**\n * - When `show_all_carts` is `true`: Returns all carts in the store.\n * - When `show_all_carts` is `false`: Returns only registered carts (associated with customers or accounts).\n *\n * **Sorting**\n *\n * Carts are sorted in descending order by `updated_date`. For more information, see [Pagination](/guides/Getting-Started/pagination).\n *\n */\nexport const getCartsOptions = (options?: Options<GetCartsData>) =>\n queryOptions<\n GetCartsResponse,\n GetCartsError,\n GetCartsResponse,\n ReturnType<typeof getCartsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCarts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCartsQueryKey(options),\n })\n\n/**\n * Create a Cart\n *\n *\n * Creates a cart. Call this endpoint each time a customer creates a cart.\n *\n * Each shopper can have multiple carts. Use the carts API to create a cart. The carts are distinct from one another. Shoppers can add different items to their carts. They can check out one of the carts without affecting the content or status of their other carts.\n *\n * After the shopper checks out the cart, the cart remains available to the shopper. The cart is persistent and stays with the shopper after it is used.\n *\n * You can create a cart to specify custom discounts. You can enable custom discounts when the `discount_settings.custom_discounts_enabled` field is set to `true`. Default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * You can also create a cart when inventory checks are not performed until checkout by setting the `inventory_settings.defer_inventory_check` field to `true`. Again the default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * ### Preview Cart\n *\n * You can set a future date for your shopping cart and view the promotions that will be available during that time period. This feature enables you to validate your promotion settings and observe how they will be applied in the cart.\n *\n * :::caution\n * - Once the cart is in preview mode, you cannot revert it to a regular cart.\n * - Carts with `snapshot_date` are same as preview carts.\n * - You cannot checkout a cart that includes a `snapshot_date`.\n * - To delete a promotion preview cart, use [Delete a cart](/docs/api/carts/delete-a-cart) endpoint.\n * - The promotion preview cart has the same expiration time as a regular cart based on the store's [cart settings](/docs/api/carts/put-v-2-settings-cart).\n * - Preview cart interactions skip inventory checks and events, allowing users to preview future carts without impacting related external systems.\n * :::\n *\n * ### Custom Attributes\n * You can create custom attributes for the cart object to include additional information, enabling promotions that target specific cart attributes.\n * For example:\n * ```\n * \"custom_attributes\":{\n * \"membership\": {\n * \"type\": \"string\",\n * \"value\": \"VIP\"\n * }\n * }\n * ```\n * See [adding cart custom attributes in promotions builder](/docs/commerce-manager/promotions-builder/creating-a-promotion-in-promotions-builder#adding-cart-custom-attributes)\n *\n * Cart custom attributes remain with the corresponding cart for the extent of its lifecycle. These custom attributes carry over to the resulting order objects on checkout and those on carts are deleted with their carts upon cart deletions.\n * Custom attributes can be updated or removed using a PUT request. To delete specific custom attributes, simply exclude the unwanted attribute objects from the PUT request body.\n *\n * ### Contact Email\n * You can attach an email to carts via the `contact.email` field. These values help identify guest shopper carts and, in the case of promotions with maximum usage settings for guest and registered shopper, track per-shopper promotion usages.\n * See [Create Max Uses Per Shopper Promotion Codes](/docs/promotions-builder/promotions-builder-codes/create-max-use-limit-promotion-codes)\n *\n * For example:\n * ```\n * \"contact\": {\n * \"email\": \"tester@email.com\"\n * }\n * ```\n *\n * Please note, this value is not supported for registered shopper carts (that is, carts with accounts or customers associated), as these carts already have email values associated via the shopper details. Accordingly, requests to add contact email information to registered shopper carts (and vice versa) result in error messages.\n *\n * ### Errors\n *\n * - `400 Bad Request` : This is returned when the submitted request does not adhere to the expected API contract for the endpoint.\n *\n * - For example, in the case of string fields, this error might indicate issues in the length or format of submitted strings. For more information about valid string fields, refer to Safe Characters section.\n * - In the case of preview carts (those with `snapshot_date`), an error is returned for invalid actions, such as removing the preview date, setting a preview date in the past, or attempting to checkout a cart with a `snapshot_date`.\n *\n */\nexport const createACartMutation = (\n options?: Partial<Options<CreateACartData>>,\n): UseMutationOptions<\n CreateACartResponse,\n CreateACartError,\n Options<CreateACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateACartResponse,\n CreateACartError,\n Options<CreateACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Cart\n *\n * You can delete a cart, including the items, name, description, and remove all associations.\n *\n * ### Errors\n *\n * The following error message is received when you attempt to delete a cart that is associated with a customer. Before deletion, ensure that the cart is disassociated.\n *\n * ```json\n * message: {\n * errors: [\n * {\n * status: 400,\n * title: 'Last cart',\n * detail: 'This is the last cart associated with a customer and it cannot be deleted, try disassociating instead'\n * }\n * ]\n * }\n * ````\n *\n */\nexport const deleteACartMutation = (\n options?: Partial<Options<DeleteACartData>>,\n): UseMutationOptions<\n DeleteACartResponse,\n DeleteACartError,\n Options<DeleteACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteACartResponse,\n DeleteACartError,\n Options<DeleteACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getACartQueryKey = (options: Options<GetACartData>) =>\n createQueryKey(\"getACart\", options)\n\n/**\n * Get a Cart\n *\n * Use this endpoint to retrieve a specific cart. If a cart ID does not exist, a new cart will be automatically created. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs in the `relationships` section.\n *\n * You can easily get a new or existing cart by providing the unique cart reference in the request. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs in the relationships section.\n *\n * :::note\n *\n * - The default cart name is Cart. However, you can update the cart name as required. Ensure that the string length of the name is greater than or equal to one. Follow the safe character guidelines for name and description naming. For more information about cart ID naming requirements, see the [Safe Characters](/guides/Getting-Started/safe-characters) section.\n * - Outside of the JS-SDK, we don't handle creating cart references. You need to create your own.\n *\n * :::\n *\n * :::caution\n *\n * An empty cart is returned for any carts that don't currently exist. For more information about the cart items object, see [Get Cart Items](/docs/api/carts/get-cart-items).\n *\n * :::\n *\n * ### Query parameters\n *\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:-------------------------------------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The information included are `items`,`tax_items`, `custom_discounts`, or `promotions`. |\n *\n */\nexport const getACartOptions = (options: Options<GetACartData>) =>\n queryOptions<\n GetACartResponse,\n GetACartError,\n GetACartResponse,\n ReturnType<typeof getACartQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getACart({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getACartQueryKey(options),\n })\n\n/**\n * Update a Cart\n *\n * Updates cart properties for the specified cartID.\n *\n * You can update a cart to specify custom discounts. You can enable custom discounts when the `discount_settings.custom_discounts_enabled` field is set to `true`. Default is set from cart discount settings for the store. See [Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * You can also create a cart when inventory checks are not performed until checkout by setting the `inventory_settings.defer_inventory_check` field to `true`. Again the default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n */\nexport const updateACartMutation = (\n options?: Partial<Options<UpdateACartData>>,\n): UseMutationOptions<\n UpdateACartResponse,\n UpdateACartError,\n Options<UpdateACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateACartResponse,\n UpdateACartError,\n Options<UpdateACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete all Cart Items\n *\n * A shopper can clean up their cart, deleting custom items, promotions, and so on, while the empty cart remains available. The cart id, name, description, and any account or customer associations persist. The shopper can continue to add items to the cart.\n *\n */\nexport const deleteAllCartItemsMutation = (\n options?: Partial<Options<DeleteAllCartItemsData>>,\n): UseMutationOptions<\n DeleteAllCartItemsResponse,\n DeleteAllCartItemsError,\n Options<DeleteAllCartItemsData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAllCartItemsResponse,\n DeleteAllCartItemsError,\n Options<DeleteAllCartItemsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAllCartItems({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCartItemsQueryKey = (options: Options<GetCartItemsData>) =>\n createQueryKey(\"getCartItems\", options)\n\n/**\n * Get Cart Items\n *\n *\n * Use this endpoint to retrieve cart items. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs.\n *\n * You can use this endpoint to retrieve the breakdown of cart items by promotion ID. For example, if you have Promotions Standard item discount with code *sale2024*, Rule Promotions item discount with code *sale2024*, and Rule Promotions cart discount with code *sale2024*, the `discounts.constituents` field in the response example will show the breakdown of the same promotion code used in both Promotions Standard and Rule Promotions.\n *\n * ```json\n * \"data\": [\n * {\n * \"id\": \"98de010d-dd10-4fa5-a070-0b9bcdc72974\",\n * \"type\": \"cart_item\",\n * \"product_id\": \"5a4662d2-9a2b-4f6e-a215-2970db914b0c\",\n * \"name\": \"sku1\",\n * \"description\": \"sku1\",\n * \"sku\": \"sku1\",\n * \"slug\": \"sku1\",\n * \"image\": {\n * \"mime_type\": \"\",\n * \"file_name\": \"\",\n * \"href\": \"\"\n * },\n * \"quantity\": 1,\n * \"manage_stock\": false,\n * \"unit_price\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"value\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"discounts\": [\n * {\n * \"amount\": {\n * \"amount\": -2000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"e4d929d5-f471-4317-9a86-a84a6c572b44\",\n * \"promotion_source\": \"rule-promotion\",\n * \"is_cart_discount\": true\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"de19a043-a6da-4bde-b896-d17e16b77e25\",\n * \"promotion_source\": \"rule-promotion\"\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"509295ee-2971-45b6-801e-95df09756989\"\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"ca79e606-7ecd-41ac-9478-af4c8c28c546\",\n * \"promotion_source\": \"rule-promotion\",\n * \"is_cart_discount\": true\n * }\n * ],\n * \"links\": {\n * \"product\": \"https://useast.api.elasticpath.com/v2/products/5a4662d2-9a2b-4f6e-a215-2970db914b0c\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"with_tax\": {\n * \"unit\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * },\n * \"value\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * }\n * },\n * \"without_tax\": {\n * \"unit\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * },\n * \"value\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * }\n * },\n * \"tax\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"discount\": {\n * \"unit\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\"\n * },\n * \"value\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\"\n * }\n * },\n * \"without_discount\": {\n * \"unit\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$100.00\"\n * },\n * \"value\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$100.00\"\n * }\n * },\n * \"discounts\": {\n * \"sale2024\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\",\n * \"constituents\": {\n * \"509295ee-2971-45b6-801e-95df09756989\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"ca79e606-7ecd-41ac-9478-af4c8c28c546\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"de19a043-a6da-4bde-b896-d17e16b77e25\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"e4d929d5-f471-4317-9a86-a84a6c572b44\": {\n * \"amount\": -2000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$20.00\"\n * }\n * }\n * }\n * }\n * },\n * \"timestamps\": {\n * \"created_at\": \"2024-05-24T18:00:58Z\",\n * \"updated_at\": \"2024-05-24T18:00:58Z\"\n * }\n * },\n * \"catalog_id\": \"09b9359f-897f-407f-89a2-702e167fe781\",\n * \"catalog_source\": \"pim\"\n * }\n * ```\n *\n */\nexport const getCartItemsOptions = (options: Options<GetCartItemsData>) =>\n queryOptions<\n GetCartItemsResponse,\n DefaultError,\n GetCartItemsResponse,\n ReturnType<typeof getCartItemsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCartItems({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCartItemsQueryKey(options),\n })\n\n/**\n * Add Items to Cart\n *\n *\n * ### Add Product to Cart\n *\n * Adding a Product to Cart is the most common Cart action. If you want to add any custom products or promotions, you need to do that as a separate action.\n *\n * #### Dynamic Bundles\n *\n * A bundle is a purchasable product that is composed of a combination of two or more products that you want to sell together. You can create multiple components within a bundle. Each component can have one or more options. Each option is a product and a quantity. You can configure minimum and/or maximum values for the number of product options in a component that your shoppers can select. For example, you can enable a shopper to select 1 or more product options from a list of 10. These are called [dynamic bundles](/docs/api/pxm/products/products#dynamic-bundles).\n *\n * Your dynamic bundles are displayed in your published catalogs.\n *\n * 1. Use the configure a shopper endpoint to allow shoppers to make their selections from a bundle.\n * 2. In the response of the configure a shopper, the `bundle_configuration` object contains the bundle selections a shopper has made.\n * 3. In the add a product to cart request, use the `bundle_configuration` object to add the customers selections to a cart.\n *\n * ```json\n * \"bundle_configuration\": {\n * \"selected_options\": {\n * \"games\": {\n * \"d7b79eb8-19d8-45ea-86ed-2324a604dd9c\": 1\n * },\n * \"toys\": {\n * \"0192ccdd-6d33-4898-87d7-c4d87f2bf8ea\": 1,\n * \"1aea6f97-f0d9-452c-b3c1-7fb5629ead82\": 1\n * }\n * }\n * }\n * ```\n *\n * When a cart is checked out, the options a shopper selected are added to the order. See [order items](/docs/api/carts/get-order-items).\n *\n * #### Personalized Products\n *\n * You can allow shoppers to personalize their goods by adding custom text inputs to products directly. This feature is particularly useful for customizable items, such as personalized T-shirts or greeting cards. You can use this functionality by leveraging the `custom_inputs` attribute, and defining the details and validation rules for the custom text.\n *\n * First, you must configure a `custom_inputs` attribute when creating a new product or updating an existing product. Once you have defined your custom inputs on a product, you must configure the custom inputs in your orders.\n *\n * For example, you may sell T-shirts that can have personalized text on the front and back of the shirt.\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"product\",\n * \"attributes\": {\n * \"custom_inputs\": {\n * \"front\": {\n * \"name\": \"T-Shirt Front\",\n * \"validation_rules\": [\n * {\n * \"type\": \"string\",\n * \"options\": {\n * \"max_length\": 50\n * }\n * }\n * ],\n * \"required\": false\n * },\n * \"back\": {\n * \"name\": \"T-Shirt Back\",\n * \"validation_rules\": [\n * {\n * \"type\": \"string\",\n * \"options\": {\n * \"max_length\": 50\n * }\n * }\n * ],\n * \"required\": false\n * }\n * }\n * }\n * }\n * }\n * ```\n *\n * If the same product has different `custom_inputs` attributes, then these are added as separate items in a cart.\n *\n * The `custom_inputs` attribute is stored in the cart item and the text for `custom_input` must not exceed 255 characters in length. When a cart is checked out, the `custom_inputs` attribute becomes part of the order.\n *\n * #### Limitations on Usage of `custom_inputs` with Specific Promotion Types\n *\n * When you add products to a cart with `custom_inputs`, there are certain limitations on usage of the `custom_inputs` with the following promotion types:\n *\n * - For [Free Gift Promotions](/docs/api/promotions/create-a-promotion), you can add `custom_inputs` to gift items.\n * - For [Fixed Bundle Discount Promotions](/docs/api/promotions/create-a-promotion), the promotion applies as long as the cart contains the bundle SKUs even when there are different `custom_inputs`.\n * - For [X for Y Discount Promotion and X for amount discount promotion](/docs/api/promotions/create-a-promotion), the promotion applies when there are two SKUs with the same `custom_inputs`. The promotion does not apply when there are different `custom_inputs` and the SKUs are in different line items.\n *\n * #### Stock locations\n *\n * When adding to a cart it is possible to specify which [stock location](/docs/api/pxm/inventory_mli/inventories-introduction?#multi-location-inventories) should be used for tracking inventory for that product by specifying its slug in `location`. This might represent the warehouse a product is shipped from or the store holding the stock in a Buy Online Pick Up In Store scenario.\n *\n * Each line item is restricted to a single stock location. If the same product is added with a different location then the most recently-specified location will be used for the total quantity of that line item.\n *\n * :::note\n *\n * - Any requests to add a product to cart returns the collection of cart items.\n * - [Tax items](/docs/api/carts/tax-items) may optionally be added with the product. Only administrators with [client_credentials access tokens](/docs/api/authentication/create-an-access-token) are able to do this. If included, they replace any existing taxes on the product.\n * - The cart currency is set when the first item is added to the cart.\n * - The product being added to the cart requires a price in the same currency as the other items in the cart. The API returns a 400 error if a price is not defined in the correct currency.\n * - A cart can contain a maximum of 100 unique items. Items include products, custom items, tax items, and promotions.\n * - There are a number of actions that happen to your inventory when checking out and paying for an order. For more information, see the [Inventory](/docs/api/pxm/inventory/inventories-introduction) documentation.\n *\n * :::\n *\n * ### Including Resources\n *\n * When you make an `Add Product to Cart` request to the catalog-view service, you can obtain details of the component products. If you include the optional parameter `include=component_products` in the request, the response will include details for each component product.\n *\n * When a bundle with selected component products is added to a cart, the cart displays both the bundle pricing and component product IDs.\n *\n * The response example is returned with a new field called `component_products` under `bundle_configuration`, which is a list of component products that the user has selected for dynamic bundles.\n *\n * | Parameter | Required | Description |\n * |:------------------------|:-------------|:-------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * ```json\n * \"bundle_configuration\": {\n * \"selected_options\": {\n * \"mixed-shirts\": {\n * \"16a6cc14-6ebb-4156-9973-e6a0f92f5731\": 3,\n * \"55037cc5-f382-4039-95c6-1e04ac0351d3\": 2,\n * \"standard-shirts\"\n * \"70f1c9d2-c580-4839-bd6c-a0a9b91d5159\": 5\n * }\n * },\n * \"component_products\": [\n * {\n * \"id\": \"16a6cc14-6ebb-4156-9973-e6a0f92f5731\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"Red T-shirt\",\n * \"description\": \"Standard red t-shirt.\",\n * \"slug\": \"red-t-shirt-slug\",\n * \"sku\": \"red-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * },\n * {\n * \"id\": \"55037cc5-f382-4039-95c6-1e04ac0351d3\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"Blue T-shirt\",\n * \"description\": \"Standard blue t-shirt.\",\n * \"slug\": \"blue-t-shirt-slug\",\n * \"sku\": \"blue-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * },\n * {\n * \"id\": \"70f1c9d2-c580-4839-bd6c-a0a9b91d5159\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"White T-shirt\",\n * \"description\": \"Standard white t-shirt.\",\n * \"slug\": \"white-t-shirt-slug\",\n * \"sku\": \"white-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * }\n * ]\n * }\n * ```\n *\n * See [Including Resources](https://elasticpath.dev/guides/Getting-Started/includes).\n *\n * ### Add Subscription to Cart\n *\n * To add a subscription to your cart, you need to provide the ID of the subscription offering, and the ID of the pricing option and plan within that offering that you want to subscribe to.\n *\n * ```json\n * {\n * {\n * \"data\": {\n * \"id\": \"5b9be99f-1c94-4ddd-9718-81adab0cc3e0\",\n * \"type\": \"subscription_item\",\n * \"quantity\": 1,\n * \"subscription_configuration\": {\n * \"plan\": \"dfa31307-748c-4369-8571-709f924a0807\",\n * \"pricing_option\": \"40010dde-2f38-489b-8b3f-14a13cbfb431\"\n * }\n * }\n * }\n * ```\n *\n * The price of the subscription item in the cart reflects the cost of the subscription's initial billing period. Once the cart has been checked out and the order paid for, the subscription will be automatically created in the subscriptions service.\n *\n * ### Add Custom Item to Cart\n *\n * You can add a custom item to the cart when you don't manage things like shipping, taxes and inventory in Commerce.\n *\n * For [Shipping Groups](/docs/ship-groups/shipping-groups/index), once you have created a [cart shipping group](/docs/ship-groups/shipping-groups/shipping-groups-api/create-cart-shipping-group), you need to link it to the cart items. This is important, because it is necessary to associate items with shipping groups in order to include shipping groups in the corresponding cart, order, and totals.\n *\n * :::note\n *\n * - Custom Cart Items are available when using [implicit access tokens](/docs/api/authentication/create-an-access-token). Ensure that you always check each order has the correct details for each item, most importantly, price.\n *\n * :::\n *\n * ### Add Promotion to Cart\n *\n * You can use the Promotions API to apply discounts to your cart as a special cart item type. Any requests to add a product to cart will return a collection of cart items.\n *\n * There are certain limitations on usage of the `custom_inputs` attribute with some promotion types. See [Limitations on Usage of `custom_inputs` with Specific Promotion Types](/docs/api/carts/manage-carts#limitations-on-usage-of-custom_inputs-with-specific-promotion-types).\n *\n * To remove promotion from the cart via the promotion code, see [Delete Promotion Code from Cart](/docs/api/carts/delete-a-promotion-via-promotion-code).\n *\n * ### Re-order\n *\n * From a shopper's order history, they can add the items from a previous order into their carts. Shoppers can add items regardless of past order status, such as incomplete or not paid. For more information, see [Orders](/docs/api/carts/orders).\n *\n * :::note\n * - Any requests to add an item to cart return a collection of [cart items](/docs/api/carts/cart-items).\n * - A cart can contain a maximum of 100 unique items. Items include products, custom items, and promotions.\n * - When a shopper creates a cart and re-orders items from an order with properties such as custom attributes, custom discounts, and payment intent ID, these properties will remain unchanged in the original cart.\n * - Custom items do not exist in catalogs, and therefore cannot be reordered.\n * :::\n *\n * ### Merging Carts\n *\n * A shopper can have multiple carts, and the system may automatically merge items from an anonymous cart into the shopper's registered cart when they sign in. For example, if a shopper has an existing cart with items `A`, `B` and `C`, and later adds items `D` and `E` while not signed in, the system can merge these carts when the shopper signs in. After the carts merge, the cart contains items `A`, `B`, `C`, `D` and `E`.\n *\n * If any items are duplicated from the anonymous cart to the registered cart, their quantities are incremented accordingly. For example, if a shopper's existing cart with items `A`, `B` and `C`, and they later add two more `A` items and one `B` item while not signed in, the system will merge the carts when the shopper signs in. The existing cart will now contain three `A` items, two `B` items, and one `C` item.\n *\n * :::note\n *\n * When the system merges items from one cart into another cart, properties such as custom attributes, custom discounts, and payment intent ID will remain unchanged in the original cart.\n *\n * :::\n *\n * ### Best Practices\n *\n * We recommend to include a unique `sku` code within the request body while adding custom items to carts. If the same `sku` is used for multiple products, they are merged into a single line item.\n *\n * For example, if a cart consists of the following items:\n *\n * - `product-1` with quantity 1 and sku code as `sku-1`\n * - `product-2` with quantity 1 and sku code as `sku-1`\n * - `product-3` with quantity 1 and sku code as `sku-2`.\n *\n * The following response is returned where it combines all products with the same sku codes into a single line item, while products with a unique sku codes are represented as separate items:\n *\n * ```json\n * {\n * \"data\": [\n * {\n * \"id\": \"c58760f4-8889-4719-b34d-be1f1d11ae59\",\n * \"type\": \"custom_item\",\n * \"name\": \"product-1\",\n * \"description\": \"My first custom item!\",\n * \"sku\": \"sku-1\",\n * \"slug\": \"\",\n * \"image\": {\n * \"mime_type\": \"\",\n * \"file_name\": \"\",\n * \"href\": \"\"\n * },\n * \"quantity\": 2,\n * \"manage_stock\": false,\n * \"unit_price\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"includes_tax\": true\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"includes_tax\": true\n * },\n * \"links\": {},\n * \"meta\": {\n * \"display_price\": {\n * \"with_tax\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * },\n * \"without_tax\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * },\n * \"tax\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"discount\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"without_discount\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * }\n * },\n * \"timestamps\": {\n * \"created_at\": \"2023-05-02T16:28:11Z\",\n * \"updated_at\": \"2023-05-02T16:28:18Z\"\n * }\n * }\n * ]\n * ```\n *\n */\nexport const manageCartsMutation = (\n options?: Partial<Options<ManageCartsData>>,\n): UseMutationOptions<\n ManageCartsResponse,\n ManageCartsError,\n Options<ManageCartsData>\n> => {\n const mutationOptions: UseMutationOptions<\n ManageCartsResponse,\n ManageCartsError,\n Options<ManageCartsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await manageCarts({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Update Items in Cart\n *\n * The bulk update feature allows shoppers to update an array of items to their cart in one action, rather than updating each item one at a time. Shoppers can update quantity and shipping group details in bulk requests. This minimizes the time for shoppers while updating items to their cart. Shoppers can even update multiple items with the same or different shipping groups to their cart.\n *\n * When you update multiple items that qualify for free gifts in the cart, the corresponding free gifts for all eligible products are also automatically updated in the cart.\n *\n */\nexport const bulkUpdateItemsInCartMutation = (\n options?: Partial<Options<BulkUpdateItemsInCartData>>,\n): UseMutationOptions<\n BulkUpdateItemsInCartResponse,\n BulkUpdateItemsInCartError,\n Options<BulkUpdateItemsInCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkUpdateItemsInCartResponse,\n BulkUpdateItemsInCartError,\n Options<BulkUpdateItemsInCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkUpdateItemsInCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Cart Item\n *\n * Use this endpoint to delete a cart item.\n */\nexport const deleteACartItemMutation = (\n options?: Partial<Options<DeleteACartItemData>>,\n): UseMutationOptions<\n DeleteACartItemResponse,\n DefaultError,\n Options<DeleteACartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteACartItemResponse,\n DefaultError,\n Options<DeleteACartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteACartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Cart Item\n *\n * You can easily update a cart item. A successful update returns the cart items.\n */\nexport const updateACartItemMutation = (\n options?: Partial<Options<UpdateACartItemData>>,\n): UseMutationOptions<\n UpdateACartItemResponse,\n UpdateACartItemError,\n Options<UpdateACartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateACartItemResponse,\n UpdateACartItemError,\n Options<UpdateACartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateACartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Account Cart Association\n *\n * You can delete an association between an account and a cart.\n */\nexport const deleteAccountCartAssociationMutation = (\n options?: Partial<Options<DeleteAccountCartAssociationData>>,\n): UseMutationOptions<\n DeleteAccountCartAssociationResponse,\n DeleteAccountCartAssociationError,\n Options<DeleteAccountCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAccountCartAssociationResponse,\n DeleteAccountCartAssociationError,\n Options<DeleteAccountCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAccountCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create an Account Cart Association\n *\n * You can create associations between an account and one or more carts. After cart associations exist for an account, the account can access those carts across any device.\n */\nexport const createAccountCartAssociationMutation = (\n options?: Partial<Options<CreateAccountCartAssociationData>>,\n): UseMutationOptions<\n CreateAccountCartAssociationResponse,\n CreateAccountCartAssociationError,\n Options<CreateAccountCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateAccountCartAssociationResponse,\n CreateAccountCartAssociationError,\n Options<CreateAccountCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createAccountCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Customer Cart Association\n *\n * You can delete an association between a customer and a cart.\n */\nexport const deleteCustomerCartAssociationMutation = (\n options?: Partial<Options<DeleteCustomerCartAssociationData>>,\n): UseMutationOptions<\n DeleteCustomerCartAssociationResponse,\n DeleteCustomerCartAssociationError,\n Options<DeleteCustomerCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomerCartAssociationResponse,\n DeleteCustomerCartAssociationError,\n Options<DeleteCustomerCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomerCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create a Customer Cart Association\n *\n * You can create associations between a customer and one or more carts. After cart associations exist for a customer, the customer can access those carts across any device.\n */\nexport const createCustomerCartAssociationMutation = (\n options?: Partial<Options<CreateCustomerCartAssociationData>>,\n): UseMutationOptions<\n CreateCustomerCartAssociationResponse,\n CreateCustomerCartAssociationError,\n Options<CreateCustomerCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCustomerCartAssociationResponse,\n CreateCustomerCartAssociationError,\n Options<CreateCustomerCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCustomerCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Promotion via Promotion Code\n *\n * You can remove promotion code from a cart if it was applied manually. This endpoint does not work if the promotion is applied automatically.\n */\nexport const deleteAPromotionViaPromotionCodeMutation = (\n options?: Partial<Options<DeleteAPromotionViaPromotionCodeData>>,\n): UseMutationOptions<\n DeleteAPromotionViaPromotionCodeResponse,\n DefaultError,\n Options<DeleteAPromotionViaPromotionCodeData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAPromotionViaPromotionCodeResponse,\n DefaultError,\n Options<DeleteAPromotionViaPromotionCodeData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAPromotionViaPromotionCode({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Tax Item to Cart\n *\n *\n * Use this endpoint to add a tax item to a cart.\n *\n * :::note\n *\n * There is a soft limit of 5 unique tax items per cart item at any one time.\n *\n * :::\n *\n */\nexport const addTaxItemToCartMutation = (\n options?: Partial<Options<AddTaxItemToCartData>>,\n): UseMutationOptions<\n AddTaxItemToCartResponse,\n AddTaxItemToCartError,\n Options<AddTaxItemToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddTaxItemToCartResponse,\n AddTaxItemToCartError,\n Options<AddTaxItemToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addTaxItemToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Tax Item to Bundle Component\n *\n *\n * Use this endpoint to add a tax item to a specific bundle component (component product) within a cart item.\n *\n * :::note\n *\n * There is a soft limit of 5 unique tax items per component product at any one time.\n *\n * :::\n *\n */\nexport const addTaxItemToCartItemComponentMutation = (\n options?: Partial<Options<AddTaxItemToCartItemComponentData>>,\n): UseMutationOptions<\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartItemComponentError,\n Options<AddTaxItemToCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartItemComponentError,\n Options<AddTaxItemToCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addTaxItemToCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Tax Item from Bundle Component\n *\n *\n * Use this endpoint to delete a tax item from a specific bundle component (component product) within a cart item.\n *\n */\nexport const deleteTaxItemFromCartItemComponentMutation = (\n options?: Partial<Options<DeleteTaxItemFromCartItemComponentData>>,\n): UseMutationOptions<\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteTaxItemFromCartItemComponentError,\n Options<DeleteTaxItemFromCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteTaxItemFromCartItemComponentError,\n Options<DeleteTaxItemFromCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteTaxItemFromCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Tax Item on Bundle Component\n *\n * Use this endpoint to update a tax item on a specific bundle component (component product) within a cart item. To change tax value from `rate` to `amount`, set `rate` to `null`, then set `amount` value and vice versa.\n */\nexport const updateTaxItemFromCartItemComponentMutation = (\n options?: Partial<Options<UpdateTaxItemFromCartItemComponentData>>,\n): UseMutationOptions<\n UpdateTaxItemFromCartItemComponentResponse,\n DefaultError,\n Options<UpdateTaxItemFromCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateTaxItemFromCartItemComponentResponse,\n DefaultError,\n Options<UpdateTaxItemFromCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateTaxItemFromCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Delete Tax Items from Cart\n *\n * Use this endpoint to bulk delete all tax items from all cart items and bundle component products in the cart.\n *\n * :::warning\n *\n * This operation will remove ALL tax items from:\n * - All cart items in the cart\n * - All bundle component products within bundle cart items\n *\n * :::\n *\n * ### Behavior\n *\n * - Removes all tax items from every cart item\n * - Removes all tax items from every component product in bundle cart items\n * - If no tax items exist anywhere in the cart, returns a 404 error\n *\n * ### Errors\n *\n * `404 Not Found`\n *\n * If no tax items exist in the cart (on cart items or component products):\n *\n * ```json\n * {\n * \"status\": 404,\n * \"title\": \"Resource Not Found\",\n * \"detail\": \"No tax items exist in the cart\"\n * }\n * ```\n *\n */\nexport const bulkDeleteTaxItemsFromCartMutation = (\n options?: Partial<Options<BulkDeleteTaxItemsFromCartData>>,\n): UseMutationOptions<\n BulkDeleteTaxItemsFromCartResponse,\n BulkDeleteTaxItemsFromCartError,\n Options<BulkDeleteTaxItemsFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkDeleteTaxItemsFromCartResponse,\n BulkDeleteTaxItemsFromCartError,\n Options<BulkDeleteTaxItemsFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkDeleteTaxItemsFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Add Tax Items to Cart\n *\n * Use this endpoint to bulk add tax items to cart items and bundle component products.\n *\n * :::note\n *\n * A cart item can only have a maximum of five tax items.\n * A bundle component product can only have a maximum of five tax items.\n *\n * :::\n *\n * ### Bundle Component Taxes\n *\n * To add tax items to bundle component products, include a `meta` object with `component_product_id` in each tax item:\n *\n * ```json\n * {\n * \"data\": [\n * {\n * \"type\": \"tax_item\",\n * \"code\": \"GST\",\n * \"name\": \"Goods and Services Tax\",\n * \"rate\": 0.1,\n * \"meta\": {\n * \"component_product_id\": \"12345678-1234-5678-9012-123456789012\"\n * },\n * \"relationships\": {\n * \"item\": {\n * \"data\": {\n * \"type\": \"cart_item\",\n * \"id\": \"cart-item-id\"\n * }\n * }\n * }\n * }\n * ]\n * }\n * ```\n *\n * ### Errors\n *\n *\n * `422 Unprocessable Entity`\n *\n *\n * In this example, when `options.add_all_or_nothing` is set to `true` and if\n * one of cart items is not found or has reached its maximum tax item limit,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"status\": 422,\n * \"title\": \"Add all or nothing.\",\n * \"detail\": \"Add all or nothing set to (true). Could not bulk add tax items to cart.\"\n * }\n *\n * ```\n *\n *\n * In this example, if you add more than five tax items to the same cart item,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"status\": 422,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Cannot exceed tax item limit of (5) on cart item.\",\n * \"meta\": {\n * \"id\": \"f88e6370-cb35-40b2-a998-c759f31dec0a\"\n * }\n * }\n * ```\n *\n *\n * `404`\n *\n *\n * In this example, if there is a mismatch between `cart_item`/`custom_item`\n * and the `relationships.item.data.type` specified in the bulk add tax item,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"data\": [],\n * \"errors\": [\n * {\n * \"status\": 404,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Mismatch between bulk tax item type(cart_item) and cart item type(custom_item).\",\n * \"meta\": {\n * \"id\": \"56aab5d1-1dd4-45ed-88ed-4d0cc396b62d\"\n * }\n * },\n * {\n * \"status\": 404,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Mismatch between bulk tax item type(cart_item) and cart item type(custom_item).\",\n * \"meta\": {\n * \"id\": \"56aab5d1-1dd4-45ed-88ed-4d0cc396b62d\"\n * }\n * }\n * ]\n * }\n *\n * ```\n *\n */\nexport const bulkAddTaxItemsToCartMutation = (\n options?: Partial<Options<BulkAddTaxItemsToCartData>>,\n): UseMutationOptions<\n BulkAddTaxItemsToCartResponse,\n BulkAddTaxItemsToCartError,\n Options<BulkAddTaxItemsToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkAddTaxItemsToCartResponse,\n BulkAddTaxItemsToCartError,\n Options<BulkAddTaxItemsToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkAddTaxItemsToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Tax Item\n *\n * Use this endpoint to delete a tax item.\n */\nexport const deleteATaxItemMutation = (\n options?: Partial<Options<DeleteATaxItemData>>,\n): UseMutationOptions<\n DeleteATaxItemResponse,\n DefaultError,\n Options<DeleteATaxItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteATaxItemResponse,\n DefaultError,\n Options<DeleteATaxItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteATaxItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Tax Item\n *\n * Use this endpoint to update a tax item. To change tax value from `rate` to `amount`, set `rate` to `null`, then set `amount` value and vice versa.\n */\nexport const updateATaxItemMutation = (\n options?: Partial<Options<UpdateATaxItemData>>,\n): UseMutationOptions<\n UpdateATaxItemResponse,\n DefaultError,\n Options<UpdateATaxItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateATaxItemResponse,\n DefaultError,\n Options<UpdateATaxItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateATaxItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Delete Custom Discounts From Cart\n *\n * Use this endpoint to bulk delete custom discounts from cart.\n */\nexport const bulkDeleteCustomDiscountsFromCartMutation = (\n options?: Partial<Options<BulkDeleteCustomDiscountsFromCartData>>,\n): UseMutationOptions<\n BulkDeleteCustomDiscountsFromCartResponse,\n DefaultError,\n Options<BulkDeleteCustomDiscountsFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkDeleteCustomDiscountsFromCartResponse,\n DefaultError,\n Options<BulkDeleteCustomDiscountsFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkDeleteCustomDiscountsFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Add Custom Discounts to Cart\n *\n * The default value for custom discounts on both the cart and cart items is set to 5 if this parameter is not configured in the store. To verify the custom discount limit value, call [Get all settings](/docs/api/settings/get-v-2-settings) endpoint.\n *\n * To increase the custom discount value, contact [Elastic Path Support team](https://support.elasticpath.com/hc/en-us).\n *\n * Custom discounts cannot be combined with Elastic Path promotions. If the cart already contains Elastic Path promotions, remove them before adding custom discounts.\n *\n */\nexport const bulkAddCustomDiscountsToCartMutation = (\n options?: Partial<Options<BulkAddCustomDiscountsToCartData>>,\n): UseMutationOptions<\n BulkAddCustomDiscountsToCartResponse,\n BulkAddCustomDiscountsToCartError,\n Options<BulkAddCustomDiscountsToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkAddCustomDiscountsToCartResponse,\n BulkAddCustomDiscountsToCartError,\n Options<BulkAddCustomDiscountsToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkAddCustomDiscountsToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Custom Discount From Cart\n *\n * Use this endpoint to delete custom discount from cart.\n */\nexport const deleteCustomDiscountFromCartMutation = (\n options?: Partial<Options<DeleteCustomDiscountFromCartData>>,\n): UseMutationOptions<\n DeleteCustomDiscountFromCartResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomDiscountFromCartResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomDiscountFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Custom Discount For Cart\n *\n * Use this endpoint to update a custom discount in your cart.\n */\nexport const updateCustomDiscountForCartMutation = (\n options?: Partial<Options<UpdateCustomDiscountForCartData>>,\n): UseMutationOptions<\n UpdateCustomDiscountForCartResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCustomDiscountForCartResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCustomDiscountForCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Custom Discount To Cart Item\n *\n * Use this endpoint to add a custom discount to cart item. Custom discounts cannot be combined with Elastic Path promotions. If the cart already contains Elastic Path promotions, remove them before adding custom discounts.\n */\nexport const addCustomDiscountToCartItemMutation = (\n options?: Partial<Options<AddCustomDiscountToCartItemData>>,\n): UseMutationOptions<\n AddCustomDiscountToCartItemResponse,\n AddCustomDiscountToCartItemError,\n Options<AddCustomDiscountToCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddCustomDiscountToCartItemResponse,\n AddCustomDiscountToCartItemError,\n Options<AddCustomDiscountToCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addCustomDiscountToCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Custom Discount From Cart Item\n *\n * Use this endpoint to delete custom discount from cart item.\n */\nexport const deleteCustomDiscountFromCartItemMutation = (\n options?: Partial<Options<DeleteCustomDiscountFromCartItemData>>,\n): UseMutationOptions<\n DeleteCustomDiscountFromCartItemResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomDiscountFromCartItemResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomDiscountFromCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Custom Discount For Cart Item\n *\n * Use this endpoint to update a custom discount in your cart item.\n */\nexport const updateCustomDiscountForCartItemMutation = (\n options?: Partial<Options<UpdateCustomDiscountForCartItemData>>,\n): UseMutationOptions<\n UpdateCustomDiscountForCartItemResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCustomDiscountForCartItemResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCustomDiscountForCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupsQueryKey = (\n options: Options<GetShippingGroupsData>,\n) => createQueryKey(\"getShippingGroups\", options)\n\n/**\n * Retrieve all shipping groups for a cart\n *\n * Retrieve all shipping groups for a cart\n */\nexport const getShippingGroupsOptions = (\n options: Options<GetShippingGroupsData>,\n) =>\n queryOptions<\n GetShippingGroupsResponse,\n GetShippingGroupsError,\n GetShippingGroupsResponse,\n ReturnType<typeof getShippingGroupsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupsQueryKey(options),\n })\n\n/**\n * Create a new shipping group for a cart\n *\n * Create a new shipping group for a cart\n */\nexport const createShippingGroupMutation = (\n options?: Partial<Options<CreateShippingGroupData>>,\n): UseMutationOptions<\n CreateShippingGroupResponse,\n CreateShippingGroupError,\n Options<CreateShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateShippingGroupResponse,\n CreateShippingGroupError,\n Options<CreateShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Cart Shipping Group\n *\n * Deletes a shipping group from a cart. You cannot delete a shipping group that is attached to cart items.\n * You must first remove the shipping group from all cart items before deleting the shipping group.\n *\n */\nexport const deleteCartShippingGroupMutation = (\n options?: Partial<Options<DeleteCartShippingGroupData>>,\n): UseMutationOptions<\n DeleteCartShippingGroupResponse,\n DeleteCartShippingGroupError,\n Options<DeleteCartShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCartShippingGroupResponse,\n DeleteCartShippingGroupError,\n Options<DeleteCartShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCartShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupByIdQueryKey = (\n options: Options<GetShippingGroupByIdData>,\n) => createQueryKey(\"getShippingGroupById\", options)\n\n/**\n * Retrieve a specific shipping group for a cart\n *\n * Retrieve a specific shipping group for a cart\n */\nexport const getShippingGroupByIdOptions = (\n options: Options<GetShippingGroupByIdData>,\n) =>\n queryOptions<\n GetShippingGroupByIdResponse,\n GetShippingGroupByIdError,\n GetShippingGroupByIdResponse,\n ReturnType<typeof getShippingGroupByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroupById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupByIdQueryKey(options),\n })\n\n/**\n * Update a shipping group for a cart\n *\n * Update a specific shipping group for a cart\n */\nexport const updateShippingGroupMutation = (\n options?: Partial<Options<UpdateShippingGroupData>>,\n): UseMutationOptions<\n UpdateShippingGroupResponse,\n UpdateShippingGroupError,\n Options<UpdateShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateShippingGroupResponse,\n UpdateShippingGroupError,\n Options<UpdateShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create Stripe Payment Intent for a Cart\n *\n * The Cart Payment Intent feature enables the creation of a Stripe Payment Intent specifically tied to a shopping cart and its subsequent order. This allows Payment Intent users to track payment details from the cart stage and seamlessly maintain consistency in payment information throughout the order stage. Using these features, you can create Payment Intents for their carts, update Payment Intents with final cart details, and synchronize Payment Intents from Stripe to Commerce.\n *\n * :::note\n *\n * - Typically, in Commerce, inventory is allocated at the time of payment initiation after an order is created. However, in the case of Cart Payment Intent, information about the payment is received only upon synchronizing the order from Stripe to Commerce. This may happen after the payment is completed. Therefore, there might be a delay between the payment made and allocation, increasing the chance of paying for items that are not in stock.\n * - There are certain fields you can choose to set up when [creating a payment intent](https://stripe.com/docs/api/payment_intents/create). However, if you decide to update a payment intent, the available options may not be the same as those allowed while creating a payment intent. See [updating a payment intent](https://stripe.com/docs/api/payment_intents/update).\n *\n * :::\n *\n * The following steps outline the workflow associated with the Payment Intent:\n *\n * 1. [Add items to cart](/docs/api/carts/manage-carts#add-custom-item-to-cart).\n * 1. [Create a Payment Intent for the cart](/docs/api/carts/create-cart-payment-intent). The Payment Intent is created in Stripe, reflecting the cart and transaction details, including currency, amounts, payment type, and any optional Stripe details. The Payment Intent ID is generated and linked to the cart.\n * 1. [Update a Payment Intent](/docs/carts-orders/update-cart-payment-intent). This step is optional but becomes necessary when there are changes in the cart details at the time of payment. It ensures the Payment Intent accurately reflects the current cart details when processing the payments on the front end.\n * 1. [Checkout the cart](/docs/api/carts/checkout). An unpaid order is created, and the Payment Intent ID is linked to the order.\n * 1. [Confirm the order](/docs/carts-orders/confirm-an-order). This is important because after checkout, it is essential to confirm the Payment Intent and synchronize it with Commerce. This results in a corresponding transaction and change in order statuses in Commerce. Additionally, the Payment Intent ID is removed from the order once it is linked via the transaction.\n *\n * ### Best Practices\n *\n * We recommend you follow these practices to maintain consistency and accuracy when using Cart Payment Intent.\n *\n * - After checkout, we recommend clearing the shopping cart. You can achieve this using a [Delete a cart](/docs/api/carts/delete-a-cart) endpoint or [Update a cart](/docs/api/carts/update-a-cart) to remove the Payment Intent ID. This helps to avoid potential issues where subsequent checkouts for the same cart might unintentionally use the previous Stripe Payment Intent ID.\n * - If it is not reasonable to clear the cart immediately after checkout due to several subsequent, duplicate checkouts to the same cart, ensure that you only synchronize the Payment Intent when finalizing the order. Each order confirmation is unaware of the others, and syncing Payment Intent IDs for each confirmation can lead to duplicate transactions in Commerce. In other words, if you synchronize Payment Intents for earlier versions of a repeated checkout, you'll end up with multiple orders from the same cart, each having transactions linked to the same Payment Intent.\n * - To pay the entire amount at once, use the [Update Cart Payment Intent](/docs/carts-orders/update-cart-payment-intent) endpoint to update the Stripe Payment Intent with the final cart details when preparing to take the payment. Doing so, ensures that the Payment Intent accurately reflects the current cart details when processing payments on the front end. We do not recommend calling the [Update Cart Payment Intent](/docs/carts-orders/update-cart-payment-intent) for each individual change in the cart, as this can lead to more requests and may slow down the front-end performance.\n *\n */\nexport const createCartPaymentIntentMutation = (\n options?: Partial<Options<CreateCartPaymentIntentData>>,\n): UseMutationOptions<\n CreateCartPaymentIntentResponse,\n DefaultError,\n Options<CreateCartPaymentIntentData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCartPaymentIntentResponse,\n DefaultError,\n Options<CreateCartPaymentIntentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCartPaymentIntent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Payment Intent on a Cart\n *\n * Updates the payment information for a specific payment intent on a cart.\n */\nexport const updateCartPaymentIntentMutation = (\n options?: Partial<Options<UpdateCartPaymentIntentData>>,\n): UseMutationOptions<\n UpdateCartPaymentIntentResponse,\n DefaultError,\n Options<UpdateCartPaymentIntentData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCartPaymentIntentResponse,\n DefaultError,\n Options<UpdateCartPaymentIntentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCartPaymentIntent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Checkout API\n *\n * When a Cart is ready for checkout, you can convert the cart to an order. The cart remains and can be modified and checked out again if required.\n *\n * A cart can be checked out with a customer ID, customer object, or with an account by authenticating with the `Client Credentials Token`.\n *\n * After a successful checkout, a response that contains the order is returned. If the cart is linked to a shipping group, the shipping group is also associated with the order after checkout.\n *\n * You can checkout using one of the following methods:\n * - **Customer ID**: You can checkout a cart with an existing customer ID.\n * - **Guest Checkout** (Checkout with Customer Object): You can checkout a cart with an associated customer name and email.\n * - **Checkout with Account**: The shopper authenticates with the `Client Credentials` Token.\n * - **Checkout with Account Management Authentication Token**: The shopper authenticates with the `Implicit Token` and the `EP-Account-Management-Authentication-Token`.\n *\n * :::note\n *\n * - The cart currency is set when the first item is added to the cart.\n * - The product being added to the cart requires a price in the same currency as the other items in the cart. The API returns a 400 error if a price is not defined in the correct currency.\n * - To ensure that a free gift is automatically applied to an order, set the promotion to automatic. The checkout process will not be successful if free gift items are out of stock. See [Errors](#errors) section.\n *\n * :::\n *\n * :::caution\n *\n * - By default, carts are automatically deleted 7 days after the last update. You can change this setting by [updating cart settings](/docs/api/carts/put-v-2-settings-cart).\n * - Your inventory is modified during checkout and payment of an order. For more information about the changes in the inventory, see the [Inventory](/docs/api/pxm/inventory/inventories-introduction) section.\n *\n * :::\n *\n * You can pass `order_number` and `external_ref` in the checkout endpoint or when [updating an order](/docs/api/carts/update-an-order). The `order_number` is an optional, user-managed field that is used as an alternative to `order_id`. When processing transactions through Authorize.net, the `order_number` is sent instead of the `order_id`, and it will appear in the invoice number section. If no `order_number` is provided, the `order_id` is sent to Authorize.net on payment by default. There are no duplication restrictions on the `order_number` value.\n *\n * ### Next Steps\n *\n * After a cart has been converted to an Order using either of the previous methods, you most likely want to capture payment for order. See [Paying for an Order](/docs/api/carts/payments).\n *\n * ### Errors\n *\n * The following error response is returned during checkout when an eligible item is added to the cart, and the free gift is out of stock.\n *\n * ```json\n * {\n * \"errors\": [\n * {\n * \"status\": 400,\n * \"title\": \"Insufficient stock\",\n * \"detail\": \"There is not enough stock to add gift2 to your cart\",\n * \"meta\": {\n * \"id\": \"f2b68648-9621-45a3-aed6-1b526b0f5beb\",\n * \"sku\": \"gift2\"\n * }\n * }\n * ]\n * }\n * ```\n *\n */\nexport const checkoutApiMutation = (\n options?: Partial<Options<CheckoutApiData>>,\n): UseMutationOptions<\n CheckoutApiResponse,\n CheckoutApiError,\n Options<CheckoutApiData>\n> => {\n const mutationOptions: UseMutationOptions<\n CheckoutApiResponse,\n CheckoutApiError,\n Options<CheckoutApiData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await checkoutApi({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCustomerOrdersQueryKey = (\n options?: Options<GetCustomerOrdersData>,\n) => createQueryKey(\"getCustomerOrders\", options)\n\n/**\n * Get all Orders\n *\n * This endpoint returns all orders with custom flow fields. The pagination offset is set to fetch a maximum of 10,000 orders. If the store has 10,000 orders, and you fetch the orders without using filters, an error is returned. Use a filter to view orders when the order is beyond the 10,000 mark.\n *\n * :::note\n *\n * - Pass the `X-Moltin-Customer-Token` header to limit orders to a specific customer. See [Customer Tokens](/docs/customer-management/customer-management-api/customer-tokens).\n * - Pass the `EP-Account-Management-Authentication-Token` header to limit orders to a specific account. See [Account Management Token](/docs/api/accounts/post-v-2-account-members-tokens).\n * - You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * :::\n *\n * ### Filtering\n *\n * The following operators and attributes are available for filtering orders.\n *\n * | Attribute | Type | Operator | Example |\n * | :--- | :--- | :--- | :--- |\n * | `status` | `string` | `eq` | `eq(status,complete)` |\n * | `payment` | `string` | `eq` | `eq(payment,paid)` |\n * | `shipping` | `string` | `eq` | `eq(shipping,unfulfilled)` |\n * | `name` (`customer.name`) | `string` | `eq` / `like` | `like(name,Brad*)` |\n * | `email` (`customer.email`) | `string` | `eq` / `like` | `like(email,*@elasticpath.com)` |\n * | `customer_id` | `string` | `eq` / `like` | `eq(customer_id, e5a0d684-a4af-4919-a348-f66b0b4955e0)` |\n * | `account_id` | `string` | `eq` / `like` | `eq(account_id,3d7200c9-a9bc-4085-9822-63e80fd94a09)` |\n * | `account_member_id` | `string` | `eq` / `like` | `eq(account_member_id,2a8a3a92-2ccd-4b2b-a7af-52d3896eaecb)` |\n * | `contact.name` | `string` | `eq` / `like` | `eq(name,John Doe)` |\n * | `contact.email` | `string` | `eq` / `like` | `eq(email,John Doe)` |\n * | `shipping_postcode` | `string` | `eq` / `like` | `like(shipping_postcode,117*)` |\n * | `billing_postcode` | `string` | `eq` / `like` | `like(billing_postcode,117*)` |\n * | `with_tax` | `integer` | `gt`/`ge`/`lt`/`le` | `ge(with_tax,10000)` |\n * | `without_tax` | `integer` | `gt`/`ge`/`lt`/`le` | `ge(without_tax,10000)` |\n * | `currency` | `string` | `eq` | `eq(currency,USD)` |\n * | `product_id` | `string` | `eq` | `eq(product_id,6837058c-ae42-46db-b3c6-7f01e0c34b40)` |\n * | `product_sku` | `string` | `eq` | `eq(product_sku,deck-shoe-001)` |\n * | `created_at` | `date` | `eq` / `gt` / `ge`/ `le` / `lt` | `gt(created_at,YYYY-MM-DD)` |\n * | `updated_at` | `date` | `eq` / `gt` / `ge`/ `le`/ `lt` | `lt(updated_at,YYYY-MM-DD)` |\n * | `external_ref` | `string` | `eq` / `like` | `like(external_ref, 16be*)` |\n * | `order_number` | `string` | `eq` / `like` | `like(order_number, 123*)` |\n * ### Includes\n * You can include related resources with the order response by using the `include` query parameter.\n * | Name | Optional | Type | Description |\n * |:-----|:---------|:-----|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The information included are `items`, `tax_items`, `custom_discounts`, or `promotions`. |\n *\n */\nexport const getCustomerOrdersOptions = (\n options?: Options<GetCustomerOrdersData>,\n) =>\n queryOptions<\n GetCustomerOrdersResponse,\n DefaultError,\n GetCustomerOrdersResponse,\n ReturnType<typeof getCustomerOrdersQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCustomerOrders({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCustomerOrdersQueryKey(options),\n })\n\nexport const getAnOrderQueryKey = (options: Options<GetAnOrderData>) =>\n createQueryKey(\"getAnOrder\", options)\n\n/**\n * Get an Order\n *\n * Use this endpoint to retrieve a specific order.\n *\n * ### Includes\n *\n * You can include related resources with the order response by using the `include` query parameter.\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The included options are `items`, `tax_items`, `custom_discounts`, or `promotions`. |\n */\nexport const getAnOrderOptions = (options: Options<GetAnOrderData>) =>\n queryOptions<\n GetAnOrderResponse,\n GetAnOrderError,\n GetAnOrderResponse,\n ReturnType<typeof getAnOrderQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAnOrder({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAnOrderQueryKey(options),\n })\n\n/**\n * Update an Order\n *\n * You can only update custom data, `shipping`, `shipping_address`, and status of orders. All other settings in the order object are immutable.\n *\n * This endpoint allows you to:\n *\n * - **Update an order number and external reference**: You can update an existing order that does not have an `order_number` and `external_ref`, modify the `order_number` and `external_ref` values, or remove them by passing an empty value in the `order_number` and `external_ref` fields.\n * - **Cancel an order**: You can cancel an order only if it has not been fulfilled.\n * - **Fulfill an order**: You can fulfill a paid order only.\n *\n * :::caution\n *\n * You can update `shipping`, `shipping_address`, and status of an order only if the order is not fulfilled. You can use the refund API to refund an order only if the payment status is `paid`. Canceling an order does not automatically refund a payment. You must refund the orders manually.\n *\n * :::\n *\n * :::note\n *\n * - This request is only accessible to client credentials token users with Seller Admin role.\n * - Non client credentials token users cannot access this endpoint. See [Permissions](/docs/authentication/tokens/permissions).\n * - The `order_number` will appear as the invoice number in Authorize.net transactions.\n *\n * :::\n *\n */\nexport const updateAnOrderMutation = (\n options?: Partial<Options<UpdateAnOrderData>>,\n): UseMutationOptions<\n UpdateAnOrderResponse,\n UpdateAnOrderError,\n Options<UpdateAnOrderData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateAnOrderResponse,\n UpdateAnOrderError,\n Options<UpdateAnOrderData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateAnOrder({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderItemsQueryKey = (options: Options<GetOrderItemsData>) =>\n createQueryKey(\"getOrderItems\", options)\n\n/**\n * Get Order Items\n *\n * Use this endpoint to retrieve order items.\n *\n * ### Includes\n *\n * You can include related resources with the order items response by using the `include` query parameter.\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The included options are `tax_items`, `custom_discounts`, or `promotions`. |\n */\nexport const getOrderItemsOptions = (options: Options<GetOrderItemsData>) =>\n queryOptions<\n GetOrderItemsResponse,\n DefaultError,\n GetOrderItemsResponse,\n ReturnType<typeof getOrderItemsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderItems({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderItemsQueryKey(options),\n })\n\n/**\n * Anonymize Orders\n *\n * You can anonymize an order when it is fulfilled, canceled, or fully refunded.\n *\n * When anonymization is successful, Personal Identifiable Information such as customer details, `shipping_address`, and `billing_address` are replaced with *.\n *\n */\nexport const anonymizeOrdersMutation = (\n options?: Partial<Options<AnonymizeOrdersData>>,\n): UseMutationOptions<\n AnonymizeOrdersResponse,\n AnonymizeOrdersError,\n Options<AnonymizeOrdersData>\n> => {\n const mutationOptions: UseMutationOptions<\n AnonymizeOrdersResponse,\n AnonymizeOrdersError,\n Options<AnonymizeOrdersData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await anonymizeOrders({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Confirm Order\n *\n * Use this endpoint to confirm an order. Confirming an order finalizes it and makes it ready for processing.\n *\n */\nexport const confirmOrderMutation = (\n options?: Partial<Options<ConfirmOrderData>>,\n): UseMutationOptions<\n ConfirmOrderResponse,\n ConfirmOrderError,\n Options<ConfirmOrderData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfirmOrderResponse,\n ConfirmOrderError,\n Options<ConfirmOrderData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await confirmOrder({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Payments\n *\n * Depending on the payment gateway, you may have access to different transaction types such as capturing funds immediately or authorizing them for later. For more information, see [Payments](/docs/api/carts/payments).\n *\n * The following types of payment methods are available depending on the payment gateway:\n *\n * - `purchase`: This is the simplest method. The gateway attempts to charge the customer immediately.\n * - `authorize`: This method authorizes a payment so that funds can be captured later, for example, when an item is dispatched or restocked.\n * - `purchase_setup`: This method prepares the system for a purchase by verifying payment details without actually charging the customer. For example, a customer adds items to their cart and proceeds to checkout. Before finalizing the purchase, the system runs `purchase_setup` to confirm all payment details, but no funds are transferred until the customer confirms the order.\n * - `authorize_setup`: This method prepares the system for an authorization-only transaction. This process holds the necessary funds but does not transfer them, ensuring that the customer has sufficient balance for the transaction. It sets up the conditions for a future capture of the authorized funds. For example, a customer places a pre-order for a product that will ship in two weeks. The merchant uses `authorize_setup` to prepare for the payment authorization. This holds the customer's funds to ensure they can cover the purchase but waits to capture the payment until the product ships. This ensures that payment is secured but not collected prematurely.\n *\n * :::note\n *\n * Split payments can be performed using any methods for any gateway.\n *\n * - You can partially pay funds using `purchase` method. The gateway attempts to charge the customer immediately, and the payment status for an order will show `partially_paid`\n * - You can partially pay for an order using `authorize` method where the order will be marked as `partially_authorized`. The transaction must be completed for the order status to be `partially_authorized`.\n * - A `purchase_setup` method allows verification of payment details for partial payments without transferring funds until the customer confirms the full order.\n * - An `authorize_setup` method can be used to hold a partial amount of the total funds, ensuring the customer has enough balance for a future capture.\n * Until a payment is made neither `purchase_setup` nor `authorize_setup` affects the payment statuses, and the order remains unpaid. For more information about order and payment statuses for split payments, see [Split payments](/docs/api/payments/payment-gateways-introduction#split-payments).\n *\n * :::\n *\n */\nexport const paymentSetupMutation = (\n options?: Partial<Options<PaymentSetupData>>,\n): UseMutationOptions<\n PaymentSetupResponse,\n PaymentSetupError,\n Options<PaymentSetupData>\n> => {\n const mutationOptions: UseMutationOptions<\n PaymentSetupResponse,\n PaymentSetupError,\n Options<PaymentSetupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await paymentSetup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Confirm Payment\n *\n * Confirm Payment serves as a mechanism to synchronize transaction information from the third-party payment provider back to our system. This ensures that Composable Commerce accurately reflects the values from the payment provider.\n *\n * ### Handling 3D Secure Validations for Stripe Payments\n *\n * For Stripe Payments requiring 3D Secure validation, the transaction response will include the `client_parameters` object, which provides credentials to support validation of these payment requests on the payment provider's side. We recommend using the Stripe's client libraries to manage these 3D Secure validations. Once the validation succeeds, proceed with a confirmation request to sync the validated transaction into Composable Commerce and continue with the payment process.\n *\n */\nexport const confirmPaymentMutation = (\n options?: Partial<Options<ConfirmPaymentData>>,\n): UseMutationOptions<\n ConfirmPaymentResponse,\n ConfirmPaymentError,\n Options<ConfirmPaymentData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfirmPaymentResponse,\n ConfirmPaymentError,\n Options<ConfirmPaymentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await confirmPayment({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Capture a Transaction\n *\n * Use this endpoint to capture a previously authorized payment. In this step, you can also pass in a custom reference, such as the payment reference from your chosen gateway.\n */\nexport const captureATransactionMutation = (\n options?: Partial<Options<CaptureATransactionData>>,\n): UseMutationOptions<\n CaptureATransactionResponse,\n CaptureATransactionError,\n Options<CaptureATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n CaptureATransactionResponse,\n CaptureATransactionError,\n Options<CaptureATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await captureATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Refund a Transaction\n *\n * There are two ways to refund; through your payment gateway and mark it refunded in Commerce Manager, or directly through Commerce Manager or API.\n *\n * * Mark as Refunded: You can manually mark a transaction as refunded. Before you can mark the order as refunded, you need to handle the actual refund on your side with your payment provider. Mark as Refunded is a full refund made to the transaction.\n * * Refund through Composable Commerce: You can process a full or partial refund to a supported payment provider directly from Commerce Manager or API by providing the refund amount. When you start the refund process, the request is directly sent to the payment gateway.\n *\n * :::caution\n *\n * If you use manual gateway for partial or full refund, you need to handle the actual refund on your side with your payment provider.\n *\n * :::\n *\n */\nexport const refundATransactionMutation = (\n options?: Partial<Options<RefundATransactionData>>,\n): UseMutationOptions<\n RefundATransactionResponse,\n RefundATransactionError,\n Options<RefundATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n RefundATransactionResponse,\n RefundATransactionError,\n Options<RefundATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await refundATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderTransactionsQueryKey = (\n options: Options<GetOrderTransactionsData>,\n) => createQueryKey(\"getOrderTransactions\", options)\n\n/**\n * Get Order Transactions\n *\n * Get order transactions\n */\nexport const getOrderTransactionsOptions = (\n options: Options<GetOrderTransactionsData>,\n) =>\n queryOptions<\n GetOrderTransactionsResponse,\n GetOrderTransactionsError,\n GetOrderTransactionsResponse,\n ReturnType<typeof getOrderTransactionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderTransactions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderTransactionsQueryKey(options),\n })\n\nexport const getATransactionQueryKey = (\n options: Options<GetATransactionData>,\n) => createQueryKey(\"getATransaction\", options)\n\n/**\n * Get a Transaction\n *\n * Retrieves a transaction\n */\nexport const getATransactionOptions = (options: Options<GetATransactionData>) =>\n queryOptions<\n GetATransactionResponse,\n DefaultError,\n GetATransactionResponse,\n ReturnType<typeof getATransactionQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getATransaction({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getATransactionQueryKey(options),\n })\n\n/**\n * Cancel a Transaction\n *\n * Use this endpoint to cancel or void a pending or authorized transaction. The transaction can be canceled or voided when it is in `pending` and `completed` statuses.\n *\n * :::caution\n *\n * This endpoint works only for Stripe and PayPal and does not work for manual gateway.\n *\n * :::\n *\n */\nexport const cancelATransactionMutation = (\n options?: Partial<Options<CancelATransactionData>>,\n): UseMutationOptions<\n CancelATransactionResponse,\n CancelATransactionError,\n Options<CancelATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n CancelATransactionResponse,\n CancelATransactionError,\n Options<CancelATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await cancelATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderShippingGroupsQueryKey = (\n options: Options<GetOrderShippingGroupsData>,\n) => createQueryKey(\"getOrderShippingGroups\", options)\n\n/**\n * Retrieve all shipping groups for an order\n *\n * Retrieve all shipping groups for an order\n */\nexport const getOrderShippingGroupsOptions = (\n options: Options<GetOrderShippingGroupsData>,\n) =>\n queryOptions<\n GetOrderShippingGroupsResponse,\n GetOrderShippingGroupsError,\n GetOrderShippingGroupsResponse,\n ReturnType<typeof getOrderShippingGroupsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderShippingGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderShippingGroupsQueryKey(options),\n })\n\n/**\n * Create a shipping group for an order\n *\n * Create a new shipping group for an order\n */\nexport const createOrderShippingGroupMutation = (\n options?: Partial<Options<CreateOrderShippingGroupData>>,\n): UseMutationOptions<\n CreateOrderShippingGroupResponse,\n CreateOrderShippingGroupError,\n Options<CreateOrderShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateOrderShippingGroupResponse,\n CreateOrderShippingGroupError,\n Options<CreateOrderShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createOrderShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupsByIdQueryKey = (\n options: Options<GetShippingGroupsByIdData>,\n) => createQueryKey(\"getShippingGroupsById\", options)\n\n/**\n * Retrieve a specific shipping group for an order\n *\n * Retrieve a specific shipping group for an order\n */\nexport const getShippingGroupsByIdOptions = (\n options: Options<GetShippingGroupsByIdData>,\n) =>\n queryOptions<\n GetShippingGroupsByIdResponse,\n GetShippingGroupsByIdError,\n GetShippingGroupsByIdResponse,\n ReturnType<typeof getShippingGroupsByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroupsById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupsByIdQueryKey(options),\n })\n\n/**\n * Update a shipping group for an order\n *\n * Update a shipping group for an order\n */\nexport const putShippingGroupByIdMutation = (\n options?: Partial<Options<PutShippingGroupByIdData>>,\n): UseMutationOptions<\n PutShippingGroupByIdResponse,\n PutShippingGroupByIdError,\n Options<PutShippingGroupByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutShippingGroupByIdResponse,\n PutShippingGroupByIdError,\n Options<PutShippingGroupByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putShippingGroupById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2SettingsCartQueryKey = (\n options?: Options<GetV2SettingsCartData>,\n) => createQueryKey(\"getV2SettingsCart\", options)\n\n/**\n * Get Cart Settings\n *\n * Retrieves cart settings.\n */\nexport const getV2SettingsCartOptions = (\n options?: Options<GetV2SettingsCartData>,\n) =>\n queryOptions<\n GetV2SettingsCartResponse,\n GetV2SettingsCartError,\n GetV2SettingsCartResponse,\n ReturnType<typeof getV2SettingsCartQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2SettingsCart({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2SettingsCartQueryKey(options),\n })\n\n/**\n * Update Cart Settings\n *\n * You can modify the cart expiry settings to set it to any number of days up to 365. Any existing carts default to the expiry of 7 days. To update cart settings in Commerce Manager, see [Updating Cart setting](/docs/commerce-manager/settings/general-settings#updating-cart-settings).\n *\n * With update cart settings endpoint, you can:\n *\n * - Enable or disable custom discounts by setting the `custom_discounts_enabled` field to `true`. This allows you to activate your custom discounts from external services. By default, this setting is determined by the cart settings configured for the store.\n * - Enable or disable the use of rule promotions within the cart. You can apply this setting either at the store level using the update cart setting endpoint or individually to a specific cart using the [update a cart](/docs/api/carts/update-a-cart) endpoint.\n * - Enable or disable deferred inventory checks by setting `defer_inventory_check` to `true`. When set, stock levels are not verified for products in a cart until checkout.\n * - Control whether admins can see all carts or only shopper-associated carts by setting `show_all_carts` to `true` or `false`.\n * - Enable or disable location-based item separation by setting `separate_items_by_location` to `true`. When enabled, cart items with the same SKU but different locations are kept as separate line items instead of being merged.\n *\n * :::note\n *\n * Custom discounts and rule promotions can both be enabled for a store at the same time, for example, while transitioning from one promotion system to the other. However, an individual cart can only contain one type of discount at a time. A cart that contains custom discounts rejects Elastic Path promotions, and a cart that contains Elastic Path promotions rejects custom discounts, until the existing discounts are removed.\n *\n * :::\n */\nexport const putV2SettingsCartMutation = (\n options?: Partial<Options<PutV2SettingsCartData>>,\n): UseMutationOptions<\n PutV2SettingsCartResponse,\n PutV2SettingsCartError,\n Options<PutV2SettingsCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2SettingsCartResponse,\n PutV2SettingsCartError,\n Options<PutV2SettingsCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2SettingsCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2SettingsCartStoreIdQueryKey = (\n options: Options<GetV2SettingsCartStoreIdData>,\n) => createQueryKey(\"getV2SettingsCartStoreId\", options)\n\n/**\n * Get Cart Settings by Store ID\n *\n * Retrieves cart settings for the specified store.\n */\nexport const getV2SettingsCartStoreIdOptions = (\n options: Options<GetV2SettingsCartStoreIdData>,\n) =>\n queryOptions<\n GetV2SettingsCartStoreIdResponse,\n GetV2SettingsCartStoreIdError,\n GetV2SettingsCartStoreIdResponse,\n ReturnType<typeof getV2SettingsCartStoreIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2SettingsCartStoreId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2SettingsCartStoreIdQueryKey(options),\n })\n\n/**\n * Update Cart Settings by Store ID\n *\n * You can modify the cart expiry settings to set it to any number of days up to 365. Any existing carts default to the expiry of 7 days. To update cart settings in Commerce Manager, see [Updating Cart setting](/docs/commerce-manager/settings/general-settings#updating-cart-settings).\n *\n * With update cart settings endpoint, you can:\n *\n * - Enable or disable custom discounts by setting the `custom_discounts_enabled` field to `true`. This allows you to activate your custom discounts from external services. By default, this setting is determined by the cart settings configured for the store.\n * - Enable or disable the use of rule promotions within the cart. You can apply this setting either at the store level using the update cart setting endpoint or individually to a specific cart using the [update a cart](/docs/api/carts/update-a-cart) endpoint.\n * - Enable or disable deferred inventory checks by setting `defer_inventory_check` to `true`. When set, stock levels are not verified for products in a cart until checkout.\n * - Control whether admins can see all carts or only shopper-associated carts by setting `show_all_carts` to `true` or `false`.\n * - Enable or disable location-based item separation by setting `separate_items_by_location` to `true`. When enabled, cart items with the same SKU but different locations are kept as separate line items instead of being merged.\n *\n * :::note\n *\n * Custom discounts and rule promotions can both be enabled for a store at the same time, for example, while transitioning from one promotion system to the other. However, an individual cart can only contain one type of discount at a time. A cart that contains custom discounts rejects Elastic Path promotions, and a cart that contains Elastic Path promotions rejects custom discounts, until the existing discounts are removed.\n *\n * :::\n */\nexport const putV2SettingsCartStoreIdMutation = (\n options?: Partial<Options<PutV2SettingsCartStoreIdData>>,\n): UseMutationOptions<\n PutV2SettingsCartStoreIdResponse,\n PutV2SettingsCartStoreIdError,\n Options<PutV2SettingsCartStoreIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2SettingsCartStoreIdResponse,\n PutV2SettingsCartStoreIdError,\n Options<PutV2SettingsCartStoreIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2SettingsCartStoreId({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const listOfferingsQueryKey = (options?: Options<ListOfferingsData>) =>\n createQueryKey(\"listOfferings\", options)\n\n/**\n * List offerings\n *\n * Retrieves a list of all subscription offerings.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator | Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `external_ref`, `plans.external_ref`, `proration_policy_id` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `external_ref`, `plans.external_ref`, `proration_policy_id` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n */\nexport const listOfferingsOptions = (options?: Options<ListOfferingsData>) =>\n queryOptions<\n ListOfferingsResponse,\n ListOfferingsError,\n ListOfferingsResponse,\n ReturnType<typeof listOfferingsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferings({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingsQueryKey(options),\n })\n\nexport const getOfferingQueryKey = (options: Options<GetOfferingData>) =>\n createQueryKey(\"getOffering\", options)\n\n/**\n * Get offering\n */\nexport const getOfferingOptions = (options: Options<GetOfferingData>) =>\n queryOptions<\n GetOfferingResponse,\n GetOfferingError,\n GetOfferingResponse,\n ReturnType<typeof getOfferingQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOffering({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOfferingQueryKey(options),\n })\n\nexport const listOfferingPricingOptionsQueryKey = (\n options: Options<ListOfferingPricingOptionsData>,\n) => createQueryKey(\"listOfferingPricingOptions\", options)\n\n/**\n * List an offering's pricing options\n */\nexport const listOfferingPricingOptionsOptions = (\n options: Options<ListOfferingPricingOptionsData>,\n) =>\n queryOptions<\n ListOfferingPricingOptionsResponse,\n ListOfferingPricingOptionsError,\n ListOfferingPricingOptionsResponse,\n ReturnType<typeof listOfferingPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPricingOptionsQueryKey(options),\n })\n\nexport const listOfferingFeaturesQueryKey = (\n options: Options<ListOfferingFeaturesData>,\n) => createQueryKey(\"listOfferingFeatures\", options)\n\n/**\n * List an offering's features\n */\nexport const listOfferingFeaturesOptions = (\n options: Options<ListOfferingFeaturesData>,\n) =>\n queryOptions<\n ListOfferingFeaturesResponse,\n ListOfferingFeaturesError,\n ListOfferingFeaturesResponse,\n ReturnType<typeof listOfferingFeaturesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingFeatures({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingFeaturesQueryKey(options),\n })\n\nexport const listOfferingPlansQueryKey = (\n options: Options<ListOfferingPlansData>,\n) => createQueryKey(\"listOfferingPlans\", options)\n\n/**\n * List an offering's plans\n */\nexport const listOfferingPlansOptions = (\n options: Options<ListOfferingPlansData>,\n) =>\n queryOptions<\n ListOfferingPlansResponse,\n ListOfferingPlansError,\n ListOfferingPlansResponse,\n ReturnType<typeof listOfferingPlansQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPlans({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPlansQueryKey(options),\n })\n\nexport const listOfferingPlanPricingOptionsQueryKey = (\n options: Options<ListOfferingPlanPricingOptionsData>,\n) => createQueryKey(\"listOfferingPlanPricingOptions\", options)\n\n/**\n * List the pricing options available to a plan in an offering\n */\nexport const listOfferingPlanPricingOptionsOptions = (\n options: Options<ListOfferingPlanPricingOptionsData>,\n) =>\n queryOptions<\n ListOfferingPlanPricingOptionsResponse,\n ListOfferingPlanPricingOptionsError,\n ListOfferingPlanPricingOptionsResponse,\n ReturnType<typeof listOfferingPlanPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPlanPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPlanPricingOptionsQueryKey(options),\n })\n\nexport const listSubscriptionsQueryKey = (\n options?: Options<ListSubscriptionsData>,\n) => createQueryKey(\"listSubscriptions\", options)\n\n/**\n * List subscriptions\n *\n * Retrieves a list of all subscriptions.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator | Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `account_id`, `name`, `email`, `external_ref` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `account_id`, `name`, `email`, `external_ref` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n * ### Including Resources\n *\n * You can use the `include` parameter to include the following resources with this endpoint.\n *\n * | Resource | Required | Description |\n * | --- | --- | --- |\n * | `pricing_options, plans` | Optional | Retrieves all pricing options and plans associated with a subscription. |\n * | `plans` | Optional | Retrieves all plans associated with a subscription. |\n * | `pricing_options` | Optional | Retrieves all pricing options associated with a subscription. |\n *\n * See [Characteristics of Include Parameter](/guides/Getting-Started/includes#characteristics-of-include-parameter).\n *\n */\nexport const listSubscriptionsOptions = (\n options?: Options<ListSubscriptionsData>,\n) =>\n queryOptions<\n ListSubscriptionsResponse,\n ListSubscriptionsError,\n ListSubscriptionsResponse,\n ReturnType<typeof listSubscriptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionsQueryKey(options),\n })\n\nexport const getSubscriptionQueryKey = (\n options: Options<GetSubscriptionData>,\n) => createQueryKey(\"getSubscription\", options)\n\n/**\n * Get subscription\n */\nexport const getSubscriptionOptions = (options: Options<GetSubscriptionData>) =>\n queryOptions<\n GetSubscriptionResponse,\n GetSubscriptionError,\n GetSubscriptionResponse,\n ReturnType<typeof getSubscriptionQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscription({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionQueryKey(options),\n })\n\nexport const listSubscriptionPlansQueryKey = (\n options: Options<ListSubscriptionPlansData>,\n) => createQueryKey(\"listSubscriptionPlans\", options)\n\n/**\n * List subscription plans\n *\n * Retrieves a list of plans associated with the specified subscription. Using this endpoint you can see the plan that is currently active in a subscription. If `active_plan` is `true`, a plan is active in a subscription. If `active_plan` is null, the pricing option is not active.\n */\nexport const listSubscriptionPlansOptions = (\n options: Options<ListSubscriptionPlansData>,\n) =>\n queryOptions<\n ListSubscriptionPlansResponse,\n ListSubscriptionPlansError,\n ListSubscriptionPlansResponse,\n ReturnType<typeof listSubscriptionPlansQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionPlans({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionPlansQueryKey(options),\n })\n\nexport const listSubscriptionPricingOptionsQueryKey = (\n options: Options<ListSubscriptionPricingOptionsData>,\n) => createQueryKey(\"listSubscriptionPricingOptions\", options)\n\n/**\n * List subscription pricing options\n *\n * Retrieves a list of pricing options associated with the specified subscription. Using this endpoint you can see the pricing options that are currently active in a subscription. If `active_pricing_option` is `true`, a pricing option is active in a subscription. If `active_pricing_option` is null, the pricing option is not active.\n */\nexport const listSubscriptionPricingOptionsOptions = (\n options: Options<ListSubscriptionPricingOptionsData>,\n) =>\n queryOptions<\n ListSubscriptionPricingOptionsResponse,\n ListSubscriptionPricingOptionsError,\n ListSubscriptionPricingOptionsResponse,\n ReturnType<typeof listSubscriptionPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionPricingOptionsQueryKey(options),\n })\n\nexport const listSubscriptionStatesQueryKey = (\n options: Options<ListSubscriptionStatesData>,\n) => createQueryKey(\"listSubscriptionStates\", options)\n\n/**\n * List subscription states\n */\nexport const listSubscriptionStatesOptions = (\n options: Options<ListSubscriptionStatesData>,\n) =>\n queryOptions<\n ListSubscriptionStatesResponse,\n ListSubscriptionStatesError,\n ListSubscriptionStatesResponse,\n ReturnType<typeof listSubscriptionStatesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionStates({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionStatesQueryKey(options),\n })\n\n/**\n * Create a subscription state\n *\n * The subscription lifecycle is the states that a subscription can go through when a customer subscribes to a service or a plan.\n *\n * A subscription can have the following states:\n *\n * - `pending`\n * - `canceled`\n * - `paused`\n * - `resumed`\n * For more information, see [Managing the Subscription Lifecycle](/docs/api/subscriptions/subscriptions#managing-the-subscription-lifecycle).\n *\n * Immediate cancellation (`cancel` with `cancel_immediately: true`) ends the subscription and updates entitlements in this request; it does **not** issue refunds or modify paid invoices. Use payments refund flows separately if needed.\n *\n */\nexport const createSubscriptionStateMutation = (\n options?: Partial<Options<CreateSubscriptionStateData>>,\n): UseMutationOptions<\n CreateSubscriptionStateResponse,\n CreateSubscriptionStateError,\n Options<CreateSubscriptionStateData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateSubscriptionStateResponse,\n CreateSubscriptionStateError,\n Options<CreateSubscriptionStateData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createSubscriptionState({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getSubscriptionStateQueryKey = (\n options: Options<GetSubscriptionStateData>,\n) => createQueryKey(\"getSubscriptionState\", options)\n\n/**\n * Get subscription state\n */\nexport const getSubscriptionStateOptions = (\n options: Options<GetSubscriptionStateData>,\n) =>\n queryOptions<\n GetSubscriptionStateResponse,\n GetSubscriptionStateError,\n GetSubscriptionStateResponse,\n ReturnType<typeof getSubscriptionStateQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionState({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionStateQueryKey(options),\n })\n\nexport const listSubscriptionInvoicesQueryKey = (\n options: Options<ListSubscriptionInvoicesData>,\n) => createQueryKey(\"listSubscriptionInvoices\", options)\n\n/**\n * List subscription invoices\n *\n * Lists all invoices for a given subscription.\n */\nexport const listSubscriptionInvoicesOptions = (\n options: Options<ListSubscriptionInvoicesData>,\n) =>\n queryOptions<\n ListSubscriptionInvoicesResponse,\n ListSubscriptionInvoicesError,\n ListSubscriptionInvoicesResponse,\n ReturnType<typeof listSubscriptionInvoicesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionInvoices({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionInvoicesQueryKey(options),\n })\n\nexport const listSubscriptionInvoicePaymentsQueryKey = (\n options: Options<ListSubscriptionInvoicePaymentsData>,\n) => createQueryKey(\"listSubscriptionInvoicePayments\", options)\n\n/**\n * List subscription invoice payments\n *\n * Lists all invoice payments for a given invoice.\n */\nexport const listSubscriptionInvoicePaymentsOptions = (\n options: Options<ListSubscriptionInvoicePaymentsData>,\n) =>\n queryOptions<\n ListSubscriptionInvoicePaymentsResponse,\n DefaultError,\n ListSubscriptionInvoicePaymentsResponse,\n ReturnType<typeof listSubscriptionInvoicePaymentsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionInvoicePayments({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionInvoicePaymentsQueryKey(options),\n })\n\nexport const getSubscriptionInvoicePaymentQueryKey = (\n options: Options<GetSubscriptionInvoicePaymentData>,\n) => createQueryKey(\"getSubscriptionInvoicePayment\", options)\n\n/**\n * Get subscription invoice payment\n *\n * Gets a specific payment for a given invoice.\n */\nexport const getSubscriptionInvoicePaymentOptions = (\n options: Options<GetSubscriptionInvoicePaymentData>,\n) =>\n queryOptions<\n GetSubscriptionInvoicePaymentResponse,\n GetSubscriptionInvoicePaymentError,\n GetSubscriptionInvoicePaymentResponse,\n ReturnType<typeof getSubscriptionInvoicePaymentQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionInvoicePayment({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionInvoicePaymentQueryKey(options),\n })\n\nexport const getSubscriptionInvoiceQueryKey = (\n options: Options<GetSubscriptionInvoiceData>,\n) => createQueryKey(\"getSubscriptionInvoice\", options)\n\n/**\n * Get subscription invoice\n *\n * Gets a specific invoice for a given subscription.\n */\nexport const getSubscriptionInvoiceOptions = (\n options: Options<GetSubscriptionInvoiceData>,\n) =>\n queryOptions<\n GetSubscriptionInvoiceResponse,\n GetSubscriptionInvoiceError,\n GetSubscriptionInvoiceResponse,\n ReturnType<typeof getSubscriptionInvoiceQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionInvoice({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionInvoiceQueryKey(options),\n })\n\nexport const listInvoicesQueryKey = (options?: Options<ListInvoicesData>) =>\n createQueryKey(\"listInvoices\", options)\n\n/**\n * List invoices\n *\n * Retrieves a list of all invoices.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator |Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `subscriber_id`, `subscription_id`, `outstanding`, `tax_required` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `subscriber_id`, `subscription_id` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n */\nexport const listInvoicesOptions = (options?: Options<ListInvoicesData>) =>\n queryOptions<\n ListInvoicesResponse,\n ListInvoicesError,\n ListInvoicesResponse,\n ReturnType<typeof listInvoicesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listInvoices({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listInvoicesQueryKey(options),\n })\n\nexport const getInvoiceQueryKey = (options: Options<GetInvoiceData>) =>\n createQueryKey(\"getInvoice\", options)\n\n/**\n * Get invoice\n */\nexport const getInvoiceOptions = (options: Options<GetInvoiceData>) =>\n queryOptions<\n GetInvoiceResponse,\n GetInvoiceError,\n GetInvoiceResponse,\n ReturnType<typeof getInvoiceQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getInvoice({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getInvoiceQueryKey(options),\n })\n\nexport const getFeatureQueryKey = (options: Options<GetFeatureData>) =>\n createQueryKey(\"getFeature\", options)\n\n/**\n * Get feature\n */\nexport const getFeatureOptions = (options: Options<GetFeatureData>) =>\n queryOptions<\n GetFeatureResponse,\n GetFeatureError,\n GetFeatureResponse,\n ReturnType<typeof getFeatureQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getFeature({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getFeatureQueryKey(options),\n })\n\nexport const getStockQueryKey = (options: Options<GetStockData>) =>\n createQueryKey(\"getStock\", options)\n\n/**\n * Get Stock for Product\n *\n * Gets the stock for the product matching the specified unique identifier.\n */\nexport const getStockOptions = (options: Options<GetStockData>) =>\n queryOptions<\n GetStockResponse,\n GetStockError,\n GetStockResponse,\n ReturnType<typeof getStockQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getStock({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getStockQueryKey(options),\n })\n\nexport const listLocationsQueryKey = (options?: Options<ListLocationsData>) =>\n createQueryKey(\"listLocations\", options)\n\n/**\n * List Locations\n *\n * Lists all Inventory Locations\n */\nexport const listLocationsOptions = (options?: Options<ListLocationsData>) =>\n queryOptions<\n ListLocationsResponse,\n ListLocationsError,\n ListLocationsResponse,\n ReturnType<typeof listLocationsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listLocations({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listLocationsQueryKey(options),\n })\n\n/**\n * Create an Access Token\n *\n *\n * ### Client Credentials\n *\n * A `client_credentials` token is used when the credentials are not publicly exposed, usually a server-side language such as PHP or Node.js. This type of authentication enables `CRUD` access to all resources.\n *\n * `client_id` and `client_secret` are created and managed via [Application Keys](/docs/authentication/application-keys/create-an-application-key).\n *\n * To see the access granted by a `client_credentials` token, refer to [Permissions](/docs/authentication/Tokens/permissions).\n *\n *\n * ### Implicit\n *\n * An `implicit` token is typically used for situations where you are requesting data on the client side and you are exposing your public key. When authenticated implicitly, you can only fetch (`GET`) data with live status (products, categories, brands, etc).\n *\n * The `implicit` token is most appropriate for use inside client-side applications, such as JavaScript.\n *\n * :::caution\n * An `implicit` token can be thought of as a **Read only** token.\n * :::\n *\n */\nexport const createAnAccessTokenMutation = (\n options?: Partial<Options<CreateAnAccessTokenData>>,\n): UseMutationOptions<\n CreateAnAccessTokenResponse,\n CreateAnAccessTokenError,\n Options<CreateAnAccessTokenData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateAnAccessTokenResponse,\n CreateAnAccessTokenError,\n Options<CreateAnAccessTokenData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createAnAccessToken({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountAddressesQueryKey = (\n options: Options<GetV2AccountAddressesData>,\n) => createQueryKey(\"getV2AccountAddresses\", options)\n\n/**\n * Get Account Addresses\n *\n * Get all addresses for an Account.\n *\n * You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * ### Filtering\n *\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) addresses:\n *\n * | Attribute | Operators | Example |\n * |----------------|---------------------------------|---------------------------------------|\n * | `name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(name,\"*home*\")` |\n * | `first_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(first_name,\"Ron*\")` |\n * | `last_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(last_name,\"*swan*\")` |\n * | `phone_number` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(phone_number,\"*555*\")` |\n * | `company_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(company_name,\"*enterprises*\")` |\n * | `instructions` | `eq`,`in`,`like`,`ilike`,`text` | `text(instructions,\"behind bin\")` |\n * | `line_1` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(line_1,\"*Sunny Street*\")` |\n * | `line_2` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(line_2,\"*Unit*\")` |\n * | `city` | `eq`,`in`,`like`,`ilike`,`text` | `eq(city,\"Sunny Town\")` |\n * | `county` | `eq`,`in`,`like`,`ilike`,`text` | `eq(county,\"Sunnyville\")` |\n * | `region` | `eq`,`in`,`like`,`ilike`,`text` | `eq(region,\"California\")` |\n * | `postcode` | `eq`,`in`,`like`,`ilike`,`text` | `eq(postcode,\"SU33 1YY\")` |\n * | `country` | `eq`,`in`,`like`,`ilike`,`text` | `eq(country,\"GB\")` |\n *\n */\nexport const getV2AccountAddressesOptions = (\n options: Options<GetV2AccountAddressesData>,\n) =>\n queryOptions<\n GetV2AccountAddressesResponse,\n GetV2AccountAddressesError,\n GetV2AccountAddressesResponse,\n ReturnType<typeof getV2AccountAddressesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountAddresses({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountAddressesQueryKey(options),\n })\n\n/**\n * Create an Account Address\n *\n * Create an address for an Account.\n */\nexport const postV2AccountAddressMutation = (\n options?: Partial<Options<PostV2AccountAddressData>>,\n): UseMutationOptions<\n PostV2AccountAddressResponse,\n PostV2AccountAddressError,\n Options<PostV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountAddressResponse,\n PostV2AccountAddressError,\n Options<PostV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete an Account Address\n *\n * Delete an address for an Account.\n */\nexport const deleteV2AccountAddressMutation = (\n options?: Partial<Options<DeleteV2AccountAddressData>>,\n): UseMutationOptions<\n DeleteV2AccountAddressResponse,\n DeleteV2AccountAddressError,\n Options<DeleteV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteV2AccountAddressResponse,\n DeleteV2AccountAddressError,\n Options<DeleteV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountAddressQueryKey = (\n options: Options<GetV2AccountAddressData>,\n) => createQueryKey(\"getV2AccountAddress\", options)\n\n/**\n * Get an Account Address\n *\n * Get a specific address for an Account.\n */\nexport const getV2AccountAddressOptions = (\n options: Options<GetV2AccountAddressData>,\n) =>\n queryOptions<\n GetV2AccountAddressResponse,\n GetV2AccountAddressError,\n GetV2AccountAddressResponse,\n ReturnType<typeof getV2AccountAddressQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountAddress({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountAddressQueryKey(options),\n })\n\n/**\n * Update an Account Address\n *\n * Update an address for an Account.\n */\nexport const putV2AccountAddressMutation = (\n options?: Partial<Options<PutV2AccountAddressData>>,\n): UseMutationOptions<\n PutV2AccountAddressResponse,\n PutV2AccountAddressError,\n Options<PutV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2AccountAddressResponse,\n PutV2AccountAddressError,\n Options<PutV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountsQueryKey = (options?: Options<GetV2AccountsData>) =>\n createQueryKey(\"getV2Accounts\", options)\n\n/**\n * Get All Accounts\n *\n * Use this endpoint to Get all accounts.\n *\n * You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * ### Filtering\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) accounts:\n *\n * | Attribute | Operators | Example |\n * |-------------------|-------------------------------|---------------------------------------------------------------|\n * | `id` | `lt`,`le`,`eq`,`gt`,`ge`,`in` | `eq(id,3fa85f64-5717-4562-b3fc-2c963f66afa6)` |\n * | `created_at` | `lt`,`le`,`eq`,`gt`,`ge` | `ge(created_at,2024-04-29T00:00:00.000Z)` |\n * | `updated_at` | `lt`,`le`,`eq`,`gt`,`ge` | `le(updated_at,2024-04-29T00:00:00.000Z)` |\n * | `name` | `eq`,`like` | `like(name,*swan*)` |\n * | `legal_name` | `eq`,`like` | `like(legal_name,*swan*)` |\n * | `registration_id` | `eq`,`like` | `like(registration_id,00000000-0000-1000-8000-*)` |\n * | `external_ref` | `eq`,`like`,`in` | `like(external_ref,16be*)` |\n * | `account_tags` | `contains` | `contains(account_tags,26beb787-be6e-40c3-bbae-9c645820b075)` |\n *\n */\nexport const getV2AccountsOptions = (options?: Options<GetV2AccountsData>) =>\n queryOptions<\n GetV2AccountsResponse,\n GetV2AccountsError,\n GetV2AccountsResponse,\n ReturnType<typeof getV2AccountsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2Accounts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsQueryKey(options),\n })\n\n/**\n * Create an Account\n *\n * With the account creation endpoint, you have the ability to create accounts which can optionally have another account as a parent.\n */\nexport const postV2AccountsMutation = (\n options?: Partial<Options<PostV2AccountsData>>,\n): UseMutationOptions<\n PostV2AccountsResponse,\n PostV2AccountsError,\n Options<PostV2AccountsData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountsResponse,\n PostV2AccountsError,\n Options<PostV2AccountsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2Accounts({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountsAccountIdQueryKey = (\n options: Options<GetV2AccountsAccountIdData>,\n) => createQueryKey(\"getV2AccountsAccountId\", options)\n\n/**\n * Get an Account\n *\n * View a specific account contained within your store\n */\nexport const getV2AccountsAccountIdOptions = (\n options: Options<GetV2AccountsAccountIdData>,\n) =>\n queryOptions<\n GetV2AccountsAccountIdResponse,\n GetV2AccountsAccountIdError,\n GetV2AccountsAccountIdResponse,\n ReturnType<typeof getV2AccountsAccountIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountsAccountId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsAccountIdQueryKey(options),\n })\n\n/**\n * Update an Account\n *\n * Update the information contained on an account.\n */\nexport const putV2AccountsAccountIdMutation = (\n options?: Partial<Options<PutV2AccountsAccountIdData>>,\n): UseMutationOptions<\n PutV2AccountsAccountIdResponse,\n PutV2AccountsAccountIdError,\n Options<PutV2AccountsAccountIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2AccountsAccountIdResponse,\n PutV2AccountsAccountIdError,\n Options<PutV2AccountsAccountIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2AccountsAccountId({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountMembersQueryKey = (\n options?: Options<GetV2AccountMembersData>,\n) => createQueryKey(\"getV2AccountMembers\", options)\n\n/**\n * Get all Account Members\n *\n * Get all account members contained within your store.\n *\n * ### Filtering\n *\n *\n * The following operators and attributes are available for\n * [filtering](/guides/Getting-Started/filtering) account members.\n *\n * | Attribute | Type | Operator | Example | | :--- | :--- | :--- | :--- | | `email` | `string` | `ilike` | `ilike(email,'ronswanson@example.com')` | | `name` | `string` | `ilike` | `ilike(name,'*swan*')` | | `given_name` | `string` | `ilike`/`is_null` | `ilike(given_name,'ron*')` | | `middle_name` | `string` | `ilike`/`is_null` | `is_null(middle_name)` | | `family_name` | `string` | `ilike`/`is_null` | `is_null(family_name)` |\n *\n */\nexport const getV2AccountMembersOptions = (\n options?: Options<GetV2AccountMembersData>,\n) =>\n queryOptions<\n GetV2AccountMembersResponse,\n GetV2AccountMembersError,\n GetV2AccountMembersResponse,\n ReturnType<typeof getV2AccountMembersQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountMembers({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountMembersQueryKey(options),\n })\n\nexport const getV2AccountMembersAccountMemberIdQueryKey = (\n options: Options<GetV2AccountMembersAccountMemberIdData>,\n) => createQueryKey(\"getV2AccountMembersAccountMemberId\", options)\n\n/**\n * Get an Account Member\n *\n * Get an account member from your store\n */\nexport const getV2AccountMembersAccountMemberIdOptions = (\n options: Options<GetV2AccountMembersAccountMemberIdData>,\n) =>\n queryOptions<\n GetV2AccountMembersAccountMemberIdResponse,\n GetV2AccountMembersAccountMemberIdError,\n GetV2AccountMembersAccountMemberIdResponse,\n ReturnType<typeof getV2AccountMembersAccountMemberIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountMembersAccountMemberId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountMembersAccountMemberIdQueryKey(options),\n })\n\nexport const getV2AccountsAccountIdAccountMembershipsQueryKey = (\n options: Options<GetV2AccountsAccountIdAccountMembershipsData>,\n) => createQueryKey(\"getV2AccountsAccountIdAccountMemberships\", options)\n\n/**\n * Get all Account Memberships\n *\n * You can also use `include=account_member` to retrieve details about the account members associated with the account memberships. With this option, you can get more information about the account members such as name and email in a single request. For more information see [including resources](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) account memberships.\n *\n * | Operator | Description |\n * | :--- | :--- |\n * | `eq` | Checks whether the values of two operands are equal. If the values are equal, the condition is true. |\n * | `like` | Checks if the operand contains the specified string. You can use wildcard characters in operand. |\n *\n * | Attribute | Type | Operator | Example |\n * | :--- | :--- | :--- | :--- |\n * | `account_member_id` | `string` | `eq` / `like` | `eq(account_member_id,00000000-0000-1000-8000-0000000)` |\n */\nexport const getV2AccountsAccountIdAccountMembershipsOptions = (\n options: Options<GetV2AccountsAccountIdAccountMembershipsData>,\n) =>\n queryOptions<\n GetV2AccountsAccountIdAccountMembershipsResponse,\n GetV2AccountsAccountIdAccountMembershipsError,\n GetV2AccountsAccountIdAccountMembershipsResponse,\n ReturnType<typeof getV2AccountsAccountIdAccountMembershipsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountsAccountIdAccountMemberships({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsAccountIdAccountMembershipsQueryKey(options),\n })\n\n/**\n * Generate an Account Management Authentication Token\n *\n * Commerce provides authentication tokens for anyone using the Account Management APIs, including accounts and account members.\n *\n * For each element in the list returned by the account member authentication API, a token value is returned. In order for a shopper to authenticate as the account, this value should be set as the `EP-Account-Management-Authentication-Token` header when calling Commerce. This header grants access to additional resources associated with the account, such as [carts](/docs/api/carts/account-cart-associations), [orders](/docs/api/carts/orders), [catalogs with associated rules](/docs/api/pxm/catalog/rules), and [addresses](/docs/api/addresses/addresses-introduction).\n *\n * The set of permissions available to a shopper using an Account Management Authentication token is documented in [Permissions](/docs/authentication/tokens/permissions)\n *\n * Commerce provides authentication tokens for an account and an account member using:\n *\n * - OpenID Connect\n * - Username and password\n * - Self signup\n * - One-time password token\n * - Switch account token\n *\n */\nexport const postV2AccountMembersTokensMutation = (\n options?: Partial<Options<PostV2AccountMembersTokensData>>,\n): UseMutationOptions<\n PostV2AccountMembersTokensResponse,\n PostV2AccountMembersTokensError,\n Options<PostV2AccountMembersTokensData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountMembersTokensResponse,\n PostV2AccountMembersTokensError,\n Options<PostV2AccountMembersTokensData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2AccountMembersTokens({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create One-Time Password Token Request\n *\n * Create a one-time password token request for the specified password profile.\n */\nexport const createOneTimePasswordTokenRequestMutation = (\n options?: Partial<Options<CreateOneTimePasswordTokenRequestData>>,\n): UseMutationOptions<\n CreateOneTimePasswordTokenRequestResponse,\n CreateOneTimePasswordTokenRequestError,\n Options<CreateOneTimePasswordTokenRequestData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateOneTimePasswordTokenRequestResponse,\n CreateOneTimePasswordTokenRequestError,\n Options<CreateOneTimePasswordTokenRequestData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createOneTimePasswordTokenRequest({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update User Authentication Info\n *\n * Update specific user authentication information by ID.\n */\nexport const putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdMutation =\n (\n options?: Partial<\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n >,\n ): UseMutationOptions<\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n > => {\n const mutationOptions: UseMutationOptions<\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } =\n await putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoId(\n {\n ...options,\n ...fnOptions,\n throwOnError: true,\n },\n )\n return data\n },\n }\n return mutationOptions\n }\n\n/**\n * Update User Authentication Password Profile Info\n *\n * Update specific password profile information by ID for a user.\n */\nexport const updatePasswordProfileInfoMutation = (\n options?: Partial<Options<UpdatePasswordProfileInfoData>>,\n): UseMutationOptions<\n UpdatePasswordProfileInfoResponse,\n UpdatePasswordProfileInfoError,\n Options<UpdatePasswordProfileInfoData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdatePasswordProfileInfoResponse,\n UpdatePasswordProfileInfoError,\n Options<UpdatePasswordProfileInfoData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updatePasswordProfileInfo({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getAllCurrenciesQueryKey = (\n options?: Options<GetAllCurrenciesData>,\n) => createQueryKey(\"getAllCurrencies\", options)\n\n/**\n * Get all Currencies\n *\n * Fetch all currencies.\n *\n */\nexport const getAllCurrenciesOptions = (\n options?: Options<GetAllCurrenciesData>,\n) =>\n queryOptions<\n GetAllCurrenciesResponse,\n GetAllCurrenciesError,\n GetAllCurrenciesResponse,\n ReturnType<typeof getAllCurrenciesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllCurrencies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllCurrenciesQueryKey(options),\n })\n\nexport const getACurrencyQueryKey = (options: Options<GetACurrencyData>) =>\n createQueryKey(\"getACurrency\", options)\n\n/**\n * Get a Currency\n *\n * Fetch a currency by its ID.\n *\n */\nexport const getACurrencyOptions = (options: Options<GetACurrencyData>) =>\n queryOptions<\n GetACurrencyResponse,\n GetACurrencyError,\n GetACurrencyResponse,\n ReturnType<typeof getACurrencyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getACurrency({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getACurrencyQueryKey(options),\n })\n\nexport const getAllFilesQueryKey = (options?: Options<GetAllFilesData>) =>\n createQueryKey(\"getAllFiles\", options)\n\n/**\n * Get all Files\n *\n * Retrieves all files.\n *\n * ### Filtering\n *\n * For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * The following operators and attributes are available when filtering on this endpoint.\n *\n * | Attribute | Type | Operators | Example |\n * |:----------------------|:----------|:--------------------------|:-------------|\n * | `id` | `string` | `in` | `in(id,file-id-1,file-id-2,file-id-3)` |\n * | `file_name` | `string` | `eq` / `like` | `eq(file_name, my_image.jpg)` |\n * | `width` | `integer` | `gt` / `ge` / `lt` / `le` | `gt(width,200)` |\n * | `height` | `integer` | `gt` / `ge` / `lt` / `le` | `lt(height,500)` |\n * | `file_size` | `integer` | `gt` / `ge` / `lt` / `le` | `le(file_size,20953)` |\n *\n * #### Bulk File Retrieval\n *\n * To retrieve multiple files by their IDs in a single request, use the `in` operator with a comma-separated list of file IDs:\n *\n * ```\n * GET /v2/files?filter=in(id,06b881bd-f152-4c36-8658-7132a8fab49c,ec73567b-04e8-4000-a11a-7e1407cc2f21)\n * ```\n *\n * This is more efficient than making separate requests for each file and is recommended for bulk operations.\n *\n * **Note on invalid IDs**: If any IDs in the filter are missing, malformed, or do not exist in the store, they will be silently ignored. The response will only include files that were successfully found. For example, if you request 5 IDs but only 3 exist, the response will contain 3 files with `total: 3` in the metadata.\n *\n */\nexport const getAllFilesOptions = (options?: Options<GetAllFilesData>) =>\n queryOptions<\n GetAllFilesResponse,\n GetAllFilesError,\n GetAllFilesResponse,\n ReturnType<typeof getAllFilesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllFiles({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllFilesQueryKey(options),\n })\n\nexport const getAFileQueryKey = (options: Options<GetAFileData>) =>\n createQueryKey(\"getAFile\", options)\n\n/**\n * Get a File\n *\n * Get a File\n */\nexport const getAFileOptions = (options: Options<GetAFileData>) =>\n queryOptions<\n GetAFileResponse,\n GetAFileError,\n GetAFileResponse,\n ReturnType<typeof getAFileQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAFile({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAFileQueryKey(options),\n })\n\nexport const postMultiSearchQueryKey = (\n options: Options<PostMultiSearchData>,\n) => createQueryKey(\"postMultiSearch\", options)\n\n/**\n * Multi-search\n *\n * Execute one or more searches in a single request.\n */\nexport const postMultiSearchOptions = (options: Options<PostMultiSearchData>) =>\n queryOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n PostMultiSearchResponse,\n ReturnType<typeof postMultiSearchQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postMultiSearch({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: postMultiSearchQueryKey(options),\n })\n\n/**\n * Multi-search\n *\n * Execute one or more searches in a single request.\n */\nexport const postMultiSearchMutation = (\n options?: Partial<Options<PostMultiSearchData>>,\n): UseMutationOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n Options<PostMultiSearchData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n Options<PostMultiSearchData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postMultiSearch({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","names":[]}
1
+ {"version":3,"sources":["../../../src/client/@tanstack/react-query.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport {\n type DefaultError,\n queryOptions,\n type UseMutationOptions,\n} from \"@tanstack/react-query\"\n\nimport { client } from \"../client.gen\"\nimport {\n addCustomDiscountToCartItem,\n addTaxItemToCart,\n addTaxItemToCartItemComponent,\n anonymizeOrders,\n bulkAddCustomDiscountsToCart,\n bulkAddTaxItemsToCart,\n bulkDeleteCustomDiscountsFromCart,\n bulkDeleteTaxItemsFromCart,\n bulkUpdateItemsInCart,\n cancelATransaction,\n captureATransaction,\n checkoutApi,\n configureByContextProduct,\n confirmOrder,\n confirmPayment,\n createACart,\n createAccountCartAssociation,\n createAnAccessToken,\n createCartPaymentIntent,\n createCatalog,\n createCustomerCartAssociation,\n createOneTimePasswordTokenRequest,\n createOrderShippingGroup,\n createRule,\n createShippingGroup,\n createSubscriptionState,\n deleteACart,\n deleteACartItem,\n deleteAccountCartAssociation,\n deleteAllCartItems,\n deleteAPromotionViaPromotionCode,\n deleteATaxItem,\n deleteCartShippingGroup,\n deleteCatalogById,\n deleteCustomDiscountFromCart,\n deleteCustomDiscountFromCartItem,\n deleteCustomerCartAssociation,\n deleteReleaseById,\n deleteReleases,\n deleteRuleById,\n deleteTaxItemFromCartItemComponent,\n deleteV2AccountAddress,\n getACart,\n getACurrency,\n getAFile,\n getAllCurrencies,\n getAllFiles,\n getAllHierarchies,\n getAllNodes,\n getAllProducts,\n getAllRelatedProducts,\n getAnOrder,\n getATransaction,\n getByContextAllHierarchies,\n getByContextAllNodes,\n getByContextAllProducts,\n getByContextAllRelatedProducts,\n getByContextChildNodes,\n getByContextChildProducts,\n getByContextComponentProductIds,\n getByContextHierarchy,\n getByContextHierarchyChildNodes,\n getByContextHierarchyNodes,\n getByContextNode,\n getByContextProduct,\n getByContextProductsForHierarchy,\n getByContextProductsForNode,\n getByContextRelease,\n getCartItems,\n getCarts,\n getCatalogById,\n getCatalogs,\n getChildNodes,\n getChildProducts,\n getComponentProductIds,\n getCustomerOrders,\n getFeature,\n getHierarchy,\n getHierarchyChildNodes,\n getHierarchyNodes,\n getInvoice,\n getNode,\n getOffering,\n getOrderItems,\n getOrderShippingGroups,\n getOrderTransactions,\n getProduct,\n getProductsForHierarchy,\n getProductsForNode,\n getReleaseById,\n getReleases,\n getRuleById,\n getRules,\n getShippingGroupById,\n getShippingGroups,\n getShippingGroupsById,\n getStock,\n getSubscription,\n getSubscriptionInvoice,\n getSubscriptionInvoicePayment,\n getSubscriptionState,\n getV2AccountAddress,\n getV2AccountAddresses,\n getV2AccountMembers,\n getV2AccountMembersAccountMemberId,\n getV2Accounts,\n getV2AccountsAccountId,\n getV2AccountsAccountIdAccountMemberships,\n getV2SettingsCart,\n getV2SettingsCartStoreId,\n listInvoices,\n listLocations,\n listOfferingFeatures,\n listOfferingPlanPricingOptions,\n listOfferingPlans,\n listOfferingPricingOptions,\n listOfferings,\n listSubscriptionInvoicePayments,\n listSubscriptionInvoices,\n listSubscriptionPlans,\n listSubscriptionPricingOptions,\n listSubscriptions,\n listSubscriptionStates,\n manageCarts,\n type Options,\n paymentSetup,\n postMultiSearch,\n postV2AccountAddress,\n postV2AccountMembersTokens,\n postV2Accounts,\n publishRelease,\n putShippingGroupById,\n putV2AccountAddress,\n putV2AccountsAccountId,\n putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoId,\n putV2SettingsCart,\n putV2SettingsCartStoreId,\n refundATransaction,\n updateACart,\n updateACartItem,\n updateAnOrder,\n updateATaxItem,\n updateCartPaymentIntent,\n updateCatalog,\n updateCustomDiscountForCart,\n updateCustomDiscountForCartItem,\n updatePasswordProfileInfo,\n updateRule,\n updateShippingGroup,\n updateTaxItemFromCartItemComponent,\n validateCatalogRules,\n} from \"../sdk.gen\"\nimport type {\n AddCustomDiscountToCartItemData,\n AddCustomDiscountToCartItemError,\n AddCustomDiscountToCartItemResponse,\n AddTaxItemToCartData,\n AddTaxItemToCartError,\n AddTaxItemToCartItemComponentData,\n AddTaxItemToCartItemComponentError,\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartResponse,\n AnonymizeOrdersData,\n AnonymizeOrdersError,\n AnonymizeOrdersResponse,\n BulkAddCustomDiscountsToCartData,\n BulkAddCustomDiscountsToCartError,\n BulkAddCustomDiscountsToCartResponse,\n BulkAddTaxItemsToCartData,\n BulkAddTaxItemsToCartError,\n BulkAddTaxItemsToCartResponse,\n BulkDeleteCustomDiscountsFromCartData,\n BulkDeleteCustomDiscountsFromCartResponse,\n BulkDeleteTaxItemsFromCartData,\n BulkDeleteTaxItemsFromCartError,\n BulkDeleteTaxItemsFromCartResponse,\n BulkUpdateItemsInCartData,\n BulkUpdateItemsInCartError,\n BulkUpdateItemsInCartResponse,\n CancelATransactionData,\n CancelATransactionError,\n CancelATransactionResponse,\n CaptureATransactionData,\n CaptureATransactionError,\n CaptureATransactionResponse,\n CheckoutApiData,\n CheckoutApiError,\n CheckoutApiResponse,\n ConfigureByContextProductData,\n ConfigureByContextProductError,\n ConfigureByContextProductResponse,\n ConfirmOrderData,\n ConfirmOrderError,\n ConfirmOrderResponse,\n ConfirmPaymentData,\n ConfirmPaymentError,\n ConfirmPaymentResponse,\n CreateACartData,\n CreateACartError,\n CreateACartResponse,\n CreateAccountCartAssociationData,\n CreateAccountCartAssociationError,\n CreateAccountCartAssociationResponse,\n CreateAnAccessTokenData,\n CreateAnAccessTokenError,\n CreateAnAccessTokenResponse,\n CreateCartPaymentIntentData,\n CreateCartPaymentIntentResponse,\n CreateCatalogData,\n CreateCatalogError,\n CreateCatalogResponse,\n CreateCustomerCartAssociationData,\n CreateCustomerCartAssociationError,\n CreateCustomerCartAssociationResponse,\n CreateOneTimePasswordTokenRequestData,\n CreateOneTimePasswordTokenRequestError,\n CreateOneTimePasswordTokenRequestResponse,\n CreateOrderShippingGroupData,\n CreateOrderShippingGroupError,\n CreateOrderShippingGroupResponse,\n CreateRuleData,\n CreateRuleError,\n CreateRuleResponse,\n CreateShippingGroupData,\n CreateShippingGroupError,\n CreateShippingGroupResponse,\n CreateSubscriptionStateData,\n CreateSubscriptionStateError,\n CreateSubscriptionStateResponse,\n DeleteACartData,\n DeleteACartError,\n DeleteACartItemData,\n DeleteACartItemResponse,\n DeleteACartResponse,\n DeleteAccountCartAssociationData,\n DeleteAccountCartAssociationError,\n DeleteAccountCartAssociationResponse,\n DeleteAllCartItemsData,\n DeleteAllCartItemsError,\n DeleteAllCartItemsResponse,\n DeleteAPromotionViaPromotionCodeData,\n DeleteAPromotionViaPromotionCodeResponse,\n DeleteATaxItemData,\n DeleteATaxItemResponse,\n DeleteCartShippingGroupData,\n DeleteCartShippingGroupError,\n DeleteCartShippingGroupResponse,\n DeleteCatalogByIdData,\n DeleteCatalogByIdError,\n DeleteCatalogByIdResponse,\n DeleteCustomDiscountFromCartData,\n DeleteCustomDiscountFromCartItemData,\n DeleteCustomDiscountFromCartItemResponse,\n DeleteCustomDiscountFromCartResponse,\n DeleteCustomerCartAssociationData,\n DeleteCustomerCartAssociationError,\n DeleteCustomerCartAssociationResponse,\n DeleteReleaseByIdData,\n DeleteReleaseByIdError,\n DeleteReleaseByIdResponse,\n DeleteReleasesData,\n DeleteReleasesError,\n DeleteReleasesResponse,\n DeleteRuleByIdData,\n DeleteRuleByIdError,\n DeleteRuleByIdResponse,\n DeleteTaxItemFromCartItemComponentData,\n DeleteTaxItemFromCartItemComponentError,\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteV2AccountAddressData,\n DeleteV2AccountAddressError,\n DeleteV2AccountAddressResponse,\n GetACartData,\n GetACartError,\n GetACartResponse,\n GetACurrencyData,\n GetACurrencyError,\n GetACurrencyResponse,\n GetAFileData,\n GetAFileError,\n GetAFileResponse,\n GetAllCurrenciesData,\n GetAllCurrenciesError,\n GetAllCurrenciesResponse,\n GetAllFilesData,\n GetAllFilesError,\n GetAllFilesResponse,\n GetAllHierarchiesData,\n GetAllHierarchiesError,\n GetAllHierarchiesResponse,\n GetAllNodesData,\n GetAllNodesError,\n GetAllNodesResponse,\n GetAllProductsData,\n GetAllProductsError,\n GetAllProductsResponse,\n GetAllRelatedProductsData,\n GetAllRelatedProductsError,\n GetAllRelatedProductsResponse,\n GetAnOrderData,\n GetAnOrderError,\n GetAnOrderResponse,\n GetATransactionData,\n GetATransactionResponse,\n GetByContextAllHierarchiesData,\n GetByContextAllHierarchiesError,\n GetByContextAllHierarchiesResponse,\n GetByContextAllNodesData,\n GetByContextAllNodesError,\n GetByContextAllNodesResponse,\n GetByContextAllProductsData,\n GetByContextAllProductsError,\n GetByContextAllProductsResponse,\n GetByContextAllRelatedProductsData,\n GetByContextAllRelatedProductsError,\n GetByContextAllRelatedProductsResponse,\n GetByContextChildNodesData,\n GetByContextChildNodesError,\n GetByContextChildNodesResponse,\n GetByContextChildProductsData,\n GetByContextChildProductsError,\n GetByContextChildProductsResponse,\n GetByContextComponentProductIdsData,\n GetByContextComponentProductIdsError,\n GetByContextComponentProductIdsResponse,\n GetByContextHierarchyChildNodesData,\n GetByContextHierarchyChildNodesError,\n GetByContextHierarchyChildNodesResponse,\n GetByContextHierarchyData,\n GetByContextHierarchyError,\n GetByContextHierarchyNodesData,\n GetByContextHierarchyNodesError,\n GetByContextHierarchyNodesResponse,\n GetByContextHierarchyResponse,\n GetByContextNodeData,\n GetByContextNodeError,\n GetByContextNodeResponse,\n GetByContextProductData,\n GetByContextProductError,\n GetByContextProductResponse,\n GetByContextProductsForHierarchyData,\n GetByContextProductsForHierarchyError,\n GetByContextProductsForHierarchyResponse,\n GetByContextProductsForNodeData,\n GetByContextProductsForNodeError,\n GetByContextProductsForNodeResponse,\n GetByContextReleaseData,\n GetByContextReleaseError,\n GetByContextReleaseResponse,\n GetCartItemsData,\n GetCartItemsResponse,\n GetCartsData,\n GetCartsError,\n GetCartsResponse,\n GetCatalogByIdData,\n GetCatalogByIdError,\n GetCatalogByIdResponse,\n GetCatalogsData,\n GetCatalogsError,\n GetCatalogsResponse,\n GetChildNodesData,\n GetChildNodesError,\n GetChildNodesResponse,\n GetChildProductsData,\n GetChildProductsError,\n GetChildProductsResponse,\n GetComponentProductIdsData,\n GetComponentProductIdsError,\n GetComponentProductIdsResponse,\n GetCustomerOrdersData,\n GetCustomerOrdersError,\n GetCustomerOrdersResponse,\n GetFeatureData,\n GetFeatureError,\n GetFeatureResponse,\n GetHierarchyChildNodesData,\n GetHierarchyChildNodesError,\n GetHierarchyChildNodesResponse,\n GetHierarchyData,\n GetHierarchyError,\n GetHierarchyNodesData,\n GetHierarchyNodesError,\n GetHierarchyNodesResponse,\n GetHierarchyResponse,\n GetInvoiceData,\n GetInvoiceError,\n GetInvoiceResponse,\n GetNodeData,\n GetNodeError,\n GetNodeResponse,\n GetOfferingData,\n GetOfferingError,\n GetOfferingResponse,\n GetOrderItemsData,\n GetOrderItemsResponse,\n GetOrderShippingGroupsData,\n GetOrderShippingGroupsError,\n GetOrderShippingGroupsResponse,\n GetOrderTransactionsData,\n GetOrderTransactionsError,\n GetOrderTransactionsResponse,\n GetProductData,\n GetProductError,\n GetProductResponse,\n GetProductsForHierarchyData,\n GetProductsForHierarchyError,\n GetProductsForHierarchyResponse,\n GetProductsForNodeData,\n GetProductsForNodeError,\n GetProductsForNodeResponse,\n GetReleaseByIdData,\n GetReleaseByIdError,\n GetReleaseByIdResponse,\n GetReleasesData,\n GetReleasesError,\n GetReleasesResponse,\n GetRuleByIdData,\n GetRuleByIdError,\n GetRuleByIdResponse,\n GetRulesData,\n GetRulesError,\n GetRulesResponse,\n GetShippingGroupByIdData,\n GetShippingGroupByIdError,\n GetShippingGroupByIdResponse,\n GetShippingGroupsByIdData,\n GetShippingGroupsByIdError,\n GetShippingGroupsByIdResponse,\n GetShippingGroupsData,\n GetShippingGroupsError,\n GetShippingGroupsResponse,\n GetStockData,\n GetStockError,\n GetStockResponse,\n GetSubscriptionData,\n GetSubscriptionError,\n GetSubscriptionInvoiceData,\n GetSubscriptionInvoiceError,\n GetSubscriptionInvoicePaymentData,\n GetSubscriptionInvoicePaymentError,\n GetSubscriptionInvoicePaymentResponse,\n GetSubscriptionInvoiceResponse,\n GetSubscriptionResponse,\n GetSubscriptionStateData,\n GetSubscriptionStateError,\n GetSubscriptionStateResponse,\n GetV2AccountAddressData,\n GetV2AccountAddressError,\n GetV2AccountAddressesData,\n GetV2AccountAddressesError,\n GetV2AccountAddressesResponse,\n GetV2AccountAddressResponse,\n GetV2AccountMembersAccountMemberIdData,\n GetV2AccountMembersAccountMemberIdError,\n GetV2AccountMembersAccountMemberIdResponse,\n GetV2AccountMembersData,\n GetV2AccountMembersError,\n GetV2AccountMembersResponse,\n GetV2AccountsAccountIdAccountMembershipsData,\n GetV2AccountsAccountIdAccountMembershipsError,\n GetV2AccountsAccountIdAccountMembershipsResponse,\n GetV2AccountsAccountIdData,\n GetV2AccountsAccountIdError,\n GetV2AccountsAccountIdResponse,\n GetV2AccountsData,\n GetV2AccountsError,\n GetV2AccountsResponse,\n GetV2SettingsCartData,\n GetV2SettingsCartError,\n GetV2SettingsCartResponse,\n GetV2SettingsCartStoreIdData,\n GetV2SettingsCartStoreIdError,\n GetV2SettingsCartStoreIdResponse,\n ListInvoicesData,\n ListInvoicesError,\n ListInvoicesResponse,\n ListLocationsData,\n ListLocationsError,\n ListLocationsResponse,\n ListOfferingFeaturesData,\n ListOfferingFeaturesError,\n ListOfferingFeaturesResponse,\n ListOfferingPlanPricingOptionsData,\n ListOfferingPlanPricingOptionsError,\n ListOfferingPlanPricingOptionsResponse,\n ListOfferingPlansData,\n ListOfferingPlansError,\n ListOfferingPlansResponse,\n ListOfferingPricingOptionsData,\n ListOfferingPricingOptionsError,\n ListOfferingPricingOptionsResponse,\n ListOfferingsData,\n ListOfferingsError,\n ListOfferingsResponse,\n ListSubscriptionInvoicePaymentsData,\n ListSubscriptionInvoicePaymentsResponse,\n ListSubscriptionInvoicesData,\n ListSubscriptionInvoicesError,\n ListSubscriptionInvoicesResponse,\n ListSubscriptionPlansData,\n ListSubscriptionPlansError,\n ListSubscriptionPlansResponse,\n ListSubscriptionPricingOptionsData,\n ListSubscriptionPricingOptionsError,\n ListSubscriptionPricingOptionsResponse,\n ListSubscriptionsData,\n ListSubscriptionsError,\n ListSubscriptionsResponse,\n ListSubscriptionStatesData,\n ListSubscriptionStatesError,\n ListSubscriptionStatesResponse,\n ManageCartsData,\n ManageCartsError,\n ManageCartsResponse,\n PaymentSetupData,\n PaymentSetupError,\n PaymentSetupResponse,\n PostMultiSearchData,\n PostMultiSearchError,\n PostMultiSearchResponse,\n PostV2AccountAddressData,\n PostV2AccountAddressError,\n PostV2AccountAddressResponse,\n PostV2AccountMembersTokensData,\n PostV2AccountMembersTokensError,\n PostV2AccountMembersTokensResponse,\n PostV2AccountsData,\n PostV2AccountsError,\n PostV2AccountsResponse,\n PublishReleaseData,\n PublishReleaseError,\n PublishReleaseResponse,\n PutShippingGroupByIdData,\n PutShippingGroupByIdError,\n PutShippingGroupByIdResponse,\n PutV2AccountAddressData,\n PutV2AccountAddressError,\n PutV2AccountAddressResponse,\n PutV2AccountsAccountIdData,\n PutV2AccountsAccountIdError,\n PutV2AccountsAccountIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2SettingsCartData,\n PutV2SettingsCartError,\n PutV2SettingsCartResponse,\n PutV2SettingsCartStoreIdData,\n PutV2SettingsCartStoreIdError,\n PutV2SettingsCartStoreIdResponse,\n RefundATransactionData,\n RefundATransactionError,\n RefundATransactionResponse,\n UpdateACartData,\n UpdateACartError,\n UpdateACartItemData,\n UpdateACartItemError,\n UpdateACartItemResponse,\n UpdateACartResponse,\n UpdateAnOrderData,\n UpdateAnOrderError,\n UpdateAnOrderResponse,\n UpdateATaxItemData,\n UpdateATaxItemResponse,\n UpdateCartPaymentIntentData,\n UpdateCartPaymentIntentResponse,\n UpdateCatalogData,\n UpdateCatalogError,\n UpdateCatalogResponse,\n UpdateCustomDiscountForCartData,\n UpdateCustomDiscountForCartItemData,\n UpdateCustomDiscountForCartItemResponse,\n UpdateCustomDiscountForCartResponse,\n UpdatePasswordProfileInfoData,\n UpdatePasswordProfileInfoError,\n UpdatePasswordProfileInfoResponse,\n UpdateRuleData,\n UpdateRuleError,\n UpdateRuleResponse,\n UpdateShippingGroupData,\n UpdateShippingGroupError,\n UpdateShippingGroupResponse,\n UpdateTaxItemFromCartItemComponentData,\n UpdateTaxItemFromCartItemComponentResponse,\n ValidateCatalogRulesData,\n ValidateCatalogRulesError,\n ValidateCatalogRulesResponse,\n} from \"../types.gen\"\n\nexport type QueryKey<TOptions extends Options> = [\n Pick<TOptions, \"baseUrl\" | \"body\" | \"headers\" | \"path\" | \"query\"> & {\n _id: string\n _infinite?: boolean\n tags?: ReadonlyArray<string>\n },\n]\n\nconst createQueryKey = <TOptions extends Options>(\n id: string,\n options?: TOptions,\n infinite?: boolean,\n tags?: ReadonlyArray<string>,\n): [QueryKey<TOptions>[0]] => {\n const params: QueryKey<TOptions>[0] = {\n _id: id,\n baseUrl:\n options?.baseUrl || (options?.client ?? client).getConfig().baseUrl,\n } as QueryKey<TOptions>[0]\n if (infinite) {\n params._infinite = infinite\n }\n if (tags) {\n params.tags = tags\n }\n if (options?.body) {\n params.body = options.body\n }\n if (options?.headers) {\n params.headers = options.headers\n }\n if (options?.path) {\n params.path = options.path\n }\n if (options?.query) {\n params.query = options.query\n }\n return [params]\n}\n\nexport const getByContextReleaseQueryKey = (\n options?: Options<GetByContextReleaseData>,\n) => createQueryKey(\"getByContextRelease\", options)\n\n/**\n * Get the catalog release as shoppers\n *\n * Returns a list of all published releases of the specified catalog.\n */\nexport const getByContextReleaseOptions = (\n options?: Options<GetByContextReleaseData>,\n) =>\n queryOptions<\n GetByContextReleaseResponse,\n GetByContextReleaseError,\n GetByContextReleaseResponse,\n ReturnType<typeof getByContextReleaseQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextRelease({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextReleaseQueryKey(options),\n })\n\nexport const getByContextAllHierarchiesQueryKey = (\n options?: Options<GetByContextAllHierarchiesData>,\n) => createQueryKey(\"getByContextAllHierarchies\", options)\n\n/**\n * Get all Hierarchies\n *\n * Returns all hierarchies from a catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllHierarchiesOptions = (\n options?: Options<GetByContextAllHierarchiesData>,\n) =>\n queryOptions<\n GetByContextAllHierarchiesResponse,\n GetByContextAllHierarchiesError,\n GetByContextAllHierarchiesResponse,\n ReturnType<typeof getByContextAllHierarchiesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllHierarchies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllHierarchiesQueryKey(options),\n })\n\nexport const getByContextHierarchyQueryKey = (\n options: Options<GetByContextHierarchyData>,\n) => createQueryKey(\"getByContextHierarchy\", options)\n\n/**\n * Get a Hierarchy\n *\n * Returns a hierarchy from the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog to retrieve. For information about how catalog rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules).\n *\n */\nexport const getByContextHierarchyOptions = (\n options: Options<GetByContextHierarchyData>,\n) =>\n queryOptions<\n GetByContextHierarchyResponse,\n GetByContextHierarchyError,\n GetByContextHierarchyResponse,\n ReturnType<typeof getByContextHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyQueryKey(options),\n })\n\nexport const getByContextHierarchyNodesQueryKey = (\n options: Options<GetByContextHierarchyNodesData>,\n) => createQueryKey(\"getByContextHierarchyNodes\", options)\n\n/**\n * Get a Hierarchy's Nodes\n *\n * Returns all the nodes for the specified hierarchy.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextHierarchyNodesOptions = (\n options: Options<GetByContextHierarchyNodesData>,\n) =>\n queryOptions<\n GetByContextHierarchyNodesResponse,\n GetByContextHierarchyNodesError,\n GetByContextHierarchyNodesResponse,\n ReturnType<typeof getByContextHierarchyNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchyNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyNodesQueryKey(options),\n })\n\nexport const getByContextHierarchyChildNodesQueryKey = (\n options: Options<GetByContextHierarchyChildNodesData>,\n) => createQueryKey(\"getByContextHierarchyChildNodes\", options)\n\n/**\n * Get a Hierarchy's Children\n *\n * Returns the parent nodes for the specified hierarchy.\n *\n * ![Parent Nodes](/assets/rootnodes.PNG)\n *\n * If you have multiple catalog rules defined, the rule that best matches the shopperʼs context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * For more information, see [Filtering](/guides/Getting-Started/filtering).\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextHierarchyChildNodesOptions = (\n options: Options<GetByContextHierarchyChildNodesData>,\n) =>\n queryOptions<\n GetByContextHierarchyChildNodesResponse,\n GetByContextHierarchyChildNodesError,\n GetByContextHierarchyChildNodesResponse,\n ReturnType<typeof getByContextHierarchyChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextHierarchyChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextHierarchyChildNodesQueryKey(options),\n })\n\nexport const getByContextAllNodesQueryKey = (\n options?: Options<GetByContextAllNodesData>,\n) => createQueryKey(\"getByContextAllNodes\", options)\n\n/**\n * Get all Nodes\n *\n * Returns all nodes in the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. For more information, see [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllNodesOptions = (\n options?: Options<GetByContextAllNodesData>,\n) =>\n queryOptions<\n GetByContextAllNodesResponse,\n GetByContextAllNodesError,\n GetByContextAllNodesResponse,\n ReturnType<typeof getByContextAllNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllNodesQueryKey(options),\n })\n\nexport const getByContextNodeQueryKey = (\n options: Options<GetByContextNodeData>,\n) => createQueryKey(\"getByContextNode\", options)\n\n/**\n * Get a Node\n *\n * Returns a node from the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with a node. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your nodes, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n *\n */\nexport const getByContextNodeOptions = (\n options: Options<GetByContextNodeData>,\n) =>\n queryOptions<\n GetByContextNodeResponse,\n GetByContextNodeError,\n GetByContextNodeResponse,\n ReturnType<typeof getByContextNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextNodeQueryKey(options),\n })\n\nexport const getByContextChildNodesQueryKey = (\n options: Options<GetByContextChildNodesData>,\n) => createQueryKey(\"getByContextChildNodes\", options)\n\n/**\n * Get a Node's Children\n *\n * Returns the child nodes for a node in the catalog.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see which parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any curated_products, products are listed by their updated_at time in descending order, with the most recently updated product first.\n * - If you configure curated_products for only a few products, the curated products are displayed first and the other products are displayed in the order of updated_at time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - A product that is curated has the \"curated_product\": true attribute displayed.\n * - If a curated product is removed from a node, the product is also removed from the curated_products list.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextChildNodesOptions = (\n options: Options<GetByContextChildNodesData>,\n) =>\n queryOptions<\n GetByContextChildNodesResponse,\n GetByContextChildNodesError,\n GetByContextChildNodesResponse,\n ReturnType<typeof getByContextChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextChildNodesQueryKey(options),\n })\n\nexport const getByContextAllProductsQueryKey = (\n options?: Options<GetByContextAllProductsData>,\n) => createQueryKey(\"getByContextAllProducts\", options)\n\n/**\n * Get all Products\n *\n * Retrieves the list of products from the catalog. Only the products in a live status are retrieved.\n *\n * ### Catalog Rules\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * ### Product and Node Associations\n *\n * You can see the parent nodes a product is associated within the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getByContextAllProductsOptions = (\n options?: Options<GetByContextAllProductsData>,\n) =>\n queryOptions<\n GetByContextAllProductsResponse,\n GetByContextAllProductsError,\n GetByContextAllProductsResponse,\n ReturnType<typeof getByContextAllProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllProductsQueryKey(options),\n })\n\nexport const getByContextProductQueryKey = (\n options: Options<GetByContextProductData>,\n) => createQueryKey(\"getByContextProduct\", options)\n\n/**\n * Get a Product\n *\n * Returns the specified product from the catalog. The product must be in the `live` status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductOptions = (\n options: Options<GetByContextProductData>,\n) =>\n queryOptions<\n GetByContextProductResponse,\n GetByContextProductError,\n GetByContextProductResponse,\n ReturnType<typeof getByContextProductQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProduct({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductQueryKey(options),\n })\n\nexport const getByContextAllRelatedProductsQueryKey = (\n options: Options<GetByContextAllRelatedProductsData>,\n) => createQueryKey(\"getByContextAllRelatedProducts\", options)\n\n/**\n * Get all Related Products of a Product\n *\n * Returns related products of the provided product ID from a catalog.\n *\n */\nexport const getByContextAllRelatedProductsOptions = (\n options: Options<GetByContextAllRelatedProductsData>,\n) =>\n queryOptions<\n GetByContextAllRelatedProductsResponse,\n GetByContextAllRelatedProductsError,\n GetByContextAllRelatedProductsResponse,\n ReturnType<typeof getByContextAllRelatedProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextAllRelatedProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextAllRelatedProductsQueryKey(options),\n })\n\nexport const getByContextComponentProductIdsQueryKey = (\n options: Options<GetByContextComponentProductIdsData>,\n) => createQueryKey(\"getByContextComponentProductIds\", options)\n\n/**\n * Get a Bundle's Component Products\n *\n * With Product Experience Manager, you can [create](/docs/api/pxm/products/create-product) and manage bundles. A bundle is a purchasable product, comprising of one or more products that you want to sell together.\n *\n * You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.\n *\n * This endpoint returns a list of component product IDs for the specified bundle.\n *\n */\nexport const getByContextComponentProductIdsOptions = (\n options: Options<GetByContextComponentProductIdsData>,\n) =>\n queryOptions<\n GetByContextComponentProductIdsResponse,\n GetByContextComponentProductIdsError,\n GetByContextComponentProductIdsResponse,\n ReturnType<typeof getByContextComponentProductIdsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextComponentProductIds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextComponentProductIdsQueryKey(options),\n })\n\nexport const getByContextChildProductsQueryKey = (\n options: Options<GetByContextChildProductsData>,\n) => createQueryKey(\"getByContextChildProducts\", options)\n\n/**\n * Get a Parent Product's Child Products\n *\n * For a specified product and catalog release, retrieves a list of child products from a parent product. Any product other than a base product results in a `422 Unprocessable Entity` response. Only the products in a `live` status are retrieved.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shopperʼs context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated within the `breadcrumbs` metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextChildProductsOptions = (\n options: Options<GetByContextChildProductsData>,\n) =>\n queryOptions<\n GetByContextChildProductsResponse,\n GetByContextChildProductsError,\n GetByContextChildProductsResponse,\n ReturnType<typeof getByContextChildProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextChildProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextChildProductsQueryKey(options),\n })\n\nexport const getByContextProductsForHierarchyQueryKey = (\n options: Options<GetByContextProductsForHierarchyData>,\n) => createQueryKey(\"getByContextProductsForHierarchy\", options)\n\n/**\n * Get a Hierarchy's Products\n *\n * Returns the products associated with the specified hierarchy in the catalog. The products must be in the live status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductsForHierarchyOptions = (\n options: Options<GetByContextProductsForHierarchyData>,\n) =>\n queryOptions<\n GetByContextProductsForHierarchyResponse,\n GetByContextProductsForHierarchyError,\n GetByContextProductsForHierarchyResponse,\n ReturnType<typeof getByContextProductsForHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProductsForHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductsForHierarchyQueryKey(options),\n })\n\nexport const getByContextProductsForNodeQueryKey = (\n options: Options<GetByContextProductsForNodeData>,\n) => createQueryKey(\"getByContextProductsForNode\", options)\n\n/**\n * Get a Node's Products\n *\n * Returns the products associated with the specified hierarchy node in the catalog. The products must be in the `live` status. If the products have been curated then the products are returned in the order specified in the `curated_products` attribute. A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getByContextProductsForNodeOptions = (\n options: Options<GetByContextProductsForNodeData>,\n) =>\n queryOptions<\n GetByContextProductsForNodeResponse,\n GetByContextProductsForNodeError,\n GetByContextProductsForNodeResponse,\n ReturnType<typeof getByContextProductsForNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getByContextProductsForNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getByContextProductsForNodeQueryKey(options),\n })\n\n/**\n * Configure a Shopper Bundle\n *\n * Once you have configured your product bundles, you can display them in your storefront in your published catalog. Depending on how you have configured the minimum and maximum values for the product options in your components, you can allow your shoppers to choose which products they want to select. For example, you can enable a shopper to select 1 or more product options from a list of 10, giving your shoppers greater flexibility when selecting products in your store front.\n *\n * - Products must be in a `live` status.\n * - If you have not specified any minimum or maximum values for the product options in your components, your shoppers can select any combination of product options.\n *\n * If you have configured minimum and maximum values using [Create a Bundle](/docs/api/pxm/products/create-product), this becomes part of the `bundle_configuration`. You can check how your bundle is configured using [Get a product in a catalog release](/docs/api/pxm/catalog/get-product) in `bundle_configuration` under `meta`. The `bundle_configuration` forms the body of the request.\n *\n * The response updates the `bundle_configuration` with the product options the shopper selects. The `meta` data is updated with the `meta` data of the selected product options. In your storefront, you could display this as a summary of the product options a shopper has selected.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const configureByContextProductMutation = (\n options?: Partial<Options<ConfigureByContextProductData>>,\n): UseMutationOptions<\n ConfigureByContextProductResponse,\n ConfigureByContextProductError,\n Options<ConfigureByContextProductData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfigureByContextProductResponse,\n ConfigureByContextProductError,\n Options<ConfigureByContextProductData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await configureByContextProduct({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCatalogsQueryKey = (options?: Options<GetCatalogsData>) =>\n createQueryKey(\"getCatalogs\", options)\n\n/**\n * Gets all authorized catalogs\n *\n * Retrieves a list of all the catalogs that you are authorized to view. Currently, published catalogs are limited to the current release and two releases prior to the current release. You can see the differences between the last 2 consecutive catalog releases using the delta link returned in the response of a [publish a catalog](/docs/api/pxm/catalog/publish-release) endpoint.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before publishing a catalog release and injecting fresh data in a delta link. The `is_full_delta` attribute tells you if this is a full publish of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file. See [Publish a catalog](/docs/api/pxm/catalog/publish-release).\n *\n * If the `is_full_publish` attribute returned in the response is `false`, data from the previous catalog release overlaid the existing data in the delta file. The `is_full_publish` attribute is always `true` the first time a catalog is published. When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified list. If they are, the condition is true. | `name` | `filter=in(name,some-name,some-name2)` |\n * | `like` | Checks if the operand contains the specified string. Wildcards are supported | `name` | `filter=like(name,*some-name*)` |\n *\n */\nexport const getCatalogsOptions = (options?: Options<GetCatalogsData>) =>\n queryOptions<\n GetCatalogsResponse,\n GetCatalogsError,\n GetCatalogsResponse,\n ReturnType<typeof getCatalogsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCatalogs({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCatalogsQueryKey(options),\n })\n\n/**\n * Creates a new catalog\n *\n * Before you create a catalog, you must define the following resources:\n *\n * - Hierarchies - hierarchies and nodes to categorize the products.\n * - Products - product information, associated assets, and links to hierarchy nodes.\n * - Price Books - prices for the products associated with the hierarchies. You can create multiple price books for different scenarios, such as seasonal sales, business versus retail customer pricing, and reward programs. When creating a catalog, you can specify up to five price books. You must configure a priority for your price books. Product prices are displayed in the catalog according to the priority of the price books. Priority is a number and the price book with the highest number has the highest priority.\n *\n */\nexport const createCatalogMutation = (\n options?: Partial<Options<CreateCatalogData>>,\n): UseMutationOptions<\n CreateCatalogResponse,\n CreateCatalogError,\n Options<CreateCatalogData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCatalogResponse,\n CreateCatalogError,\n Options<CreateCatalogData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCatalog({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a catalog\n *\n * Deletes an unpublished catalog. Use [**Delete a Release**](/docs/api/pxm/catalog/delete-release-by-id) and [**Delete All Releases**](/docs/api/pxm/catalog/delete-releases) to delete releases of a catalog. If the catalog is associated with any catalog rules, you must first update the catalog rules to remove the catalog.\n */\nexport const deleteCatalogByIdMutation = (\n options?: Partial<Options<DeleteCatalogByIdData>>,\n): UseMutationOptions<\n DeleteCatalogByIdResponse,\n DeleteCatalogByIdError,\n Options<DeleteCatalogByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCatalogByIdResponse,\n DeleteCatalogByIdError,\n Options<DeleteCatalogByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCatalogById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCatalogByIdQueryKey = (options: Options<GetCatalogByIdData>) =>\n createQueryKey(\"getCatalogById\", options)\n\n/**\n * Get a catalog by ID\n *\n * Retrieves the specified catalog.\n */\nexport const getCatalogByIdOptions = (options: Options<GetCatalogByIdData>) =>\n queryOptions<\n GetCatalogByIdResponse,\n GetCatalogByIdError,\n GetCatalogByIdResponse,\n ReturnType<typeof getCatalogByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCatalogById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCatalogByIdQueryKey(options),\n })\n\n/**\n * Updates a catalog\n *\n * Specify whichever attributes you want to change. The values of the other attributes remain the same. If the attributes section is empty, the catalog is not updated.\n */\nexport const updateCatalogMutation = (\n options?: Partial<Options<UpdateCatalogData>>,\n): UseMutationOptions<\n UpdateCatalogResponse,\n UpdateCatalogError,\n Options<UpdateCatalogData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCatalogResponse,\n UpdateCatalogError,\n Options<UpdateCatalogData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCatalog({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes all releases\n *\n * Deletes all releases of the specified published catalog.\n */\nexport const deleteReleasesMutation = (\n options?: Partial<Options<DeleteReleasesData>>,\n): UseMutationOptions<\n DeleteReleasesResponse,\n DeleteReleasesError,\n Options<DeleteReleasesData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteReleasesResponse,\n DeleteReleasesError,\n Options<DeleteReleasesData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteReleases({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getReleasesQueryKey = (options: Options<GetReleasesData>) =>\n createQueryKey(\"getReleases\", options)\n\n/**\n * Gets all authorized catalog releases\n *\n * Returns a list of all published releases of the specified catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release. You can see the differences between the last 2 consecutive catalog releases using the `delta` link returned in the response of a `publish a catalog` endpoint.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before publishing a catalog release and injecting fresh data in a delta link. The `is_full_delta` attribute tells you if this is a full publish of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file.\n *\n * If the `is_full_publish` attribute returned in the response is `false`, data from the previous catalog release overlaid the existing data in the delta file. The `is_full_publish` attribute is always `true` the first time a catalog is published. When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.\n *\n */\nexport const getReleasesOptions = (options: Options<GetReleasesData>) =>\n queryOptions<\n GetReleasesResponse,\n GetReleasesError,\n GetReleasesResponse,\n ReturnType<typeof getReleasesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getReleases({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getReleasesQueryKey(options),\n })\n\n/**\n * Publishes a catalog\n *\n *\n * Publishes a catalog. You must publish a catalog before you can retrieve that catalog in an organization or store. The hierarchies, live products, and prices associated with a published catalog are in read-only mode. If you make a change to these resources, for example, a change to your price book or hierarchies, you need to republish the catalog.\n *\n * You can get [a catalog release](/docs/api/pxm/catalog/get-release-by-id) to retrieve a published catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * You can see the differences between the last 2 consecutive catalog releases. This is useful if want to understand how your products have changed in your catalog, ensuring your site search integration is kept up-to-date.\n *\n * Once a catalog release has completed publishing, the delta relationship links to the delta document.\n *\n * The `delta` links are signed and only valid for 1 hour. Re-reading a catalog release, for example, using [Getting a release of a catalog](/docs/api/pxm/catalog/get-release-by-id) returns a fresh a link.\n *\n * You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before injecting fresh data in a `delta` link. The `is_full_delta` attribute tells you if this is a full publish of the catalog. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before injecting fresh data from the `delta` file. If the `is_full_delta` attribute is `false`, then data from the previous catalog overlays the existing data in the `delta` file. To publish a catalog and inject fresh data in a `delta` link, set `export_full_delta` to `true`.\n *\n * If a previous catalog publish date is greater than 90 days, then a full catalog publish is automatically performed. If you publish your catalogs infrequently, Commerce may perform a full publish when you are expecting a delta publish.\n *\n * :::caution\n *\n * Generating a full delta is resource intensive and slows down the publishing process and so should only be performed in certain circumstances, for example, when initializing an integration with a service like Algolia.\n *\n * :::\n *\n * The `is_full_delta` attribute is always `true` the first time a catalog is published. The information is stored in a collection of `json` documents in a compressed file. You can either manually check the file or, for example, use them to automatically update another company system you may have.\n *\n * - Delta files are only available for 30 days.\n * - Delta files are removed when a catalog release is deleted.\n *\n * Each document has a `delta_type` with one of the following values, depending on whether a product has been deleted, updated or created in a catalog release.\n *\n * - `delete` describes products deleted from this release of a catalog.\n * - `createupdate` describes products updated in this release of a catalog.\n *\n * ### Multi-Store Management Solutions\n *\n * In a multi-store management solution.\n *\n * - You can create organization catalogs. Your organization catalogs are available for your stores to use.\n * - Your stores can create their own catalogs.\n * - Your stores can create catalogs that have a combination of organization products and store products.\n *\n * If you are publishing a catalog in a store that contains resources from an organization, in Commerce Manager, you must enable the **Include Organization Resources in Catalog Publishes** checkbox.\n *\n * 1. Go to **SYSTEM** > **Store Settings**.\n * 2. Click **General Settings**.\n * 3. Select **PXM** from the list.\n * 4. Select the **Include Organization Resources in Catalog Publishes** checkbox.\n *\n */\nexport const publishReleaseMutation = (\n options?: Partial<Options<PublishReleaseData>>,\n): UseMutationOptions<\n PublishReleaseResponse,\n PublishReleaseError,\n Options<PublishReleaseData>\n> => {\n const mutationOptions: UseMutationOptions<\n PublishReleaseResponse,\n PublishReleaseError,\n Options<PublishReleaseData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await publishRelease({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a release\n *\n * Deletes the specified published catalog release.\n */\nexport const deleteReleaseByIdMutation = (\n options?: Partial<Options<DeleteReleaseByIdData>>,\n): UseMutationOptions<\n DeleteReleaseByIdResponse,\n DeleteReleaseByIdError,\n Options<DeleteReleaseByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteReleaseByIdResponse,\n DeleteReleaseByIdError,\n Options<DeleteReleaseByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteReleaseById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getReleaseByIdQueryKey = (options: Options<GetReleaseByIdData>) =>\n createQueryKey(\"getReleaseById\", options)\n\n/**\n * Get a catalog release by ID\n *\n * Retrieves the specified catalog release.\n */\nexport const getReleaseByIdOptions = (options: Options<GetReleaseByIdData>) =>\n queryOptions<\n GetReleaseByIdResponse,\n GetReleaseByIdError,\n GetReleaseByIdResponse,\n ReturnType<typeof getReleaseByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getReleaseById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getReleaseByIdQueryKey(options),\n })\n\nexport const getRulesQueryKey = (options?: Options<GetRulesData>) =>\n createQueryKey(\"getRules\", options)\n\n/**\n * Gets all authorized catalog rules\n *\n * Retrieves all authorized catalog rules.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are supported.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `eq` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. | `id`,`catalog_id`,`account_ids`,`customer_ids`,`channels`,`tags`,`pricebook_ids`,`search_profile_slug` | `filter=eq(id,some-id)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true. | `id`,`account_ids`,`customer_ids`,`channels`,`tags`,`pricebook_ids`,`search_profile_slug` | `filter=in(account_ids,some-id,another-id)` |\n *\n */\nexport const getRulesOptions = (options?: Options<GetRulesData>) =>\n queryOptions<\n GetRulesResponse,\n GetRulesError,\n GetRulesResponse,\n ReturnType<typeof getRulesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getRules({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getRulesQueryKey(options),\n })\n\n/**\n * Creates a new catalog rule\n *\n * If you have multiple catalogs, create catalog rule resources. With catalog rules, you can display different catalogs to different shoppers. For example, you can display a preferred pricing catalog to a few special customers. Or you can display one catalog to shoppers using your website and a different catalog to shoppers using your mobile app. Finally, you can define custom criteria by creating tags.\n *\n * :::note\n *\n * - If you have one catalog for all customers and channels, you can omit creating this resource.\n * - Due to the way catalogs are cached in Commerce, using catalog rules to display catalogs sometimes causes a 5-minute time delay before the catalogs are displayed.\n * - You cannot create catalog rules for organization catalogs.\n *\n * :::\n *\n * For ideas about the kinds of business scenarios you can achieve with catalog rules, see [Catalog Rules](/docs/api/pxm/catalog/rules). To understand how catalogs are matched to shoppers by using rules, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n */\nexport const createRuleMutation = (\n options?: Partial<Options<CreateRuleData>>,\n): UseMutationOptions<\n CreateRuleResponse,\n CreateRuleError,\n Options<CreateRuleData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateRuleResponse,\n CreateRuleError,\n Options<CreateRuleData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createRule({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Deletes a catalog rule\n */\nexport const deleteRuleByIdMutation = (\n options?: Partial<Options<DeleteRuleByIdData>>,\n): UseMutationOptions<\n DeleteRuleByIdResponse,\n DeleteRuleByIdError,\n Options<DeleteRuleByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteRuleByIdResponse,\n DeleteRuleByIdError,\n Options<DeleteRuleByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteRuleById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getRuleByIdQueryKey = (options: Options<GetRuleByIdData>) =>\n createQueryKey(\"getRuleById\", options)\n\n/**\n * Get a catalog rule by ID\n */\nexport const getRuleByIdOptions = (options: Options<GetRuleByIdData>) =>\n queryOptions<\n GetRuleByIdResponse,\n GetRuleByIdError,\n GetRuleByIdResponse,\n ReturnType<typeof getRuleByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getRuleById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getRuleByIdQueryKey(options),\n })\n\n/**\n * Updates a catalog rule\n *\n * Specify whichever attributes you want to change. The values of the other attributes remain the same. If the attributes section is empty, the catalog rule is not updated.\n */\nexport const updateRuleMutation = (\n options?: Partial<Options<UpdateRuleData>>,\n): UseMutationOptions<\n UpdateRuleResponse,\n UpdateRuleError,\n Options<UpdateRuleData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateRuleResponse,\n UpdateRuleError,\n Options<UpdateRuleData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateRule({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Validate catalog rules for a given context\n *\n * Validates catalog rules for a given context and returns a list of matching catalog rules.\n *\n */\nexport const validateCatalogRulesMutation = (\n options?: Partial<Options<ValidateCatalogRulesData>>,\n): UseMutationOptions<\n ValidateCatalogRulesResponse,\n ValidateCatalogRulesError,\n Options<ValidateCatalogRulesData>\n> => {\n const mutationOptions: UseMutationOptions<\n ValidateCatalogRulesResponse,\n ValidateCatalogRulesError,\n Options<ValidateCatalogRulesData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await validateCatalogRules({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getAllHierarchiesQueryKey = (\n options: Options<GetAllHierarchiesData>,\n) => createQueryKey(\"getAllHierarchies\", options)\n\n/**\n * Get all Hierarchies\n *\n * Returns the hierarchies from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllHierarchiesOptions = (\n options: Options<GetAllHierarchiesData>,\n) =>\n queryOptions<\n GetAllHierarchiesResponse,\n GetAllHierarchiesError,\n GetAllHierarchiesResponse,\n ReturnType<typeof getAllHierarchiesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllHierarchies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllHierarchiesQueryKey(options),\n })\n\nexport const getHierarchyQueryKey = (options: Options<GetHierarchyData>) =>\n createQueryKey(\"getHierarchy\", options)\n\n/**\n * Get a Hierarchy\n *\n * Returns the specified hierarchy from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n */\nexport const getHierarchyOptions = (options: Options<GetHierarchyData>) =>\n queryOptions<\n GetHierarchyResponse,\n GetHierarchyError,\n GetHierarchyResponse,\n ReturnType<typeof getHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyQueryKey(options),\n })\n\nexport const getHierarchyNodesQueryKey = (\n options: Options<GetHierarchyNodesData>,\n) => createQueryKey(\"getHierarchyNodes\", options)\n\n/**\n * Get a Hierarchy's Nodes\n *\n * Returns all nodes for the specified hierarchy from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getHierarchyNodesOptions = (\n options: Options<GetHierarchyNodesData>,\n) =>\n queryOptions<\n GetHierarchyNodesResponse,\n GetHierarchyNodesError,\n GetHierarchyNodesResponse,\n ReturnType<typeof getHierarchyNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchyNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyNodesQueryKey(options),\n })\n\nexport const getHierarchyChildNodesQueryKey = (\n options: Options<GetHierarchyChildNodesData>,\n) => createQueryKey(\"getHierarchyChildNodes\", options)\n\n/**\n * Get a Hierarchy's Children\n *\n * Returns the parent nodes for the specified hierarchy from a published catalog.\n *\n * ![Parent Nodes](/assets/rootnodes.PNG)\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * In the `breadcrumbs` metadata, you can identify the parent nodes that a node is associated with. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:--- |:--- |:--- |:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug`| `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. | `id` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getHierarchyChildNodesOptions = (\n options: Options<GetHierarchyChildNodesData>,\n) =>\n queryOptions<\n GetHierarchyChildNodesResponse,\n GetHierarchyChildNodesError,\n GetHierarchyChildNodesResponse,\n ReturnType<typeof getHierarchyChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getHierarchyChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getHierarchyChildNodesQueryKey(options),\n })\n\nexport const getAllNodesQueryKey = (options: Options<GetAllNodesData>) =>\n createQueryKey(\"getAllNodes\", options)\n\n/**\n * Get all Nodes\n *\n * Returns the child nodes from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. See [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllNodesOptions = (options: Options<GetAllNodesData>) =>\n queryOptions<\n GetAllNodesResponse,\n GetAllNodesError,\n GetAllNodesResponse,\n ReturnType<typeof getAllNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllNodesQueryKey(options),\n })\n\nexport const getNodeQueryKey = (options: Options<GetNodeData>) =>\n createQueryKey(\"getNode\", options)\n\n/**\n * Get a Node\n *\n * Returns a node from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n */\nexport const getNodeOptions = (options: Options<GetNodeData>) =>\n queryOptions<\n GetNodeResponse,\n GetNodeError,\n GetNodeResponse,\n ReturnType<typeof getNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getNodeQueryKey(options),\n })\n\nexport const getChildNodesQueryKey = (options: Options<GetChildNodesData>) =>\n createQueryKey(\"getChildNodes\", options)\n\n/**\n * Get a Node's Children\n *\n * Returns the child nodes for a node from a published catalog.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. For more information, see [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).\n *\n * The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.\n *\n * - If you don't provide any `curated_products`, products are listed by their `updated_at` time in descending order, with the most recently updated product first.\n * - If you configure `curated_products` for only a few products, the curated products are displayed first and the other products are displayed in the order of `updated_at` time.\n * - You can only curate 20 products or less. You cannot have more than 20 curated products.\n * - If a curated product is removed from a node, the product is also removed from the `curated_products` list.\n * - A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.\n *\n * | Operator | Description | Attributes | Example |\n * | --- | --- | --- | --- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |\n * | `in` | Checks if the values are included in the specified string. If they are, the condition is true.\n * | `Id` | `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getChildNodesOptions = (options: Options<GetChildNodesData>) =>\n queryOptions<\n GetChildNodesResponse,\n GetChildNodesError,\n GetChildNodesResponse,\n ReturnType<typeof getChildNodesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getChildNodes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getChildNodesQueryKey(options),\n })\n\nexport const getAllProductsQueryKey = (options: Options<GetAllProductsData>) =>\n createQueryKey(\"getAllProducts\", options)\n\n/**\n * Get all Products\n *\n * Returns the products from a published catalog. Only the products in a `live` status are retrieved. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the [Get a List of products in a catalog release](/docs/api/pxm/catalog/get-all-products) response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product.\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n */\nexport const getAllProductsOptions = (options: Options<GetAllProductsData>) =>\n queryOptions<\n GetAllProductsResponse,\n GetAllProductsError,\n GetAllProductsResponse,\n ReturnType<typeof getAllProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllProductsQueryKey(options),\n })\n\nexport const getProductQueryKey = (options: Options<GetProductData>) =>\n createQueryKey(\"getProduct\", options)\n\n/**\n * Get a Product\n *\n * Returns a product from a published catalog. The product must be in `live` status. Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * ### Product and Node Associations in Breadcrumb Metadata\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Product Variations\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order`attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the get a product in a catalog release response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product.\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductOptions = (options: Options<GetProductData>) =>\n queryOptions<\n GetProductResponse,\n GetProductError,\n GetProductResponse,\n ReturnType<typeof getProductQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProduct({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductQueryKey(options),\n })\n\nexport const getAllRelatedProductsQueryKey = (\n options: Options<GetAllRelatedProductsData>,\n) => createQueryKey(\"getAllRelatedProducts\", options)\n\n/**\n * Get all Related Products of a Product\n *\n * Returns related products of the provided product ID from a published catalog.\n *\n */\nexport const getAllRelatedProductsOptions = (\n options: Options<GetAllRelatedProductsData>,\n) =>\n queryOptions<\n GetAllRelatedProductsResponse,\n GetAllRelatedProductsError,\n GetAllRelatedProductsResponse,\n ReturnType<typeof getAllRelatedProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllRelatedProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllRelatedProductsQueryKey(options),\n })\n\nexport const getComponentProductIdsQueryKey = (\n options: Options<GetComponentProductIdsData>,\n) => createQueryKey(\"getComponentProductIds\", options)\n\n/**\n * Get a Bundle's Component Products\n *\n * With Product Experience Manager, you can [create](/docs/api/pxm/products/create-product) and manage bundles. A bundle is a purchasable product, comprising of one or more products that you want to sell together.\n *\n * You can create multiple components within a bundle. Each component must have at least one or more options. Each option is a product and a quantity.\n *\n * This endpoint returns a list of component product IDs for the specified bundle.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getComponentProductIdsOptions = (\n options: Options<GetComponentProductIdsData>,\n) =>\n queryOptions<\n GetComponentProductIdsResponse,\n GetComponentProductIdsError,\n GetComponentProductIdsResponse,\n ReturnType<typeof getComponentProductIdsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getComponentProductIds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getComponentProductIdsQueryKey(options),\n })\n\nexport const getChildProductsQueryKey = (\n options: Options<GetChildProductsData>,\n) => createQueryKey(\"getChildProducts\", options)\n\n/**\n * Get a Parent Product's Child Products\n *\n * For a specified product and catalog release, retrieves a list of child products from a parent product. Any product other than a base product results in a `422 Unprocessable Entity` response. Only the products in a `live` status are retrieved.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. If no catalog rules are configured, the first catalog found is returned. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated within the breadcrumbs metadata for each product. For example, this is useful if you want to improve how your shoppers search your store. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getChildProductsOptions = (\n options: Options<GetChildProductsData>,\n) =>\n queryOptions<\n GetChildProductsResponse,\n GetChildProductsError,\n GetChildProductsResponse,\n ReturnType<typeof getChildProductsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getChildProducts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getChildProductsQueryKey(options),\n })\n\nexport const getProductsForHierarchyQueryKey = (\n options: Options<GetProductsForHierarchyData>,\n) => createQueryKey(\"getProductsForHierarchy\", options)\n\n/**\n * Get a Hierarchy's Products\n *\n * Returns the products associated with the specified hierarchy in the catalog. The products must be in the `live` status.\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The variations object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in variations. Once a parent product is published in a catalog, the [Get a List of products in a catalog](/docs/api/pxm/catalog/get-all-products) release response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types`, you can only specify one product type. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types`, you can specify more than one product type. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductsForHierarchyOptions = (\n options: Options<GetProductsForHierarchyData>,\n) =>\n queryOptions<\n GetProductsForHierarchyResponse,\n GetProductsForHierarchyError,\n GetProductsForHierarchyResponse,\n ReturnType<typeof getProductsForHierarchyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProductsForHierarchy({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductsForHierarchyQueryKey(options),\n })\n\nexport const getProductsForNodeQueryKey = (\n options: Options<GetProductsForNodeData>,\n) => createQueryKey(\"getProductsForNode\", options)\n\n/**\n * Get a Node's Products\n *\n * Returns the products associated with the specified hierarchy node in the catalog. The products must be in the `live` status. If the products have been curated, then the products are returned in the order specified in the `curated_products` attribute. A product that is curated has the `\"curated_product\": true` attribute displayed.\n *\n * :::note\n *\n * Currently, published catalogs are limited to the current release and two releases prior to the current release.\n *\n * :::\n *\n * If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. See [Resolving catalog rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).\n *\n * You can see the parent nodes a product is associated with in the `bread_crumbs` and `bread_crumb_nodes` metadata for each product. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).\n *\n * The `variations` object lists the variation IDs and variation option IDs and their corresponding product IDs that are generated when the variation and variation options are built with a product. The `variations` object can then be added to your catalogs. By default, variations and variation options are sorted randomly. You can use the `sort_order` attribute to sort the order of your variation and variation options in `variations`. Once a parent product is published in a catalog, the [Get a List of products in a catalog release](/docs/api/pxm/catalog/get-all-products) response displays the sorted variations and variation options. Variations and variation options are displayed in descending order according to their `sort_order` values.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available when filtering on this endpoint.\n *\n * | Operator | Description | Supported Attributes | Example |\n * |:---|:------------------------------------------------------------------------------------------------|:---------------------------------------------------------|:--- |\n * | `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. For `product_types` and `tags`, you can only specify one. For example, `filter=eq(product_types,child)`. | `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=eq(name,some-name)` |\n * | `In` | Checks if the values are included in the specified string. If they are, the condition is true. For `product_types` and `tags`, you can specify more than one. For example, `filter=in(product_types,child,bundle)`. | `id`, `name`, `sku`, `slug`, `manufacturer_part_num`, `upc_ean`, `product_types`, `tags` | `filter=in(id,some-id)` |\n *\n * ### Building breadcrumbs in a storefront\n *\n * In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.\n *\n * An example is shown below:\n *\n * `filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`\n *\n * - Specify the node IDs directly attached to the product in the filter expression.\n * - You can include as many node IDs as required.\n * - It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.\n *\n * ### Including Resources\n *\n * Using the `include` parameter, you can retrieve top-level resources, such as, files or main image, bundle component products and product attributes, such as SKU or slug.\n *\n * | Parameter | Required | Description |\n * | :---------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * See [**Including Resources**](/guides/Getting-Started/includes).\n *\n */\nexport const getProductsForNodeOptions = (\n options: Options<GetProductsForNodeData>,\n) =>\n queryOptions<\n GetProductsForNodeResponse,\n GetProductsForNodeError,\n GetProductsForNodeResponse,\n ReturnType<typeof getProductsForNodeQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getProductsForNode({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getProductsForNodeQueryKey(options),\n })\n\nexport const getCartsQueryKey = (options?: Options<GetCartsData>) =>\n createQueryKey(\"getCarts\", options)\n\n/**\n * Get Carts\n *\n * Retrieves a list of carts. The carts returned depend on the authentication method used:\n *\n * | Authentication Method | Header | Returns |\n * | :--- | :--- | :--- |\n * | **Customer Token** | `X-Moltin-Customer-Token` | Carts for the specified customer. See [Customer Tokens](/docs/customer-management/customer-management-api/customer-tokens). |\n * | **Account Token** | `EP-Account-Management-Authentication-Token` | Carts for the specified account. See [Account Management Token](/docs/api/accounts/post-v-2-account-members-tokens). |\n * | **Client Credentials** | `Authorization: Bearer <token>` | All carts or only registered carts, controlled by the `show_all_carts` setting. See [Cart Settings](/docs/api/carts/put-v-2-settings-cart). |\n *\n * **Client Credentials Behavior:**\n * - When `show_all_carts` is `true`: Returns all carts in the store.\n * - When `show_all_carts` is `false`: Returns only registered carts (associated with customers or accounts).\n *\n * **Sorting**\n *\n * Carts are sorted in descending order by `updated_date`. For more information, see [Pagination](/guides/Getting-Started/pagination).\n *\n */\nexport const getCartsOptions = (options?: Options<GetCartsData>) =>\n queryOptions<\n GetCartsResponse,\n GetCartsError,\n GetCartsResponse,\n ReturnType<typeof getCartsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCarts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCartsQueryKey(options),\n })\n\n/**\n * Create a Cart\n *\n *\n * Creates a cart. Call this endpoint each time a customer creates a cart.\n *\n * Each shopper can have multiple carts. Use the carts API to create a cart. The carts are distinct from one another. Shoppers can add different items to their carts. They can check out one of the carts without affecting the content or status of their other carts.\n *\n * After the shopper checks out the cart, the cart remains available to the shopper. The cart is persistent and stays with the shopper after it is used.\n *\n * You can create a cart to specify custom discounts. You can enable custom discounts when the `discount_settings.custom_discounts_enabled` field is set to `true`. Default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * You can also create a cart when inventory checks are not performed until checkout by setting the `inventory_settings.defer_inventory_check` field to `true`. Again the default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * ### Preview Cart\n *\n * You can set a future date for your shopping cart and view the promotions that will be available during that time period. This feature enables you to validate your promotion settings and observe how they will be applied in the cart.\n *\n * :::caution\n * - Once the cart is in preview mode, you cannot revert it to a regular cart.\n * - Carts with `snapshot_date` are same as preview carts.\n * - You cannot checkout a cart that includes a `snapshot_date`.\n * - To delete a promotion preview cart, use [Delete a cart](/docs/api/carts/delete-a-cart) endpoint.\n * - The promotion preview cart has the same expiration time as a regular cart based on the store's [cart settings](/docs/api/carts/put-v-2-settings-cart).\n * - Preview cart interactions skip inventory checks and events, allowing users to preview future carts without impacting related external systems.\n * :::\n *\n * ### Custom Attributes\n * You can create custom attributes for the cart object to include additional information, enabling promotions that target specific cart attributes.\n * For example:\n * ```\n * \"custom_attributes\":{\n * \"membership\": {\n * \"type\": \"string\",\n * \"value\": \"VIP\"\n * }\n * }\n * ```\n * See [adding cart custom attributes in promotions builder](/docs/commerce-manager/promotions-builder/creating-a-promotion-in-promotions-builder#adding-cart-custom-attributes)\n *\n * Cart custom attributes remain with the corresponding cart for the extent of its lifecycle. These custom attributes carry over to the resulting order objects on checkout and those on carts are deleted with their carts upon cart deletions.\n * Custom attributes can be updated or removed using a PUT request. To delete specific custom attributes, simply exclude the unwanted attribute objects from the PUT request body.\n *\n * ### Contact Email\n * You can attach an email to carts via the `contact.email` field. These values help identify guest shopper carts and, in the case of promotions with maximum usage settings for guest and registered shopper, track per-shopper promotion usages.\n * See [Create Max Uses Per Shopper Promotion Codes](/docs/promotions-builder/promotions-builder-codes/create-max-use-limit-promotion-codes)\n *\n * For example:\n * ```\n * \"contact\": {\n * \"email\": \"tester@email.com\"\n * }\n * ```\n *\n * Please note, this value is not supported for registered shopper carts (that is, carts with accounts or customers associated), as these carts already have email values associated via the shopper details. Accordingly, requests to add contact email information to registered shopper carts (and vice versa) result in error messages.\n *\n * ### Errors\n *\n * - `400 Bad Request` : This is returned when the submitted request does not adhere to the expected API contract for the endpoint.\n *\n * - For example, in the case of string fields, this error might indicate issues in the length or format of submitted strings. For more information about valid string fields, refer to Safe Characters section.\n * - In the case of preview carts (those with `snapshot_date`), an error is returned for invalid actions, such as removing the preview date, setting a preview date in the past, or attempting to checkout a cart with a `snapshot_date`.\n *\n */\nexport const createACartMutation = (\n options?: Partial<Options<CreateACartData>>,\n): UseMutationOptions<\n CreateACartResponse,\n CreateACartError,\n Options<CreateACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateACartResponse,\n CreateACartError,\n Options<CreateACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Cart\n *\n * You can delete a cart, including the items, name, description, and remove all associations.\n *\n * ### Errors\n *\n * The following error message is received when you attempt to delete a cart that is associated with a customer. Before deletion, ensure that the cart is disassociated.\n *\n * ```json\n * message: {\n * errors: [\n * {\n * status: 400,\n * title: 'Last cart',\n * detail: 'This is the last cart associated with a customer and it cannot be deleted, try disassociating instead'\n * }\n * ]\n * }\n * ````\n *\n */\nexport const deleteACartMutation = (\n options?: Partial<Options<DeleteACartData>>,\n): UseMutationOptions<\n DeleteACartResponse,\n DeleteACartError,\n Options<DeleteACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteACartResponse,\n DeleteACartError,\n Options<DeleteACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getACartQueryKey = (options: Options<GetACartData>) =>\n createQueryKey(\"getACart\", options)\n\n/**\n * Get a Cart\n *\n * Use this endpoint to retrieve a specific cart. If a cart ID does not exist, a new cart will be automatically created. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs in the `relationships` section.\n *\n * You can easily get a new or existing cart by providing the unique cart reference in the request. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs in the relationships section.\n *\n * :::note\n *\n * - The default cart name is Cart. However, you can update the cart name as required. Ensure that the string length of the name is greater than or equal to one. Follow the safe character guidelines for name and description naming. For more information about cart ID naming requirements, see the [Safe Characters](/guides/Getting-Started/safe-characters) section.\n * - Outside of the JS-SDK, we don't handle creating cart references. You need to create your own.\n *\n * :::\n *\n * :::caution\n *\n * An empty cart is returned for any carts that don't currently exist. For more information about the cart items object, see [Get Cart Items](/docs/api/carts/get-cart-items).\n *\n * :::\n *\n * ### Query parameters\n *\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:-------------------------------------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The information included are `items`,`tax_items`, `custom_discounts`, or `promotions`. |\n *\n */\nexport const getACartOptions = (options: Options<GetACartData>) =>\n queryOptions<\n GetACartResponse,\n GetACartError,\n GetACartResponse,\n ReturnType<typeof getACartQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getACart({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getACartQueryKey(options),\n })\n\n/**\n * Update a Cart\n *\n * Updates cart properties for the specified cartID.\n *\n * You can update a cart to specify custom discounts. You can enable custom discounts when the `discount_settings.custom_discounts_enabled` field is set to `true`. Default is set from cart discount settings for the store. See [Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n * You can also create a cart when inventory checks are not performed until checkout by setting the `inventory_settings.defer_inventory_check` field to `true`. Again the default is set from cart discount settings for the store. See [Update Cart Settings](/docs/api/carts/put-v-2-settings-cart).\n *\n */\nexport const updateACartMutation = (\n options?: Partial<Options<UpdateACartData>>,\n): UseMutationOptions<\n UpdateACartResponse,\n UpdateACartError,\n Options<UpdateACartData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateACartResponse,\n UpdateACartError,\n Options<UpdateACartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateACart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete all Cart Items\n *\n * A shopper can clean up their cart, deleting custom items, promotions, and so on, while the empty cart remains available. The cart id, name, description, and any account or customer associations persist. The shopper can continue to add items to the cart.\n *\n */\nexport const deleteAllCartItemsMutation = (\n options?: Partial<Options<DeleteAllCartItemsData>>,\n): UseMutationOptions<\n DeleteAllCartItemsResponse,\n DeleteAllCartItemsError,\n Options<DeleteAllCartItemsData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAllCartItemsResponse,\n DeleteAllCartItemsError,\n Options<DeleteAllCartItemsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAllCartItems({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCartItemsQueryKey = (options: Options<GetCartItemsData>) =>\n createQueryKey(\"getCartItems\", options)\n\n/**\n * Get Cart Items\n *\n *\n * Use this endpoint to retrieve cart items. If the cart is associated with shipping groups, calling this endpoint displays the associated shipping group IDs.\n *\n * You can use this endpoint to retrieve the breakdown of cart items by promotion ID. For example, if you have Promotions Standard item discount with code *sale2024*, Rule Promotions item discount with code *sale2024*, and Rule Promotions cart discount with code *sale2024*, the `discounts.constituents` field in the response example will show the breakdown of the same promotion code used in both Promotions Standard and Rule Promotions.\n *\n * ```json\n * \"data\": [\n * {\n * \"id\": \"98de010d-dd10-4fa5-a070-0b9bcdc72974\",\n * \"type\": \"cart_item\",\n * \"product_id\": \"5a4662d2-9a2b-4f6e-a215-2970db914b0c\",\n * \"name\": \"sku1\",\n * \"description\": \"sku1\",\n * \"sku\": \"sku1\",\n * \"slug\": \"sku1\",\n * \"image\": {\n * \"mime_type\": \"\",\n * \"file_name\": \"\",\n * \"href\": \"\"\n * },\n * \"quantity\": 1,\n * \"manage_stock\": false,\n * \"unit_price\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"value\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"discounts\": [\n * {\n * \"amount\": {\n * \"amount\": -2000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"e4d929d5-f471-4317-9a86-a84a6c572b44\",\n * \"promotion_source\": \"rule-promotion\",\n * \"is_cart_discount\": true\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"de19a043-a6da-4bde-b896-d17e16b77e25\",\n * \"promotion_source\": \"rule-promotion\"\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"509295ee-2971-45b6-801e-95df09756989\"\n * },\n * {\n * \"amount\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"includes_tax\": false\n * },\n * \"code\": \"sale2024\",\n * \"id\": \"ca79e606-7ecd-41ac-9478-af4c8c28c546\",\n * \"promotion_source\": \"rule-promotion\",\n * \"is_cart_discount\": true\n * }\n * ],\n * \"links\": {\n * \"product\": \"https://useast.api.elasticpath.com/v2/products/5a4662d2-9a2b-4f6e-a215-2970db914b0c\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"with_tax\": {\n * \"unit\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * },\n * \"value\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * }\n * },\n * \"without_tax\": {\n * \"unit\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * },\n * \"value\": {\n * \"amount\": 5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$50.00\"\n * }\n * },\n * \"tax\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"discount\": {\n * \"unit\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\"\n * },\n * \"value\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\"\n * }\n * },\n * \"without_discount\": {\n * \"unit\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$100.00\"\n * },\n * \"value\": {\n * \"amount\": 10000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$100.00\"\n * }\n * },\n * \"discounts\": {\n * \"sale2024\": {\n * \"amount\": -5000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$50.00\",\n * \"constituents\": {\n * \"509295ee-2971-45b6-801e-95df09756989\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"ca79e606-7ecd-41ac-9478-af4c8c28c546\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"de19a043-a6da-4bde-b896-d17e16b77e25\": {\n * \"amount\": -1000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$10.00\"\n * },\n * \"e4d929d5-f471-4317-9a86-a84a6c572b44\": {\n * \"amount\": -2000,\n * \"currency\": \"USD\",\n * \"formatted\": \"-$20.00\"\n * }\n * }\n * }\n * }\n * },\n * \"timestamps\": {\n * \"created_at\": \"2024-05-24T18:00:58Z\",\n * \"updated_at\": \"2024-05-24T18:00:58Z\"\n * }\n * },\n * \"catalog_id\": \"09b9359f-897f-407f-89a2-702e167fe781\",\n * \"catalog_source\": \"pim\"\n * }\n * ```\n *\n */\nexport const getCartItemsOptions = (options: Options<GetCartItemsData>) =>\n queryOptions<\n GetCartItemsResponse,\n DefaultError,\n GetCartItemsResponse,\n ReturnType<typeof getCartItemsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCartItems({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCartItemsQueryKey(options),\n })\n\n/**\n * Add Items to Cart\n *\n *\n * ### Add Product to Cart\n *\n * Adding a Product to Cart is the most common Cart action. If you want to add any custom products or promotions, you need to do that as a separate action.\n *\n * #### Dynamic Bundles\n *\n * A bundle is a purchasable product that is composed of a combination of two or more products that you want to sell together. You can create multiple components within a bundle. Each component can have one or more options. Each option is a product and a quantity. You can configure minimum and/or maximum values for the number of product options in a component that your shoppers can select. For example, you can enable a shopper to select 1 or more product options from a list of 10. These are called [dynamic bundles](/docs/api/pxm/products/products#dynamic-bundles).\n *\n * Your dynamic bundles are displayed in your published catalogs.\n *\n * 1. Use the configure a shopper endpoint to allow shoppers to make their selections from a bundle.\n * 2. In the response of the configure a shopper, the `bundle_configuration` object contains the bundle selections a shopper has made.\n * 3. In the add a product to cart request, use the `bundle_configuration` object to add the customers selections to a cart.\n *\n * ```json\n * \"bundle_configuration\": {\n * \"selected_options\": {\n * \"games\": {\n * \"d7b79eb8-19d8-45ea-86ed-2324a604dd9c\": 1\n * },\n * \"toys\": {\n * \"0192ccdd-6d33-4898-87d7-c4d87f2bf8ea\": 1,\n * \"1aea6f97-f0d9-452c-b3c1-7fb5629ead82\": 1\n * }\n * }\n * }\n * ```\n *\n * When a cart is checked out, the options a shopper selected are added to the order. See [order items](/docs/api/carts/get-order-items).\n *\n * #### Personalized Products\n *\n * You can allow shoppers to personalize their goods by adding custom text inputs to products directly. This feature is particularly useful for customizable items, such as personalized T-shirts or greeting cards. You can use this functionality by leveraging the `custom_inputs` attribute, and defining the details and validation rules for the custom text.\n *\n * First, you must configure a `custom_inputs` attribute when creating a new product or updating an existing product. Once you have defined your custom inputs on a product, you must configure the custom inputs in your orders.\n *\n * For example, you may sell T-shirts that can have personalized text on the front and back of the shirt.\n *\n * ```json\n * {\n * \"data\": {\n * \"type\": \"product\",\n * \"attributes\": {\n * \"custom_inputs\": {\n * \"front\": {\n * \"name\": \"T-Shirt Front\",\n * \"validation_rules\": [\n * {\n * \"type\": \"string\",\n * \"options\": {\n * \"max_length\": 50\n * }\n * }\n * ],\n * \"required\": false\n * },\n * \"back\": {\n * \"name\": \"T-Shirt Back\",\n * \"validation_rules\": [\n * {\n * \"type\": \"string\",\n * \"options\": {\n * \"max_length\": 50\n * }\n * }\n * ],\n * \"required\": false\n * }\n * }\n * }\n * }\n * }\n * ```\n *\n * If the same product has different `custom_inputs` attributes, then these are added as separate items in a cart.\n *\n * The `custom_inputs` attribute is stored in the cart item and the text for `custom_input` must not exceed 255 characters in length. When a cart is checked out, the `custom_inputs` attribute becomes part of the order.\n *\n * #### Limitations on Usage of `custom_inputs` with Specific Promotion Types\n *\n * When you add products to a cart with `custom_inputs`, there are certain limitations on usage of the `custom_inputs` with the following promotion types:\n *\n * - For [Free Gift Promotions](/docs/api/promotions/create-a-promotion), you can add `custom_inputs` to gift items.\n * - For [Fixed Bundle Discount Promotions](/docs/api/promotions/create-a-promotion), the promotion applies as long as the cart contains the bundle SKUs even when there are different `custom_inputs`.\n * - For [X for Y Discount Promotion and X for amount discount promotion](/docs/api/promotions/create-a-promotion), the promotion applies when there are two SKUs with the same `custom_inputs`. The promotion does not apply when there are different `custom_inputs` and the SKUs are in different line items.\n *\n * #### Stock locations\n *\n * When adding to a cart it is possible to specify which [stock location](/docs/api/pxm/inventory_mli/inventories-introduction?#multi-location-inventories) should be used for tracking inventory for that product by specifying its slug in `location`. This might represent the warehouse a product is shipped from or the store holding the stock in a Buy Online Pick Up In Store scenario.\n *\n * Each line item is restricted to a single stock location. If the same product is added with a different location then the most recently-specified location will be used for the total quantity of that line item.\n *\n * :::note\n *\n * - Any requests to add a product to cart returns the collection of cart items.\n * - [Tax items](/docs/api/carts/tax-items) may optionally be added with the product. Only administrators with [client_credentials access tokens](/docs/api/authentication/create-an-access-token) are able to do this. If included, they replace any existing taxes on the product.\n * - The cart currency is set when the first item is added to the cart.\n * - The product being added to the cart requires a price in the same currency as the other items in the cart. The API returns a 400 error if a price is not defined in the correct currency.\n * - A cart can contain a maximum of 100 unique items. Items include products, custom items, tax items, and promotions.\n * - There are a number of actions that happen to your inventory when checking out and paying for an order. For more information, see the [Inventory](/docs/api/pxm/inventory/inventories-introduction) documentation.\n *\n * :::\n *\n * ### Including Resources\n *\n * When you make an `Add Product to Cart` request to the catalog-view service, you can obtain details of the component products. If you include the optional parameter `include=component_products` in the request, the response will include details for each component product.\n *\n * When a bundle with selected component products is added to a cart, the cart displays both the bundle pricing and component product IDs.\n *\n * The response example is returned with a new field called `component_products` under `bundle_configuration`, which is a list of component products that the user has selected for dynamic bundles.\n *\n * | Parameter | Required | Description |\n * |:------------------------|:-------------|:-------------------|\n * | `component_products` | Optional | The component product data and key attribute data, such as SKU or slug, to return for component products in a product bundle. |\n * | `main_image` | Optional | The main images associated with a product. |\n * | `files` | Optional | Any files associated with a product. |\n *\n * ```json\n * \"bundle_configuration\": {\n * \"selected_options\": {\n * \"mixed-shirts\": {\n * \"16a6cc14-6ebb-4156-9973-e6a0f92f5731\": 3,\n * \"55037cc5-f382-4039-95c6-1e04ac0351d3\": 2,\n * \"standard-shirts\"\n * \"70f1c9d2-c580-4839-bd6c-a0a9b91d5159\": 5\n * }\n * },\n * \"component_products\": [\n * {\n * \"id\": \"16a6cc14-6ebb-4156-9973-e6a0f92f5731\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"Red T-shirt\",\n * \"description\": \"Standard red t-shirt.\",\n * \"slug\": \"red-t-shirt-slug\",\n * \"sku\": \"red-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * },\n * {\n * \"id\": \"55037cc5-f382-4039-95c6-1e04ac0351d3\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"Blue T-shirt\",\n * \"description\": \"Standard blue t-shirt.\",\n * \"slug\": \"blue-t-shirt-slug\",\n * \"sku\": \"blue-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * },\n * {\n * \"id\": \"70f1c9d2-c580-4839-bd6c-a0a9b91d5159\",\n * \"type\": \"product\",\n * \"attributes\": {\n * \"name\": \"White T-shirt\",\n * \"description\": \"Standard white t-shirt.\",\n * \"slug\": \"white-t-shirt-slug\",\n * \"sku\": \"white-t-shirt-sku\",\n * \"status\": \"live\",\n * \"commodity_type\": \"physical\"\n * },\n * \"meta\": {\n * \"display_price\": {\n * \"without_tax\": {\n * \"amount\": 500,\n * \"currency\": \"USD\",\n * \"formatted\": \"$5.00\"\n * }\n * }\n * }\n * }\n * ]\n * }\n * ```\n *\n * See [Including Resources](https://elasticpath.dev/guides/Getting-Started/includes).\n *\n * ### Add Subscription to Cart\n *\n * To add a subscription to your cart, you need to provide the ID of the subscription offering, and the ID of the pricing option and plan within that offering that you want to subscribe to.\n *\n * ```json\n * {\n * {\n * \"data\": {\n * \"id\": \"5b9be99f-1c94-4ddd-9718-81adab0cc3e0\",\n * \"type\": \"subscription_item\",\n * \"quantity\": 1,\n * \"subscription_configuration\": {\n * \"plan\": \"dfa31307-748c-4369-8571-709f924a0807\",\n * \"pricing_option\": \"40010dde-2f38-489b-8b3f-14a13cbfb431\"\n * }\n * }\n * }\n * ```\n *\n * The price of the subscription item in the cart reflects the cost of the subscription's initial billing period. Once the cart has been checked out and the order paid for, the subscription will be automatically created in the subscriptions service.\n *\n * ### Add Custom Item to Cart\n *\n * You can add a custom item to the cart when you don't manage things like shipping, taxes and inventory in Commerce.\n *\n * For [Shipping Groups](/docs/ship-groups/shipping-groups/index), once you have created a [cart shipping group](/docs/ship-groups/shipping-groups/shipping-groups-api/create-cart-shipping-group), you need to link it to the cart items. This is important, because it is necessary to associate items with shipping groups in order to include shipping groups in the corresponding cart, order, and totals.\n *\n * :::note\n *\n * - Custom Cart Items are available when using [implicit access tokens](/docs/api/authentication/create-an-access-token). Ensure that you always check each order has the correct details for each item, most importantly, price.\n *\n * :::\n *\n * ### Add Promotion to Cart\n *\n * You can use the Promotions API to apply discounts to your cart as a special cart item type. Any requests to add a product to cart will return a collection of cart items.\n *\n * There are certain limitations on usage of the `custom_inputs` attribute with some promotion types. See [Limitations on Usage of `custom_inputs` with Specific Promotion Types](/docs/api/carts/manage-carts#limitations-on-usage-of-custom_inputs-with-specific-promotion-types).\n *\n * To remove promotion from the cart via the promotion code, see [Delete Promotion Code from Cart](/docs/api/carts/delete-a-promotion-via-promotion-code).\n *\n * ### Re-order\n *\n * From a shopper's order history, they can add the items from a previous order into their carts. Shoppers can add items regardless of past order status, such as incomplete or not paid. For more information, see [Orders](/docs/api/carts/orders).\n *\n * :::note\n * - Any requests to add an item to cart return a collection of [cart items](/docs/api/carts/cart-items).\n * - A cart can contain a maximum of 100 unique items. Items include products, custom items, and promotions.\n * - When a shopper creates a cart and re-orders items from an order with properties such as custom attributes, custom discounts, and payment intent ID, these properties will remain unchanged in the original cart.\n * - Custom items do not exist in catalogs, and therefore cannot be reordered.\n * :::\n *\n * ### Merging Carts\n *\n * A shopper can have multiple carts, and the system may automatically merge items from an anonymous cart into the shopper's registered cart when they sign in. For example, if a shopper has an existing cart with items `A`, `B` and `C`, and later adds items `D` and `E` while not signed in, the system can merge these carts when the shopper signs in. After the carts merge, the cart contains items `A`, `B`, `C`, `D` and `E`.\n *\n * If any items are duplicated from the anonymous cart to the registered cart, their quantities are incremented accordingly. For example, if a shopper's existing cart with items `A`, `B` and `C`, and they later add two more `A` items and one `B` item while not signed in, the system will merge the carts when the shopper signs in. The existing cart will now contain three `A` items, two `B` items, and one `C` item.\n *\n * :::note\n *\n * When the system merges items from one cart into another cart, properties such as custom attributes, custom discounts, and payment intent ID will remain unchanged in the original cart.\n *\n * :::\n *\n * ### Best Practices\n *\n * We recommend to include a unique `sku` code within the request body while adding custom items to carts. If the same `sku` is used for multiple products, they are merged into a single line item.\n *\n * For example, if a cart consists of the following items:\n *\n * - `product-1` with quantity 1 and sku code as `sku-1`\n * - `product-2` with quantity 1 and sku code as `sku-1`\n * - `product-3` with quantity 1 and sku code as `sku-2`.\n *\n * The following response is returned where it combines all products with the same sku codes into a single line item, while products with a unique sku codes are represented as separate items:\n *\n * ```json\n * {\n * \"data\": [\n * {\n * \"id\": \"c58760f4-8889-4719-b34d-be1f1d11ae59\",\n * \"type\": \"custom_item\",\n * \"name\": \"product-1\",\n * \"description\": \"My first custom item!\",\n * \"sku\": \"sku-1\",\n * \"slug\": \"\",\n * \"image\": {\n * \"mime_type\": \"\",\n * \"file_name\": \"\",\n * \"href\": \"\"\n * },\n * \"quantity\": 2,\n * \"manage_stock\": false,\n * \"unit_price\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"includes_tax\": true\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"includes_tax\": true\n * },\n * \"links\": {},\n * \"meta\": {\n * \"display_price\": {\n * \"with_tax\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * },\n * \"without_tax\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * },\n * \"tax\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"discount\": {\n * \"unit\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * },\n * \"value\": {\n * \"amount\": 0,\n * \"currency\": \"USD\",\n * \"formatted\": \"$0.00\"\n * }\n * },\n * \"without_discount\": {\n * \"unit\": {\n * \"amount\": 20000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$200.00\"\n * },\n * \"value\": {\n * \"amount\": 40000,\n * \"currency\": \"USD\",\n * \"formatted\": \"$400.00\"\n * }\n * }\n * },\n * \"timestamps\": {\n * \"created_at\": \"2023-05-02T16:28:11Z\",\n * \"updated_at\": \"2023-05-02T16:28:18Z\"\n * }\n * }\n * ]\n * ```\n *\n */\nexport const manageCartsMutation = (\n options?: Partial<Options<ManageCartsData>>,\n): UseMutationOptions<\n ManageCartsResponse,\n ManageCartsError,\n Options<ManageCartsData>\n> => {\n const mutationOptions: UseMutationOptions<\n ManageCartsResponse,\n ManageCartsError,\n Options<ManageCartsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await manageCarts({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Update Items in Cart\n *\n * The bulk update feature allows shoppers to update an array of items to their cart in one action, rather than updating each item one at a time. Shoppers can update quantity and shipping group details in bulk requests. This minimizes the time for shoppers while updating items to their cart. Shoppers can even update multiple items with the same or different shipping groups to their cart.\n *\n * When you update multiple items that qualify for free gifts in the cart, the corresponding free gifts for all eligible products are also automatically updated in the cart.\n *\n */\nexport const bulkUpdateItemsInCartMutation = (\n options?: Partial<Options<BulkUpdateItemsInCartData>>,\n): UseMutationOptions<\n BulkUpdateItemsInCartResponse,\n BulkUpdateItemsInCartError,\n Options<BulkUpdateItemsInCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkUpdateItemsInCartResponse,\n BulkUpdateItemsInCartError,\n Options<BulkUpdateItemsInCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkUpdateItemsInCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Cart Item\n *\n * Use this endpoint to delete a cart item.\n */\nexport const deleteACartItemMutation = (\n options?: Partial<Options<DeleteACartItemData>>,\n): UseMutationOptions<\n DeleteACartItemResponse,\n DefaultError,\n Options<DeleteACartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteACartItemResponse,\n DefaultError,\n Options<DeleteACartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteACartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Cart Item\n *\n * You can easily update a cart item. A successful update returns the cart items.\n */\nexport const updateACartItemMutation = (\n options?: Partial<Options<UpdateACartItemData>>,\n): UseMutationOptions<\n UpdateACartItemResponse,\n UpdateACartItemError,\n Options<UpdateACartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateACartItemResponse,\n UpdateACartItemError,\n Options<UpdateACartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateACartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Account Cart Association\n *\n * You can delete an association between an account and a cart.\n */\nexport const deleteAccountCartAssociationMutation = (\n options?: Partial<Options<DeleteAccountCartAssociationData>>,\n): UseMutationOptions<\n DeleteAccountCartAssociationResponse,\n DeleteAccountCartAssociationError,\n Options<DeleteAccountCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAccountCartAssociationResponse,\n DeleteAccountCartAssociationError,\n Options<DeleteAccountCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAccountCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create an Account Cart Association\n *\n * You can create associations between an account and one or more carts. After cart associations exist for an account, the account can access those carts across any device.\n */\nexport const createAccountCartAssociationMutation = (\n options?: Partial<Options<CreateAccountCartAssociationData>>,\n): UseMutationOptions<\n CreateAccountCartAssociationResponse,\n CreateAccountCartAssociationError,\n Options<CreateAccountCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateAccountCartAssociationResponse,\n CreateAccountCartAssociationError,\n Options<CreateAccountCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createAccountCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Customer Cart Association\n *\n * You can delete an association between a customer and a cart.\n */\nexport const deleteCustomerCartAssociationMutation = (\n options?: Partial<Options<DeleteCustomerCartAssociationData>>,\n): UseMutationOptions<\n DeleteCustomerCartAssociationResponse,\n DeleteCustomerCartAssociationError,\n Options<DeleteCustomerCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomerCartAssociationResponse,\n DeleteCustomerCartAssociationError,\n Options<DeleteCustomerCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomerCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create a Customer Cart Association\n *\n * You can create associations between a customer and one or more carts. After cart associations exist for a customer, the customer can access those carts across any device.\n */\nexport const createCustomerCartAssociationMutation = (\n options?: Partial<Options<CreateCustomerCartAssociationData>>,\n): UseMutationOptions<\n CreateCustomerCartAssociationResponse,\n CreateCustomerCartAssociationError,\n Options<CreateCustomerCartAssociationData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCustomerCartAssociationResponse,\n CreateCustomerCartAssociationError,\n Options<CreateCustomerCartAssociationData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCustomerCartAssociation({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Promotion via Promotion Code\n *\n * You can remove promotion code from a cart if it was applied manually. This endpoint does not work if the promotion is applied automatically.\n */\nexport const deleteAPromotionViaPromotionCodeMutation = (\n options?: Partial<Options<DeleteAPromotionViaPromotionCodeData>>,\n): UseMutationOptions<\n DeleteAPromotionViaPromotionCodeResponse,\n DefaultError,\n Options<DeleteAPromotionViaPromotionCodeData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteAPromotionViaPromotionCodeResponse,\n DefaultError,\n Options<DeleteAPromotionViaPromotionCodeData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteAPromotionViaPromotionCode({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Tax Item to Cart\n *\n *\n * Use this endpoint to add a tax item to a cart.\n *\n * :::note\n *\n * There is a soft limit of 5 unique tax items per cart item at any one time.\n *\n * :::\n *\n */\nexport const addTaxItemToCartMutation = (\n options?: Partial<Options<AddTaxItemToCartData>>,\n): UseMutationOptions<\n AddTaxItemToCartResponse,\n AddTaxItemToCartError,\n Options<AddTaxItemToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddTaxItemToCartResponse,\n AddTaxItemToCartError,\n Options<AddTaxItemToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addTaxItemToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Tax Item to Bundle Component\n *\n *\n * Use this endpoint to add a tax item to a specific bundle component (component product) within a cart item.\n *\n * :::note\n *\n * There is a soft limit of 5 unique tax items per component product at any one time.\n *\n * :::\n *\n */\nexport const addTaxItemToCartItemComponentMutation = (\n options?: Partial<Options<AddTaxItemToCartItemComponentData>>,\n): UseMutationOptions<\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartItemComponentError,\n Options<AddTaxItemToCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddTaxItemToCartItemComponentResponse,\n AddTaxItemToCartItemComponentError,\n Options<AddTaxItemToCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addTaxItemToCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Tax Item from Bundle Component\n *\n *\n * Use this endpoint to delete a tax item from a specific bundle component (component product) within a cart item.\n *\n */\nexport const deleteTaxItemFromCartItemComponentMutation = (\n options?: Partial<Options<DeleteTaxItemFromCartItemComponentData>>,\n): UseMutationOptions<\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteTaxItemFromCartItemComponentError,\n Options<DeleteTaxItemFromCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteTaxItemFromCartItemComponentResponse,\n DeleteTaxItemFromCartItemComponentError,\n Options<DeleteTaxItemFromCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteTaxItemFromCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Tax Item on Bundle Component\n *\n * Use this endpoint to update a tax item on a specific bundle component (component product) within a cart item. To change tax value from `rate` to `amount`, set `rate` to `null`, then set `amount` value and vice versa.\n */\nexport const updateTaxItemFromCartItemComponentMutation = (\n options?: Partial<Options<UpdateTaxItemFromCartItemComponentData>>,\n): UseMutationOptions<\n UpdateTaxItemFromCartItemComponentResponse,\n DefaultError,\n Options<UpdateTaxItemFromCartItemComponentData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateTaxItemFromCartItemComponentResponse,\n DefaultError,\n Options<UpdateTaxItemFromCartItemComponentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateTaxItemFromCartItemComponent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Delete Tax Items from Cart\n *\n * Use this endpoint to bulk delete all tax items from all cart items and bundle component products in the cart.\n *\n * :::warning\n *\n * This operation will remove ALL tax items from:\n * - All cart items in the cart\n * - All bundle component products within bundle cart items\n *\n * :::\n *\n * ### Behavior\n *\n * - Removes all tax items from every cart item\n * - Removes all tax items from every component product in bundle cart items\n * - If no tax items exist anywhere in the cart, returns a 404 error\n *\n * ### Errors\n *\n * `404 Not Found`\n *\n * If no tax items exist in the cart (on cart items or component products):\n *\n * ```json\n * {\n * \"status\": 404,\n * \"title\": \"Resource Not Found\",\n * \"detail\": \"No tax items exist in the cart\"\n * }\n * ```\n *\n */\nexport const bulkDeleteTaxItemsFromCartMutation = (\n options?: Partial<Options<BulkDeleteTaxItemsFromCartData>>,\n): UseMutationOptions<\n BulkDeleteTaxItemsFromCartResponse,\n BulkDeleteTaxItemsFromCartError,\n Options<BulkDeleteTaxItemsFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkDeleteTaxItemsFromCartResponse,\n BulkDeleteTaxItemsFromCartError,\n Options<BulkDeleteTaxItemsFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkDeleteTaxItemsFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Add Tax Items to Cart\n *\n * Use this endpoint to bulk add tax items to cart items and bundle component products.\n *\n * :::note\n *\n * A cart item can only have a maximum of five tax items.\n * A bundle component product can only have a maximum of five tax items.\n *\n * :::\n *\n * ### Bundle Component Taxes\n *\n * To add tax items to bundle component products, include a `meta` object with `component_product_id` in each tax item:\n *\n * ```json\n * {\n * \"data\": [\n * {\n * \"type\": \"tax_item\",\n * \"code\": \"GST\",\n * \"name\": \"Goods and Services Tax\",\n * \"rate\": 0.1,\n * \"meta\": {\n * \"component_product_id\": \"12345678-1234-5678-9012-123456789012\"\n * },\n * \"relationships\": {\n * \"item\": {\n * \"data\": {\n * \"type\": \"cart_item\",\n * \"id\": \"cart-item-id\"\n * }\n * }\n * }\n * }\n * ]\n * }\n * ```\n *\n * ### Errors\n *\n *\n * `422 Unprocessable Entity`\n *\n *\n * In this example, when `options.add_all_or_nothing` is set to `true` and if\n * one of cart items is not found or has reached its maximum tax item limit,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"status\": 422,\n * \"title\": \"Add all or nothing.\",\n * \"detail\": \"Add all or nothing set to (true). Could not bulk add tax items to cart.\"\n * }\n *\n * ```\n *\n *\n * In this example, if you add more than five tax items to the same cart item,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"status\": 422,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Cannot exceed tax item limit of (5) on cart item.\",\n * \"meta\": {\n * \"id\": \"f88e6370-cb35-40b2-a998-c759f31dec0a\"\n * }\n * }\n * ```\n *\n *\n * `404`\n *\n *\n * In this example, if there is a mismatch between `cart_item`/`custom_item`\n * and the `relationships.item.data.type` specified in the bulk add tax item,\n * the following error response is returned:\n *\n *\n * ```json\n *\n * {\n * \"data\": [],\n * \"errors\": [\n * {\n * \"status\": 404,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Mismatch between bulk tax item type(cart_item) and cart item type(custom_item).\",\n * \"meta\": {\n * \"id\": \"56aab5d1-1dd4-45ed-88ed-4d0cc396b62d\"\n * }\n * },\n * {\n * \"status\": 404,\n * \"title\": \"Tax item not added to cart item.\",\n * \"detail\": \"Mismatch between bulk tax item type(cart_item) and cart item type(custom_item).\",\n * \"meta\": {\n * \"id\": \"56aab5d1-1dd4-45ed-88ed-4d0cc396b62d\"\n * }\n * }\n * ]\n * }\n *\n * ```\n *\n */\nexport const bulkAddTaxItemsToCartMutation = (\n options?: Partial<Options<BulkAddTaxItemsToCartData>>,\n): UseMutationOptions<\n BulkAddTaxItemsToCartResponse,\n BulkAddTaxItemsToCartError,\n Options<BulkAddTaxItemsToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkAddTaxItemsToCartResponse,\n BulkAddTaxItemsToCartError,\n Options<BulkAddTaxItemsToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkAddTaxItemsToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete a Tax Item\n *\n * Use this endpoint to delete a tax item.\n */\nexport const deleteATaxItemMutation = (\n options?: Partial<Options<DeleteATaxItemData>>,\n): UseMutationOptions<\n DeleteATaxItemResponse,\n DefaultError,\n Options<DeleteATaxItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteATaxItemResponse,\n DefaultError,\n Options<DeleteATaxItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteATaxItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Tax Item\n *\n * Use this endpoint to update a tax item. To change tax value from `rate` to `amount`, set `rate` to `null`, then set `amount` value and vice versa.\n */\nexport const updateATaxItemMutation = (\n options?: Partial<Options<UpdateATaxItemData>>,\n): UseMutationOptions<\n UpdateATaxItemResponse,\n DefaultError,\n Options<UpdateATaxItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateATaxItemResponse,\n DefaultError,\n Options<UpdateATaxItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateATaxItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Delete Custom Discounts From Cart\n *\n * Use this endpoint to bulk delete custom discounts from cart.\n */\nexport const bulkDeleteCustomDiscountsFromCartMutation = (\n options?: Partial<Options<BulkDeleteCustomDiscountsFromCartData>>,\n): UseMutationOptions<\n BulkDeleteCustomDiscountsFromCartResponse,\n DefaultError,\n Options<BulkDeleteCustomDiscountsFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkDeleteCustomDiscountsFromCartResponse,\n DefaultError,\n Options<BulkDeleteCustomDiscountsFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkDeleteCustomDiscountsFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Bulk Add Custom Discounts to Cart\n *\n * The default value for custom discounts on both the cart and cart items is set to 5 if this parameter is not configured in the store. To verify the custom discount limit value, call [Get all settings](/docs/api/settings/get-v-2-settings) endpoint.\n *\n * To increase the custom discount value, contact [Elastic Path Support team](https://support.elasticpath.com/hc/en-us).\n *\n * Custom discounts cannot be combined with Elastic Path promotions. If the cart already contains Elastic Path promotions, remove them before adding custom discounts.\n *\n */\nexport const bulkAddCustomDiscountsToCartMutation = (\n options?: Partial<Options<BulkAddCustomDiscountsToCartData>>,\n): UseMutationOptions<\n BulkAddCustomDiscountsToCartResponse,\n BulkAddCustomDiscountsToCartError,\n Options<BulkAddCustomDiscountsToCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n BulkAddCustomDiscountsToCartResponse,\n BulkAddCustomDiscountsToCartError,\n Options<BulkAddCustomDiscountsToCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await bulkAddCustomDiscountsToCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Custom Discount From Cart\n *\n * Use this endpoint to delete custom discount from cart.\n */\nexport const deleteCustomDiscountFromCartMutation = (\n options?: Partial<Options<DeleteCustomDiscountFromCartData>>,\n): UseMutationOptions<\n DeleteCustomDiscountFromCartResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomDiscountFromCartResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomDiscountFromCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Custom Discount For Cart\n *\n * Use this endpoint to update a custom discount in your cart.\n */\nexport const updateCustomDiscountForCartMutation = (\n options?: Partial<Options<UpdateCustomDiscountForCartData>>,\n): UseMutationOptions<\n UpdateCustomDiscountForCartResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCustomDiscountForCartResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCustomDiscountForCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Add Custom Discount To Cart Item\n *\n * Use this endpoint to add a custom discount to cart item. Custom discounts cannot be combined with Elastic Path promotions. If the cart already contains Elastic Path promotions, remove them before adding custom discounts.\n */\nexport const addCustomDiscountToCartItemMutation = (\n options?: Partial<Options<AddCustomDiscountToCartItemData>>,\n): UseMutationOptions<\n AddCustomDiscountToCartItemResponse,\n AddCustomDiscountToCartItemError,\n Options<AddCustomDiscountToCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n AddCustomDiscountToCartItemResponse,\n AddCustomDiscountToCartItemError,\n Options<AddCustomDiscountToCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await addCustomDiscountToCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Custom Discount From Cart Item\n *\n * Use this endpoint to delete custom discount from cart item.\n */\nexport const deleteCustomDiscountFromCartItemMutation = (\n options?: Partial<Options<DeleteCustomDiscountFromCartItemData>>,\n): UseMutationOptions<\n DeleteCustomDiscountFromCartItemResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCustomDiscountFromCartItemResponse,\n DefaultError,\n Options<DeleteCustomDiscountFromCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCustomDiscountFromCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update Custom Discount For Cart Item\n *\n * Use this endpoint to update a custom discount in your cart item.\n */\nexport const updateCustomDiscountForCartItemMutation = (\n options?: Partial<Options<UpdateCustomDiscountForCartItemData>>,\n): UseMutationOptions<\n UpdateCustomDiscountForCartItemResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartItemData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCustomDiscountForCartItemResponse,\n DefaultError,\n Options<UpdateCustomDiscountForCartItemData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCustomDiscountForCartItem({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupsQueryKey = (\n options: Options<GetShippingGroupsData>,\n) => createQueryKey(\"getShippingGroups\", options)\n\n/**\n * Retrieve all shipping groups for a cart\n *\n * Retrieve all shipping groups for a cart\n */\nexport const getShippingGroupsOptions = (\n options: Options<GetShippingGroupsData>,\n) =>\n queryOptions<\n GetShippingGroupsResponse,\n GetShippingGroupsError,\n GetShippingGroupsResponse,\n ReturnType<typeof getShippingGroupsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupsQueryKey(options),\n })\n\n/**\n * Create a new shipping group for a cart\n *\n * Create a new shipping group for a cart\n */\nexport const createShippingGroupMutation = (\n options?: Partial<Options<CreateShippingGroupData>>,\n): UseMutationOptions<\n CreateShippingGroupResponse,\n CreateShippingGroupError,\n Options<CreateShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateShippingGroupResponse,\n CreateShippingGroupError,\n Options<CreateShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete Cart Shipping Group\n *\n * Deletes a shipping group from a cart. You cannot delete a shipping group that is attached to cart items.\n * You must first remove the shipping group from all cart items before deleting the shipping group.\n *\n */\nexport const deleteCartShippingGroupMutation = (\n options?: Partial<Options<DeleteCartShippingGroupData>>,\n): UseMutationOptions<\n DeleteCartShippingGroupResponse,\n DeleteCartShippingGroupError,\n Options<DeleteCartShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteCartShippingGroupResponse,\n DeleteCartShippingGroupError,\n Options<DeleteCartShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteCartShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupByIdQueryKey = (\n options: Options<GetShippingGroupByIdData>,\n) => createQueryKey(\"getShippingGroupById\", options)\n\n/**\n * Retrieve a specific shipping group for a cart\n *\n * Retrieve a specific shipping group for a cart\n */\nexport const getShippingGroupByIdOptions = (\n options: Options<GetShippingGroupByIdData>,\n) =>\n queryOptions<\n GetShippingGroupByIdResponse,\n GetShippingGroupByIdError,\n GetShippingGroupByIdResponse,\n ReturnType<typeof getShippingGroupByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroupById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupByIdQueryKey(options),\n })\n\n/**\n * Update a shipping group for a cart\n *\n * Update a specific shipping group for a cart\n */\nexport const updateShippingGroupMutation = (\n options?: Partial<Options<UpdateShippingGroupData>>,\n): UseMutationOptions<\n UpdateShippingGroupResponse,\n UpdateShippingGroupError,\n Options<UpdateShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateShippingGroupResponse,\n UpdateShippingGroupError,\n Options<UpdateShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create Stripe Payment Intent for a Cart\n *\n * The Cart Payment Intent feature enables the creation of a Stripe Payment Intent specifically tied to a shopping cart and its subsequent order. This allows Payment Intent users to track payment details from the cart stage and seamlessly maintain consistency in payment information throughout the order stage. Using these features, you can create Payment Intents for their carts, update Payment Intents with final cart details, and synchronize Payment Intents from Stripe to Commerce.\n *\n * :::note\n *\n * - Typically, in Commerce, inventory is allocated at the time of payment initiation after an order is created. However, in the case of Cart Payment Intent, information about the payment is received only upon synchronizing the order from Stripe to Commerce. This may happen after the payment is completed. Therefore, there might be a delay between the payment made and allocation, increasing the chance of paying for items that are not in stock.\n * - There are certain fields you can choose to set up when [creating a payment intent](https://stripe.com/docs/api/payment_intents/create). However, if you decide to update a payment intent, the available options may not be the same as those allowed while creating a payment intent. See [updating a payment intent](https://stripe.com/docs/api/payment_intents/update).\n *\n * :::\n *\n * The following steps outline the workflow associated with the Payment Intent:\n *\n * 1. [Add items to cart](/docs/api/carts/manage-carts#add-custom-item-to-cart).\n * 1. [Create a Payment Intent for the cart](/docs/api/carts/create-cart-payment-intent). The Payment Intent is created in Stripe, reflecting the cart and transaction details, including currency, amounts, payment type, and any optional Stripe details. The Payment Intent ID is generated and linked to the cart.\n * 1. [Update a Payment Intent](/docs/carts-orders/update-cart-payment-intent). This step is optional but becomes necessary when there are changes in the cart details at the time of payment. It ensures the Payment Intent accurately reflects the current cart details when processing the payments on the front end.\n * 1. [Checkout the cart](/docs/api/carts/checkout). An unpaid order is created, and the Payment Intent ID is linked to the order.\n * 1. [Confirm the order](/docs/carts-orders/confirm-an-order). This is important because after checkout, it is essential to confirm the Payment Intent and synchronize it with Commerce. This results in a corresponding transaction and change in order statuses in Commerce. Additionally, the Payment Intent ID is removed from the order once it is linked via the transaction.\n *\n * ### Best Practices\n *\n * We recommend you follow these practices to maintain consistency and accuracy when using Cart Payment Intent.\n *\n * - After checkout, we recommend clearing the shopping cart. You can achieve this using a [Delete a cart](/docs/api/carts/delete-a-cart) endpoint or [Update a cart](/docs/api/carts/update-a-cart) to remove the Payment Intent ID. This helps to avoid potential issues where subsequent checkouts for the same cart might unintentionally use the previous Stripe Payment Intent ID.\n * - If it is not reasonable to clear the cart immediately after checkout due to several subsequent, duplicate checkouts to the same cart, ensure that you only synchronize the Payment Intent when finalizing the order. Each order confirmation is unaware of the others, and syncing Payment Intent IDs for each confirmation can lead to duplicate transactions in Commerce. In other words, if you synchronize Payment Intents for earlier versions of a repeated checkout, you'll end up with multiple orders from the same cart, each having transactions linked to the same Payment Intent.\n * - To pay the entire amount at once, use the [Update Cart Payment Intent](/docs/carts-orders/update-cart-payment-intent) endpoint to update the Stripe Payment Intent with the final cart details when preparing to take the payment. Doing so, ensures that the Payment Intent accurately reflects the current cart details when processing payments on the front end. We do not recommend calling the [Update Cart Payment Intent](/docs/carts-orders/update-cart-payment-intent) for each individual change in the cart, as this can lead to more requests and may slow down the front-end performance.\n *\n */\nexport const createCartPaymentIntentMutation = (\n options?: Partial<Options<CreateCartPaymentIntentData>>,\n): UseMutationOptions<\n CreateCartPaymentIntentResponse,\n DefaultError,\n Options<CreateCartPaymentIntentData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateCartPaymentIntentResponse,\n DefaultError,\n Options<CreateCartPaymentIntentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createCartPaymentIntent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update a Payment Intent on a Cart\n *\n * Updates the payment information for a specific payment intent on a cart.\n */\nexport const updateCartPaymentIntentMutation = (\n options?: Partial<Options<UpdateCartPaymentIntentData>>,\n): UseMutationOptions<\n UpdateCartPaymentIntentResponse,\n DefaultError,\n Options<UpdateCartPaymentIntentData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateCartPaymentIntentResponse,\n DefaultError,\n Options<UpdateCartPaymentIntentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateCartPaymentIntent({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Checkout API\n *\n * When a Cart is ready for checkout, you can convert the cart to an order. The cart remains and can be modified and checked out again if required.\n *\n * A cart can be checked out with a customer ID, customer object, or with an account by authenticating with the `Client Credentials Token`.\n *\n * After a successful checkout, a response that contains the order is returned. If the cart is linked to a shipping group, the shipping group is also associated with the order after checkout.\n *\n * You can checkout using one of the following methods:\n * - **Customer ID**: You can checkout a cart with an existing customer ID.\n * - **Guest Checkout** (Checkout with Customer Object): You can checkout a cart with an associated customer name and email.\n * - **Checkout with Account**: The shopper authenticates with the `Client Credentials` Token.\n * - **Checkout with Account Management Authentication Token**: The shopper authenticates with the `Implicit Token` and the `EP-Account-Management-Authentication-Token`.\n *\n * :::note\n *\n * - The cart currency is set when the first item is added to the cart.\n * - The product being added to the cart requires a price in the same currency as the other items in the cart. The API returns a 400 error if a price is not defined in the correct currency.\n * - To ensure that a free gift is automatically applied to an order, set the promotion to automatic. The checkout process will not be successful if free gift items are out of stock. See [Errors](#errors) section.\n *\n * :::\n *\n * :::caution\n *\n * - By default, carts are automatically deleted 7 days after the last update. You can change this setting by [updating cart settings](/docs/api/carts/put-v-2-settings-cart).\n * - Your inventory is modified during checkout and payment of an order. For more information about the changes in the inventory, see the [Inventory](/docs/api/pxm/inventory/inventories-introduction) section.\n *\n * :::\n *\n * You can pass `order_number` and `external_ref` in the checkout endpoint or when [updating an order](/docs/api/carts/update-an-order). The `order_number` is an optional, user-managed field that is used as an alternative to `order_id`. When processing transactions through Authorize.net, the `order_number` is sent instead of the `order_id`, and it will appear in the invoice number section. If no `order_number` is provided, the `order_id` is sent to Authorize.net on payment by default. There are no duplication restrictions on the `order_number` value.\n *\n * ### Next Steps\n *\n * After a cart has been converted to an Order using either of the previous methods, you most likely want to capture payment for order. See [Paying for an Order](/docs/api/carts/payments).\n *\n * ### Errors\n *\n * The following error response is returned during checkout when an eligible item is added to the cart, and the free gift is out of stock.\n *\n * ```json\n * {\n * \"errors\": [\n * {\n * \"status\": 400,\n * \"title\": \"Insufficient stock\",\n * \"detail\": \"There is not enough stock to add gift2 to your cart\",\n * \"meta\": {\n * \"id\": \"f2b68648-9621-45a3-aed6-1b526b0f5beb\",\n * \"sku\": \"gift2\"\n * }\n * }\n * ]\n * }\n * ```\n *\n */\nexport const checkoutApiMutation = (\n options?: Partial<Options<CheckoutApiData>>,\n): UseMutationOptions<\n CheckoutApiResponse,\n CheckoutApiError,\n Options<CheckoutApiData>\n> => {\n const mutationOptions: UseMutationOptions<\n CheckoutApiResponse,\n CheckoutApiError,\n Options<CheckoutApiData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await checkoutApi({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getCustomerOrdersQueryKey = (\n options?: Options<GetCustomerOrdersData>,\n) => createQueryKey(\"getCustomerOrders\", options)\n\n/**\n * Get all Orders\n *\n * This endpoint returns all orders with custom flow fields. The pagination offset is set to fetch a maximum of 10,000 orders. If the store has 10,000 orders, and you fetch the orders without using filters, an error is returned. Use a filter to view orders when the order is beyond the 10,000 mark.\n *\n * :::note\n *\n * - Pass the `X-Moltin-Customer-Token` header to limit orders to a specific customer. See [Customer Tokens](/docs/customer-management/customer-management-api/customer-tokens).\n * - Pass the `EP-Account-Management-Authentication-Token` header to limit orders to a specific account. See [Account Management Token](/docs/api/accounts/post-v-2-account-members-tokens).\n * - You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * :::\n *\n * ### Filtering\n *\n * The following operators and attributes are available for filtering orders.\n *\n * | Attribute | Type | Operator | Example |\n * | :--- | :--- | :--- | :--- |\n * | `status` | `string` | `eq` | `eq(status,complete)` |\n * | `payment` | `string` | `eq` | `eq(payment,paid)` |\n * | `shipping` | `string` | `eq` | `eq(shipping,unfulfilled)` |\n * | `name` (`customer.name`) | `string` | `eq` / `like` | `like(name,Brad*)` |\n * | `email` (`customer.email`) | `string` | `eq` / `like` | `like(email,*@elasticpath.com)` |\n * | `customer_id` | `string` | `eq` / `like` | `eq(customer_id, e5a0d684-a4af-4919-a348-f66b0b4955e0)` |\n * | `account_id` | `string` | `eq` / `like` | `eq(account_id,3d7200c9-a9bc-4085-9822-63e80fd94a09)` |\n * | `account_member_id` | `string` | `eq` / `like` | `eq(account_member_id,2a8a3a92-2ccd-4b2b-a7af-52d3896eaecb)` |\n * | `contact.name` | `string` | `eq` / `like` | `eq(name,John Doe)` |\n * | `contact.email` | `string` | `eq` / `like` | `eq(email,John Doe)` |\n * | `shipping_postcode` | `string` | `eq` / `like` | `like(shipping_postcode,117*)` |\n * | `billing_postcode` | `string` | `eq` / `like` | `like(billing_postcode,117*)` |\n * | `with_tax` | `integer` | `gt`/`ge`/`lt`/`le` | `ge(with_tax,10000)` |\n * | `without_tax` | `integer` | `gt`/`ge`/`lt`/`le` | `ge(without_tax,10000)` |\n * | `currency` | `string` | `eq` | `eq(currency,USD)` |\n * | `product_id` | `string` | `eq` | `eq(product_id,6837058c-ae42-46db-b3c6-7f01e0c34b40)` |\n * | `product_sku` | `string` | `eq` | `eq(product_sku,deck-shoe-001)` |\n * | `created_at` | `date` | `eq` / `gt` / `ge`/ `le` / `lt` | `gt(created_at,YYYY-MM-DD)` |\n * | `updated_at` | `date` | `eq` / `gt` / `ge`/ `le`/ `lt` | `lt(updated_at,YYYY-MM-DD)` |\n * | `external_ref` | `string` | `eq` / `like` | `like(external_ref, 16be*)` |\n * | `order_number` | `string` | `eq` / `like` | `like(order_number, 123*)` |\n * ### Includes\n * You can include related resources with the order response by using the `include` query parameter.\n * | Name | Optional | Type | Description |\n * |:-----|:---------|:-----|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The information included are `items`, `tax_items`, `custom_discounts`, or `promotions`. |\n *\n */\nexport const getCustomerOrdersOptions = (\n options?: Options<GetCustomerOrdersData>,\n) =>\n queryOptions<\n GetCustomerOrdersResponse,\n GetCustomerOrdersError,\n GetCustomerOrdersResponse,\n ReturnType<typeof getCustomerOrdersQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getCustomerOrders({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getCustomerOrdersQueryKey(options),\n })\n\nexport const getAnOrderQueryKey = (options: Options<GetAnOrderData>) =>\n createQueryKey(\"getAnOrder\", options)\n\n/**\n * Get an Order\n *\n * Use this endpoint to retrieve a specific order.\n *\n * ### Includes\n *\n * You can include related resources with the order response by using the `include` query parameter.\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The included options are `items`, `tax_items`, `custom_discounts`, or `promotions`. |\n */\nexport const getAnOrderOptions = (options: Options<GetAnOrderData>) =>\n queryOptions<\n GetAnOrderResponse,\n GetAnOrderError,\n GetAnOrderResponse,\n ReturnType<typeof getAnOrderQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAnOrder({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAnOrderQueryKey(options),\n })\n\n/**\n * Update an Order\n *\n * You can only update custom data, `shipping`, `shipping_address`, and status of orders. All other settings in the order object are immutable.\n *\n * This endpoint allows you to:\n *\n * - **Update an order number and external reference**: You can update an existing order that does not have an `order_number` and `external_ref`, modify the `order_number` and `external_ref` values, or remove them by passing an empty value in the `order_number` and `external_ref` fields.\n * - **Cancel an order**: You can cancel an order only if it has not been fulfilled.\n * - **Fulfill an order**: You can fulfill a paid order only.\n *\n * :::caution\n *\n * You can update `shipping`, `shipping_address`, and status of an order only if the order is not fulfilled. You can use the refund API to refund an order only if the payment status is `paid`. Canceling an order does not automatically refund a payment. You must refund the orders manually.\n *\n * :::\n *\n * :::note\n *\n * - This request is only accessible to client credentials token users with Seller Admin role.\n * - Non client credentials token users cannot access this endpoint. See [Permissions](/docs/authentication/tokens/permissions).\n * - The `order_number` will appear as the invoice number in Authorize.net transactions.\n *\n * :::\n *\n */\nexport const updateAnOrderMutation = (\n options?: Partial<Options<UpdateAnOrderData>>,\n): UseMutationOptions<\n UpdateAnOrderResponse,\n UpdateAnOrderError,\n Options<UpdateAnOrderData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdateAnOrderResponse,\n UpdateAnOrderError,\n Options<UpdateAnOrderData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updateAnOrder({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderItemsQueryKey = (options: Options<GetOrderItemsData>) =>\n createQueryKey(\"getOrderItems\", options)\n\n/**\n * Get Order Items\n *\n * Use this endpoint to retrieve order items.\n *\n * ### Includes\n *\n * You can include related resources with the order items response by using the `include` query parameter.\n *\n * | Name | Required | Type | Description |\n * |:----------|:---------|:---------|:------------|\n * | `include` | Optional | `string` | Comma-delimited string of entities that can be included. The included options are `tax_items`, `custom_discounts`, or `promotions`. |\n */\nexport const getOrderItemsOptions = (options: Options<GetOrderItemsData>) =>\n queryOptions<\n GetOrderItemsResponse,\n DefaultError,\n GetOrderItemsResponse,\n ReturnType<typeof getOrderItemsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderItems({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderItemsQueryKey(options),\n })\n\n/**\n * Anonymize Orders\n *\n * You can anonymize an order when it is fulfilled, canceled, or fully refunded.\n *\n * When anonymization is successful, Personal Identifiable Information such as customer details, `shipping_address`, and `billing_address` are replaced with *.\n *\n */\nexport const anonymizeOrdersMutation = (\n options?: Partial<Options<AnonymizeOrdersData>>,\n): UseMutationOptions<\n AnonymizeOrdersResponse,\n AnonymizeOrdersError,\n Options<AnonymizeOrdersData>\n> => {\n const mutationOptions: UseMutationOptions<\n AnonymizeOrdersResponse,\n AnonymizeOrdersError,\n Options<AnonymizeOrdersData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await anonymizeOrders({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Confirm Order\n *\n * Use this endpoint to confirm an order. Confirming an order finalizes it and makes it ready for processing.\n *\n */\nexport const confirmOrderMutation = (\n options?: Partial<Options<ConfirmOrderData>>,\n): UseMutationOptions<\n ConfirmOrderResponse,\n ConfirmOrderError,\n Options<ConfirmOrderData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfirmOrderResponse,\n ConfirmOrderError,\n Options<ConfirmOrderData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await confirmOrder({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Payments\n *\n * Depending on the payment gateway, you may have access to different transaction types such as capturing funds immediately or authorizing them for later. For more information, see [Payments](/docs/api/carts/payments).\n *\n * The following types of payment methods are available depending on the payment gateway:\n *\n * - `purchase`: This is the simplest method. The gateway attempts to charge the customer immediately.\n * - `authorize`: This method authorizes a payment so that funds can be captured later, for example, when an item is dispatched or restocked.\n * - `purchase_setup`: This method prepares the system for a purchase by verifying payment details without actually charging the customer. For example, a customer adds items to their cart and proceeds to checkout. Before finalizing the purchase, the system runs `purchase_setup` to confirm all payment details, but no funds are transferred until the customer confirms the order.\n * - `authorize_setup`: This method prepares the system for an authorization-only transaction. This process holds the necessary funds but does not transfer them, ensuring that the customer has sufficient balance for the transaction. It sets up the conditions for a future capture of the authorized funds. For example, a customer places a pre-order for a product that will ship in two weeks. The merchant uses `authorize_setup` to prepare for the payment authorization. This holds the customer's funds to ensure they can cover the purchase but waits to capture the payment until the product ships. This ensures that payment is secured but not collected prematurely.\n *\n * :::note\n *\n * Split payments can be performed using any methods for any gateway.\n *\n * - You can partially pay funds using `purchase` method. The gateway attempts to charge the customer immediately, and the payment status for an order will show `partially_paid`\n * - You can partially pay for an order using `authorize` method where the order will be marked as `partially_authorized`. The transaction must be completed for the order status to be `partially_authorized`.\n * - A `purchase_setup` method allows verification of payment details for partial payments without transferring funds until the customer confirms the full order.\n * - An `authorize_setup` method can be used to hold a partial amount of the total funds, ensuring the customer has enough balance for a future capture.\n * Until a payment is made neither `purchase_setup` nor `authorize_setup` affects the payment statuses, and the order remains unpaid. For more information about order and payment statuses for split payments, see [Split payments](/docs/api/payments/payment-gateways-introduction#split-payments).\n *\n * :::\n *\n */\nexport const paymentSetupMutation = (\n options?: Partial<Options<PaymentSetupData>>,\n): UseMutationOptions<\n PaymentSetupResponse,\n PaymentSetupError,\n Options<PaymentSetupData>\n> => {\n const mutationOptions: UseMutationOptions<\n PaymentSetupResponse,\n PaymentSetupError,\n Options<PaymentSetupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await paymentSetup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Confirm Payment\n *\n * Confirm Payment serves as a mechanism to synchronize transaction information from the third-party payment provider back to our system. This ensures that Composable Commerce accurately reflects the values from the payment provider.\n *\n * ### Handling 3D Secure Validations for Stripe Payments\n *\n * For Stripe Payments requiring 3D Secure validation, the transaction response will include the `client_parameters` object, which provides credentials to support validation of these payment requests on the payment provider's side. We recommend using the Stripe's client libraries to manage these 3D Secure validations. Once the validation succeeds, proceed with a confirmation request to sync the validated transaction into Composable Commerce and continue with the payment process.\n *\n */\nexport const confirmPaymentMutation = (\n options?: Partial<Options<ConfirmPaymentData>>,\n): UseMutationOptions<\n ConfirmPaymentResponse,\n ConfirmPaymentError,\n Options<ConfirmPaymentData>\n> => {\n const mutationOptions: UseMutationOptions<\n ConfirmPaymentResponse,\n ConfirmPaymentError,\n Options<ConfirmPaymentData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await confirmPayment({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Capture a Transaction\n *\n * Use this endpoint to capture a previously authorized payment. In this step, you can also pass in a custom reference, such as the payment reference from your chosen gateway.\n */\nexport const captureATransactionMutation = (\n options?: Partial<Options<CaptureATransactionData>>,\n): UseMutationOptions<\n CaptureATransactionResponse,\n CaptureATransactionError,\n Options<CaptureATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n CaptureATransactionResponse,\n CaptureATransactionError,\n Options<CaptureATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await captureATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Refund a Transaction\n *\n * There are two ways to refund; through your payment gateway and mark it refunded in Commerce Manager, or directly through Commerce Manager or API.\n *\n * * Mark as Refunded: You can manually mark a transaction as refunded. Before you can mark the order as refunded, you need to handle the actual refund on your side with your payment provider. Mark as Refunded is a full refund made to the transaction.\n * * Refund through Composable Commerce: You can process a full or partial refund to a supported payment provider directly from Commerce Manager or API by providing the refund amount. When you start the refund process, the request is directly sent to the payment gateway.\n *\n * :::caution\n *\n * If you use manual gateway for partial or full refund, you need to handle the actual refund on your side with your payment provider.\n *\n * :::\n *\n */\nexport const refundATransactionMutation = (\n options?: Partial<Options<RefundATransactionData>>,\n): UseMutationOptions<\n RefundATransactionResponse,\n RefundATransactionError,\n Options<RefundATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n RefundATransactionResponse,\n RefundATransactionError,\n Options<RefundATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await refundATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderTransactionsQueryKey = (\n options: Options<GetOrderTransactionsData>,\n) => createQueryKey(\"getOrderTransactions\", options)\n\n/**\n * Get Order Transactions\n *\n * Get order transactions\n */\nexport const getOrderTransactionsOptions = (\n options: Options<GetOrderTransactionsData>,\n) =>\n queryOptions<\n GetOrderTransactionsResponse,\n GetOrderTransactionsError,\n GetOrderTransactionsResponse,\n ReturnType<typeof getOrderTransactionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderTransactions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderTransactionsQueryKey(options),\n })\n\nexport const getATransactionQueryKey = (\n options: Options<GetATransactionData>,\n) => createQueryKey(\"getATransaction\", options)\n\n/**\n * Get a Transaction\n *\n * Retrieves a transaction\n */\nexport const getATransactionOptions = (options: Options<GetATransactionData>) =>\n queryOptions<\n GetATransactionResponse,\n DefaultError,\n GetATransactionResponse,\n ReturnType<typeof getATransactionQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getATransaction({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getATransactionQueryKey(options),\n })\n\n/**\n * Cancel a Transaction\n *\n * Use this endpoint to cancel or void a pending or authorized transaction. The transaction can be canceled or voided when it is in `pending` and `completed` statuses.\n *\n * :::caution\n *\n * This endpoint works only for Stripe and PayPal and does not work for manual gateway.\n *\n * :::\n *\n */\nexport const cancelATransactionMutation = (\n options?: Partial<Options<CancelATransactionData>>,\n): UseMutationOptions<\n CancelATransactionResponse,\n CancelATransactionError,\n Options<CancelATransactionData>\n> => {\n const mutationOptions: UseMutationOptions<\n CancelATransactionResponse,\n CancelATransactionError,\n Options<CancelATransactionData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await cancelATransaction({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getOrderShippingGroupsQueryKey = (\n options: Options<GetOrderShippingGroupsData>,\n) => createQueryKey(\"getOrderShippingGroups\", options)\n\n/**\n * Retrieve all shipping groups for an order\n *\n * Retrieve all shipping groups for an order\n */\nexport const getOrderShippingGroupsOptions = (\n options: Options<GetOrderShippingGroupsData>,\n) =>\n queryOptions<\n GetOrderShippingGroupsResponse,\n GetOrderShippingGroupsError,\n GetOrderShippingGroupsResponse,\n ReturnType<typeof getOrderShippingGroupsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOrderShippingGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOrderShippingGroupsQueryKey(options),\n })\n\n/**\n * Create a shipping group for an order\n *\n * Create a new shipping group for an order\n */\nexport const createOrderShippingGroupMutation = (\n options?: Partial<Options<CreateOrderShippingGroupData>>,\n): UseMutationOptions<\n CreateOrderShippingGroupResponse,\n CreateOrderShippingGroupError,\n Options<CreateOrderShippingGroupData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateOrderShippingGroupResponse,\n CreateOrderShippingGroupError,\n Options<CreateOrderShippingGroupData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createOrderShippingGroup({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getShippingGroupsByIdQueryKey = (\n options: Options<GetShippingGroupsByIdData>,\n) => createQueryKey(\"getShippingGroupsById\", options)\n\n/**\n * Retrieve a specific shipping group for an order\n *\n * Retrieve a specific shipping group for an order\n */\nexport const getShippingGroupsByIdOptions = (\n options: Options<GetShippingGroupsByIdData>,\n) =>\n queryOptions<\n GetShippingGroupsByIdResponse,\n GetShippingGroupsByIdError,\n GetShippingGroupsByIdResponse,\n ReturnType<typeof getShippingGroupsByIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getShippingGroupsById({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getShippingGroupsByIdQueryKey(options),\n })\n\n/**\n * Update a shipping group for an order\n *\n * Update a shipping group for an order\n */\nexport const putShippingGroupByIdMutation = (\n options?: Partial<Options<PutShippingGroupByIdData>>,\n): UseMutationOptions<\n PutShippingGroupByIdResponse,\n PutShippingGroupByIdError,\n Options<PutShippingGroupByIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutShippingGroupByIdResponse,\n PutShippingGroupByIdError,\n Options<PutShippingGroupByIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putShippingGroupById({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2SettingsCartQueryKey = (\n options?: Options<GetV2SettingsCartData>,\n) => createQueryKey(\"getV2SettingsCart\", options)\n\n/**\n * Get Cart Settings\n *\n * Retrieves cart settings.\n */\nexport const getV2SettingsCartOptions = (\n options?: Options<GetV2SettingsCartData>,\n) =>\n queryOptions<\n GetV2SettingsCartResponse,\n GetV2SettingsCartError,\n GetV2SettingsCartResponse,\n ReturnType<typeof getV2SettingsCartQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2SettingsCart({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2SettingsCartQueryKey(options),\n })\n\n/**\n * Update Cart Settings\n *\n * You can modify the cart expiry settings to set it to any number of days up to 365. Any existing carts default to the expiry of 7 days. To update cart settings in Commerce Manager, see [Updating Cart setting](/docs/commerce-manager/settings/general-settings#updating-cart-settings).\n *\n * With update cart settings endpoint, you can:\n *\n * - Enable or disable custom discounts by setting the `custom_discounts_enabled` field to `true`. This allows you to activate your custom discounts from external services. By default, this setting is determined by the cart settings configured for the store.\n * - Enable or disable the use of rule promotions within the cart. You can apply this setting either at the store level using the update cart setting endpoint or individually to a specific cart using the [update a cart](/docs/api/carts/update-a-cart) endpoint.\n * - Enable or disable deferred inventory checks by setting `defer_inventory_check` to `true`. When set, stock levels are not verified for products in a cart until checkout.\n * - Control whether admins can see all carts or only shopper-associated carts by setting `show_all_carts` to `true` or `false`.\n * - Enable or disable location-based item separation by setting `separate_items_by_location` to `true`. When enabled, cart items with the same SKU but different locations are kept as separate line items instead of being merged.\n *\n * :::note\n *\n * Custom discounts and rule promotions can both be enabled for a store at the same time, for example, while transitioning from one promotion system to the other. However, an individual cart can only contain one type of discount at a time. A cart that contains custom discounts rejects Elastic Path promotions, and a cart that contains Elastic Path promotions rejects custom discounts, until the existing discounts are removed.\n *\n * :::\n */\nexport const putV2SettingsCartMutation = (\n options?: Partial<Options<PutV2SettingsCartData>>,\n): UseMutationOptions<\n PutV2SettingsCartResponse,\n PutV2SettingsCartError,\n Options<PutV2SettingsCartData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2SettingsCartResponse,\n PutV2SettingsCartError,\n Options<PutV2SettingsCartData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2SettingsCart({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2SettingsCartStoreIdQueryKey = (\n options: Options<GetV2SettingsCartStoreIdData>,\n) => createQueryKey(\"getV2SettingsCartStoreId\", options)\n\n/**\n * Get Cart Settings by Store ID\n *\n * Retrieves cart settings for the specified store.\n */\nexport const getV2SettingsCartStoreIdOptions = (\n options: Options<GetV2SettingsCartStoreIdData>,\n) =>\n queryOptions<\n GetV2SettingsCartStoreIdResponse,\n GetV2SettingsCartStoreIdError,\n GetV2SettingsCartStoreIdResponse,\n ReturnType<typeof getV2SettingsCartStoreIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2SettingsCartStoreId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2SettingsCartStoreIdQueryKey(options),\n })\n\n/**\n * Update Cart Settings by Store ID\n *\n * You can modify the cart expiry settings to set it to any number of days up to 365. Any existing carts default to the expiry of 7 days. To update cart settings in Commerce Manager, see [Updating Cart setting](/docs/commerce-manager/settings/general-settings#updating-cart-settings).\n *\n * With update cart settings endpoint, you can:\n *\n * - Enable or disable custom discounts by setting the `custom_discounts_enabled` field to `true`. This allows you to activate your custom discounts from external services. By default, this setting is determined by the cart settings configured for the store.\n * - Enable or disable the use of rule promotions within the cart. You can apply this setting either at the store level using the update cart setting endpoint or individually to a specific cart using the [update a cart](/docs/api/carts/update-a-cart) endpoint.\n * - Enable or disable deferred inventory checks by setting `defer_inventory_check` to `true`. When set, stock levels are not verified for products in a cart until checkout.\n * - Control whether admins can see all carts or only shopper-associated carts by setting `show_all_carts` to `true` or `false`.\n * - Enable or disable location-based item separation by setting `separate_items_by_location` to `true`. When enabled, cart items with the same SKU but different locations are kept as separate line items instead of being merged.\n *\n * :::note\n *\n * Custom discounts and rule promotions can both be enabled for a store at the same time, for example, while transitioning from one promotion system to the other. However, an individual cart can only contain one type of discount at a time. A cart that contains custom discounts rejects Elastic Path promotions, and a cart that contains Elastic Path promotions rejects custom discounts, until the existing discounts are removed.\n *\n * :::\n */\nexport const putV2SettingsCartStoreIdMutation = (\n options?: Partial<Options<PutV2SettingsCartStoreIdData>>,\n): UseMutationOptions<\n PutV2SettingsCartStoreIdResponse,\n PutV2SettingsCartStoreIdError,\n Options<PutV2SettingsCartStoreIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2SettingsCartStoreIdResponse,\n PutV2SettingsCartStoreIdError,\n Options<PutV2SettingsCartStoreIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2SettingsCartStoreId({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const listOfferingsQueryKey = (options?: Options<ListOfferingsData>) =>\n createQueryKey(\"listOfferings\", options)\n\n/**\n * List offerings\n *\n * Retrieves a list of all subscription offerings.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator | Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `external_ref`, `plans.external_ref`, `proration_policy_id` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `external_ref`, `plans.external_ref`, `proration_policy_id` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n */\nexport const listOfferingsOptions = (options?: Options<ListOfferingsData>) =>\n queryOptions<\n ListOfferingsResponse,\n ListOfferingsError,\n ListOfferingsResponse,\n ReturnType<typeof listOfferingsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferings({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingsQueryKey(options),\n })\n\nexport const getOfferingQueryKey = (options: Options<GetOfferingData>) =>\n createQueryKey(\"getOffering\", options)\n\n/**\n * Get offering\n */\nexport const getOfferingOptions = (options: Options<GetOfferingData>) =>\n queryOptions<\n GetOfferingResponse,\n GetOfferingError,\n GetOfferingResponse,\n ReturnType<typeof getOfferingQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getOffering({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getOfferingQueryKey(options),\n })\n\nexport const listOfferingPricingOptionsQueryKey = (\n options: Options<ListOfferingPricingOptionsData>,\n) => createQueryKey(\"listOfferingPricingOptions\", options)\n\n/**\n * List an offering's pricing options\n */\nexport const listOfferingPricingOptionsOptions = (\n options: Options<ListOfferingPricingOptionsData>,\n) =>\n queryOptions<\n ListOfferingPricingOptionsResponse,\n ListOfferingPricingOptionsError,\n ListOfferingPricingOptionsResponse,\n ReturnType<typeof listOfferingPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPricingOptionsQueryKey(options),\n })\n\nexport const listOfferingFeaturesQueryKey = (\n options: Options<ListOfferingFeaturesData>,\n) => createQueryKey(\"listOfferingFeatures\", options)\n\n/**\n * List an offering's features\n */\nexport const listOfferingFeaturesOptions = (\n options: Options<ListOfferingFeaturesData>,\n) =>\n queryOptions<\n ListOfferingFeaturesResponse,\n ListOfferingFeaturesError,\n ListOfferingFeaturesResponse,\n ReturnType<typeof listOfferingFeaturesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingFeatures({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingFeaturesQueryKey(options),\n })\n\nexport const listOfferingPlansQueryKey = (\n options: Options<ListOfferingPlansData>,\n) => createQueryKey(\"listOfferingPlans\", options)\n\n/**\n * List an offering's plans\n */\nexport const listOfferingPlansOptions = (\n options: Options<ListOfferingPlansData>,\n) =>\n queryOptions<\n ListOfferingPlansResponse,\n ListOfferingPlansError,\n ListOfferingPlansResponse,\n ReturnType<typeof listOfferingPlansQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPlans({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPlansQueryKey(options),\n })\n\nexport const listOfferingPlanPricingOptionsQueryKey = (\n options: Options<ListOfferingPlanPricingOptionsData>,\n) => createQueryKey(\"listOfferingPlanPricingOptions\", options)\n\n/**\n * List the pricing options available to a plan in an offering\n */\nexport const listOfferingPlanPricingOptionsOptions = (\n options: Options<ListOfferingPlanPricingOptionsData>,\n) =>\n queryOptions<\n ListOfferingPlanPricingOptionsResponse,\n ListOfferingPlanPricingOptionsError,\n ListOfferingPlanPricingOptionsResponse,\n ReturnType<typeof listOfferingPlanPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listOfferingPlanPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listOfferingPlanPricingOptionsQueryKey(options),\n })\n\nexport const listSubscriptionsQueryKey = (\n options?: Options<ListSubscriptionsData>,\n) => createQueryKey(\"listSubscriptions\", options)\n\n/**\n * List subscriptions\n *\n * Retrieves a list of all subscriptions.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator | Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `account_id`, `name`, `email`, `external_ref` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `account_id`, `name`, `email`, `external_ref` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n * ### Including Resources\n *\n * You can use the `include` parameter to include the following resources with this endpoint.\n *\n * | Resource | Required | Description |\n * | --- | --- | --- |\n * | `pricing_options, plans` | Optional | Retrieves all pricing options and plans associated with a subscription. |\n * | `plans` | Optional | Retrieves all plans associated with a subscription. |\n * | `pricing_options` | Optional | Retrieves all pricing options associated with a subscription. |\n *\n * See [Characteristics of Include Parameter](/guides/Getting-Started/includes#characteristics-of-include-parameter).\n *\n */\nexport const listSubscriptionsOptions = (\n options?: Options<ListSubscriptionsData>,\n) =>\n queryOptions<\n ListSubscriptionsResponse,\n ListSubscriptionsError,\n ListSubscriptionsResponse,\n ReturnType<typeof listSubscriptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionsQueryKey(options),\n })\n\nexport const getSubscriptionQueryKey = (\n options: Options<GetSubscriptionData>,\n) => createQueryKey(\"getSubscription\", options)\n\n/**\n * Get subscription\n */\nexport const getSubscriptionOptions = (options: Options<GetSubscriptionData>) =>\n queryOptions<\n GetSubscriptionResponse,\n GetSubscriptionError,\n GetSubscriptionResponse,\n ReturnType<typeof getSubscriptionQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscription({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionQueryKey(options),\n })\n\nexport const listSubscriptionPlansQueryKey = (\n options: Options<ListSubscriptionPlansData>,\n) => createQueryKey(\"listSubscriptionPlans\", options)\n\n/**\n * List subscription plans\n *\n * Retrieves a list of plans associated with the specified subscription. Using this endpoint you can see the plan that is currently active in a subscription. If `active_plan` is `true`, a plan is active in a subscription. If `active_plan` is null, the pricing option is not active.\n */\nexport const listSubscriptionPlansOptions = (\n options: Options<ListSubscriptionPlansData>,\n) =>\n queryOptions<\n ListSubscriptionPlansResponse,\n ListSubscriptionPlansError,\n ListSubscriptionPlansResponse,\n ReturnType<typeof listSubscriptionPlansQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionPlans({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionPlansQueryKey(options),\n })\n\nexport const listSubscriptionPricingOptionsQueryKey = (\n options: Options<ListSubscriptionPricingOptionsData>,\n) => createQueryKey(\"listSubscriptionPricingOptions\", options)\n\n/**\n * List subscription pricing options\n *\n * Retrieves a list of pricing options associated with the specified subscription. Using this endpoint you can see the pricing options that are currently active in a subscription. If `active_pricing_option` is `true`, a pricing option is active in a subscription. If `active_pricing_option` is null, the pricing option is not active.\n */\nexport const listSubscriptionPricingOptionsOptions = (\n options: Options<ListSubscriptionPricingOptionsData>,\n) =>\n queryOptions<\n ListSubscriptionPricingOptionsResponse,\n ListSubscriptionPricingOptionsError,\n ListSubscriptionPricingOptionsResponse,\n ReturnType<typeof listSubscriptionPricingOptionsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionPricingOptions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionPricingOptionsQueryKey(options),\n })\n\nexport const listSubscriptionStatesQueryKey = (\n options: Options<ListSubscriptionStatesData>,\n) => createQueryKey(\"listSubscriptionStates\", options)\n\n/**\n * List subscription states\n */\nexport const listSubscriptionStatesOptions = (\n options: Options<ListSubscriptionStatesData>,\n) =>\n queryOptions<\n ListSubscriptionStatesResponse,\n ListSubscriptionStatesError,\n ListSubscriptionStatesResponse,\n ReturnType<typeof listSubscriptionStatesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionStates({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionStatesQueryKey(options),\n })\n\n/**\n * Create a subscription state\n *\n * The subscription lifecycle is the states that a subscription can go through when a customer subscribes to a service or a plan.\n *\n * A subscription can have the following states:\n *\n * - `pending`\n * - `canceled`\n * - `paused`\n * - `resumed`\n * For more information, see [Managing the Subscription Lifecycle](/docs/api/subscriptions/subscriptions#managing-the-subscription-lifecycle).\n *\n * Immediate cancellation (`cancel` with `cancel_immediately: true`) ends the subscription and updates entitlements in this request; it does **not** issue refunds or modify paid invoices. Use payments refund flows separately if needed.\n *\n */\nexport const createSubscriptionStateMutation = (\n options?: Partial<Options<CreateSubscriptionStateData>>,\n): UseMutationOptions<\n CreateSubscriptionStateResponse,\n CreateSubscriptionStateError,\n Options<CreateSubscriptionStateData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateSubscriptionStateResponse,\n CreateSubscriptionStateError,\n Options<CreateSubscriptionStateData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createSubscriptionState({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getSubscriptionStateQueryKey = (\n options: Options<GetSubscriptionStateData>,\n) => createQueryKey(\"getSubscriptionState\", options)\n\n/**\n * Get subscription state\n */\nexport const getSubscriptionStateOptions = (\n options: Options<GetSubscriptionStateData>,\n) =>\n queryOptions<\n GetSubscriptionStateResponse,\n GetSubscriptionStateError,\n GetSubscriptionStateResponse,\n ReturnType<typeof getSubscriptionStateQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionState({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionStateQueryKey(options),\n })\n\nexport const listSubscriptionInvoicesQueryKey = (\n options: Options<ListSubscriptionInvoicesData>,\n) => createQueryKey(\"listSubscriptionInvoices\", options)\n\n/**\n * List subscription invoices\n *\n * Lists all invoices for a given subscription.\n */\nexport const listSubscriptionInvoicesOptions = (\n options: Options<ListSubscriptionInvoicesData>,\n) =>\n queryOptions<\n ListSubscriptionInvoicesResponse,\n ListSubscriptionInvoicesError,\n ListSubscriptionInvoicesResponse,\n ReturnType<typeof listSubscriptionInvoicesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionInvoices({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionInvoicesQueryKey(options),\n })\n\nexport const listSubscriptionInvoicePaymentsQueryKey = (\n options: Options<ListSubscriptionInvoicePaymentsData>,\n) => createQueryKey(\"listSubscriptionInvoicePayments\", options)\n\n/**\n * List subscription invoice payments\n *\n * Lists all invoice payments for a given invoice.\n */\nexport const listSubscriptionInvoicePaymentsOptions = (\n options: Options<ListSubscriptionInvoicePaymentsData>,\n) =>\n queryOptions<\n ListSubscriptionInvoicePaymentsResponse,\n DefaultError,\n ListSubscriptionInvoicePaymentsResponse,\n ReturnType<typeof listSubscriptionInvoicePaymentsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listSubscriptionInvoicePayments({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listSubscriptionInvoicePaymentsQueryKey(options),\n })\n\nexport const getSubscriptionInvoicePaymentQueryKey = (\n options: Options<GetSubscriptionInvoicePaymentData>,\n) => createQueryKey(\"getSubscriptionInvoicePayment\", options)\n\n/**\n * Get subscription invoice payment\n *\n * Gets a specific payment for a given invoice.\n */\nexport const getSubscriptionInvoicePaymentOptions = (\n options: Options<GetSubscriptionInvoicePaymentData>,\n) =>\n queryOptions<\n GetSubscriptionInvoicePaymentResponse,\n GetSubscriptionInvoicePaymentError,\n GetSubscriptionInvoicePaymentResponse,\n ReturnType<typeof getSubscriptionInvoicePaymentQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionInvoicePayment({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionInvoicePaymentQueryKey(options),\n })\n\nexport const getSubscriptionInvoiceQueryKey = (\n options: Options<GetSubscriptionInvoiceData>,\n) => createQueryKey(\"getSubscriptionInvoice\", options)\n\n/**\n * Get subscription invoice\n *\n * Gets a specific invoice for a given subscription.\n */\nexport const getSubscriptionInvoiceOptions = (\n options: Options<GetSubscriptionInvoiceData>,\n) =>\n queryOptions<\n GetSubscriptionInvoiceResponse,\n GetSubscriptionInvoiceError,\n GetSubscriptionInvoiceResponse,\n ReturnType<typeof getSubscriptionInvoiceQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getSubscriptionInvoice({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getSubscriptionInvoiceQueryKey(options),\n })\n\nexport const listInvoicesQueryKey = (options?: Options<ListInvoicesData>) =>\n createQueryKey(\"listInvoices\", options)\n\n/**\n * List invoices\n *\n * Retrieves a list of all invoices.\n *\n * ### Filtering\n *\n * This endpoint supports filtering. For the general syntax, see [**Filtering**](/guides/Getting-Started/filtering).\n *\n * The following attributes and operators are supported.\n *\n * | Operator |Attribute | Description |\n * | --- | --- | --- |\n * | `eq` | `subscriber_id`, `subscription_id`, `outstanding`, `tax_required` | Equals. Checks if the values of two operands are equal. If they are, the condition is true. |\n * | `in` | `subscriber_id`, `subscription_id` | In. Checks if the value is in the specified list. If it is, the condition is true. |\n *\n */\nexport const listInvoicesOptions = (options?: Options<ListInvoicesData>) =>\n queryOptions<\n ListInvoicesResponse,\n ListInvoicesError,\n ListInvoicesResponse,\n ReturnType<typeof listInvoicesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listInvoices({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listInvoicesQueryKey(options),\n })\n\nexport const getInvoiceQueryKey = (options: Options<GetInvoiceData>) =>\n createQueryKey(\"getInvoice\", options)\n\n/**\n * Get invoice\n */\nexport const getInvoiceOptions = (options: Options<GetInvoiceData>) =>\n queryOptions<\n GetInvoiceResponse,\n GetInvoiceError,\n GetInvoiceResponse,\n ReturnType<typeof getInvoiceQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getInvoice({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getInvoiceQueryKey(options),\n })\n\nexport const getFeatureQueryKey = (options: Options<GetFeatureData>) =>\n createQueryKey(\"getFeature\", options)\n\n/**\n * Get feature\n */\nexport const getFeatureOptions = (options: Options<GetFeatureData>) =>\n queryOptions<\n GetFeatureResponse,\n GetFeatureError,\n GetFeatureResponse,\n ReturnType<typeof getFeatureQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getFeature({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getFeatureQueryKey(options),\n })\n\nexport const getStockQueryKey = (options: Options<GetStockData>) =>\n createQueryKey(\"getStock\", options)\n\n/**\n * Get Stock for Product\n *\n * Gets the stock for the product matching the specified unique identifier.\n */\nexport const getStockOptions = (options: Options<GetStockData>) =>\n queryOptions<\n GetStockResponse,\n GetStockError,\n GetStockResponse,\n ReturnType<typeof getStockQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getStock({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getStockQueryKey(options),\n })\n\nexport const listLocationsQueryKey = (options?: Options<ListLocationsData>) =>\n createQueryKey(\"listLocations\", options)\n\n/**\n * List Locations\n *\n * Lists all Inventory Locations\n */\nexport const listLocationsOptions = (options?: Options<ListLocationsData>) =>\n queryOptions<\n ListLocationsResponse,\n ListLocationsError,\n ListLocationsResponse,\n ReturnType<typeof listLocationsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await listLocations({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: listLocationsQueryKey(options),\n })\n\n/**\n * Create an Access Token\n *\n *\n * ### Client Credentials\n *\n * A `client_credentials` token is used when the credentials are not publicly exposed, usually a server-side language such as PHP or Node.js. This type of authentication enables `CRUD` access to all resources.\n *\n * `client_id` and `client_secret` are created and managed via [Application Keys](/docs/authentication/application-keys/create-an-application-key).\n *\n * To see the access granted by a `client_credentials` token, refer to [Permissions](/docs/authentication/Tokens/permissions).\n *\n *\n * ### Implicit\n *\n * An `implicit` token is typically used for situations where you are requesting data on the client side and you are exposing your public key. When authenticated implicitly, you can only fetch (`GET`) data with live status (products, categories, brands, etc).\n *\n * The `implicit` token is most appropriate for use inside client-side applications, such as JavaScript.\n *\n * :::caution\n * An `implicit` token can be thought of as a **Read only** token.\n * :::\n *\n */\nexport const createAnAccessTokenMutation = (\n options?: Partial<Options<CreateAnAccessTokenData>>,\n): UseMutationOptions<\n CreateAnAccessTokenResponse,\n CreateAnAccessTokenError,\n Options<CreateAnAccessTokenData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateAnAccessTokenResponse,\n CreateAnAccessTokenError,\n Options<CreateAnAccessTokenData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createAnAccessToken({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountAddressesQueryKey = (\n options: Options<GetV2AccountAddressesData>,\n) => createQueryKey(\"getV2AccountAddresses\", options)\n\n/**\n * Get Account Addresses\n *\n * Get all addresses for an Account.\n *\n * You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * ### Filtering\n *\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) addresses:\n *\n * | Attribute | Operators | Example |\n * |----------------|---------------------------------|---------------------------------------|\n * | `name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(name,\"*home*\")` |\n * | `first_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(first_name,\"Ron*\")` |\n * | `last_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(last_name,\"*swan*\")` |\n * | `phone_number` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(phone_number,\"*555*\")` |\n * | `company_name` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(company_name,\"*enterprises*\")` |\n * | `instructions` | `eq`,`in`,`like`,`ilike`,`text` | `text(instructions,\"behind bin\")` |\n * | `line_1` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(line_1,\"*Sunny Street*\")` |\n * | `line_2` | `eq`,`in`,`like`,`ilike`,`text` | `ilike(line_2,\"*Unit*\")` |\n * | `city` | `eq`,`in`,`like`,`ilike`,`text` | `eq(city,\"Sunny Town\")` |\n * | `county` | `eq`,`in`,`like`,`ilike`,`text` | `eq(county,\"Sunnyville\")` |\n * | `region` | `eq`,`in`,`like`,`ilike`,`text` | `eq(region,\"California\")` |\n * | `postcode` | `eq`,`in`,`like`,`ilike`,`text` | `eq(postcode,\"SU33 1YY\")` |\n * | `country` | `eq`,`in`,`like`,`ilike`,`text` | `eq(country,\"GB\")` |\n *\n */\nexport const getV2AccountAddressesOptions = (\n options: Options<GetV2AccountAddressesData>,\n) =>\n queryOptions<\n GetV2AccountAddressesResponse,\n GetV2AccountAddressesError,\n GetV2AccountAddressesResponse,\n ReturnType<typeof getV2AccountAddressesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountAddresses({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountAddressesQueryKey(options),\n })\n\n/**\n * Create an Account Address\n *\n * Create an address for an Account.\n */\nexport const postV2AccountAddressMutation = (\n options?: Partial<Options<PostV2AccountAddressData>>,\n): UseMutationOptions<\n PostV2AccountAddressResponse,\n PostV2AccountAddressError,\n Options<PostV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountAddressResponse,\n PostV2AccountAddressError,\n Options<PostV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Delete an Account Address\n *\n * Delete an address for an Account.\n */\nexport const deleteV2AccountAddressMutation = (\n options?: Partial<Options<DeleteV2AccountAddressData>>,\n): UseMutationOptions<\n DeleteV2AccountAddressResponse,\n DeleteV2AccountAddressError,\n Options<DeleteV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n DeleteV2AccountAddressResponse,\n DeleteV2AccountAddressError,\n Options<DeleteV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await deleteV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountAddressQueryKey = (\n options: Options<GetV2AccountAddressData>,\n) => createQueryKey(\"getV2AccountAddress\", options)\n\n/**\n * Get an Account Address\n *\n * Get a specific address for an Account.\n */\nexport const getV2AccountAddressOptions = (\n options: Options<GetV2AccountAddressData>,\n) =>\n queryOptions<\n GetV2AccountAddressResponse,\n GetV2AccountAddressError,\n GetV2AccountAddressResponse,\n ReturnType<typeof getV2AccountAddressQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountAddress({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountAddressQueryKey(options),\n })\n\n/**\n * Update an Account Address\n *\n * Update an address for an Account.\n */\nexport const putV2AccountAddressMutation = (\n options?: Partial<Options<PutV2AccountAddressData>>,\n): UseMutationOptions<\n PutV2AccountAddressResponse,\n PutV2AccountAddressError,\n Options<PutV2AccountAddressData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2AccountAddressResponse,\n PutV2AccountAddressError,\n Options<PutV2AccountAddressData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2AccountAddress({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountsQueryKey = (options?: Options<GetV2AccountsData>) =>\n createQueryKey(\"getV2Accounts\", options)\n\n/**\n * Get All Accounts\n *\n * Use this endpoint to Get all accounts.\n *\n * You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n *\n * ### Filtering\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) accounts:\n *\n * | Attribute | Operators | Example |\n * |-------------------|-------------------------------|---------------------------------------------------------------|\n * | `id` | `lt`,`le`,`eq`,`gt`,`ge`,`in` | `eq(id,3fa85f64-5717-4562-b3fc-2c963f66afa6)` |\n * | `created_at` | `lt`,`le`,`eq`,`gt`,`ge` | `ge(created_at,2024-04-29T00:00:00.000Z)` |\n * | `updated_at` | `lt`,`le`,`eq`,`gt`,`ge` | `le(updated_at,2024-04-29T00:00:00.000Z)` |\n * | `name` | `eq`,`like` | `like(name,*swan*)` |\n * | `legal_name` | `eq`,`like` | `like(legal_name,*swan*)` |\n * | `registration_id` | `eq`,`like` | `like(registration_id,00000000-0000-1000-8000-*)` |\n * | `external_ref` | `eq`,`like`,`in` | `like(external_ref,16be*)` |\n * | `account_tags` | `contains` | `contains(account_tags,26beb787-be6e-40c3-bbae-9c645820b075)` |\n *\n */\nexport const getV2AccountsOptions = (options?: Options<GetV2AccountsData>) =>\n queryOptions<\n GetV2AccountsResponse,\n GetV2AccountsError,\n GetV2AccountsResponse,\n ReturnType<typeof getV2AccountsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2Accounts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsQueryKey(options),\n })\n\n/**\n * Create an Account\n *\n * With the account creation endpoint, you have the ability to create accounts which can optionally have another account as a parent.\n */\nexport const postV2AccountsMutation = (\n options?: Partial<Options<PostV2AccountsData>>,\n): UseMutationOptions<\n PostV2AccountsResponse,\n PostV2AccountsError,\n Options<PostV2AccountsData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountsResponse,\n PostV2AccountsError,\n Options<PostV2AccountsData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2Accounts({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountsAccountIdQueryKey = (\n options: Options<GetV2AccountsAccountIdData>,\n) => createQueryKey(\"getV2AccountsAccountId\", options)\n\n/**\n * Get an Account\n *\n * View a specific account contained within your store\n */\nexport const getV2AccountsAccountIdOptions = (\n options: Options<GetV2AccountsAccountIdData>,\n) =>\n queryOptions<\n GetV2AccountsAccountIdResponse,\n GetV2AccountsAccountIdError,\n GetV2AccountsAccountIdResponse,\n ReturnType<typeof getV2AccountsAccountIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountsAccountId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsAccountIdQueryKey(options),\n })\n\n/**\n * Update an Account\n *\n * Update the information contained on an account.\n */\nexport const putV2AccountsAccountIdMutation = (\n options?: Partial<Options<PutV2AccountsAccountIdData>>,\n): UseMutationOptions<\n PutV2AccountsAccountIdResponse,\n PutV2AccountsAccountIdError,\n Options<PutV2AccountsAccountIdData>\n> => {\n const mutationOptions: UseMutationOptions<\n PutV2AccountsAccountIdResponse,\n PutV2AccountsAccountIdError,\n Options<PutV2AccountsAccountIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await putV2AccountsAccountId({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getV2AccountMembersQueryKey = (\n options?: Options<GetV2AccountMembersData>,\n) => createQueryKey(\"getV2AccountMembers\", options)\n\n/**\n * Get all Account Members\n *\n * Get all account members contained within your store.\n *\n * ### Filtering\n *\n *\n * The following operators and attributes are available for\n * [filtering](/guides/Getting-Started/filtering) account members.\n *\n * | Attribute | Type | Operator | Example | | :--- | :--- | :--- | :--- | | `email` | `string` | `ilike` | `ilike(email,'ronswanson@example.com')` | | `name` | `string` | `ilike` | `ilike(name,'*swan*')` | | `given_name` | `string` | `ilike`/`is_null` | `ilike(given_name,'ron*')` | | `middle_name` | `string` | `ilike`/`is_null` | `is_null(middle_name)` | | `family_name` | `string` | `ilike`/`is_null` | `is_null(family_name)` |\n *\n */\nexport const getV2AccountMembersOptions = (\n options?: Options<GetV2AccountMembersData>,\n) =>\n queryOptions<\n GetV2AccountMembersResponse,\n GetV2AccountMembersError,\n GetV2AccountMembersResponse,\n ReturnType<typeof getV2AccountMembersQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountMembers({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountMembersQueryKey(options),\n })\n\nexport const getV2AccountMembersAccountMemberIdQueryKey = (\n options: Options<GetV2AccountMembersAccountMemberIdData>,\n) => createQueryKey(\"getV2AccountMembersAccountMemberId\", options)\n\n/**\n * Get an Account Member\n *\n * Get an account member from your store\n */\nexport const getV2AccountMembersAccountMemberIdOptions = (\n options: Options<GetV2AccountMembersAccountMemberIdData>,\n) =>\n queryOptions<\n GetV2AccountMembersAccountMemberIdResponse,\n GetV2AccountMembersAccountMemberIdError,\n GetV2AccountMembersAccountMemberIdResponse,\n ReturnType<typeof getV2AccountMembersAccountMemberIdQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountMembersAccountMemberId({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountMembersAccountMemberIdQueryKey(options),\n })\n\nexport const getV2AccountsAccountIdAccountMembershipsQueryKey = (\n options: Options<GetV2AccountsAccountIdAccountMembershipsData>,\n) => createQueryKey(\"getV2AccountsAccountIdAccountMemberships\", options)\n\n/**\n * Get all Account Memberships\n *\n * You can also use `include=account_member` to retrieve details about the account members associated with the account memberships. With this option, you can get more information about the account members such as name and email in a single request. For more information see [including resources](/guides/Getting-Started/includes).\n *\n * ### Filtering\n *\n * The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) account memberships.\n *\n * | Operator | Description |\n * | :--- | :--- |\n * | `eq` | Checks whether the values of two operands are equal. If the values are equal, the condition is true. |\n * | `like` | Checks if the operand contains the specified string. You can use wildcard characters in operand. |\n *\n * | Attribute | Type | Operator | Example |\n * | :--- | :--- | :--- | :--- |\n * | `account_member_id` | `string` | `eq` / `like` | `eq(account_member_id,00000000-0000-1000-8000-0000000)` |\n */\nexport const getV2AccountsAccountIdAccountMembershipsOptions = (\n options: Options<GetV2AccountsAccountIdAccountMembershipsData>,\n) =>\n queryOptions<\n GetV2AccountsAccountIdAccountMembershipsResponse,\n GetV2AccountsAccountIdAccountMembershipsError,\n GetV2AccountsAccountIdAccountMembershipsResponse,\n ReturnType<typeof getV2AccountsAccountIdAccountMembershipsQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getV2AccountsAccountIdAccountMemberships({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getV2AccountsAccountIdAccountMembershipsQueryKey(options),\n })\n\n/**\n * Generate an Account Management Authentication Token\n *\n * Commerce provides authentication tokens for anyone using the Account Management APIs, including accounts and account members.\n *\n * For each element in the list returned by the account member authentication API, a token value is returned. In order for a shopper to authenticate as the account, this value should be set as the `EP-Account-Management-Authentication-Token` header when calling Commerce. This header grants access to additional resources associated with the account, such as [carts](/docs/api/carts/account-cart-associations), [orders](/docs/api/carts/orders), [catalogs with associated rules](/docs/api/pxm/catalog/rules), and [addresses](/docs/api/addresses/addresses-introduction).\n *\n * The set of permissions available to a shopper using an Account Management Authentication token is documented in [Permissions](/docs/authentication/tokens/permissions)\n *\n * Commerce provides authentication tokens for an account and an account member using:\n *\n * - OpenID Connect\n * - Username and password\n * - Self signup\n * - One-time password token\n * - Switch account token\n *\n */\nexport const postV2AccountMembersTokensMutation = (\n options?: Partial<Options<PostV2AccountMembersTokensData>>,\n): UseMutationOptions<\n PostV2AccountMembersTokensResponse,\n PostV2AccountMembersTokensError,\n Options<PostV2AccountMembersTokensData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostV2AccountMembersTokensResponse,\n PostV2AccountMembersTokensError,\n Options<PostV2AccountMembersTokensData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postV2AccountMembersTokens({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Create One-Time Password Token Request\n *\n * Create a one-time password token request for the specified password profile.\n */\nexport const createOneTimePasswordTokenRequestMutation = (\n options?: Partial<Options<CreateOneTimePasswordTokenRequestData>>,\n): UseMutationOptions<\n CreateOneTimePasswordTokenRequestResponse,\n CreateOneTimePasswordTokenRequestError,\n Options<CreateOneTimePasswordTokenRequestData>\n> => {\n const mutationOptions: UseMutationOptions<\n CreateOneTimePasswordTokenRequestResponse,\n CreateOneTimePasswordTokenRequestError,\n Options<CreateOneTimePasswordTokenRequestData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await createOneTimePasswordTokenRequest({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\n/**\n * Update User Authentication Info\n *\n * Update specific user authentication information by ID.\n */\nexport const putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdMutation =\n (\n options?: Partial<\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n >,\n ): UseMutationOptions<\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n > => {\n const mutationOptions: UseMutationOptions<\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdResponse,\n PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdError,\n Options<PutV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoIdData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } =\n await putV2AuthenticationRealmsRealmIdUserAuthenticationInfoUserAuthInfoId(\n {\n ...options,\n ...fnOptions,\n throwOnError: true,\n },\n )\n return data\n },\n }\n return mutationOptions\n }\n\n/**\n * Update User Authentication Password Profile Info\n *\n * Update specific password profile information by ID for a user.\n */\nexport const updatePasswordProfileInfoMutation = (\n options?: Partial<Options<UpdatePasswordProfileInfoData>>,\n): UseMutationOptions<\n UpdatePasswordProfileInfoResponse,\n UpdatePasswordProfileInfoError,\n Options<UpdatePasswordProfileInfoData>\n> => {\n const mutationOptions: UseMutationOptions<\n UpdatePasswordProfileInfoResponse,\n UpdatePasswordProfileInfoError,\n Options<UpdatePasswordProfileInfoData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await updatePasswordProfileInfo({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n\nexport const getAllCurrenciesQueryKey = (\n options?: Options<GetAllCurrenciesData>,\n) => createQueryKey(\"getAllCurrencies\", options)\n\n/**\n * Get all Currencies\n *\n * Fetch all currencies.\n *\n */\nexport const getAllCurrenciesOptions = (\n options?: Options<GetAllCurrenciesData>,\n) =>\n queryOptions<\n GetAllCurrenciesResponse,\n GetAllCurrenciesError,\n GetAllCurrenciesResponse,\n ReturnType<typeof getAllCurrenciesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllCurrencies({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllCurrenciesQueryKey(options),\n })\n\nexport const getACurrencyQueryKey = (options: Options<GetACurrencyData>) =>\n createQueryKey(\"getACurrency\", options)\n\n/**\n * Get a Currency\n *\n * Fetch a currency by its ID.\n *\n */\nexport const getACurrencyOptions = (options: Options<GetACurrencyData>) =>\n queryOptions<\n GetACurrencyResponse,\n GetACurrencyError,\n GetACurrencyResponse,\n ReturnType<typeof getACurrencyQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getACurrency({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getACurrencyQueryKey(options),\n })\n\nexport const getAllFilesQueryKey = (options?: Options<GetAllFilesData>) =>\n createQueryKey(\"getAllFiles\", options)\n\n/**\n * Get all Files\n *\n * Retrieves all files.\n *\n * ### Filtering\n *\n * For general filtering syntax, see [Filtering](/guides/Getting-Started/filtering).\n *\n * The following operators and attributes are available when filtering on this endpoint.\n *\n * | Attribute | Type | Operators | Example |\n * |:----------------------|:----------|:--------------------------|:-------------|\n * | `id` | `string` | `in` | `in(id,file-id-1,file-id-2,file-id-3)` |\n * | `file_name` | `string` | `eq` / `like` | `eq(file_name, my_image.jpg)` |\n * | `width` | `integer` | `gt` / `ge` / `lt` / `le` | `gt(width,200)` |\n * | `height` | `integer` | `gt` / `ge` / `lt` / `le` | `lt(height,500)` |\n * | `file_size` | `integer` | `gt` / `ge` / `lt` / `le` | `le(file_size,20953)` |\n *\n * #### Bulk File Retrieval\n *\n * To retrieve multiple files by their IDs in a single request, use the `in` operator with a comma-separated list of file IDs:\n *\n * ```\n * GET /v2/files?filter=in(id,06b881bd-f152-4c36-8658-7132a8fab49c,ec73567b-04e8-4000-a11a-7e1407cc2f21)\n * ```\n *\n * This is more efficient than making separate requests for each file and is recommended for bulk operations.\n *\n * **Note on invalid IDs**: If any IDs in the filter are missing, malformed, or do not exist in the store, they will be silently ignored. The response will only include files that were successfully found. For example, if you request 5 IDs but only 3 exist, the response will contain 3 files with `total: 3` in the metadata.\n *\n */\nexport const getAllFilesOptions = (options?: Options<GetAllFilesData>) =>\n queryOptions<\n GetAllFilesResponse,\n GetAllFilesError,\n GetAllFilesResponse,\n ReturnType<typeof getAllFilesQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAllFiles({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAllFilesQueryKey(options),\n })\n\nexport const getAFileQueryKey = (options: Options<GetAFileData>) =>\n createQueryKey(\"getAFile\", options)\n\n/**\n * Get a File\n *\n * Get a File\n */\nexport const getAFileOptions = (options: Options<GetAFileData>) =>\n queryOptions<\n GetAFileResponse,\n GetAFileError,\n GetAFileResponse,\n ReturnType<typeof getAFileQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await getAFile({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: getAFileQueryKey(options),\n })\n\nexport const postMultiSearchQueryKey = (\n options: Options<PostMultiSearchData>,\n) => createQueryKey(\"postMultiSearch\", options)\n\n/**\n * Multi-search\n *\n * Execute one or more searches in a single request.\n */\nexport const postMultiSearchOptions = (options: Options<PostMultiSearchData>) =>\n queryOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n PostMultiSearchResponse,\n ReturnType<typeof postMultiSearchQueryKey>\n >({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postMultiSearch({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true,\n })\n return data\n },\n queryKey: postMultiSearchQueryKey(options),\n })\n\n/**\n * Multi-search\n *\n * Execute one or more searches in a single request.\n */\nexport const postMultiSearchMutation = (\n options?: Partial<Options<PostMultiSearchData>>,\n): UseMutationOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n Options<PostMultiSearchData>\n> => {\n const mutationOptions: UseMutationOptions<\n PostMultiSearchResponse,\n PostMultiSearchError,\n Options<PostMultiSearchData>\n > = {\n mutationFn: async (fnOptions) => {\n const { data } = await postMultiSearch({\n ...options,\n ...fnOptions,\n throwOnError: true,\n })\n return data\n },\n }\n return mutationOptions\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","names":[]}