Public Access
feat(black-friday): add the Bootcamp box beside the Hosting box
The page carried only the Hosting offer; it now carries both Black Friday offers. Bootcamp box first, then Hosting, in the same <section class="bf-box">, each in its own .bf-box-inner card, each with the same native <details class="bf-reveal"> reveal (closed teaser, panel in the DOM in both states, keyboard-operable, no display:none, JS-off safe, aria-expanded synced for both). Copy is the copywriter's v3 verbatim: USD 465.00, ten live Thursday sessions 18:00-19:00 Central Time from Thursday 21 January 2027, the Black Friday second hosted year, six seats, deadline 30 November 2026. No discounted Bootcamp figure is printed (HOST27 applicability unconfirmed): the value slot stays a build placeholder in the one greppable bf-mechanism line. Hero value statement, meta/og description, WebPage description, FAQ (6 pairs) and the @graph (second Product+Offer, 465.00 USD) follow the same copy file.
This commit is contained in:
1 parent
2a62ac871a
commit
185e7ab419
1 file changed
+79
-15
@@ -6,13 +6,13 @@
|
||||
<title>Odoo Black Friday 2026: $100 Off Your First Year</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Our Black Friday and Cyber Monday offer: $100 off your first year of managed Odoo hosting with code HOST27. Runs 16–30 November 2026."
|
||||
content="Our Black Friday and Cyber Monday offers: $100 off your first year of hosting with HOST27, and a Bootcamp place with a second hosted year. 16–30 Nov 2026."
|
||||
/>
|
||||
<link rel="canonical" href="https://odoo4projects.com/odoo-black-friday/" />
|
||||
<meta property="og:title" content="Odoo Black Friday 2026: $100 Off Your First Year" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Our Black Friday and Cyber Monday offer: $100 off your first year of managed Odoo hosting with code HOST27. Runs 16–30 November 2026."
|
||||
content="Our Black Friday and Cyber Monday offers: $100 off your first year of hosting with HOST27, and a Bootcamp place with a second hosted year. 16–30 Nov 2026."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://odoo4projects.com/odoo-black-friday/" />
|
||||
@@ -119,10 +119,20 @@
|
||||
margin: 0 0 1.5rem;
|
||||
}
|
||||
|
||||
/* The one product box */
|
||||
/* The two product boxes — one grid, two equal cards (Bootcamp, then Hosting). Side by side
|
||||
from the desktop breakpoint down to 900 px; they stack, in the same order, below it. */
|
||||
.bf-box .container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1.5rem;
|
||||
align-items: start;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.bf-box .container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
.bf-box-inner {
|
||||
max-width: 720px;
|
||||
margin: 0 auto;
|
||||
background: var(--ivory);
|
||||
border: 1px solid var(--line-brass);
|
||||
border-radius: var(--radius-lg);
|
||||
@@ -392,11 +402,12 @@
|
||||
"@id": "https://odoo4projects.com/odoo-black-friday/",
|
||||
"url": "https://odoo4projects.com/odoo-black-friday/",
|
||||
"name": "Odoo Black Friday 2026: $100 Off Your First Year",
|
||||
"description": "Our Black Friday and Cyber Monday offer: $100 off your first year of managed Odoo hosting with code HOST27. Runs 16–30 November 2026.",
|
||||
"description": "Our Black Friday and Cyber Monday offers: $100 off your first year of hosting with HOST27, and a Bootcamp place with a second hosted year. 16–30 Nov 2026.",
|
||||
"isPartOf": { "@id": "https://odoo4projects.com/#organization" },
|
||||
"about": [
|
||||
{ "@type": "Thing", "name": "Odoo Black Friday" },
|
||||
{ "@type": "Thing", "name": "managed Odoo Community hosting" }
|
||||
{ "@type": "Thing", "name": "managed Odoo Community hosting" },
|
||||
{ "@type": "Thing", "name": "Odoo ERP automation Bootcamp" }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -421,6 +432,21 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"@type": "Product",
|
||||
"name": "Odoo ERP automation Bootcamp",
|
||||
"description": "A ten-session live Bootcamp that ends with your business running on a working Odoo system: ten live Thursday sessions, 18:00–19:00 Central Time, starting Thursday 21 January 2027, with a year of hosted Odoo Community Edition included.",
|
||||
"brand": { "@id": "https://odoo4projects.com/#organization" },
|
||||
"offers": [
|
||||
{
|
||||
"@type": "Offer",
|
||||
"name": "Odoo ERP automation Bootcamp — January 2027 cohort",
|
||||
"price": "465.00",
|
||||
"priceCurrency": "USD",
|
||||
"url": "https://odoo4projects.com/odoo-erp-automation-bootcamp/"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
@@ -440,6 +466,14 @@
|
||||
"text": "One hundred dollars off your first year of hosting. It is once per customer, one redemption."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Is the Bootcamp part of the Black Friday offer?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Yes. The Bootcamp's Black Friday offer is a second year of hosted Odoo Community Edition, on top of the one that is already included. It runs 16–30 November 2026, and the cohort is six seats."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "What does On the Rise cost in the offer?",
|
||||
@@ -495,7 +529,7 @@
|
||||
<div class="container">
|
||||
<p class="hero-kicker">16–30 NOVEMBER 2026 · ONCE A YEAR</p>
|
||||
<h1>Odoo Black Friday 2026</h1>
|
||||
<p class="hero-sub">One hundred dollars off the year your business runs on.</p>
|
||||
<p class="hero-sub">Two Black Friday offers: $100 off a year of hosting, and a Bootcamp place with a second hosted year.</p>
|
||||
<p class="hero-window">The window is 16–30 November 2026.</p>
|
||||
<p class="hero-deadline">Last day to use it: Monday 30 November 2026.</p>
|
||||
<div class="hero-actions">
|
||||
@@ -504,9 +538,34 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- The one product box — Hosting, On the Rise -->
|
||||
<!-- The two Black Friday offers — one section, two boxes, Bootcamp first. Each box carries the
|
||||
same reveal mechanic: a native <details class="bf-reveal"> with a closed teaser <summary>,
|
||||
then the open panel. -->
|
||||
<section class="section-light bf-box" id="offer">
|
||||
<div class="container">
|
||||
<!-- Box 1 — Bootcamp -->
|
||||
<div class="bf-box-inner">
|
||||
<h2 class="bf-box-title">Bootcamp: ten live sessions to a working system</h2>
|
||||
<details class="bf-reveal">
|
||||
<summary class="bf-reveal-summary" aria-expanded="false">
|
||||
<p class="bf-teaser">A working system for your business in ten live sessions, USD 465. Open to see the Black Friday offer.</p>
|
||||
<span class="bf-open-label">Open the Black Friday offer</span>
|
||||
</summary>
|
||||
<div class="bf-panel">
|
||||
<p class="bf-price"><strong>USD 465.00</strong> for the full programme. Black Friday adds <strong>a second year of hosted Odoo Community Edition</strong>, on top of the one already included.</p>
|
||||
<p class="bf-included">Ten live Thursday sessions, 18:00–19:00 Central Time, starting Thursday 21 January 2027. Six seats, and no more. Your first hosted year is included as standard; the second year is the Black Friday add-on.</p>
|
||||
<!-- Bootcamp mechanism string — ONE reusable line, isolated exactly as the Hosting box's is
|
||||
(copy §3b). Whether HOST27 applies to the Bootcamp is UNCONFIRMED (BOOTCAMP-CONFIRM), so
|
||||
the discounted figure stays a build placeholder and is NOT printed. Swap this one line
|
||||
when it is confirmed. -->
|
||||
<p class="bf-mechanism">Black Friday: <strong>a second year of hosted Odoo Community Edition</strong>. One redemption per customer.<!-- [OPEN-SLOT: bootcamp Black Friday price — USD 365.00 if code HOST27 applies to the programme too; unconfirmed] --></p>
|
||||
<p class="bf-deadline">Ends Monday 30 November 2026.</p>
|
||||
<p class="bf-cta"><a href="/odoo-erp-automation-bootcamp/">See the Bootcamp and what you build</a></p>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<!-- Box 2 — Hosting, On the Rise -->
|
||||
<div class="bf-box-inner">
|
||||
<h2 class="bf-box-title">Hosting: On the Rise</h2>
|
||||
<details class="bf-reveal">
|
||||
@@ -549,6 +608,10 @@
|
||||
<summary class="plausible-event-name=FAQ">What does the HOST27 code give me?</summary>
|
||||
<div class="faq-a"><p>One hundred dollars off your first year of hosting. It is once per customer, one redemption.</p></div>
|
||||
</details>
|
||||
<details class="cmp-faq">
|
||||
<summary class="plausible-event-name=FAQ">Is the Bootcamp part of the Black Friday offer?</summary>
|
||||
<div class="faq-a"><p>Yes. The Bootcamp's Black Friday offer is a second year of hosted Odoo Community Edition, on top of the one that is already included. It runs 16–30 November 2026, and the cohort is six seats.</p></div>
|
||||
</details>
|
||||
<details class="cmp-faq">
|
||||
<summary class="plausible-event-name=FAQ">What does On the Rise cost in the offer?</summary>
|
||||
<div class="faq-a"><p>It is $395.00 a year, and $295.00 for your first year with HOST27. After the first year it renews at the $395 list price.</p></div>
|
||||
@@ -621,17 +684,18 @@
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
/* Enhancement only: mirror the reveal's open state to aria-expanded. Without JS the native
|
||||
/* Enhancement only: mirror each reveal's open state to aria-expanded. Without JS the native
|
||||
<details> still toggles, keyboard-operable, and exposes its state. */
|
||||
(function () {
|
||||
var r = document.querySelector(".bf-reveal");
|
||||
if (!r) return;
|
||||
var s = r.querySelector("summary");
|
||||
var reveals = document.querySelectorAll(".bf-reveal");
|
||||
Array.prototype.forEach.call(reveals, function (reveal) {
|
||||
var summary = reveal.querySelector("summary");
|
||||
function sync() {
|
||||
if (s) s.setAttribute("aria-expanded", r.open ? "true" : "false");
|
||||
if (summary) summary.setAttribute("aria-expanded", reveal.open ? "true" : "false");
|
||||
}
|
||||
sync();
|
||||
r.addEventListener("toggle", sync);
|
||||
reveal.addEventListener("toggle", sync);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
Reference in new issue
Block a user