Public Access
Adds the second Google Ads label to /odoo-black-friday/: the free-trial form (#trialForm) now fires AW-18065522009/AtAPCIjjvrAdENn6p6ZD (action 7886320008 "Registrierung") when it is submitted. Reuses the existing gate in static/ads-consent.js rather than a second mechanism: the label is read from the page (data-ads-trial-send-to on #adsConsent), so the script stays generic. The page hands the gate its real submit function via window.o4pAds.trialConversion; the gate fires the conversion and runs the submit from the event callback, with the same 700 ms hard timeout that runs it anyway. Nothing fires and no cookie is set before consent (identical default-deny gate). The buy conversion is untouched (comments only).
1104 lines
54 KiB
HTML
1104 lines
54 KiB
HTML
<!doctype html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>Odoo Black Friday 2026: $100 Off Your First Year</title>
|
||
<meta
|
||
name="description"
|
||
content="Our Black Friday and Cyber Monday offers: $100 off your first year of hosting, 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 offers: $100 off your first year of hosting, 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/" />
|
||
<meta property="og:image" content="https://odoo4projects.com/images/black-friday/bf2026-hosting-og.png" />
|
||
<meta property="og:image:width" content="1200" />
|
||
<meta property="og:image:height" content="630" />
|
||
<meta
|
||
property="og:image:alt"
|
||
content="Black Friday 2026 poster: 'Black Friday — 16–30 November', 'Save $100 on Odoo hosting', with the Black Friday code HOST27."
|
||
/>
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:image" content="https://odoo4projects.com/images/black-friday/bf2026-hosting-og.png" />
|
||
<link rel="icon" href="/images/favicon.ico" />
|
||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin />
|
||
<link
|
||
rel="stylesheet"
|
||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap"
|
||
media="print"
|
||
onload="this.media='all'"
|
||
/>
|
||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||
<link
|
||
rel="stylesheet"
|
||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||
media="print"
|
||
onload="this.media='all'"
|
||
/>
|
||
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
|
||
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" />
|
||
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
|
||
<style>
|
||
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
|
||
.bf-sr-only {
|
||
position: absolute;
|
||
width: 1px;
|
||
height: 1px;
|
||
padding: 0;
|
||
margin: -1px;
|
||
overflow: hidden;
|
||
clip: rect(0, 0, 0, 0);
|
||
white-space: nowrap;
|
||
border: 0;
|
||
}
|
||
|
||
/* Language selector in the hero — copied from the homepage's inline critical CSS, because
|
||
style.css does not carry the hero variant of the switcher slot. */
|
||
.hero .lang-switch-slot {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
margin-bottom: 1rem;
|
||
}
|
||
.hero .lang-switch {
|
||
color: rgba(255, 255, 255, 0.65);
|
||
}
|
||
.hero .lang-switch a:hover,
|
||
.hero .lang-switch a:focus-visible {
|
||
color: var(--brass-bright);
|
||
}
|
||
.hero .lang-switch a[aria-current="true"] {
|
||
color: var(--brass);
|
||
text-decoration: underline;
|
||
text-underline-offset: 3px;
|
||
}
|
||
|
||
/* The offer boxes (Hosting, then Bootcamp at the foot of the page): one centred column. */
|
||
.bf-box .container {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 620px);
|
||
justify-content: center;
|
||
gap: 1.5rem;
|
||
align-items: start;
|
||
}
|
||
.bf-box-inner {
|
||
background: var(--ivory);
|
||
border: 1px solid var(--line-brass);
|
||
border-radius: var(--radius-lg);
|
||
box-shadow: var(--shadow-rest);
|
||
padding: 2rem 2rem 1.5rem;
|
||
}
|
||
.bf-box-title {
|
||
text-align: center;
|
||
margin-bottom: 1.25rem;
|
||
}
|
||
|
||
/* The offer card is always open: the Black Friday price and the code are readable on
|
||
arrival, with no reveal and no click. The scroll animation further down is presentation
|
||
only — the base state is fully visible, so the offer is complete with JavaScript off,
|
||
under reduced motion, or if the animation never runs. */
|
||
.bf-teaser {
|
||
font-size: 1.02rem;
|
||
color: var(--ink);
|
||
line-height: 1.6;
|
||
margin: 0 0 1rem;
|
||
}
|
||
.bf-panel {
|
||
padding: 0.25rem 0 1.25rem;
|
||
border-top: 1px solid var(--line);
|
||
}
|
||
.bf-price {
|
||
font-size: 1.05rem;
|
||
color: var(--ink);
|
||
margin: 1rem 0 0.75rem;
|
||
}
|
||
.bf-price strong {
|
||
font-family: Marcellus, Georgia, serif;
|
||
font-weight: 400;
|
||
font-size: 1.55rem;
|
||
color: var(--brass-deep);
|
||
letter-spacing: 0.02em;
|
||
}
|
||
.bf-included {
|
||
font-size: 0.9rem;
|
||
color: var(--ink-soft);
|
||
line-height: 1.7;
|
||
margin: 0 0 0.9rem;
|
||
}
|
||
.bf-mechanism {
|
||
font-size: 0.98rem;
|
||
color: var(--ink);
|
||
background: rgba(201, 162, 39, 0.12);
|
||
border: 1px solid var(--line-brass);
|
||
border-radius: var(--radius-lg);
|
||
padding: 0.85rem 1.1rem;
|
||
margin: 0 0 0.75rem;
|
||
}
|
||
.bf-mechanism strong {
|
||
color: var(--midnight);
|
||
}
|
||
/* The code lives on the offer surface only. It is readable on arrival; the chip is easy to
|
||
select so it can be copied at checkout. */
|
||
.bf-code-wrap {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: baseline;
|
||
gap: 0.4rem 0.7rem;
|
||
}
|
||
.bf-code-label {
|
||
font-family: Inter, sans-serif;
|
||
font-weight: 600;
|
||
font-size: 0.72rem;
|
||
letter-spacing: 0.08em;
|
||
text-transform: uppercase;
|
||
color: var(--brass-deep);
|
||
}
|
||
.bf-code {
|
||
font-family: Marcellus, Georgia, serif;
|
||
font-size: 1.3rem;
|
||
letter-spacing: 0.12em;
|
||
color: var(--midnight);
|
||
background: var(--brass);
|
||
border-radius: var(--radius-pill);
|
||
padding: 0.2rem 0.9rem;
|
||
user-select: all;
|
||
}
|
||
.bf-code-note {
|
||
font-size: 0.9rem;
|
||
color: var(--ink-soft);
|
||
}
|
||
/* Presentation only: the code fades and rises a little as it scrolls into view. Opacity and
|
||
transform only — never visibility. The base state is fully opaque, so a build where the
|
||
animation never fires still shows the code. Everything here is behind @supports, so an
|
||
unsupported browser renders the static, visible code. */
|
||
@media (prefers-reduced-motion: no-preference) {
|
||
@supports (animation-timeline: view()) {
|
||
.bf-code {
|
||
animation-name: bf-code-in;
|
||
animation-timing-function: linear;
|
||
animation-fill-mode: both;
|
||
animation-duration: auto;
|
||
animation-timeline: view();
|
||
animation-range: entry 0% cover 45%;
|
||
}
|
||
}
|
||
}
|
||
@keyframes bf-code-in {
|
||
from {
|
||
opacity: 0.8;
|
||
transform: translateY(8px);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
.bf-deadline {
|
||
font-size: 0.85rem;
|
||
color: var(--ink-soft);
|
||
margin: 0 0 1.25rem;
|
||
}
|
||
/* Time remaining (Fix 10). The day count is written into the span by /static/black-friday.js
|
||
from one documented end instant. The span is empty until then, so with JavaScript off the
|
||
static sentence "Ends Monday 30 November 2026." still carries the deadline on its own.
|
||
No visibility/opacity animation touches this element. */
|
||
.bf-days {
|
||
font-weight: 600;
|
||
color: var(--ink);
|
||
}
|
||
.bf-days-line {
|
||
margin: 0 0 0.75rem;
|
||
font-size: 0.85rem;
|
||
color: var(--ink-soft);
|
||
}
|
||
.pcard-buy {
|
||
margin: 0;
|
||
}
|
||
/* Fix 1: the deal card's year-one framing is a sentence, not a "/ year" tag — give it its own
|
||
line instead of wrapping mid-phrase beside the number. */
|
||
.pcard.featured .price small {
|
||
display: block;
|
||
}
|
||
.bf-cta {
|
||
margin: 0;
|
||
}
|
||
.bf-cta a {
|
||
display: inline-block;
|
||
font-family: Marcellus, Georgia, serif;
|
||
font-size: 0.9rem;
|
||
letter-spacing: 0.04em;
|
||
color: var(--midnight);
|
||
background: var(--brass);
|
||
border-radius: var(--radius-pill);
|
||
padding: 0.8rem 1.75rem;
|
||
text-decoration: none;
|
||
transition: background 0.2s;
|
||
}
|
||
.bf-cta a:hover {
|
||
background: var(--brass-bright);
|
||
color: var(--midnight);
|
||
}
|
||
.bf-cta a:focus-visible {
|
||
outline: 3px solid var(--midnight);
|
||
outline-offset: 2px;
|
||
}
|
||
/* Hosting CTA: a native form that posts the plan straight to the shop basket, so one click
|
||
from this page lands the visitor in checkout with the plan already in the cart. Works with
|
||
JavaScript off (it is a plain form POST). */
|
||
.bf-cta-form {
|
||
margin: 0 0 0.75rem;
|
||
}
|
||
.bf-cta-form .btn {
|
||
display: inline-block;
|
||
font-family: Marcellus, Georgia, serif;
|
||
font-size: 0.9rem;
|
||
letter-spacing: 0.04em;
|
||
color: var(--midnight);
|
||
background: var(--brass);
|
||
border: 0;
|
||
border-radius: var(--radius-pill);
|
||
padding: 0.8rem 1.75rem;
|
||
cursor: pointer;
|
||
}
|
||
.bf-cta-form .btn:hover {
|
||
background: var(--brass-bright);
|
||
color: var(--midnight);
|
||
}
|
||
.bf-cta-form .btn:focus-visible {
|
||
outline: 3px solid var(--midnight);
|
||
outline-offset: 2px;
|
||
}
|
||
.bf-cta-secondary {
|
||
font-size: 0.85rem;
|
||
margin: 0;
|
||
}
|
||
.bf-cta-secondary a {
|
||
color: var(--brass-deep);
|
||
text-decoration: underline;
|
||
text-underline-offset: 3px;
|
||
}
|
||
|
||
/* FAQ (native details/summary — no JS) */
|
||
.cmp-faq-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 1rem;
|
||
max-width: 1000px;
|
||
margin: 0 auto;
|
||
}
|
||
.cmp-faq {
|
||
background: var(--ivory);
|
||
border: 1px solid var(--line);
|
||
border-radius: var(--radius-lg);
|
||
padding: 0.4rem 1.25rem;
|
||
box-shadow: var(--shadow-rest);
|
||
transition: box-shadow 0.25s;
|
||
}
|
||
.cmp-faq[open] {
|
||
box-shadow: var(--shadow-hover);
|
||
}
|
||
.cmp-faq:hover {
|
||
box-shadow: var(--shadow-hover);
|
||
}
|
||
.cmp-faq summary {
|
||
cursor: pointer;
|
||
list-style: none;
|
||
padding: 0.85rem 0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
gap: 0.75rem;
|
||
font-family: Marcellus, Georgia, serif;
|
||
font-size: 0.98rem;
|
||
color: var(--midnight);
|
||
}
|
||
.cmp-faq summary::-webkit-details-marker {
|
||
display: none;
|
||
}
|
||
.cmp-faq summary::after {
|
||
content: "+";
|
||
font-family: Inter, sans-serif;
|
||
color: var(--brass);
|
||
font-size: 1.15rem;
|
||
line-height: 1;
|
||
flex-shrink: 0;
|
||
transition: transform 0.25s;
|
||
}
|
||
.cmp-faq[open] summary::after {
|
||
content: "\2212";
|
||
}
|
||
.cmp-faq summary:focus-visible {
|
||
outline: 2px solid var(--brass);
|
||
outline-offset: 3px;
|
||
border-radius: var(--radius);
|
||
}
|
||
.cmp-faq .faq-a,
|
||
.cmp-faq .cmp-a {
|
||
font-size: 0.87rem;
|
||
color: var(--ink-soft);
|
||
line-height: 1.7;
|
||
padding-bottom: 1rem;
|
||
}
|
||
.cmp-faq .faq-a p:last-child,
|
||
.cmp-faq .cmp-a p:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.cmp-faq-grid {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
}
|
||
|
||
/* Related links */
|
||
.bf-links {
|
||
display: flex;
|
||
gap: 1.25rem;
|
||
flex-wrap: wrap;
|
||
justify-content: center;
|
||
max-width: 900px;
|
||
margin: 2.5rem auto 0;
|
||
}
|
||
.bf-links a {
|
||
font-size: 0.88rem;
|
||
color: var(--brass-deep);
|
||
text-decoration: underline;
|
||
text-underline-offset: 3px;
|
||
}
|
||
.bf-links a:focus-visible {
|
||
outline: 2px solid var(--brass);
|
||
outline-offset: 3px;
|
||
border-radius: var(--radius);
|
||
}
|
||
|
||
.btn:focus-visible,
|
||
.bf-links a:focus-visible {
|
||
outline: 3px solid var(--brass-bright);
|
||
outline-offset: 2px;
|
||
border-radius: var(--radius);
|
||
}
|
||
|
||
/* ---- Google Ads consent banner (page-scoped; additive). Default DENY: the tag does
|
||
not load until the visitor accepts. Fallback colour values guard the first paint,
|
||
before /style.css (loaded async) defines the tokens. ---- */
|
||
.ads-consent {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
z-index: 1000;
|
||
background: var(--midnight, #0d1b2e);
|
||
color: var(--cream, #f4f0e8);
|
||
border-top: 2px solid var(--brass, #c9a227);
|
||
box-shadow: 0 -8px 30px rgba(13, 27, 46, 0.28);
|
||
}
|
||
.ads-consent[hidden] {
|
||
display: none;
|
||
}
|
||
.ads-consent-inner {
|
||
width: 86%;
|
||
max-width: 1200px;
|
||
margin: 0 auto;
|
||
padding: 1rem 0;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 1.25rem;
|
||
flex-wrap: wrap;
|
||
}
|
||
.ads-consent-title {
|
||
font-family: "Marcellus", Georgia, serif;
|
||
font-size: 1rem;
|
||
letter-spacing: 0.03em;
|
||
color: var(--brass-bright);
|
||
margin: 0;
|
||
flex: 0 0 auto;
|
||
}
|
||
.ads-consent-text {
|
||
font-size: 0.85rem;
|
||
line-height: 1.5;
|
||
color: rgba(244, 240, 232, 0.9);
|
||
margin: 0;
|
||
flex: 1 1 340px;
|
||
}
|
||
.ads-consent-text a {
|
||
color: var(--brass-bright);
|
||
text-decoration: underline;
|
||
text-underline-offset: 2px;
|
||
}
|
||
.ads-consent-actions {
|
||
display: flex;
|
||
gap: 0.6rem;
|
||
flex: 0 0 auto;
|
||
margin-left: auto;
|
||
}
|
||
.ads-consent-btn {
|
||
font-family: "Marcellus", Georgia, serif;
|
||
font-size: 0.9rem;
|
||
letter-spacing: 0.04em;
|
||
border-radius: var(--radius-pill, 2rem);
|
||
padding: 0.55rem 1.4rem;
|
||
cursor: pointer;
|
||
border: 1px solid var(--brass, #c9a227);
|
||
transition: background 0.2s, color 0.2s, border-color 0.2s;
|
||
}
|
||
.ads-consent-btn--accept {
|
||
background: var(--brass, #c9a227);
|
||
color: var(--midnight, #0d1b2e);
|
||
}
|
||
.ads-consent-btn--accept:hover,
|
||
.ads-consent-btn--accept:focus-visible {
|
||
background: var(--brass-bright);
|
||
border-color: var(--brass-bright);
|
||
}
|
||
.ads-consent-btn--decline {
|
||
background: transparent;
|
||
color: var(--cream, #f4f0e8);
|
||
border-color: rgba(244, 240, 232, 0.45);
|
||
}
|
||
.ads-consent-btn--decline:hover,
|
||
.ads-consent-btn--decline:focus-visible {
|
||
border-color: var(--cream, #f4f0e8);
|
||
color: #fff;
|
||
}
|
||
@media (max-width: 640px) {
|
||
.ads-consent-inner {
|
||
padding: 0.85rem 0;
|
||
gap: 0.6rem;
|
||
}
|
||
.ads-consent-actions {
|
||
margin-left: 0;
|
||
width: 100%;
|
||
}
|
||
.ads-consent-btn {
|
||
flex: 1 1 auto;
|
||
}
|
||
}
|
||
/* The "change your choice later" link in the footer: brass for AA contrast on midnight
|
||
(the generic .fcopy a is rgba(255,255,255,.4) = 3.8:1). */
|
||
.fcopy a#adsConsentOpen {
|
||
color: var(--brass, #c9a227);
|
||
}
|
||
.fcopy a#adsConsentOpen:hover {
|
||
color: var(--brass-bright);
|
||
}
|
||
</style>
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@graph": [
|
||
{
|
||
"@type": "Organization",
|
||
"@id": "https://odoo4projects.com/#organization",
|
||
"name": "ODOO4projects",
|
||
"url": "https://odoo4projects.com/",
|
||
"foundingDate": "2020",
|
||
"sameAs": ["https://www.linkedin.com/company/odoo4projects/"],
|
||
"contactPoint": {
|
||
"@type": "ContactPoint",
|
||
"contactType": "customer support",
|
||
"url": "https://odoo4projects.com/support.html#contact"
|
||
}
|
||
},
|
||
{
|
||
"@type": "WebPage",
|
||
"@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 offers: $100 off your first year of hosting, 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": "Odoo ERP automation Bootcamp" }
|
||
]
|
||
},
|
||
{
|
||
"@type": "BreadcrumbList",
|
||
"itemListElement": [
|
||
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://odoo4projects.com/" },
|
||
{ "@type": "ListItem", "position": 2, "name": "Odoo Black Friday 2026", "item": "https://odoo4projects.com/odoo-black-friday/" }
|
||
]
|
||
},
|
||
{
|
||
"@type": "Product",
|
||
"name": "On the Rise — managed Odoo Community hosting",
|
||
"description": "Managed Odoo Community hosting on the On the Rise plan: the server, backups and SSL certificate are run for you and your Odoo is kept current within its version, on one yearly price with no per-user licence. Moving to a new major version is a migration and is quoted separately.",
|
||
"brand": { "@id": "https://odoo4projects.com/#organization" },
|
||
"offers": [
|
||
{
|
||
"@type": "Offer",
|
||
"name": "On the Rise — Black Friday 2026",
|
||
"price": "295.00",
|
||
"priceCurrency": "USD",
|
||
"url": "https://odoo4projects.com/odoo-black-friday/"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"@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": "595.00",
|
||
"priceCurrency": "USD",
|
||
"url": "https://odoo4projects.com/odoo-erp-automation-bootcamp/"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"@type": "FAQPage",
|
||
"mainEntity": [
|
||
{
|
||
"@type": "Question",
|
||
"name": "When does the Odoo Black Friday offer run?",
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"text": "From 16 to 30 November 2026. It ends on Cyber Monday, 30 November 2026."
|
||
}
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "What does the hosting discount give me?",
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"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?",
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"text": "It is $395.00 a year, and $295.00 for your first year. After the first year it renews at the $395 list price."
|
||
}
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "Does the discount apply to renewals?",
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"text": "No. It applies to your first year only. After that, hosting renews at its normal price, $395.00 a year on On the Rise."
|
||
}
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "What happens if I miss the deadline?",
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"text": "The price goes back to normal on 1 December 2026 and the offer stops working. It returns with next year's offer."
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
</script>
|
||
<!-- Privacy-friendly analytics by Plausible -->
|
||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||
<script>
|
||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||
plausible.init()
|
||
</script>
|
||
<script defer src="/static/lang.js"></script>
|
||
</head>
|
||
<body>
|
||
<!-- Hero — copied from the homepage (index.html): same component, same behaviour. On load the
|
||
fastest server's city photo slides in with a "fits your location" label; the Location
|
||
Selector below slides any city into it on click. The headline and copy are adapted to the
|
||
Black Friday offer so the page leads with the deal; the stats row is the homepage's. -->
|
||
<section class="hero" id="hero">
|
||
<div class="hero-bg"></div>
|
||
<div class="container">
|
||
<div data-lang-switcher class="lang-switch-slot"></div>
|
||
<div class="hero-kicker">Black Friday 2026 · Fully Managed Odoo Community Hosting</div>
|
||
<h1>Odoo Hosting: <span>$100 Off</span> Your First Year</h1>
|
||
<p class="hero-sub">Black Friday 2026: $100 off your first year of managed Odoo Community hosting — $295 for year one, then $395 a year. Code HOST27, 16–30 November 2026.</p>
|
||
<div class="hero-stats">
|
||
<span class="hero-stat"><i class="fas fa-check-circle"></i> 6 global locations</span>
|
||
<span class="hero-stat"><i class="fas fa-check-circle"></i> Deploy in 5 min</span>
|
||
<span class="hero-stat"><i class="fas fa-check-circle"></i> AI support included</span>
|
||
<span class="hero-stat"><i class="fas fa-check-circle"></i> Instant backups</span>
|
||
</div>
|
||
<div class="hero-actions">
|
||
<a href="#offer" class="btn btn-brass">See the Black Friday deal →</a>
|
||
<a href="#trialCard" class="btn btn-outline">Start the 30-day free trial</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Location selector — the homepage's server banner. Picking a location slides that city's
|
||
photo into the hero above; the fastest server is chosen automatically on load. -->
|
||
<section class="server-banner" id="serverBanner">
|
||
<div class="container">
|
||
<div class="server-banner-header">
|
||
<span class="server-banner-kicker">Our Server Locations</span>
|
||
</div>
|
||
<div class="server-grid">
|
||
<div class="server-card"><div class="server-city">Amsterdam</div><div class="server-region">Netherlands</div></div>
|
||
<div class="server-card"><div class="server-city">Boston</div><div class="server-region">United States</div></div>
|
||
<div class="server-card"><div class="server-city">Manchester</div><div class="server-region">United Kingdom</div></div>
|
||
<div class="server-card"><div class="server-city">Mumbai</div><div class="server-region">India</div></div>
|
||
<div class="server-card"><div class="server-city">São Paulo</div><div class="server-region">Brazil</div></div>
|
||
<div class="server-card"><a class="server-city" href="/australia.html" title="Managed Odoo hosting in Australia — Sydney">Sydney</a><div class="server-region">Australia</div></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- The Black Friday offer — Hosting, On the Rise. The card is always open: the price and the
|
||
code are readable on arrival, with no reveal and no click. -->
|
||
<section class="section-light bf-box" id="offer">
|
||
<div class="container">
|
||
<!-- The offer box — Hosting, On the Rise -->
|
||
<div class="bf-box-inner">
|
||
<h2 class="bf-box-title">Hosting: On the Rise</h2>
|
||
<div class="bf-panel">
|
||
<p class="bf-teaser">Your whole business in one system. The Black Friday price is right here — no code to hunt for.</p>
|
||
<p class="bf-price"><strong>$295</strong> for your first year — then <strong>$395</strong> a year after that.</p>
|
||
<p class="bf-included">One price a year, no per-user licence, no setup fee. We run the server, the backups and your certificate, and we keep your Odoo current within its version. Moving to a new major version is a migration, and we quote that separately.</p>
|
||
<!-- mechanism string, used verbatim — see §3. The code is the offer surface: it stays out
|
||
of meta, alt text, structured data and build comments. -->
|
||
<p class="bf-mechanism bf-code-wrap"><span class="bf-code-label">Your code</span><span class="bf-code">HOST27</span><span class="bf-code-note">takes $100 off your first year at checkout. One redemption per customer.</span></p>
|
||
<!-- Fix 10: the static deadline sentence stands alone with JavaScript off; the day count
|
||
is appended by /static/black-friday.js. -->
|
||
<p class="bf-deadline">Ends Monday 30 November 2026. <span class="bf-days" data-bf-days></span></p>
|
||
<!-- Buy = CLICK PROXY (offer-CTA click), NOT a sale.
|
||
See wiki/concepts/conversion-tracking-contract. The form posts the On the Rise
|
||
product (id 4) straight to the shop basket, so one click lands the visitor in
|
||
checkout with the plan already in the cart. -->
|
||
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="bf-cta-form plausible-event-name=Buy">
|
||
<input type="hidden" name="basket" value='[{"product_id":4,"qty":1}]' />
|
||
<input type="hidden" name="clear" value="1" />
|
||
<input type="hidden" name="redirect" value="/coupon/HOST27?r=/shop/checkout" />
|
||
<button type="submit" class="btn btn-brass btn-lg">Buy On the Rise — $295 first year</button>
|
||
</form>
|
||
<p class="bf-cta-secondary"><a href="/odoo-hosting-offers/">See everything a year of hosting includes</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Trust bar — the homepage's section#trust-bar -->
|
||
<section class="trust-bar" id="trust-bar">
|
||
<div class="container">
|
||
<p class="trust-label">Trusted by businesses worldwide</p>
|
||
<div class="partner-carousel-wrap">
|
||
<div class="partner-grid">
|
||
<!-- Trust Bar Partners (no duplicates - CSS animation handles seamless loop) -->
|
||
<a href="https://paraguayservice.com/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/paraguayservice-favicon.png" alt="Paraguay Service" /><span>Paraguay Service</span></a>
|
||
<a href="https://estancia-agape.com/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/estancia-agape-logo.png" alt="Estancia Agape" /><span>Estancia Agape</span></a>
|
||
<a href="https://kate-group.de/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/kate-group-favicon.png" alt="KATE Group" /><span>KATE Group</span></a>
|
||
<a href="https://agilnova.de/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/agilnova-favicon.png" alt="agilnova" /><span>agilnova</span></a>
|
||
<a href="https://006-002-bc5bb1cb-984d-42c3-8580-63439f4924c5.odoo4projects.com/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/ramani-kenya-logo.png" alt="Ramani Kenya" /><span>Ramani Kenya</span></a>
|
||
<a href="https://startparaguay.net/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/startparaguay-favicon.png" alt="Start Paraguay" /><span>Start Paraguay</span></a>
|
||
<a href="https://accelersales.com/" target="_blank" rel="noopener noreferrer" class="partner-item"><img src="/images/accelersales-logo.png" alt="AccellerSales" /><span>AccellerSales</span></a>
|
||
<a href="#pricing" class="partner-item" style="opacity:0.55"><img src="/images/your-company-logo.svg" alt="Your Company" /><span>Your Company</span></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Black Friday questions — the page's own deal FAQ (native details/summary, no JS). The
|
||
Bootcamp answer matches what the page now shows: the Bootcamp box is back, at the foot. -->
|
||
<section class="section-light" id="faq">
|
||
<div class="container">
|
||
<h2 class="section-title">Black Friday questions</h2>
|
||
<div class="cmp-faq-grid">
|
||
<details class="cmp-faq">
|
||
<summary class="plausible-event-name=FAQ">When does the Odoo Black Friday offer run?</summary>
|
||
<div class="faq-a"><p>From 16 to 30 November 2026. It ends on Cyber Monday, 30 November 2026.</p></div>
|
||
</details>
|
||
<details class="cmp-faq">
|
||
<summary class="plausible-event-name=FAQ">What does the hosting discount 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. After the first year it renews at the $395 list price.</p></div>
|
||
</details>
|
||
<details class="cmp-faq">
|
||
<summary class="plausible-event-name=FAQ">Does the discount apply to renewals?</summary>
|
||
<div class="faq-a"><p>No. It applies to your first year only. After that, hosting renews at its normal price, $395.00 a year on On the Rise.</p></div>
|
||
</details>
|
||
<details class="cmp-faq">
|
||
<summary class="plausible-event-name=FAQ">What happens if I miss the deadline?</summary>
|
||
<div class="faq-a"><p>The price goes back to normal on 1 December 2026 and the offer stops working. It returns with next year's offer.</p></div>
|
||
</details>
|
||
</div>
|
||
|
||
<nav class="bf-links" aria-label="Related pages">
|
||
<a href="/odoo-hosting-offers/">Everything a year of hosting includes</a>
|
||
<a href="/odoo-hosting-2027.html">Odoo hosting in 2027, compared</a>
|
||
<a href="#trialCard">Start the 30-day free trial</a>
|
||
</nav>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Features + free-trial card — the homepage's section -->
|
||
<section class="section-light">
|
||
<div class="container">
|
||
<h2 class="section-title">Everything you need, nothing you don't</h2>
|
||
<div class="features-grid">
|
||
<div class="feature-card">
|
||
<i class="fas fa-rocket"></i>
|
||
<h3>5-Minute Deployment</h3>
|
||
<p>No DevOps team needed. Pick a plan, choose your region, and your Odoo instance is live in minutes.</p>
|
||
</div>
|
||
<div class="feature-card">
|
||
<i class="fas fa-shield-alt"></i>
|
||
<h3>Automatic Backups & SSL</h3>
|
||
<p>Backups run on a schedule and are kept in rotating slots — one on Side Hustle, four on On the Rise and Powerhouse. Free SSL certificates on every domain — always secure.</p>
|
||
</div>
|
||
<div class="feature-card">
|
||
<i class="fas fa-cubes"></i>
|
||
<h3>Management Within Odoo</h3>
|
||
<p>The one-stop shop for your entire business. No need for several accounts — manage your applications, users, and modules from one control panel.</p>
|
||
</div>
|
||
<div class="feature-card">
|
||
<i class="fas fa-code-branch"></i>
|
||
<h3>Git-Based Module Deployment</h3>
|
||
<p>Push custom modules via Git or use one-click Quick Git. No FTP, no hassle.</p>
|
||
</div>
|
||
<div class="feature-card">
|
||
<i class="fas fa-headset"></i>
|
||
<h3>Support Bot & Human Support</h3>
|
||
<p>AI support bot for instant fixes. Human team for everything else. Your UUID is your key.</p>
|
||
</div>
|
||
<div class="feature-card-trial" id="trialCard">
|
||
<h3>Free Trial</h3>
|
||
<p>Start your 30-day free trial. No credit card required.</p>
|
||
<form class="trial-form" id="trialForm">
|
||
<input type="email" id="trialEmail" placeholder="Your email address" required />
|
||
<select id="trialLocation"></select>
|
||
<button type="submit" class="btn btn-brass">Send</button>
|
||
</form>
|
||
<div class="trial-success" id="trialSuccess">✓ Check your inbox to confirm your email address.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- FAQ — the homepage's section -->
|
||
<section class="section-dark" id="faq-general">
|
||
<div class="container">
|
||
<h2 class="section-title">Frequently asked questions</h2>
|
||
<div class="faq-grid">
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>What if I outgrow my plan?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Grow from Side Hustle to Empire without data migration or downtime. Upgrade in your Odoo Settings panel — your instance stays live, your data moves with you.</p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>Can I customize it?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Yes. On the Rise and above support Git-based modules. Install custom apps, build your own, or use Quick GIT for one-click installs.</p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>How fast can I get started?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Five minutes. Pick a plan, choose your region — your Odoo instance is live. No setup fee. Stripe payment. Cancel anytime.</p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>Can I run Odoo Enterprise?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Powerhouse and Empire are Enterprise-ready. Bring your license; we provide the infrastructure.</p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>ODOO Community? What can it do?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Inventory, accounting, CRM, sales, manufacturing, HR — all in one system. Free and fully open-source. <a href="/what-can-i-use-odoo-for/">What you can use Odoo for, in plain English</a>.</p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>Do you need an Odoo staging environment?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>Most small businesses do not. If you change Odoo's code you do; if you install a finished module, a backup and a careful test is enough. <a href="/odoo-staging-environment/">Do you need an Odoo staging environment?</a></p></div>
|
||
</div>
|
||
<div class="faq-card plausible-event-name=FAQ" onclick="this.classList.toggle('open')">
|
||
<div class="faq-q"><span>Do you have an affiliate program?</span> <i class="fas fa-chevron-down"></i></div>
|
||
<div class="faq-a"><p>No. We believe it is in our best interest to have competitive prices for our shared clients.</p></div>
|
||
</div>
|
||
</div>
|
||
<a href="/support.html" class="faq-link">Full FAQ →</a>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Pricing / buy section — the homepage's section -->
|
||
<section class="section-dark" id="pricing">
|
||
<div class="container">
|
||
<p class="section-kicker">Order & Pricing</p>
|
||
<h2 class="section-title">Your Plan, Your Timing: Upgrade Anytime</h2>
|
||
<div class="pricing-server-row">
|
||
<label for="pricingServerLocation">Server Location</label>
|
||
<select id="pricingServerLocation" class="pricing-server-select"></select>
|
||
<label for="pricingOdooVersion">Odoo Version</label>
|
||
<select id="pricingOdooVersion" class="pricing-server-select">
|
||
<option value="19.0">19.0 — Tons of OCA supported modules</option>
|
||
<option value="20.0" selected>20.0 — Latest Greatest</option>
|
||
</select>
|
||
</div>
|
||
<div class="pricing-grid">
|
||
<!-- Side Hustle -->
|
||
<div class="pcard">
|
||
<div class="pcard-body">
|
||
<h3>Side Hustle</h3>
|
||
<div class="price">
|
||
<strong>$ 214.00</strong>
|
||
<small class="price-period">/ year</small>
|
||
</div>
|
||
<p class="desc">"ODOO Standard .. that is all my business needs"</p>
|
||
<!-- Fix 2 (this page only): the list-price buy buttons are removed here. They are
|
||
not what paid traffic came for, and a list-price purchase must not sit one
|
||
click away beside the deal. The plan stays as a price anchor. -->
|
||
<ul>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Launch Odoo CE in 5 minutes</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Automatic backups — no remembering</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> 1 domain & SSL cert</li>
|
||
</ul>
|
||
</div>
|
||
<div class="pcard-foot">No setup fee. Stripe Payment<br />Cancel at any time</div>
|
||
</div>
|
||
<!-- On the Rise -->
|
||
<div class="pcard featured">
|
||
<div class="pcard-body">
|
||
<h3>On the Rise</h3>
|
||
<!-- Fix 1 (this page only): the card must agree with the offer block above. On this
|
||
page the On the Rise card shows the Black Friday price — $295 for the first year,
|
||
then the $395 list price. $395 remains correct on every other page. -->
|
||
<div class="price">
|
||
<strong>$ 295.00</strong>
|
||
<small class="price-period">for your first year, then $395 a year</small>
|
||
</div>
|
||
<p class="desc">"I need some modules and professional reports"</p>
|
||
<!-- Fix 2: the On the Rise buy is the Black Friday deal purchase — the same one-click
|
||
checkout as the offer block above (product 4, coupon HOST27 auto-applied,
|
||
redirect to /shop/checkout). Native POST form, so it works with JavaScript off.
|
||
Deliberately NOT marked with the Plausible Buy goal class: the offer-block form
|
||
above is the single Buy-marked element on this page, so the click proxy counts
|
||
one deal intent, not two. -->
|
||
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="pcard-buy">
|
||
<input type="hidden" name="basket" value='[{"product_id":4,"qty":1}]' />
|
||
<input type="hidden" name="clear" value="1" />
|
||
<input type="hidden" name="redirect" value="/coupon/HOST27?r=/shop/checkout" />
|
||
<button type="submit" class="btn btn-brass">Buy On the Rise — $295 first year</button>
|
||
</form>
|
||
<!-- Fix 10: time remaining, filled in by /static/black-friday.js from one documented
|
||
end instant. Empty with JavaScript off. -->
|
||
<p class="bf-days-line"><span class="bf-days" data-bf-days></span></p>
|
||
<ul>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Launch Odoo CE in 5 minutes</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Automatic backups — no remembering</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> 3 domains & SSL certs</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Install custom modules via Git/QuickGIT</li>
|
||
</ul>
|
||
</div>
|
||
<div class="pcard-foot">No setup fee. Stripe Payment<br />Cancel at any time</div>
|
||
</div>
|
||
<!-- Powerhouse -->
|
||
<div class="pcard">
|
||
<div class="pcard-body">
|
||
<h3>Powerhouse</h3>
|
||
<div class="price">
|
||
<strong>$ 595.00</strong>
|
||
<small class="price-period">/ year</small>
|
||
</div>
|
||
<p class="desc">"ODOO Enterprise is a must have!"</p>
|
||
<!-- Fix 2 (this page only): list-price buy button removed — see the Side Hustle card. -->
|
||
<ul>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Launch Odoo CE in 5 minutes</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Automatic backups — no remembering</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> 3 domains & SSL certs</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Install custom modules via Git/QuickGIT</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> 2 workers for reliability</li>
|
||
</ul>
|
||
</div>
|
||
<div class="pcard-foot">No setup fee. Stripe Payment<br />Cancel at any time</div>
|
||
</div>
|
||
<!-- Empire -->
|
||
<div class="pcard">
|
||
<div class="pcard-body">
|
||
<h3>Empire</h3>
|
||
<div class="price">
|
||
<strong>>$ 950.00</strong>
|
||
<small class="price-period">/ year</small>
|
||
</div>
|
||
<p class="desc">"My house! My Horse! My Server!"</p>
|
||
<a href="javascript:void(0)" class="btn btn-brass btn-empire">Get Custom Quote</a>
|
||
<ul>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Our service on your server</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> All modules & features</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Unlimited customization</li>
|
||
<li><i class="fas fa-check" style="color: var(--success)"></i> Priority support & dedicated onboarding</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p class="pricing-cta-note">Save money, less administration</p>
|
||
<p class="pricing-cta-note"><a href="/odoo-hosting-2027.html"><strong>Compare every way to host Odoo in 2027 →</strong></a></p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Custom Quote Modal — the homepage's modal (Empire CTA) -->
|
||
<div id="customQuoteModal" class="ow-overlay" onclick="if(event.target===this)closeCustomQuoteModal()">
|
||
<div id="customQuotePanel" class="ow-panel" style="display:none">
|
||
<button class="ow-close" onclick="closeCustomQuoteModal()">×</button>
|
||
<div class="ow-content">
|
||
<h2 class="ow-title">Get Custom Quote</h2>
|
||
<p class="ow-sub">Tell us about your needs and we'll prepare a tailored offer.</p>
|
||
<form id="customQuoteForm" class="biz-form" style="text-align:left">
|
||
<div class="biz-field">
|
||
<label for="cqName">Name</label>
|
||
<input type="text" id="cqName" placeholder="Your full name" required />
|
||
</div>
|
||
<div class="biz-field">
|
||
<label for="cqEmail">Email</label>
|
||
<input type="email" id="cqEmail" placeholder="your@email.com" required />
|
||
</div>
|
||
<div class="biz-field">
|
||
<label for="cqRequirements">Your Requirements</label>
|
||
<textarea id="cqRequirements" placeholder="Describe your requirements (how many users? onsite, cloud? how many workers?)" required></textarea>
|
||
</div>
|
||
<button type="submit" class="btn btn-brass btn-lg">Submit Request</button>
|
||
</form>
|
||
<div class="biz-success" id="customQuoteSuccess" style="display:none">
|
||
<i class="fas fa-check-circle"></i>
|
||
<h3>Request received</h3>
|
||
<p>We'll review your requirements and get back to you shortly.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- The Bootcamp offer — restored from the 2026-11-02 archive (webmaster/out/
|
||
2026-11-02-bootcamp-box-removed-archive.md) and moved here, to the foot of the page:
|
||
the last content section before the footer. Heading, USD 595.00 price, mechanism line,
|
||
deadline and CTA are exactly as archived. -->
|
||
<section class="section-light bf-box" id="bootcamp">
|
||
<div class="container">
|
||
<!-- Box — Bootcamp -->
|
||
<div class="bf-box-inner">
|
||
<h2 class="bf-box-title">Bootcamp: ten live sessions to a working system</h2>
|
||
<div class="bf-panel">
|
||
<p class="bf-teaser">A working system for your business in ten live sessions, USD 595 — with a second hosted year added for Black Friday.</p>
|
||
<p class="bf-price"><strong>USD 595.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 the discount code 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 line --></p>
|
||
<p class="bf-deadline">Ends Monday 30 November 2026.</p>
|
||
<!-- Buy = CLICK PROXY (offer-CTA click), NOT a sale. The real purchase event is fired on the
|
||
checkout host (20.odoo4projects.com) by odoo-dev. See wiki/concepts/conversion-tracking-contract.
|
||
Fix 2: the existing Plausible Buy goal class was removed here — this is a
|
||
navigation link to the Bootcamp page, not a deal purchase, and the deal purchase
|
||
(the Hosting form above) is the single element that may carry the class. -->
|
||
<p class="bf-cta"><a href="/odoo-erp-automation-bootcamp/">See the Bootcamp and what you build</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
|
||
carries no external icon dependency) -->
|
||
<footer class="footer">
|
||
<div class="container">
|
||
<div class="fgrid">
|
||
<div>
|
||
<h4>Useful Links</h4>
|
||
<ul>
|
||
<li><a href="/odoo-erp-automation-bootcamp/">ODOO Bootcamp</a></li>
|
||
<li><a href="/odoo-hosting-2027.html">ODOO Hosting in 2027</a></li>
|
||
<li><a href="/support.html">Support</a></li>
|
||
<li><a href="/legal.html">Legal</a></li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<h4>Partners</h4>
|
||
<div class="partner-list">
|
||
<a href="https://oc-guy.com" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OC Guy</a>
|
||
<a href="https://oca-py.org" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OCA Paraguay</a>
|
||
<a href="https://OD8N.com" target="_blank" rel="noopener" class="partner-item"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#c9a227" stroke-width="2" aria-hidden="true"><path d="M20 7h-9M14 17H5M20 7l-4-4M20 7l-4 4M4 17l4 4M4 17l4-4" /></svg> OD8N</a>
|
||
</div>
|
||
</div>
|
||
<div class="fcol-desc">
|
||
<h4>About us</h4>
|
||
<p>We build smart, scalable business solutions by combining the <strong>stability</strong> of Odoo ERP with the <strong>power</strong> of AI Agents and N8N automations.</p>
|
||
<p>From streamlined sales to global rollouts, our <strong>lean, eco-friendly</strong> approach helps businesses cut costs, boost efficiency, and grow without limits.</p>
|
||
</div>
|
||
<div>
|
||
<h4>Follow us on</h4>
|
||
<div class="social">
|
||
<a href="https://www.linkedin.com/company/odoo4projects/" target="_blank" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.76-1.95 4.02 0 4.76 2.5 4.76 5.75V21h-4v-5.5c0-1.31-.02-3-1.9-3-1.9 0-2.19 1.42-2.19 2.9V21H9z" /></svg></a>
|
||
<a href="https://www.youtube.com/@ODOO4projects" target="_blank" aria-label="YouTube"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23 12s0-3.2-.41-4.73a2.5 2.5 0 0 0-1.76-1.77C19.3 5.1 12 5.1 12 5.1s-7.3 0-8.83.4A2.5 2.5 0 0 0 1.4 7.27C1 8.8 1 12 1 12s0 3.2.41 4.73a2.5 2.5 0 0 0 1.76 1.77c1.53.4 8.83.4 8.83.4s7.3 0 8.83-.4a2.5 2.5 0 0 0 1.76-1.77C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12z" /></svg></a>
|
||
</div>
|
||
<form class="footer-contact-form" id="footerContactForm" action="mailto:hello@odoo4projects.com" method="post" enctype="text/plain">
|
||
<label class="bf-sr-only" for="footerContactEmail">Your email address</label>
|
||
<input type="email" id="footerContactEmail" name="email" placeholder="Your email address" required />
|
||
<div class="footer-textarea-wrap">
|
||
<label class="bf-sr-only" for="footerContactText">Your message</label>
|
||
<textarea id="footerContactText" name="message" placeholder="Your message..." required></textarea>
|
||
<button type="submit" class="footer-send-btn" aria-label="Send message"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M2 21l21-9L2 3v7l15 2-15 2z" /></svg></button>
|
||
</div>
|
||
<div class="footer-form-status" id="footerFormStatus" role="status"></div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<div class="fcopy">Copyright © ODOO4projects LLC · <a href="#" id="adsConsentOpen">Cookie settings</a></div>
|
||
</div>
|
||
</footer>
|
||
|
||
<!-- Google Ads consent banner — default DENY. The tag loads only after "Accept".
|
||
Markup lives in the page; JS (static/ads-consent.js) reveals it and drives it.
|
||
Two conversions are wired here: the buy forms (data-ads-send-to) and the free-trial
|
||
form (data-ads-trial-send-to). With JavaScript off it stays hidden and both actions
|
||
(the native buy POSTs, the trial's own submit) run untouched.
|
||
See wiki/concepts/conversion-tracking-contract. -->
|
||
<div
|
||
id="adsConsent"
|
||
class="ads-consent"
|
||
role="region"
|
||
aria-label="Advertising cookie consent"
|
||
data-ads-id="AW-18065522009"
|
||
data-ads-send-to="AW-18065522009/vnDUCPDxt7AdENn6p6ZD"
|
||
data-ads-trial-send-to="AW-18065522009/AtAPCIjjvrAdENn6p6ZD"
|
||
hidden
|
||
>
|
||
<div class="ads-consent-inner">
|
||
<p class="ads-consent-title">Advertising cookies</p>
|
||
<p class="ads-consent-text">
|
||
We would like to measure our Black Friday ads with Google. That uses optional
|
||
advertising cookies. Accept or decline: the page works the same either way, and you
|
||
can change your choice later from the “Cookie settings” link in the footer.
|
||
See our <a href="/privacy.html">privacy policy</a>.
|
||
</p>
|
||
<div class="ads-consent-actions">
|
||
<button type="button" id="adsConsentAccept" class="ads-consent-btn ads-consent-btn--accept">
|
||
Accept
|
||
</button>
|
||
<button type="button" id="adsConsentDecline" class="ads-consent-btn ads-consent-btn--decline">
|
||
Decline
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
||
<script defer src="/static/black-friday.js"></script>
|
||
<script defer src="/static/ads-consent.js"></script>
|
||
</body>
|
||
</html>
|