NewPut Kitenzo bundles in your mobile app. Try our open-source React Native starter

Developers · React Native

Kitenzo bundles, inside your mobile app.

The Kitenzo React Native Starter is an open-source Expo app for iOS and Android. It loads a bundle, lets the shopper build it with live pricing, and checks out through Shopify. Fork it, point it at your shop and ship.

Expo SDK 57, React Native and TypeScript. MIT licensed.

How it worksios · android · web
  1. 01

    Load a Native bundle

    @kitenzo/core fetches the bundle with its sections, products and variants.

  2. 02

    Pick items, section by section

    The bundle price updates as the shopper chooses, with no round trip.

  3. 03

    Add to a Storefront API cart

    cartLinesAdd plus the _bundles attribute, so the Cart Transform applies the bundle price.

  4. 04

    Hand off to Shopify checkout

    The cart opens in Shopify checkout. Payments, taxes and fulfilment stay native.

Try it on your phone

Scan, build a set, check out.

The demo runs against a Kitenzo demo store with five bundles: a skincare routine in steps, a fixed-price outfit, mix-and-match drinks with tiered discounts, supplements with free products and a gift box. Pick one, build it and watch the price change as you go.

Already on your phone? Tap the link under the code instead.

QR code for kitenzo-rn-starter.pages.dev

Web demo

Opens in your phone's browser. Nothing to install.

kitenzo-rn-starter.pages.dev

What's inside

The whole bundle flow, already wired up.

It runs on @kitenzo/core, the same engine behind Kitenzo on Liquid themes and headless storefronts. You only need a shop domain and a Kitenzo headless API key. It uses Shopify's tokenless Storefront API access, so there is no Storefront token to manage.

Native bundles with live pricing

Sections, products and variants come from your Kitenzo admin. The price recalculates on device as each item is picked.

A Storefront API cart, _bundles included

Lines go in with cartLinesAdd and the _bundles cart attribute is set for you, so Shopify’s Cart Transform applies the bundle price.

Shopify checkout

The finished cart hands off to Shopify checkout. No custom payment flow to build or maintain.

Markets and currency aware

Set a country code and prices, cart and checkout follow that Shopify Market and its currency.

TypeScript and Expo Router

Typed end to end, with file-based routes. Runs on iOS, Android and the web from one codebase.

MIT licensed

Fork it, restyle it and ship it in your own app. The licence asks for nothing back.

Get started

Running on your shop in three steps.

You need Node, a Shopify store with Kitenzo installed and at least one published bundle.

Headless access is enabled per shop. If you do not see Settings › Headless in Kitenzo yet, request API access and we will turn it on.

  1. 01

    Copy the starter

    Or fork and clone it on GitHub.

    terminal
    $ npx degit kitenzo/react-native-starter my-app
    $ cd my-app && npm install
  2. 02

    Point it at your shop

    Copy .env.example to .env and add your shop domain and Kitenzo headless API key.

    .env
    EXPO_PUBLIC_SHOP_DOMAIN=your-store.myshopify.com
    EXPO_PUBLIC_KITENZO_API_KEY=kit_live_your_key_here
  3. 03

    Start it

    Scan the QR code with Expo Go, or press i, a or w for the iOS simulator, Android emulator or web.

    terminal
    $ npx expo start

App builders

Using Tapcart or another app builder?

You don't need the starter. For each bundle a shopper builds, Kitenzo's headless API returns the cart lines and the _bundles attribute, ready for the app's cart. Add them from a custom block and Shopify prices the bundle at checkout as usual.

Request API access and tell us which app builder you use. We'll help you set it up.

Fork it and ship your bundle app.

The starter is the quickest way in. When you outgrow it, @kitenzo/core is the dependency-free client underneath, ready for any React Native or JavaScript app.

Building for the web instead? See the React SDK →