# cartDiscountCodesUpdateDefault Creates a function that accepts an array of strings and adds the discount codes to a cart ### example ```js import {cartDiscountCodesUpdateDefault} from '@shopify/hydrogen'; const cartDiscount = cartDiscountCodesUpdateDefault({ storefront, getCartId, }); const result = await cartDiscount(['FREE_SHIPPING']); ``` ## cartDiscountCodesUpdateDefault ### CartDiscountCodesUpdateDefaultGeneratedType #### Returns: CartDiscountCodesUpdateFunction #### Params: - options: CartQueryOptions export function cartDiscountCodesUpdateDefault( options: CartQueryOptions, ): CartDiscountCodesUpdateFunction { return async (discountCodes, optionalParams) => { // Ensure the discount codes are unique const uniqueCodes = discountCodes.filter((value, index, array) => { return array.indexOf(value) === index; }); const {cartDiscountCodesUpdate, errors} = await options.storefront.mutate<{ cartDiscountCodesUpdate: CartQueryData; errors: StorefrontApiErrors; }>(CART_DISCOUNT_CODE_UPDATE_MUTATION(options.cartFragment), { variables: { cartId: options.getCartId(), discountCodes: uniqueCodes, ...optionalParams, }, }); return formatAPIResult(cartDiscountCodesUpdate, errors); }; } ### CartQueryOptions ### storefront The storefront client instance created by [`createStorefrontClient`](docs/api/hydrogen/latest/utilities/createstorefrontclient). ### getCartId A function that returns the cart ID. ### cartFragment The cart fragment to override the one used in this query. ### Storefront Interface to interact with the Storefront API. ### query ### mutate ### cache ### CacheNone ### CacheLong ### CacheShort ### CacheCustom ### generateCacheControlHeader ### getPublicTokenHeaders ### getPrivateTokenHeaders ### getShopifyDomain ### getApiUrl ### isApiError ### i18n ### StorefrontQueries Maps all the queries found in the project to variables and return types. export interface StorefrontQueries { // Example of how a generated query type looks like: // '#graphql query q1 {...}': {return: Q1Query; variables: Q1QueryVariables}; } ### AutoAddedVariableNames 'country' | 'language' ### StorefrontCommonExtraParams ### headers ### storefrontApiVersion ### displayName ### StorefrontQueryOptions StorefrontCommonExtraParams & { query: string; mutation?: never; cache?: CachingStrategy; } ### CachingStrategy Use the `CachingStrategy` to define a custom caching mechanism for your data. Or use one of the pre-defined caching strategies: CacheNone, CacheShort, CacheLong. ### mode The caching mode, generally `public`, `private`, or `no-store`. ### maxAge The maximum amount of time in seconds that a resource will be considered fresh. See `max-age` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#:~:text=Response%20Directives-,max%2Dage,-The%20max%2Dage). ### staleWhileRevalidate Indicate that the cache should serve the stale response in the background while revalidating the cache. See `stale-while-revalidate` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-while-revalidate). ### sMaxAge Similar to `maxAge` but specific to shared caches. See `s-maxage` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#s-maxage). ### staleIfError Indicate that the cache should serve the stale response if an error occurs while revalidating the cache. See `stale-if-error` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-if-error). ### StorefrontError ### errors ### StorefrontApiErrors JsonGraphQLError[] | undefined ### StorefrontMutations Maps all the mutations found in the project to variables and return types. export interface StorefrontMutations { // Example of how a generated mutation type looks like: // '#graphql mutation m1 {...}': {return: M1Mutation; variables: M1MutationVariables}; } ### NoStoreStrategy ### mode ### AllCacheOptions Override options for a cache strategy. ### mode The caching mode, generally `public`, `private`, or `no-store`. ### maxAge The maximum amount of time in seconds that a resource will be considered fresh. See `max-age` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#:~:text=Response%20Directives-,max%2Dage,-The%20max%2Dage). ### staleWhileRevalidate Indicate that the cache should serve the stale response in the background while revalidating the cache. See `stale-while-revalidate` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-while-revalidate). ### sMaxAge Similar to `maxAge` but specific to shared caches. See `s-maxage` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#s-maxage). ### staleIfError Indicate that the cache should serve the stale response if an error occurs while revalidating the cache. See `stale-if-error` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-if-error). ### CartDiscountCodesUpdateFunction #### Returns: Promise #### Params: - discountCodes: string[] - optionalParams: CartOptionalInput export type CartDiscountCodesUpdateFunction = ( discountCodes: string[], optionalParams?: CartOptionalInput, ) => Promise; ### CartOptionalInput ### cartId The cart id. ### country The country code. ### language The language code. ### CartQueryDataReturn CartQueryData & { errors?: StorefrontApiErrors; } ### CartQueryData ### cart ### userErrors ### Cart Cart ### CartUserError CartUserError ### MetafieldsSetUserError MetafieldsSetUserError ### MetafieldDeleteUserError MetafieldDeleteUserError