Context
I’m building a checkout UI extension that uses useBuyerJourneyIntercept to require acceptance of terms before the buyer can complete the order (block progress when the terms checkbox is unchecked).
What I’m seeing
On single-page checkout, the interceptor seems to run not only when the buyer clicks “Pay now”, but also when they edit other fields (e.g. address). That causes the terms validation to show while they’re still filling the form, which is confusing.
What I need
Clarification on when the interceptor is actually invoked:
-
Is it only when the buyer tries to submit (e.g. “Pay now” / “Complete order”)?
-
Or can it also run on other “progress” events (e.g. address/contact validation, step transitions, or field blur)?
The Buyer Journey API docs describe it as “intercepting and preventing progress” and “navigation,” but don’t specify which user actions trigger the interceptor. A short note in the docs or here on when it runs would help extension developers (e.g. to avoid validating terms on address changes and only on final submit).
Workaround so far
I’m using buyerJourney.activeStep and only blocking when the current step is payment or checkout, which improves multi-step checkout but doesn’t fully fix single-page checkout if the interceptor runs on every progress/validation event.
Relevant API
-
useBuyerJourneyIntercept (React) / buyerJourney.intercept() (Preact/vanilla)
-
Extension target: purchase.checkout.actions.render-before
-
Capability: block_progress