--- title: BuyNowButton description: >- The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. Must be a child of a `CartProvider` component. api_version: 2025-07 api_name: hydrogen-react source_url: html: 'https://shopify.dev/docs/api/hydrogen-react/latest/components/buynowbutton' md: >- https://shopify.dev/docs/api/hydrogen-react/latest/components/buynowbutton.md --- # Buy​Now​Button The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. Must be a child of a `CartProvider` component. ## Props * **children** **ReactNode** **required** Any ReactNode elements. * **variantId** **string** **required** The ID of the variant. * **as** **AsType** Provide a React element or component to render as the underlying button. Note: for accessibility compliance, almost always you should use a `button` element, or a component that renders an underlying button. * **attributes** **{ key: string; value: string; }\[]** An array of cart line attributes that belong to the item being added to the cart. * **buttonRef** **Ref\** A `ref` to the underlying button * **defaultOnClick** **(event?: MouseEvent\) => boolean | void** A default `onClick` behavior * **onClick** **(event?: MouseEvent\) => boolean | void** Click event handler. Default behaviour triggers unless prevented * **quantity** **number** The item quantity. Defaults to 1. * **sellingPlanId** **string** The selling plan ID of the subscription variant Examples ### Examples * #### Example code ##### Description I am the default example ##### JavaScript ```jsx import {BuyNowButton} from '@shopify/hydrogen-react'; export default function ProductBuyNowButton({product}) { const variantId = product.variants[0].id; if (!variantId) { return null; } return ; } ``` ##### TypeScript ```tsx import {BuyNowButton} from '@shopify/hydrogen-react'; import type {Product} from '@shopify/hydrogen-react/storefront-api-types'; export default function ProductBuyNowButton({product}: {product: Product}) { const variantId = product.variants[0].id; if (!variantId) { return null; } return ; } ```