Skip to main content
For E-commerce

Change promo and checkout screens during a campaign

When a sale banner, promo code field, or checkout step needs a web-layer fix, upload it with the Capgo CLI. Test it on a staging channel, send it to a share of shoppers, and roll it back if checkout looks wrong.

Why retail teams add a live update lane

Campaign dates don't move for store review

A campaign-day bug on the store-only path

A sale starts and the promo code field fails on one platform. The fix is a few lines of JavaScript.

With a store-only process, you build a new binary and submit it. Store review is often 24–48 hours, sometimes much longer.

Even after approval, shoppers still have to install the new version. The campaign may be over before most of them do.

Campaigns run on fixed dates

Promotions, product drops, and seasonal sales start at a set time. A web-layer fix should not depend on a review queue.

Checkout changes need care

A change to the cart or checkout should reach a small share of shoppers first, with a fast way back.

Many app versions stay installed

Shoppers update at different times. A bundle that needs new native code must not reach older binaries.

Campaign screens need a real-device check

Marketing and QA want to see the campaign screens on a phone before they go live.

What Capgo gives retail teams

A faster lane for web-layer changes

Stage campaign UI, ship it to a share of shoppers, and keep a one-step way back. Native changes still go through the stores.

Push web-layer fixes mid-campaign

Upload the fixed JavaScript, HTML, or CSS. Devices on the channel download it in the background and run it the next time the app comes back to the foreground.

Update behavior docs

Roll checkout changes out gradually

Send a new checkout or product page bundle to a share of devices while everyone else stays on the stable bundle. This is a release control, not an A/B test: compare conversion in your own analytics.

Progressive rollouts docs

Roll back in one step

If a release breaks the cart, roll the rollout back or pick the previous bundle from the channel history. A bundle that fails to start rolls back on the device by itself.

Rollbacks docs

Stage campaign UI before launch

Upload the campaign bundle to a staging channel and open it on a real device with a QR code. Promote it when the team signs off.

Channels docs
# upload the campaign bundle to staging, print a QR code
npx @capgo/cli@latest bundle upload --channel staging --qr-preview

# after sign-off, ship the same code to production
npx @capgo/cli@latest bundle upload --channel production --rollout 10
get-qr command

How it works

How retail teams ship a campaign change with Capgo

A typical flow for a promo or checkout change in a Capacitor shopping app. Every command below is from the Capgo CLI docs.

  1. Stage it on a staging channel

    Upload the campaign bundle to staging and scan the QR code to open it on a real device. Bundle preview must be enabled for the app.

    npx @capgo/cli@latest bundle upload --channel staging --qr-preview
    Channels docs
  2. Send it to a share of shoppers

    Upload to production with --rollout. Most shoppers stay on the stable bundle until you promote.

    npx @capgo/cli@latest bundle upload --channel production --delta --rollout 10
    Progressive rollouts docs
  3. Promote when checkout looks right

    Check install and failure data in Capgo and your own sales dashboards, then promote the bundle to every device on the channel.

    npx @capgo/cli@latest channel set production --rollout-promote
    Observe docs
  4. Roll back if it doesn't

    Send the rollout cohort back to stable in one command, or pick an earlier bundle from the channel history.

    npx @capgo/cli@latest channel set production --rollout-rollback
    Rollbacks docs

Apps built with Capacitor

Retail apps live on offers, loyalty, and checkout polish

Grocery and loyalty apps can change promotions, rewards entry points, onboarding, and checkout messaging faster than a binary release cycle allows.

My Morrisons app icon SHOPPING

My Morrisons

Grocery loyalty app where campaign and rewards screens change with each promotion.

Google Play installs
2.8M
Store rating
3.1
Sprouts app icon SHOPPING

Sprouts

Retail shopping app where offer content and browse paths change continuously.

Google Play installs
1.4M
Store rating
4.3
Wegmans app icon SHOPPING

Wegmans

Grocery app where checkout, list, and loyalty polish can move independently.

Google Play installs
1.3M
Store rating
3.7

Customer proof

What teams shipping with Capgo say

5.0/5 rated by developer teams 9,400+ teams Read reviews

Kapil

Founder, NuTriQ

“Being able to push production OTA updates instantly without waiting for full App Store review cycles has been a massive operational advantage.”

Portrait of Sergiu S

Sergiu S

Lead Developer, drivolino GmbH

“The Capgo Capacitor Updater plugin completely transformed how we ship updates. What used to take days now takes just minutes.”

no-tone @ Webincode

Developer, Webincode

“Being able to add Device ID's to certain groups and push the changes to only certain groups is a life saver.”

FAQ

Questions retail teams ask

What a live update can change in a shopping app, and how to keep checkout safe.

Can we change prices or checkout with a live update?

Prices usually come from your backend, so change them there. A live update changes the web code and assets that display them: promo banners, product pages, cart and checkout screens. Changes to native payment SDKs or plugins need a store release.

Native compatibility docs

Is Capgo an A/B testing tool?

No. A progressive rollout sends a bundle to a random, sticky share of devices to limit risk. It does not measure conversion. For experiments, use your analytics or feature flag tool. Use channels when specific users need a different bundle.

Progressive rollouts docs

How do we test campaign screens before they go live?

Upload the bundle to a staging channel and open it on a device with a QR code, or pin test devices to that channel with a device override. Promote the same bundle to production when it is approved.

Channels docs

What if a release breaks checkout?

If the new bundle fails to start and never calls notifyAppReady(), the device rolls back by itself. If it starts but checkout misbehaves, roll back the progressive rollout or pick the previous bundle from the channel history.

Rollbacks docs

When do shoppers see the update?

By default, devices download it in the background and run it the next time the app comes back to the foreground. If shoppers must see it on the first screen, use a direct update mode such as onLaunch.

Update behavior docs

Ready for your next campaign?

Set up a staging channel and a progressive rollout on your own app during the trial.