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".
This commit is contained in:
oliver committed 2026-10-28 22:37:32 +00:00
1 parent 91ce3d9a4f
commit 5f647c055a
5 files changed
+19 -19

No files matched your search

+4 -4
View File
@@ -428,10 +428,10 @@
money in one system, hosted on our own servers in Sydney, Australia. No setup fee. Cancel at any time. money in one system, hosted on our own servers in Sydney, Australia. No setup fee. Cancel at any time.
</p> </p>
<div class="hero-actions"> <div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":4,"qty":1,"info":"Australia"}]' /> <input type="hidden" name="basket" value='[{"product_id":4,"qty":1,"info":"Australia"}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Get On the Rise — $395 a year</button> <button type="submit" class="btn btn-brass btn-lg">Get On the Rise — $395 a year</button>
</form> </form>
<a href="odoo-hosting-2027.html" class="btn btn-outline btn-lg">Compare every way to host Odoo</a> <a href="odoo-hosting-2027.html" class="btn btn-outline btn-lg">Compare every way to host Odoo</a>
</div> </div>
@@ -721,10 +721,10 @@
<div class="container"> <div class="container">
<p class="cmp-lead">Pick a plan, choose Sydney, and your system is live in about five minutes.</p> <p class="cmp-lead">Pick a plan, choose Sydney, and your system is live in about five minutes.</p>
<div class="cmp-cta-actions"> <div class="cmp-cta-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":4,"qty":1,"info":"Australia"}]' /> <input type="hidden" name="basket" value='[{"product_id":4,"qty":1,"info":"Australia"}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Get On the Rise — $395 a year</button> <button type="submit" class="btn btn-brass btn-lg">Get On the Rise — $395 a year</button>
</form> </form>
<a href="odoo-hosting-2027.html" class="btn btn-outline btn-lg">Compare every way to host Odoo</a> <a href="odoo-hosting-2027.html" class="btn btn-outline btn-lg">Compare every way to host Odoo</a>
</div> </div>
+3 -3
View File
@@ -589,7 +589,7 @@
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> Ein Jahr Odoo Community Edition inklusive</span> <span class="hero-stat"><i aria-hidden="true">&#10003;</i> Ein Jahr Odoo Community Edition inklusive</span>
</div> </div>
<div class="hero-actions"> <div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button> <button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button>
@@ -610,7 +610,7 @@
</p> </p>
<p class="bc-subline">Drei Monate. Zehn Stunden Unterricht. Ein System, das Ihr Unternehmen steuert.</p> <p class="bc-subline">Drei Monate. Zehn Stunden Unterricht. Ein System, das Ihr Unternehmen steuert.</p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button> <button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button>
@@ -771,7 +771,7 @@
Umfasst das komplette Programm: zehn Live-Sessions, ein Jahr gehostetes Odoo Community Edition, die Alumni-Community und die Expertenprüfung. Umfasst das komplette Programm: zehn Live-Sessions, ein Jahr gehostetes Odoo Community Edition, die Alumni-Community und die Expertenprüfung.
</p> </p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button> <button type="submit" class="btn btn-brass btn-lg">Für 465.00 USD kaufen</button>
+3 -3
View File
@@ -589,7 +589,7 @@
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> Un año de Odoo Community Edition incluido</span> <span class="hero-stat"><i aria-hidden="true">&#10003;</i> Un año de Odoo Community Edition incluido</span>
</div> </div>
<div class="hero-actions"> <div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>
@@ -610,7 +610,7 @@
</p> </p>
<p class="bc-subline">Tres meses. Diez horas de clases. Un sistema que dirige su empresa.</p> <p class="bc-subline">Tres meses. Diez horas de clases. Un sistema que dirige su empresa.</p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>
@@ -771,7 +771,7 @@
Cubre el programa completo: diez sesiones en directo, un año de Odoo Community Edition alojado, la comunidad de antiguos alumnos y la revisión experta. Cubre el programa completo: diez sesiones en directo, un año de Odoo Community Edition alojado, la comunidad de antiguos alumnos y la revisión experta.
</p> </p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>
+6 -6
View File
@@ -590,10 +590,10 @@
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> One year of Odoo Community Edition included</span> <span class="hero-stat"><i aria-hidden="true">&#10003;</i> One year of Odoo Community Edition included</span>
</div> </div>
<div class="hero-actions"> <div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Buy for 465.00 USD</button>
</form> </form>
</div> </div>
</div> </div>
@@ -613,10 +613,10 @@
</p> </p>
<p class="bc-subline">Three months. Ten hours of teaching. One system that runs your company.</p> <p class="bc-subline">Three months. Ten hours of teaching. One system that runs your company.</p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Buy for 465.00 USD</button>
</form> </form>
</div> </div>
</div> </div>
@@ -786,10 +786,10 @@
alumni community and the expert review. alumni community and the expert review.
</p> </p>
<div class="bc-action"> <div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank"> <form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' /> <input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" /> <input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg plausible-event-name=Buy">Buy for 465.00 USD</button> <button type="submit" class="btn btn-brass btn-lg">Buy for 465.00 USD</button>
</form> </form>
</div> </div>
<ul class="bc-related"> <ul class="bc-related">
+3 -3
View File
@@ -248,7 +248,7 @@
<div class="plan-tagline"> <div class="plan-tagline">
"ODOO Standard .. that is all my business needs" "ODOO Standard .. that is all my business needs"
</div> </div>
<button class="plan-btn" id="btn-sidehustle"> <button class="plan-btn plausible-event-name=Buy" id="btn-sidehustle">
Upgrade Now Upgrade Now
</button> </button>
<ul class="plan-features"> <ul class="plan-features">
@@ -268,7 +268,7 @@
<div class="plan-tagline"> <div class="plan-tagline">
"I need some modules and professional reports" "I need some modules and professional reports"
</div> </div>
<button class="plan-btn" id="btn-ontherise">Upgrade Now</button> <button class="plan-btn plausible-event-name=Buy" id="btn-ontherise">Upgrade Now</button>
<ul class="plan-features"> <ul class="plan-features">
<li>ODOO CE hosting</li> <li>ODOO CE hosting</li>
<li>Space for 4 Backups</li> <li>Space for 4 Backups</li>
@@ -286,7 +286,7 @@
<div class="plan-tagline"> <div class="plan-tagline">
"ODOO Enterprise is a must have!" "ODOO Enterprise is a must have!"
</div> </div>
<button class="plan-btn" id="btn-powerhouse"> <button class="plan-btn plausible-event-name=Buy" id="btn-powerhouse">
Upgrade Now Upgrade Now
</button> </button>
<ul class="plan-features"> <ul class="plan-features">