Commit Graph
3 Commits
Author SHA1 Message Date
oliver 5f647c055a fix(analytics): put the Buy class on the <form> so the goal actually fires
Plausible's click handler walks up from the clicked element and bails out the
moment it meets a <form>, so a plausible-event-name=Buy class on a
<button type="submit"> inside a plain form never fires Buy — the tracker sends
its automatic "Form: Submission" event instead and the goal records nothing.
Measured live on /odoo-erp-automation-bootcamp/ before this change:
{"n":"Form: Submission"}.

- odoo-erp-automation-bootcamp/index.html (3 CTAs): class moved from the
  <button type="submit"> to the enclosing <form>.
- australia.html (2 CTAs): same move.
- de|es/odoo-erp-automation-bootcamp/index.html (3 forms each): the buy forms
  carried no Buy marking at all, so the DE and ES bootcamp sales were invisible
  to the goal. Class added to the <form>.
- odoo/upsell.html: the three .plan-btn buttons drive the same JS buy path and
  were unmarked. A class on a plain <button> (not a form submit) does fire, so
  it was added there and browser-verified. The disabled Trial button is left
  unmarked.

Class attribute only: every button label, every form action and every basket
payload is byte-identical. No CSS or JS rule references the class.

Verified in a real browser (fetch shimmed, tracker's localhost/automation gates
bypassed): EN bootcamp 3/3, australia 2/2, DE 3/3, ES 3/3, upsell 1/1 clicks
each send exactly one {"n":"Buy"} to /api/event and never "Form: Submission".
2026-10-28 22:37:32 +00:00
webmaster 73b3f34696 feat(analytics): add Plausible custom-event markings for six goals
Mark the six conversion goals on the self-hosted Plausible instance so the
events match the goals to be registered in Plausible. Event names verbatim:
Trial, FAQ, Buy, Custom Quote, search posts, Project Plan.

CSS-class markings (work without JS logic, on the clickable element):
- FAQ  -> index/de/es index .faq-card; odoo-hosting-2027 + odoo-community-upgrade
          (de/es twins) and australia <summary>; support.html .faq-question
- Buy  -> index/de/es index .btn-buy anchors; australia + bootcamp native
          post_basket submit buttons (forms stay native POST)

JS call markings in script.js (loaded by index, de/index, es/index):
- Trial        on the successful trial-form POST (.then branch)
- Custom Quote on the successful custom-quote POST (.then branch)
- Project Plan on the successful business-wizard submit
- search posts on the FIRST input of #blogSearch only (guard flag, one per
  pageview, not on every keystroke, not on #ocaSearch)

Nothing fires on page load; the 'Start the free trial' anchors that only
scroll to #trialCard are deliberately not tagged. One goal per topic across
all languages, no language suffix. No visual, behavioural or request change.
2026-10-28 21:07:19 +00:00
oliver 0715b59c34 feat(site): publish /australia.html — managed Odoo hosting in Australia (Sydney)
New flat landing page for Australian buyers, built from the approved Phase 2
copy with the five buyer-lens changes (R1-R5) applied. English only, no hreflang.

- australia.html: hero, five sections, four-plan pricing table (On the Rise
  heroed), 7-question FAQ, final CTA band; house CI (midnight/brass/cream,
  Marcellus + Inter), page-scoped CSS only.
- Buy CTAs are native POST forms to the live checkout with Australia (Sydney)
  pre-selected (basket product_id 4, verified against the homepage card).
- images/city-sydney.webp: city-sydney.jpg resized 6720x2240 -> 1920x640,
  9.8 MB -> 131 KB.
- index.html: the Sydney server card now links to the new page.
- sitemap.xml + llms.txt: page registered.

Evidence: verify-html.py PROBLEMS 0, verify-australia-page.py PROBLEMS 0,
JSON-LD parses, impeccable detect run (findings recorded).
2026-10-27 18:21:31 +00:00