new-site/site/public/order
justin 618fafe1d5 order: payment-first express checkout + fix dead Tawk chat widget
Conversion fix for the checkout drop-off (54 sessions reached an /order/ page
over 3 days, 0 advanced to payment). Root cause was friction, not a bug: every
order page dropped a cold email-click straight into a 28-field intake Wizard
before showing any payment option.

- New ExpressCheckout.astro: payment-first entry. Shows price + the minimal
  fields the API needs (prefilled from public records: ?dot= FMCSA census for
  trucking, ?npi= NPPES lookup for healthcare) + Continue to payment. Creates a
  single-service batch-of-one (POST /compliance-orders/batch, which does NOT
  gate Stripe on intake_data_validated) then create-session -> Stripe. Full
  intake is collected AFTER payment via the per-service 'Complete Your Intake
  Form' email the webhook already sends (links to /order/<slug>?order=CO-xxx,
  which re-enters the Wizard in paid-intake mode).

- New OrderFlow.astro: single source of truth replacing ~50 near-identical thin
  Wizard wrappers. Trucking + healthcare default to payment-first (express on
  top, marketing hero moved BELOW the CTA). Telecom + corporate keep Wizard-first
  (rich pre-payment FCC/499 intake, no public-records prefill). Paid-intake
  re-entry (?order=/?token=) always renders the full Wizard.

- Rewrote all 50 /order/*.astro pages to use OrderFlow (foreign-qualification
  keeps its multi-state toggle via slotted content).

- Fixed the dead Tawk.to live-chat widget site-wide: the snippet set an invalid
  crossorigin='*' attribute, forcing the browser into anonymous CORS mode and
  blocking the script (0 chat requests fired anywhere). Removed it to match
  Tawk's official snippet (footer partial + 73 static public/*.html files).

Verified: build clean; express on top with hero below; ?dot=/?npi= prefill;
paid-intake re-entry swaps to Wizard; telecom stays wizard-first; batch-of-one
-> live Stripe URL; both POST endpoints allow the prod origin via CORS.
2026-06-25 11:32:48 -05:00
..
canada-crtc order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
cancel order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
cancelled order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
crypto-pay order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
dispute govfee: itemize the estimate in the email + add a 'fix my fee' dispute path 2026-06-16 05:00:31 -05:00
dot-compliance order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
fcc-499a order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
fcc-499q order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
fcc-carrier-registration order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
fcc-compliance order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
formation order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
identity-complete order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
neca-ocn order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
pay govfee: itemize the estimate in the email + add a 'fix my fee' dispute path 2026-06-16 05:00:31 -05:00
sc-insurance feat(sc-coc): SC intrastate Certificate of Compliance flow (insurance gate -> $25 fee -> file) 2026-06-16 09:15:55 -05:00
state-puc order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
success order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00
trucking-new-carrier order: payment-first express checkout + fix dead Tawk chat widget 2026-06-25 11:32:48 -05:00