feat(hosting): add /odoo-black-friday/ and /odoo-hosting-offers/ pages

Page A /odoo-black-friday/ owns "odoo black friday": hero, one On the Rise
box with a CSS-only reveal (native <details>) of the HOST27 offer, "what the
code does", FAQ. Page B /odoo-hosting-offers/ is the evergreen hub owning
"odoo hosting offers/deals/discount", with a date-scoped Black Friday block
(BF-BLOCK-START/END) linking to Page A. Both carry the copy's title/meta/H1,
@graph JSON-LD (Organization, WebPage, BreadcrumbList, Product+Offer, FAQPage).
sitemap.xml and llms.txt updated. Copy source: copywriter 2026-10-30.
This commit is contained in:
webmaster committed 2026-10-30 13:18:16 +00:00
1 parent 48266e8e77
commit 355c5d022e
4 files changed
+1257

No files matched your search

+2
View File
@@ -32,6 +32,8 @@
- [Odoo Community upgrade](https://odoo4projects.com/odoo-community-upgrade.html): what an upgrade changes, the published step-by-step process, the real commands for a developer (Odoo's upgrade platform and the OCA OpenUpgrade route) and how we migrate a database onto our servers. No price and no duration are published for the migration service; it starts with a support ticket. - [Odoo Community upgrade](https://odoo4projects.com/odoo-community-upgrade.html): what an upgrade changes, the published step-by-step process, the real commands for a developer (Odoo's upgrade platform and the OCA OpenUpgrade route) and how we migrate a database onto our servers. No price and no duration are published for the migration service; it starts with a support ticket.
- [Odoo hosting in Australia — Sydney](https://odoo4projects.com/australia.html): managed Odoo Community hosting on our own servers in Sydney, for Australian businesses. The four plans and yearly prices, the checkout with Australia (Sydney) pre-selected, and the one Sydney claim we make — we host in Sydney (no AU support hours, no AU entity, no AUD price published). - [Odoo hosting in Australia — Sydney](https://odoo4projects.com/australia.html): managed Odoo Community hosting on our own servers in Sydney, for Australian businesses. The four plans and yearly prices, the checkout with Australia (Sydney) pre-selected, and the one Sydney claim we make — we host in Sydney (no AU support hours, no AU entity, no AUD price published).
- [Odoo hosting offers](https://odoo4projects.com/odoo-hosting-offers/) — what a year of managed Odoo Community hosting costs: one flat yearly price, no per-user licence, no setup fee, 30-day free trial.
- [Odoo Black Friday](https://odoo4projects.com/odoo-black-friday/) — our yearly Black Friday and Cyber Monday offer on managed Odoo Community hosting.
- [Odoo hosting 2027 — comparison landing page](https://odoo4projects.com/odoo-hosting-2027.html): every route to Odoo (managed, VPS, odoo.sh, Odoo Online, own hardware) side by side, with annual and five-year cost comparisons. - [Odoo hosting 2027 — comparison landing page](https://odoo4projects.com/odoo-hosting-2027.html): every route to Odoo (managed, VPS, odoo.sh, Odoo Online, own hardware) side by side, with annual and five-year cost comparisons.
- [Odoo ERP Automation Bootcamp](https://odoo4projects.com/odoo-erp-automation-bootcamp/): a three-month, ten-session live bootcamp with Oliver Arnold, Technical Lead, that takes a small business from zero to a running ERP. Thursdays, one hour, Q1 2027, starting 21 January 2027; one year of hosted Odoo Community Edition included. The bootcamp is limited to six participants per cohort. The current price is confirmed on registration. - [Odoo ERP Automation Bootcamp](https://odoo4projects.com/odoo-erp-automation-bootcamp/): a three-month, ten-session live bootcamp with Oliver Arnold, Technical Lead, that takes a small business from zero to a running ERP. Thursdays, one hour, Q1 2027, starting 21 January 2027; one year of hosted Odoo Community Edition included. The bootcamp is limited to six participants per cohort. The current price is confirmed on registration.
- [ODOO x N8N Masterclass](https://odoo4projects.com/odoo-n8n-masterclass/): a two-hour live masterclass with Oliver Arnold on connecting Odoo to n8n — calling n8n webhooks from Odoo automated actions, how the n8n integration for Odoo works, and website workarounds that extend your automation. Hands-on in a free Odoo trial system; n8n itself runs on n8n's own free plan, which is not included. USD 120.00, next session the four Thursdays of February 2027 at 17:00 Central Time. - [ODOO x N8N Masterclass](https://odoo4projects.com/odoo-n8n-masterclass/): a two-hour live masterclass with Oliver Arnold on connecting Odoo to n8n — calling n8n webhooks from Odoo automated actions, how the n8n integration for Odoo works, and website workarounds that extend your automation. Hands-on in a free Odoo trial system; n8n itself runs on n8n's own free plan, which is not included. USD 120.00, next session the four Thursdays of February 2027 at 17:00 Central Time.
+637
View File
@@ -0,0 +1,637 @@
<!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 offer: $100 off your first year of managed Odoo hosting with code HOST27. Runs 16–30 November 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."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://odoo4projects.com/odoo-black-friday/" />
<meta name="twitter:card" content="summary_large_image" />
<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="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="/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;
}
/* Top bar (page-scoped: the site has no global header) */
.bf-topbar {
background: var(--midnight-2);
border-bottom: 1px solid var(--line-brass);
padding: 0.85rem 0;
}
.bf-topbar .container {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
flex-wrap: wrap;
}
.bf-brand {
font-family: Marcellus, Georgia, serif;
font-size: 1.15rem;
letter-spacing: 0.04em;
color: #fff;
}
.bf-brand span {
color: var(--brass);
}
.bf-topbar-links {
display: flex;
gap: 1.25rem;
font-size: 0.82rem;
margin-left: auto;
}
.bf-topbar-links a {
color: rgba(255, 255, 255, 0.7);
}
.bf-topbar-links a:hover {
color: var(--brass);
}
/* Language selector — slides into the top-bar row, right of the links, behind a hairline brass
divider. CI §1/§2: brass marks the active language; lang.js owns the markup. */
.bf-topbar .lang-switch-slot {
display: flex;
align-items: center;
padding-left: 1rem;
border-left: 1px solid rgba(201, 162, 39, 0.45);
}
.bf-topbar .lang-switch {
color: rgba(255, 255, 255, 0.7);
}
.bf-topbar .lang-switch a:hover,
.bf-topbar .lang-switch a:focus-visible {
color: var(--brass-bright);
}
.bf-topbar .lang-switch a[aria-current="true"] {
color: var(--brass);
text-decoration: underline;
text-underline-offset: 3px;
}
/* Hero */
.bf-hero {
min-height: 0;
padding: 3.5rem 0 3rem;
}
.bf-hero .hero-sub {
max-width: 640px;
}
.bf-hero .hero-window {
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.78);
line-height: 1.6;
margin: 0 0 0.25rem;
}
.bf-hero .hero-deadline {
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.6);
line-height: 1.6;
margin: 0 0 1.5rem;
}
/* The one product box */
.bf-box-inner {
max-width: 720px;
margin: 0 auto;
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;
}
/* Reveal mechanic — native <details>/<summary>: the panel is in the DOM in both states,
keyboard-operable, and works with JavaScript disabled. CSS reveals it; JS only mirrors
the open state to aria-expanded. The panel is never display:none by our stylesheet. */
.bf-reveal {
border-top: 1px solid var(--line);
}
.bf-reveal-summary {
cursor: pointer;
list-style: none;
display: block;
padding: 1.25rem 0 1rem;
}
.bf-reveal-summary::-webkit-details-marker {
display: none;
}
.bf-reveal-summary:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
border-radius: var(--radius);
}
.bf-teaser {
font-size: 1.02rem;
color: var(--ink);
line-height: 1.6;
margin: 0 0 1rem;
}
.bf-open-label {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-family: Inter, sans-serif;
font-weight: 600;
font-size: 0.82rem;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--midnight);
background: var(--brass);
border-radius: var(--radius-pill);
padding: 0.6rem 1.25rem;
}
.bf-open-label::after {
content: "+";
font-size: 1.05rem;
line-height: 1;
}
/* closed state only: the label is the invitation, so it goes once the panel is open.
`[open]` is set by the browser natively — this needs no JavaScript. */
.bf-reveal[open] .bf-open-label {
display: none;
}
.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);
}
.bf-deadline {
font-size: 0.85rem;
color: var(--ink-soft);
margin: 0 0 1.25rem;
}
.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;
}
/* "What the code does" band */
.bf-lead {
font-size: 1.05rem;
line-height: 1.75;
max-width: 760px;
margin: 0 auto 1.25rem;
text-align: center;
}
.section-dark .bf-lead {
color: rgba(255, 255, 255, 0.78);
}
.bf-lead:last-child {
margin-bottom: 0;
}
.bf-lead code {
font-family: Inter, sans-serif;
font-weight: 600;
color: var(--brass-bright);
}
.bf-lead strong {
color: #fff;
}
/* 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-topbar-links a:focus-visible,
.bf-links a:focus-visible {
outline: 3px solid var(--brass-bright);
outline-offset: 2px;
border-radius: var(--radius);
}
</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 offer: $100 off your first year of managed Odoo hosting with code HOST27. Runs 16–30 November 2026.",
"isPartOf": { "@id": "https://odoo4projects.com/#organization" },
"about": [
{ "@type": "Thing", "name": "Odoo Black Friday" },
{ "@type": "Thing", "name": "managed Odoo Community hosting" }
]
},
{
"@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, SSL certificate and version upgrades are run for you on one yearly price, with no per-user licence.",
"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": "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 HOST27 code 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": "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 with HOST27. 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 code 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>
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
<div class="bf-topbar">
<div class="container">
<a class="bf-brand" href="/">ODOO4<span>projects</span></a>
<nav class="bf-topbar-links" aria-label="Page links">
<a href="/index.html#pricing">Plans &amp; pricing</a>
<a href="/support.html">Support</a>
</nav>
<div data-lang-switcher class="lang-switch-slot"></div>
</div>
</div>
<!-- Hero -->
<section class="hero bf-hero">
<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-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">
<a href="/index.html#trialCard" class="btn btn-brass btn-lg">Start the 30-day free trial</a>
</div>
</div>
</section>
<!-- The one product box — Hosting, On the Rise -->
<section class="section-light bf-box" id="offer">
<div class="container">
<div class="bf-box-inner">
<h2 class="bf-box-title">Hosting: On the Rise</h2>
<details class="bf-reveal">
<summary class="bf-reveal-summary" aria-expanded="false">
<p class="bf-teaser">Your whole business in one system, $395 a year. Open to see the Black Friday price.</p>
<span class="bf-open-label">Open the Black Friday price</span>
</summary>
<div class="bf-panel">
<p class="bf-price"><strong>$395.00</strong> a year — <strong>$295.00</strong> for your first year.</p>
<p class="bf-included">Then it renews at the $395 list price. One yearly price, no per-user licence, no setup fee. We run the server, the backups, your certificate and the version upgrades for you.</p>
<!-- mechanism string, used verbatim — see §3 -->
<p class="bf-mechanism">Black Friday: <strong>$100 off your first year</strong> with code <strong>HOST27</strong>. One redemption per customer.</p>
<p class="bf-deadline">Ends Monday 30 November 2026.</p>
<p class="bf-cta"><a href="/odoo-hosting-offers/">See what a year of hosting includes</a></p>
</div>
</details>
</div>
</div>
</section>
<!-- What the code does -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">What the code does</h2>
<p class="bf-lead">HOST27 takes $100 off your first year of hosting. It is once per customer, one redemption.</p>
<p class="bf-lead">It is applied at checkout, and it ends on 30 November 2026. After that the price goes back to normal until next year.</p>
</div>
</section>
<!-- FAQ -->
<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 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">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>
</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 code 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-2027.html">Odoo hosting in 2027, compared</a>
<a href="/blog/posts/community-vs-enterprise-cost.html">What Community costs compared with Enterprise</a>
<a href="/index.html#trialCard">Start the 30-day free trial</a>
</nav>
</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-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 &copy; ODOO4projects LLC</div>
</div>
</footer>
<script>
/* Enhancement only: mirror the 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");
function sync() {
if (s) s.setAttribute("aria-expanded", r.open ? "true" : "false");
}
sync();
r.addEventListener("toggle", sync);
})();
</script>
</body>
</html>
+606
View File
@@ -0,0 +1,606 @@
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Odoo Hosting Offers: What a Year Actually Costs</title>
<meta
name="description"
content="Odoo hosting offers explained: one flat yearly price, no per-user licence, no setup fee, a 30-day free trial, and what each plan costs."
/>
<link rel="canonical" href="https://odoo4projects.com/odoo-hosting-offers/" />
<meta property="og:title" content="Odoo Hosting Offers: What a Year Actually Costs" />
<meta
property="og:description"
content="Odoo hosting offers explained: one flat yearly price, no per-user licence, no setup fee, a 30-day free trial, and what each plan costs."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://odoo4projects.com/odoo-hosting-offers/" />
<meta name="twitter:card" content="summary_large_image" />
<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="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="/style.css" media="print" onload="this.media='all'" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style>
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
.of-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;
}
/* Top bar (page-scoped: the site has no global header) */
.of-topbar {
background: var(--midnight-2);
border-bottom: 1px solid var(--line-brass);
padding: 0.85rem 0;
}
.of-topbar .container {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
flex-wrap: wrap;
}
.of-brand {
font-family: Marcellus, Georgia, serif;
font-size: 1.15rem;
letter-spacing: 0.04em;
color: #fff;
}
.of-brand span {
color: var(--brass);
}
.of-topbar-links {
display: flex;
gap: 1.25rem;
font-size: 0.82rem;
margin-left: auto;
}
.of-topbar-links a {
color: rgba(255, 255, 255, 0.7);
}
.of-topbar-links a:hover {
color: var(--brass);
}
/* Language selector — slides into the top-bar row, right of the links, behind a hairline brass
divider. CI §1/§2: brass marks the active language; lang.js owns the markup. */
.of-topbar .lang-switch-slot {
display: flex;
align-items: center;
padding-left: 1rem;
border-left: 1px solid rgba(201, 162, 39, 0.45);
}
.of-topbar .lang-switch {
color: rgba(255, 255, 255, 0.7);
}
.of-topbar .lang-switch a:hover,
.of-topbar .lang-switch a:focus-visible {
color: var(--brass-bright);
}
.of-topbar .lang-switch a[aria-current="true"] {
color: var(--brass);
text-decoration: underline;
text-underline-offset: 3px;
}
/* Hero */
.of-hero {
min-height: 0;
padding: 3.5rem 0 3rem;
}
.of-hero .hero-sub {
max-width: 640px;
}
/* Date-scoped Black Friday block (removed after 30 Nov 2026 — see BF-BLOCK markers) */
.bf-hub {
max-width: 780px;
margin: 0 auto;
background: var(--ivory);
border: 1px solid var(--line-brass);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-rest);
padding: 1.75rem 2rem;
text-align: center;
}
.bf-hub h2 {
margin-bottom: 0.85rem;
}
.bf-hub .bf-hub-line {
font-size: 1.02rem;
color: var(--ink-soft);
line-height: 1.7;
margin: 0 0 1rem;
}
.bf-hub .bf-hub-link {
margin: 0;
}
.bf-hub .bf-hub-link 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-hub .bf-hub-link a:hover {
background: var(--brass-bright);
color: var(--midnight);
}
.bf-hub .bf-hub-link a:focus-visible {
outline: 3px solid var(--midnight);
outline-offset: 2px;
}
/* Prose bands */
.of-lead {
font-size: 1.05rem;
line-height: 1.75;
max-width: 760px;
margin: 0 auto 1.25rem;
text-align: center;
}
.section-dark .of-lead {
color: rgba(255, 255, 255, 0.78);
}
.of-lead:last-child {
margin-bottom: 0;
}
.of-lead strong {
color: #fff;
}
/* Plans */
.offers-plans {
list-style: none;
padding: 0;
max-width: 620px;
margin: 0 auto 1.25rem;
}
.offers-plans li {
font-size: 1rem;
color: var(--ink);
line-height: 1.6;
padding: 0.85rem 0;
border-bottom: 1px solid var(--line);
}
.offers-plans li:last-child {
border-bottom: none;
}
.offers-plans strong {
font-family: Marcellus, Georgia, serif;
font-weight: 400;
font-size: 1.1rem;
color: var(--midnight);
}
.offers-note {
font-size: 0.9rem;
color: var(--ink-soft);
line-height: 1.7;
max-width: 620px;
margin: 0 auto;
text-align: center;
}
/* Pricing list */
.of-price-list {
list-style: none;
padding: 0;
max-width: 760px;
margin: 0 auto;
}
.of-price-list li {
position: relative;
padding-left: 1.4rem;
margin-bottom: 0.7rem;
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.78);
line-height: 1.65;
}
.of-price-list li::before {
content: "";
position: absolute;
left: 0.25rem;
top: 0.6rem;
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--brass);
}
.of-price-list strong {
color: #fff;
}
.of-regions {
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.72);
line-height: 1.7;
max-width: 760px;
margin: 1.5rem auto 0;
text-align: center;
}
/* 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 */
.of-links {
display: flex;
gap: 1.25rem;
flex-wrap: wrap;
justify-content: center;
max-width: 900px;
margin: 2.5rem auto 0;
}
.of-links a {
font-size: 0.88rem;
color: var(--brass-deep);
text-decoration: underline;
text-underline-offset: 3px;
}
.of-links a:focus-visible {
outline: 2px solid var(--brass);
outline-offset: 3px;
border-radius: var(--radius);
}
.btn:focus-visible,
.of-topbar-links a:focus-visible {
outline: 3px solid var(--brass-bright);
outline-offset: 2px;
border-radius: var(--radius);
}
</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-hosting-offers/",
"url": "https://odoo4projects.com/odoo-hosting-offers/",
"name": "Odoo Hosting Offers: What a Year Actually Costs",
"description": "Odoo hosting offers explained: one flat yearly price, no per-user licence, no setup fee, a 30-day free trial, and what each plan costs.",
"isPartOf": { "@id": "https://odoo4projects.com/#organization" },
"about": [
{ "@type": "Thing", "name": "Odoo hosting offers" },
{ "@type": "Thing", "name": "managed Odoo Community hosting" }
]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://odoo4projects.com/" },
{ "@type": "ListItem", "position": 2, "name": "Odoo hosting offers", "item": "https://odoo4projects.com/odoo-hosting-offers/" }
]
},
{
"@type": "Product",
"name": "On the Rise — managed Odoo Community hosting",
"description": "Managed Odoo Community hosting on the On the Rise plan: the server, backups, SSL certificate and version upgrades are run for you on one yearly price, with no per-user licence and no setup fee.",
"brand": { "@id": "https://odoo4projects.com/#organization" },
"offers": [
{
"@type": "Offer",
"name": "On the Rise",
"price": "395.00",
"priceCurrency": "USD",
"url": "https://odoo4projects.com/odoo-hosting-offers/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is there a per-user licence?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Odoo Community has no per-user licence, and our plans are one flat yearly price. There is nothing to pay for each person who logs in."
}
},
{
"@type": "Question",
"name": "Is there a setup fee?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No setup fee. You pay one price for the year and nothing to get started."
}
},
{
"@type": "Question",
"name": "What does the 30-day free trial include?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A live system for 30 days, with no card needed. It does not include backups or your own web address; those start with a paid plan."
}
},
{
"@type": "Question",
"name": "Do you have a discount code for Odoo?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Not for Odoo itself. We do not sell Odoo licences, so there is no licence coupon here. When we run a deal, like our yearly Black Friday offer on hosting, it is stated on our own pages."
}
},
{
"@type": "Question",
"name": "Where is my system hosted?",
"acceptedAnswer": {
"@type": "Answer",
"text": "In one of six regions: Amsterdam, Boston, Manchester, Mumbai, São Paulo or Sydney. You choose the closest when you start."
}
}
]
}
]
}
</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>
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
<div class="of-topbar">
<div class="container">
<a class="of-brand" href="/">ODOO4<span>projects</span></a>
<nav class="of-topbar-links" aria-label="Page links">
<a href="/index.html#pricing">Plans &amp; pricing</a>
<a href="/support.html">Support</a>
</nav>
<div data-lang-switcher class="lang-switch-slot"></div>
</div>
</div>
<!-- Hero -->
<section class="hero of-hero">
<div class="container">
<h1>Odoo hosting offers, and what a year costs</h1>
<p class="hero-sub">One yearly price for your whole business. No per-user licence. No setup fee.</p>
<div class="hero-actions">
<a href="/index.html#trialCard" class="btn btn-brass btn-lg">Start the 30-day free trial</a>
</div>
</div>
</section>
<!-- Date-scoped Black Friday block -->
<section class="section-light">
<div class="container">
<!-- BF-BLOCK-START: live 16–30 November 2026 only. Remove this block after 30 Nov 2026. -->
<div class="bf-hub">
<h2>Black Friday and Cyber Monday 2026</h2>
<p class="bf-hub-line">This November we take $100 off your first year of hosting. The window is 16–30 November 2026, and it ends on Cyber Monday.</p>
<p class="bf-hub-link"><a href="/odoo-black-friday/">See the Black Friday hosting offer</a></p>
</div>
<!-- BF-BLOCK-END -->
</div>
</section>
<!-- What a hosting offer from us actually is -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">What a hosting offer from us actually is</h2>
<p class="of-lead">A hosting offer from us is one flat price for a year. That price runs your whole business system, and we run everything under it: the server, the backups, your certificate and the version upgrades.</p>
<p class="of-lead">What is not on the bill: a charge for each person who logs in, and a fee to set you up. Odoo Community has no per-user licence, so there is nothing per seat to pay, and there is no setup fee.</p>
<p class="of-lead">Start with a 30-day free trial and no card. If it fits, the year starts when you pay, not when you sign up.</p>
</div>
</section>
<!-- Our plans and what each costs -->
<section class="section-light">
<div class="container">
<h2 class="section-title">Our plans and what each costs</h2>
<p class="of-lead">Three plans, each one flat price for a year. Pick by how much room you need, not by how many people will use it.</p>
<ul class="offers-plans">
<li><strong>Side Hustle</strong> — $214 a year.</li>
<li><strong>On the Rise</strong> — $395 a year.</li>
<li><strong>Powerhouse</strong> — $595 a year.</li>
</ul>
<p class="offers-note">On the Rise and up install modules, so you can add capability as your business asks for it. Side Hustle is built for a single web address.</p>
</div>
</section>
<!-- How our pricing works -->
<section class="section-dark">
<div class="container">
<h2 class="section-title">How our pricing works</h2>
<ul class="of-price-list">
<li><strong>One yearly price.</strong> Billed yearly, not monthly.</li>
<li><strong>No per-user licence.</strong> Community has none, so we do not charge one.</li>
<li><strong>No setup fee.</strong> Nothing to pay to start.</li>
<li><strong>Renews at list.</strong> Your second year costs what the first year's list price was. There is no quiet increase.</li>
<li><strong>30-day free trial.</strong> No card, no commitment.</li>
</ul>
<p class="of-regions">Hosted in six regions: Amsterdam, Boston, Manchester, Mumbai, São Paulo and Sydney. Pick the one nearest your team.</p>
</div>
</section>
<!-- FAQ -->
<section class="section-light" id="faq">
<div class="container">
<h2 class="section-title">Hosting questions</h2>
<div class="cmp-faq-grid">
<details class="cmp-faq">
<summary class="plausible-event-name=FAQ">Is there a per-user licence?</summary>
<div class="faq-a"><p>No. Odoo Community has no per-user licence, and our plans are one flat yearly price. There is nothing to pay for each person who logs in.</p></div>
</details>
<details class="cmp-faq">
<summary class="plausible-event-name=FAQ">Is there a setup fee?</summary>
<div class="faq-a"><p>No setup fee. You pay one price for the year and nothing to get started.</p></div>
</details>
<details class="cmp-faq">
<summary class="plausible-event-name=FAQ">What does the 30-day free trial include?</summary>
<div class="faq-a"><p>A live system for 30 days, with no card needed. It does not include backups or your own web address; those start with a paid plan.</p></div>
</details>
<details class="cmp-faq">
<summary class="plausible-event-name=FAQ">Do you have a discount code for Odoo?</summary>
<div class="faq-a"><p>Not for Odoo itself. We do not sell Odoo licences, so there is no licence coupon here. When we run a deal, like our yearly Black Friday offer on hosting, it is stated on our own pages.</p></div>
</details>
<details class="cmp-faq">
<summary class="plausible-event-name=FAQ">Where is my system hosted?</summary>
<div class="faq-a"><p>In one of six regions: Amsterdam, Boston, Manchester, Mumbai, São Paulo or Sydney. You choose the closest when you start.</p></div>
</details>
</div>
<nav class="of-links" aria-label="Related pages">
<a href="/odoo-hosting-2027.html">Odoo hosting in 2027, compared</a>
<a href="/blog/posts/community-vs-enterprise-cost.html">What Community costs compared with Enterprise</a>
<a href="/index.html#trialCard">Start the 30-day free trial</a>
</nav>
</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-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="of-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="of-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 &copy; ODOO4projects LLC</div>
</div>
</footer>
</body>
</html>
+12
View File
@@ -24,6 +24,18 @@
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url>
<loc>https://odoo4projects.com/odoo-hosting-offers/</loc>
<lastmod>2026-10-30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://odoo4projects.com/odoo-black-friday/</loc>
<lastmod>2026-10-30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url> <url>
<loc>https://odoo4projects.com/odoo-erp-automation-bootcamp/</loc> <loc>https://odoo4projects.com/odoo-erp-automation-bootcamp/</loc>
<lastmod>2026-10-30</lastmod> <lastmod>2026-10-30</lastmod>