The API for Argo extensions that run in Shopify’s Checkout

Usage no npm install needed!

<script type="module">
  import shopifyArgoCheckout from 'https://cdn.skypack.dev/@shopify/argo-checkout';



This library contains type definitions and other utilities for writing Argo extensions in Shopify’s checkout. However, nothing in this library is strictly required to write an Argo extension. As a developer building an Argo extension, you can forego the utilities this library provides entirely, and instead use the global shopify API directly in a plain JavaScript file. The script below is a valid Argo script without any additional processing:

shopify.extend('Checkout::Feature::Render', (root, api) => {
  const button = root.createComponent('Button', {
    onPress() {

  button.appendChild('Buy now');


Keeping in mind that any utility provided by this library is only a convenience API on top of the shopify global, the rest of the documentation for this library will show examples using JavaScript imports from the @shopify/argo-checkout library. Using JavaScript modules in this way requires a build step, but can provide useful developer experience features and opportunities for build-time performance optimizations.

Getting started

Before you dig in to what this library has to offer, please read through the getting started guide.


This package provides utilities, types, and documentation for the many different APIs an Argo extension can access. Before you write your first extension, you should read through the following documentation in order:

Once you’ve read the documents above, you’re ready to write a checkout extension. If you’re wanting to learn even more, this repo has a few additional guides that cover techniques for writing larger, more complex extensions: