Skip to content

Rewrite Android Checkout Kit READMEs#185

Open
tiagocandido wants to merge 1 commit into
checkout-kit-readmes/swiftfrom
checkout-kit-readmes/android
Open

Rewrite Android Checkout Kit READMEs#185
tiagocandido wants to merge 1 commit into
checkout-kit-readmes/swiftfrom
checkout-kit-readmes/android

Conversation

@tiagocandido
Copy link
Copy Markdown
Contributor

@tiagocandido tiagocandido commented May 21, 2026

What changes are you making?

Refresh the Android Checkout Kit documentation:

  • Rewrite the Android README around install, checkout URL creation, presentation, configuration, lifecycle callbacks, browser/system callbacks, authentication, links, and samples.
  • Update the Android sample READMEs.

How to test

Documentation-only change.

  • git diff --check checkout-kit-readmes/swift...checkout-kit-readmes/android
  • Checked local Markdown links for the changed README files.

Before you merge

Important

  • I've added tests to support my implementation
  • I have read and agree with the Contribution Guidelines
  • I have read and agree with the Code of Conduct
  • I've updated the relevant platform README (platforms/swift/README.md and/or platforms/android/README.md)

Releasing a new Swift version?
  • I have bumped the version in ShopifyCheckoutKit.podspec
  • I have bumped the version in platforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swift
  • I have updated platforms/swift/CHANGELOG.md
  • I have updated the SwiftPM/CocoaPods version snippets in platforms/swift/README.md (major version only)
Releasing a new Android version?
  • I have bumped the versionName in platforms/android/lib/build.gradle
  • I have updated platforms/android/CHANGELOG.md
  • I have updated the Gradle/Maven version snippets in platforms/android/README.md

Tip

See the Contributing documentation for the full release process per platform.

Copy link
Copy Markdown
Contributor Author

tiagocandido commented May 21, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 21, 2026

React Native — Coverage Report

Lines Statements Branches Functions
Coverage: 95%
95.26% (181/190) 92.03% (104/113) 100% (56/56)

@tiagocandido tiagocandido marked this pull request as ready for review May 21, 2026 13:11
@tiagocandido tiagocandido requested a review from a team as a code owner May 21, 2026 13:11
@tiagocandido
Copy link
Copy Markdown
Contributor Author

@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/swift branch from ef3cc56 to 3fa7a4a Compare May 21, 2026 13:31
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/android branch from 46375cf to 28b134c Compare May 21, 2026 13:31
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/swift branch from 3fa7a4a to ad19673 Compare May 21, 2026 13:33
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/android branch from 28b134c to aea5652 Compare May 21, 2026 13:33
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/swift branch from ad19673 to d7c2648 Compare May 21, 2026 14:12
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/android branch from aea5652 to d11d3a1 Compare May 21, 2026 14:12
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/swift branch from d7c2648 to 24ef2d5 Compare May 21, 2026 14:24
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/android branch from d11d3a1 to 5cf07e4 Compare May 21, 2026 14:24
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/android branch from 5cf07e4 to eaf2a61 Compare May 21, 2026 14:28
@tiagocandido tiagocandido force-pushed the checkout-kit-readmes/swift branch from 24ef2d5 to 2f23f9f Compare May 21, 2026 14:28
- Chrome >= 80
- Android `minSdk` 23+
- Android `compileSdk` 35+ for consuming apps. This repository currently builds the library with `compileSdk` 36.
- Chrome or Android System WebView 80+
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will be an end-user requirement more than anything. And only required for Google Pay right?

- Android `minSdk` 23+
- Android `compileSdk` 35+ for consuming apps. This repository currently builds the library with `compileSdk` 36.
- Chrome or Android System WebView 80+
- A Storefront API access token and a checkout URL from `cart.checkoutUrl` or a cart permalink
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With permalink, you don't really need a Storefront API access token.

Would probably drop this line

The SDK is an [open source Android library](https://central.sonatype.com/artifact/com.shopify/checkout-kit). As a quick start, see
[sample projects](samples/README.md) or use one of the following ways to integrate the SDK into
your project:
The first Checkout Kit for Android alpha is `4.0.0-alpha.1`. Pin the alpha version explicitly until a stable `4.x` release is available.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want folks to pin an unstable version?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we keep the pointer to the repository?

simplify the development workflow:
1. Create or update a cart with the [Storefront GraphQL API](https://shopify.dev/docs/api/storefront), for example with [`cartCreate`](https://shopify.dev/docs/api/storefront/2026-04/mutations/cartCreate) and related cart mutations.
2. Read the cart's [`checkoutUrl`](https://shopify.dev/docs/api/storefront/2026-04/objects/Cart#field-cart-checkouturl).
3. Pass that URL, or a [cart permalink](https://help.shopify.com/en/manual/products/details/cart-permalink), to Checkout Kit without adding Checkout Kit query parameters yourself.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The without adding Checkout Kit query parameters yourself feels quite redundant

To present a native checkout dialog in your Android application, provide
the `checkoutUrl` alongside optional runtime configuration settings to the `present(checkoutUrl)`
function provided by the SDK:
You can use any GraphQL client. The sample app uses Apollo Kotlin and is a better reference for a modern Storefront API integration.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a better reference than what?

Drop that part?

Checkout Kit does not create carts or authenticate buyers. Add buyer context to the cart before presenting checkout:

### Cart: buyer bag, identity, and preferences
- Use Storefront API cart buyer identity fields to prefill email, phone, address, country, language, and delivery preferences.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think now some of this is deprecated, and there are separate mutations for setting delivery addresses for example


### Cart: buyer bag, identity, and preferences
- Use Storefront API cart buyer identity fields to prefill email, phone, address, country, language, and delivery preferences.
- Use Multipass for Shopify Plus stores that use Classic Customer Accounts. Generate Multipass tokens server-side and set `return_to` to the checkout URL.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably still useful, but at some point I wonder if we should drop it now that multipass is officially legacy and new customer accounts are the way to go

see [guide](https://shopify.dev/docs/custom-storefronts/building-with-the-storefront-api/cart/manage).
Included information will be used to present pre-filled and pre-selected choices to the buyer within
checkout.
Keep Storefront API tokens and Multipass secrets out of client-side code where they are not intended to be public.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the Storefront API tokens folks would generally use are the Public access token?

Multipass secrets for sure though

## Accelerated checkouts

### Shop Pay
Android Checkout Kit does not currently render accelerated checkout buttons. Use the checkout URL presentation flow above. Swift and React Native iOS integrations can use `ShopifyAcceleratedCheckouts` for Shop Pay and Apple Pay buttons.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not 100% convinced we need to talk about functionality that doesn't exist


The Customer Account API allows you to authenticate buyers and provide a personalized checkout experience.
For detailed implementation instructions, see our [Customer Account API Authentication Guide](https://shopify.dev/docs/storefronts/headless/mobile-apps/checkout-kit/authenticate-checkouts).
## Samples
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we refer to this in the singular now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants