# cartGetDefault Creates a function that returns a cart ```js import {cartGetDefault} from '@shopify/hydrogen'; const cartGet = cartGetDefault({ storefront, getCartId, }); const result = await cartGet(); ``` ## cartGetDefault ### CartGetDefaultGeneratedType #### Returns: CartGetFunction #### Params: - options: CartQueryOptions export function cartGetDefault(options: CartQueryOptions): CartGetFunction { return async (cartInput?: CartGetProps) => { const cartId = options.getCartId(); if (!cartId) return null; const {cart} = await options.storefront.query<{cart: Cart}>( CART_QUERY(options.cartFragment), { variables: { cartId, ...cartInput, }, cache: options.storefront.CacheNone(), }, ); return cart; }; } ### CartQueryOptions ### storefront value: `Storefront` The storefront client instance created by [`createStorefrontClient`](docs/api/hydrogen/latest/utilities/createstorefrontclient). ### getCartId value: `() => string` A function that returns the cart ID. ### cartFragment value: `string` The cart fragment to override the one used in this query. ### Storefront Interface to interact with the Storefront API. ### query value: `(query: RawGqlString, ...options: RawGqlString extends never ? IsOptionalVariables extends true ? [StorefrontQuerySecondParam?] : [StorefrontQuerySecondParam] : [StorefrontQuerySecondParam?]) => Promise` The function to run a query on Storefront API. ### mutate value: `(mutation: RawGqlString, ...options: RawGqlString extends never ? IsOptionalVariables extends true ? [StorefrontMutateSecondParam?] : [StorefrontMutateSecondParam] : [StorefrontCommonOptions<{ readonly [variable: string]: unknown; }>?]) => Promise` The function to run a mutation on Storefront API. ### cache value: `Cache` The cache instance passed in from the `createStorefrontClient` argument. ### CacheNone value: `() => NoStoreStrategy` Re-export of [`CacheNone`](https://shopify.dev/docs/api/hydrogen/2023-07/utilities/cachenone). ### CacheLong value: `(overrideOptions?: AllCacheOptions) => AllCacheOptions` Re-export of [`CacheLong`](https://shopify.dev/docs/api/hydrogen/2023-07/utilities/cachelong). ### CacheShort value: `(overrideOptions?: AllCacheOptions) => AllCacheOptions` Re-export of [`CacheShort`](https://shopify.dev/docs/api/hydrogen/2023-07/utilities/cacheshort). ### CacheCustom value: `(overrideOptions: AllCacheOptions) => AllCacheOptions` Re-export of [`CacheCustom`](https://shopify.dev/docs/api/hydrogen/2023-07/utilities/cachecustom). ### generateCacheControlHeader value: `(cacheOptions: AllCacheOptions) => string` Re-export of [`generateCacheControlHeader`](https://shopify.dev/docs/api/hydrogen/2023-07/utilities/generatecachecontrolheader). ### getPublicTokenHeaders value: `(props?: Partial> & Pick) => Record` Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. See [`getPublicTokenHeaders` in Hydrogen React](https://shopify.dev/docs/api/hydrogen-react/2023-07/utilities/createstorefrontclient#:~:text=%27graphql%27.-,getPublicTokenHeaders,-(props%3F%3A) for more details. ### getPrivateTokenHeaders value: `(props?: Partial> & Pick & { buyerIp?: string; }) => Record` Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint for API calls made from a server. See [`getPrivateTokenHeaders` in Hydrogen React](https://shopify.dev/docs/api/hydrogen-react/2023-07/utilities/createstorefrontclient#:~:text=storefrontApiVersion-,getPrivateTokenHeaders,-(props%3F%3A) for more details. ### getShopifyDomain value: `(props?: Partial>) => string` Creates the fully-qualified URL to your myshopify.com domain. See [`getShopifyDomain` in Hydrogen React](https://shopify.dev/docs/api/hydrogen-react/2023-07/utilities/createstorefrontclient#:~:text=StorefrontClientReturn-,getShopifyDomain,-(props%3F%3A) for more details. ### getApiUrl value: `(props?: Partial>) => string` Creates the fully-qualified URL to your store's GraphQL endpoint. See [`getStorefrontApiUrl` in Hydrogen React](https://shopify.dev/docs/api/hydrogen-react/2023-07/utilities/createstorefrontclient#:~:text=storeDomain-,getStorefrontApiUrl,-(props%3F%3A) for more details. ### isApiError value: `(error: any) => boolean` Determines if the error is resulted from a Storefront API call. ### i18n value: `TI18n` The `i18n` object passed in from the `createStorefrontClient` argument. ### 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 value: `string` The caching mode, generally `public`, `private`, or `no-store`. ### maxAge value: `number` 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 value: `number` 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 value: `number` 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 value: `number` 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). ### NoStoreStrategy ### mode value: `string` ### AllCacheOptions Override options for a cache strategy. ### mode value: `string` The caching mode, generally `public`, `private`, or `no-store`. ### maxAge value: `number` 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 value: `number` 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 value: `number` 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 value: `number` 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). ### CartGetFunction #### Returns: Promise #### Params: - cartInput: CartGetProps export type CartGetFunction = ( cartInput?: CartGetProps, ) => Promise; ### CartGetProps ### cartId value: `string` The cart ID. ### country value: `CountryCode` The country code. ### language value: `LanguageCode` The language code. ### numCartLines value: `number` The number of cart lines to be returned.