Skip to content

fix(app): tell trial-paywall code holders where their code goes - #25430

Merged
kodjima33 merged 2 commits into
mainfrom
fix/trial-paywall-code-hint
Nov 15, 2026
Merged

kodjima33 merged 2 commits into
mainfrom
fix/trial-paywall-code-hint

Conversation

@kodjima33

@kodjima33 kodjima33 commented Nov 15, 2026 •

Copy link
Copy Markdown
Collaborator

What changed and why

People who bought Omi with an included Omi Pro year can't find where to enter their code. Shopify buyers are trial-eligible, so Settings → Plan & Usage → Upgrade opens the trial paywall. That page has no code field, only "Try for $0". Their code actually goes in the "Add promotion code" box on the Stripe Checkout page that opens next. Since Nov 2 every included-year code applies there on the trial checkout.

Intercom, last 30 days: 58 customers had trouble with a subscription code or a prepaid year, and 32 of them wrote after Nov 2. Examples: "I do not find promo code under the plans section, it just looks like I can set up a 7-Day free trial" and "Still nowhere to put the code in: Plan & Usage, Upgrade, Yearly...".

The change adds one muted line under the existing cancel note: "Have an Omi Pro code? Add it on the next screen." It is in all 49 locales via scripts/l10n.py. Nothing else on the paywall changed.

Product invariants affected

none

How it was verified

  • flutter test on test/widgets/trial_paywall_page_test.dart, trial_paywall_navigation_test.dart, trial_paywall_monthly_offer_test.dart, billing_currency_surfaces_test.dart and paywall_router_test.dart: 64 passed, including the new case and the 320pt no-overflow cases.
  • python3 scripts/l10n.py check: ok, 49 locales.
  • Stripe sandbox: a trial Checkout session created by the backend shows the "Add promotion code" button with "Total due today $0.00". That is the screen this line points to.
  • Render below: the real TrialPaywallPage with SF Pro fonts at 430×932 @3x, iOS platform. It is a widget render, not a running device build.

Tests

app/test/widgets/trial_paywall_page_test.dart: "code holders are told where their code goes, beside the trial terms" (at 320pt, no overflow).

UI evidence

Trial paywall bottom

Failure class (fixes)

Failure-Class: none

🤖 Generated with Claude Code

View guided diff Turn on auto-fix

kodjima33 and others added 2 commits November 15, 2026 16:00
Shopify buyers with an included year are trial-eligible, so Upgrade opens the
trial paywall, which has no code field. Their code is entered in Stripe
Checkout's promotion code box on the next screen; say so under the button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kodjima33
kodjima33 merged commit 80a9ade into main Nov 15, 2026
52 checks passed
@kodjima33
kodjima33 deleted the fix/trial-paywall-code-hint branch November 15, 2026 21:36
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.

1 participant