If your checkout is "almost working," it’s usually one of four issues: products aren’t assigned to the step, you’re not using V2 + native forms for upsells, the domain/payment wallet setup is incomplete, or your workflows are accidentally blocking re-entry for upsell purchases. Order forms work best when the funnel structure upstream is clean - see our GoHighLevel funnel builds for how we structure the full conversion path before the checkout step.
Read this like a mechanic’s sheet. Find your symptom, then go straight to the relevant fix section.
| Symptom | Most likely cause | Fix section |
|---|---|---|
| Order form shows… but no products / $0 total | Products/prices not attached to the funnel step Products tab. | One-Step Setup → |
| Upsell page loads but "one-click" won’t charge | You’re not using V2 Funnels + Native Form token flow, or steps are on different domains. | Upsells → |
| Workflow fires for primary purchase but not upsell | Order Submitted trigger setup + a wait step can prevent re-entry while the contact is "held." | Workflows → |
| Apple Pay button missing / fails | Apple Pay domain verification / association file is missing; Stripe hasn’t registered domain. | Wallets → |
| Conversions look inflated | Pixels fire on multiple steps or both global + conversion steps. | Tracking → |
Checkout reliability is a sequencing problem: step products → native form → domain rules → workflow filters → QA. Random scripts tend to create double-fires, broken tokens, and mobile slowdown.
GHL order form with a bump offer - coaching business seeing 34% bump acceptance rate.
The most important detail: the form element can only sell what is attached to the same step via the step’s Products tab.
Have the product + at least one price ready (one-time or subscription).
In the funnel step, open Products tab → add product + choose price.
Enable multiple quantity + max per order only if you truly need it.
Place the One Step Order element on the page and configure fields.
Add a bump product for AOV lift; add coupons if you have a real promo plan.
Confirm an order record is created and downstream workflows route correctly.
If you don’t need shipping, don’t collect shipping. If you don’t need company name, remove it. Checkout friction compounds. Treat every field as a conversion tax.
Order bumps sit on the same checkout and add revenue with minimal friction. Keep them tightly related to the primary product.
If you run different onboarding for bump buyers, don’t guess-filter your automation with "Submission Type: Bump" using the Order Submitted trigger so you target the right customers.
Order bump performance for a coaching business selling a $497 program.
The upsell "magic" is tokenization: after the primary purchase, the customer can accept an upsell and be charged immediately. That token handoff is why setup details matter.
Use V2 Funnels, use Native Form elements so the payment token can pass to the next step, keep upsell steps on the same domain, and avoid long wait steps in your Order Submitted workflow if you rely on upsells.
One-step order form with main product (and optional bump) configured correctly.
Set form button action to "Go to Next Step" to reach the upsell page immediately.
Use the one-click up/down-sell action so it charges using the captured token.
Your Order Submitted trigger can fire on the primary purchase and again on the upsell purchase. That’s not a bug-it’s a feature. Use filters so you route onboarding correctly.
| Purchase type | Trigger filter | Example action |
|---|---|---|
| Primary | Submission Type = Primary | Start onboarding, send receipt, tag "Customer" |
| Bump | Submission Type = Bump | Add "bump bonus" delivery step or access |
| Upsell | Submission Type = Upsell | Add upsell fulfillment + "upsell accepted" tag |
The goal: zero duplicate onboarding, zero missed upsell fulfillment, and reporting that you can trust.
If a contact is sitting inside an Order Submitted workflow due to a wait step, and they purchase an upsell, that upsell purchase may not be able to enter the workflow again while they’re still held. If you rely on upsells, design your logic to avoid long holds.
Keep base tags global and conversion tags only on your confirmation step. If you’re not 100% sure your conversions fire once, fix that before you optimize anything else.
Wallet payments are great for conversion rate-until they silently fail because the domain hasn’t been verified properly.
Switching domains between steps (or launching on a non-connected domain) causes verification and token issues. Keep checkout + upsell steps on the same, correctly connected domain.
Preview mode lies. QA on the published domain with a real transaction flow.
Confirm the order shows in Orders/Transactions (and amounts match expected totals).
Accept bump and verify it appears as a line item (and routes the correct tags).
Accept the upsell and confirm the system processes the additional charge correctly.
Primary, bump, upsell branches do the right thing without duplicates.
Conversion event fires once on the confirmation step (not on multiple pages).
No layout shift, no heavy widgets above the fold, CTA is obvious.
Fulfillment rules: - Primary purchase = baseline access + standard onboarding - Bump purchase = add bonus delivery + tag "bump-buyer" - Upsell purchase = add upsell access + tag "upsell-buyer" - If buyer gets both bump + upsell, ensure onboarding does NOT duplicate messages. - Audit weekly: Orders vs Delivered vs Support tickets.
Send your funnel URL(s), product list, and your desired bump/upsell structure. We’ll implement V2 checkout correctly, wire Order Submitted workflows with clean filters, verify wallet payments, and lock tracking so you can scale with confidence.
High-intent answers for HighLevel checkout builds.
Everything in this guide runs on GoHighLevel. Try it free for 30 days and see why we chose it.
No credit card required · Cancel anytime