Public Access
A filtered-out directory card stayed visible. The card is targeted by an
id-based ready-state selector (`.js #directory[data-dir-state="ready"]
#dirGrid > .dev-card`, two ids), which outranked the old per-element patch
`.dev-card[hidden] { display:none }` — so `card.hidden = true` set the
attribute and every card stayed on screen while the count line correctly
read "Showing 1 of 4".
Fix: one rule, `[hidden] { display:none !important }`, early in /style.css.
A class- or id-based `display` can no longer beat the attribute, so this
cannot recur with the next class that sets `display`. The per-element
`[hidden]` patches are removed so a single mechanism governs:
- odoo-community-developers: cards + filter row + pager + modal
(load-bearing — each sets `display`); focus-sliders/noscript (redundant)
- index/de/es `.hero-notice[hidden]`, odoo-black-friday `.ads-consent[hidden]`
(redundant — those elements set no `display`)
Re-fingerprint local assets (style.css changed): /style.css?v 3332fbba93 ->
061517baef across 51 pages.
Measured in a real browser (local harness, stubbed webhook; no record created,
no probe write) — computed display + geometry, never the `hidden` property:
- filtered to one card: the other three report display:none and height 0;
the visible set (1) equals the count line ("Showing 1 of 4") — 1 == 1
- HEAD (pre-fix) reproduces the defect: 3 cards hidden=true yet display:flex,
height 599.38 each; 4 visible vs the count's 1
- pager: display:none height 0 with one page; display:flex height 66.83 with
12 cards (Page 1 of 2); page 2 hides page-1 cards (display:none)
- modals closed: display:none height 0; load state: cards 0, pager/empty
display:none, filter row visibility:hidden by design
- 375 px: same result, no horizontal overflow; avatar ask-row top identical
across a row (2053.97 / links 2086.91)
595 lines
32 KiB
HTML
595 lines
32 KiB
HTML
<!doctype html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta
|
|
name="description"
|
|
content="Support and FAQ for ODOO4projects hosting. Get help with your Odoo instance, modules, backups, domains, and more."
|
|
/>
|
|
<title>Support | ODOO4projects</title>
|
|
<link rel="canonical" href="https://odoo4projects.com/support.html" />
|
|
<link rel="alternate" hreflang="en-US" href="https://odoo4projects.com/support.html" />
|
|
<link rel="alternate" hreflang="de" href="https://odoo4projects.com/de/support.html" />
|
|
<link rel="alternate" hreflang="es" href="https://odoo4projects.com/es/support.html" />
|
|
<link rel="alternate" hreflang="x-default" href="https://odoo4projects.com/support.html" />
|
|
<meta property="og:title" content="Support | ODOO4projects" />
|
|
<meta property="og:description" content="Support and FAQ for ODOO4projects hosting." />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://odoo4projects.com/support.html" />
|
|
<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;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
|
|
/>
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
|
/>
|
|
<link rel="stylesheet" href="style.css?v=061517baef" />
|
|
<style>
|
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
|
.blog-header {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.blog-header > a {
|
|
margin-right: auto;
|
|
}
|
|
.blog-header .lang-switch-slot {
|
|
display: flex;
|
|
align-items: center;
|
|
padding-left: 1rem;
|
|
border-left: 1px solid rgba(201, 162, 39, 0.45);
|
|
}
|
|
/* ---- Support Hero ---- */
|
|
.support-hero {
|
|
padding: 4rem 0 2.5rem;
|
|
text-align: center;
|
|
background: var(--light);
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
.support-hero h1 {
|
|
font-size: clamp(1.8rem, 3.2vw, 2.8rem);
|
|
color: var(--dark);
|
|
}
|
|
.support-hero p {
|
|
max-width: 680px;
|
|
margin: 0 auto;
|
|
color: rgba(33, 37, 41, 0.7);
|
|
font-size: 1rem;
|
|
line-height: 1.7;
|
|
}
|
|
.support-hero strong {
|
|
color: var(--primary);
|
|
}
|
|
|
|
/* ---- FAQ Section ---- */
|
|
.faq-section {
|
|
padding: 3rem 0 4rem;
|
|
}
|
|
.faq-section h2 {
|
|
text-align: center;
|
|
margin-bottom: 2rem;
|
|
color: var(--dark);
|
|
}
|
|
|
|
.faq-tabs {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.4rem;
|
|
justify-content: center;
|
|
margin-bottom: 2rem;
|
|
}
|
|
.faq-tab-btn {
|
|
padding: 0.55rem 1.1rem;
|
|
border-radius: var(--radius);
|
|
border: 1px solid var(--border);
|
|
background: #fff;
|
|
cursor: pointer;
|
|
font-family: "Inter Tight", sans-serif;
|
|
font-size: 0.82rem;
|
|
font-weight: 500;
|
|
color: #212529;
|
|
transition: all 0.2s;
|
|
line-height: 1.3;
|
|
}
|
|
.faq-tab-btn small {
|
|
display: block;
|
|
font-size: 0.7rem;
|
|
font-weight: 400;
|
|
color: rgba(33, 37, 41, 0.5);
|
|
margin-top: 0.1rem;
|
|
}
|
|
.faq-tab-btn:hover {
|
|
border-color: var(--primary);
|
|
color: var(--primary);
|
|
}
|
|
.faq-tab-btn.active {
|
|
background: linear-gradient(135deg, rgba(113,75,103,0.08), rgba(113,75,103,0.03));
|
|
border-color: var(--primary);
|
|
color: var(--primary);
|
|
font-weight: 600;
|
|
}
|
|
.faq-tab-btn.active small {
|
|
color: rgba(113, 75, 103, 0.6);
|
|
}
|
|
|
|
.faq-panel {
|
|
display: none;
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
}
|
|
.faq-panel.active {
|
|
display: block;
|
|
}
|
|
|
|
.faq-item {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius);
|
|
margin-bottom: 0.6rem;
|
|
overflow: hidden;
|
|
background: #fff;
|
|
}
|
|
.faq-question {
|
|
width: 100%;
|
|
background: none;
|
|
border: none;
|
|
padding: 0.9rem 1.1rem;
|
|
cursor: pointer;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
color: var(--dark);
|
|
font-family: "Inter Tight", sans-serif;
|
|
font-size: 0.88rem;
|
|
font-weight: 500;
|
|
text-align: left;
|
|
transition: background 0.2s;
|
|
gap: 1rem;
|
|
}
|
|
.faq-question:hover {
|
|
background: var(--light);
|
|
}
|
|
.faq-question .faq-icon {
|
|
flex-shrink: 0;
|
|
font-size: 0.7rem;
|
|
color: var(--primary);
|
|
transition: transform 0.3s;
|
|
}
|
|
.faq-question.open .faq-icon {
|
|
transform: rotate(180deg);
|
|
}
|
|
.faq-answer {
|
|
display: none;
|
|
padding: 0 1.1rem 0.9rem;
|
|
color: rgba(33, 37, 41, 0.7);
|
|
font-size: 0.88rem;
|
|
line-height: 1.7;
|
|
}
|
|
.faq-answer.open {
|
|
display: block;
|
|
}
|
|
.faq-answer ul {
|
|
margin: 0.5rem 0;
|
|
padding-left: 1.25rem;
|
|
}
|
|
.faq-answer li {
|
|
margin: 0.3rem 0;
|
|
}
|
|
.faq-answer a {
|
|
color: var(--primary);
|
|
text-decoration: underline;
|
|
}
|
|
.faq-answer strong {
|
|
color: var(--dark);
|
|
}
|
|
|
|
/* ---- Contact Section ---- */
|
|
.contact-section {
|
|
padding: 3rem 0 4rem;
|
|
background: var(--light);
|
|
border-top: 1px solid var(--border);
|
|
}
|
|
.contact-section h2 {
|
|
text-align: center;
|
|
margin-bottom: 2rem;
|
|
color: var(--dark);
|
|
}
|
|
.contact-form {
|
|
max-width: 580px;
|
|
margin: 0 auto;
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 2rem;
|
|
}
|
|
.form-group {
|
|
margin-bottom: 1.1rem;
|
|
}
|
|
.form-group label {
|
|
display: block;
|
|
color: rgba(33, 37, 41, 0.6);
|
|
font-size: 0.82rem;
|
|
font-weight: 500;
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
.form-group label .required {
|
|
color: #dc3545;
|
|
}
|
|
.form-group input,
|
|
.form-group textarea {
|
|
width: 100%;
|
|
padding: 0.65rem 0.85rem;
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius);
|
|
color: var(--dark);
|
|
font-family: Inter, sans-serif;
|
|
font-size: 0.88rem;
|
|
transition: border-color 0.2s;
|
|
box-sizing: border-box;
|
|
}
|
|
.form-group input:focus,
|
|
.form-group textarea:focus {
|
|
outline: none;
|
|
border-color: var(--primary);
|
|
}
|
|
.form-group textarea {
|
|
min-height: 90px;
|
|
resize: vertical;
|
|
}
|
|
.contact-form .btn {
|
|
width: 100%;
|
|
padding: 0.7rem;
|
|
}
|
|
.form-success {
|
|
display: none;
|
|
background: #d4edda;
|
|
border: 1px solid #c3e6cb;
|
|
border-radius: var(--radius);
|
|
padding: 0.8rem 1rem;
|
|
text-align: center;
|
|
color: #155724;
|
|
margin-top: 1rem;
|
|
font-size: 0.88rem;
|
|
}
|
|
.form-success.visible {
|
|
display: block;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.support-hero { padding: 2.5rem 0 1.5rem; }
|
|
.faq-tab-btn { padding: 0.4rem 0.8rem; font-size: 0.75rem; }
|
|
.contact-form { padding: 1.25rem; }
|
|
}
|
|
</style>
|
|
<!-- 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?v=3ec49a7e62"></script>
|
|
</head>
|
|
<body>
|
|
<main>
|
|
<div class="container">
|
|
<div class="blog-header">
|
|
<a href="index.html">← Back to Home</a>
|
|
<div data-lang-switcher class="lang-switch-slot"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Hero -->
|
|
<section class="support-hero">
|
|
<div class="container">
|
|
<h1>Support and FAQ</h1>
|
|
<p>
|
|
For the fastest help, please read our <strong>FAQ</strong> first — our support
|
|
bot can assist with quick fixes like <strong>git pull</strong> or restarts — or
|
|
simply send a <strong>ticket</strong> to our support team for further assistance.
|
|
Urgent topics can be handled by the <strong>AI agent</strong> we offer, and email
|
|
support answers within <strong>24 hours</strong>.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- FAQ -->
|
|
<section class="faq-section" id="faq">
|
|
<div class="container">
|
|
<h2>FAQ</h2>
|
|
|
|
<div class="faq-tabs" id="faqTabs">
|
|
<button class="faq-tab-btn active" data-tab="first-steps">
|
|
First Steps
|
|
<small>What is your service about</small>
|
|
</button>
|
|
<button class="faq-tab-btn" data-tab="advanced">
|
|
Advanced Users
|
|
<small>Install Modules, configure Backup</small>
|
|
</button>
|
|
<button class="faq-tab-btn" data-tab="trouble">
|
|
Trouble Shooting
|
|
<small>Service is unavailable</small>
|
|
</button>
|
|
<button class="faq-tab-btn" data-tab="commercial">
|
|
Commercial
|
|
<small>All information about our services</small>
|
|
</button>
|
|
<button class="faq-tab-btn" data-tab="migrate">
|
|
Bring your Database
|
|
<small>Migrate from another provider</small>
|
|
</button>
|
|
</div>
|
|
|
|
<!-- First Steps -->
|
|
<div class="faq-panel active" id="panel-first-steps">
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>My Odoo seems empty. What can I do with it?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>We provide a vanilla Odoo installation, which means your Odoo comes empty but fully ready for <strong>you to customize</strong> with the apps your business needs. To get started, go to the Apps menu, browse the available apps, and click Install — each app will appear in your main menu once installed, ready to use.</p>
|
|
<p>Here are some examples for different types of businesses:</p>
|
|
<ul>
|
|
<li><strong>Manufacturing unit</strong>: Install the Manufacturing and Inventory/Logistics apps.</li>
|
|
<li><strong>Online store</strong>: Install Website, eCommerce, and Sales apps.</li>
|
|
<li><strong>Service company</strong>: Install Project and Timesheets apps.</li>
|
|
<li><strong>Retail shop</strong>: Install Point of Sale (POS) and Inventory apps.</li>
|
|
<li><strong>Accounting firm</strong>: Install Accounting and Invoicing apps.</li>
|
|
<li><strong>Marketing agency</strong>: Install CRM, Marketing, and Email Marketing apps.</li>
|
|
<li><strong>Event company</strong>: Install Events and Website apps.</li>
|
|
</ul>
|
|
<p>No matter your business type, you can pick the apps that match your needs, and gradually build your Odoo system step by step.</p>
|
|
<p>If you are at the very start — choosing a plan, deploying your instance, mapping your first domain — our guide on <a href="blog/posts/my-first-post.html">getting started with Odoo hosting</a> walks through it step by step.</p>
|
|
<p>If the question you are asking is bigger than the apps — <em>what can I use Odoo for at all, and is it right for my kind of business?</em> — we have written that answer out properly, business type by business type: <a href="what-can-i-use-odoo-for/">what you can use Odoo for</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How do I install a new app?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>Open the Apps menu, search for the app you want, and click Install. That covers every app that ships with Odoo Community, and it works on every plan.</p>
|
|
<p>Apps that are not part of Odoo Community — custom modules and modules from <a href="https://odoo-community.org/" target="_blank" rel="noopener">odoo-community.org</a> — are installed for you by Git or with our one-click Quick Git. Custom and OCA modules install from On the Rise up. Side Hustle has no module installation.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How do I add my email Server for sending messages from Odoo?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>To send emails from Odoo, you need to configure an Outgoing Mail Server. Go to Settings → Technical → Email → Outgoing Mail Servers and enter your email server details, such as SMTP server, port, username, and password. You can get the SMTP server information from your domain or email provider. After entering the information, test the connection to ensure it works correctly.</p>
|
|
<p>If you also want to receive emails in Odoo, you can set up Incoming Mail Servers under the same menu, using the IMAP/POP3 details from your provider.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How do I change my login name or password?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>Before making any changes, it is advised to <strong>set up your outgoing email server</strong> to ensure notifications and password resets work correctly.</p>
|
|
<p>Your login name is the email address associated with your account. To change it, go to Settings → Users & Companies → Users, select your user, and update the Email field. After changing your login name, you must log in using the new email and your existing password. To change your password, go to the same user settings, click Change Password, or use the "Forgot Password" link on the login page to reset it via email.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Advanced Users -->
|
|
<div class="faq-panel" id="panel-advanced">
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>Do I get SSH access to my service?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>No — SSH access is limited to Git operations only. All other management and configuration options are available through our Odoo Settings module.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How do I configure my Backup frequency?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>The backup job runs as a scheduled action within Odoo, ensuring your data is regularly saved. You can access and manage this job only when Development Mode is enabled, which allows you to view technical settings and scheduled actions that are otherwise hidden in the standard interface. This way, you can review, adjust, or trigger backups as needed.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How long are Backups stored?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>We store backups in slots, which are retained until they are overwritten. Backups are managed using a first-in, first-out (FIFO) queue. When a backup is overwritten, it is permanently deleted. If you need to keep more backups, you can upgrade your contract and purchase additional slots.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How do I route my domain to my Odoo?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>To route your domain to Odoo, you first need to update the A record at your domain provider to point to our server's IP address. You can find the A record settings in your domain registrar's control panel under DNS settings. Once the A record is updated, the server will need to be restarted to recognize the new domain.</p>
|
|
<p>After updating the A record, add your domain in Odoo: Settings → 4 Server → Domains and enter each domain on a separate line. Check your contract to see how many domain routings are included.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How can I install Odoo Enterprise?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>To install Odoo Enterprise, you first need to purchase a separate license from Odoo. Our prepared Git repository already includes an Enterprise folder where you can add the Enterprise addons, which can then be installed via Git.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Trouble Shooting -->
|
|
<div class="faq-panel" id="panel-trouble">
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>After a git check in, my server does not come up again or shows an error 500</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>If you've pushed a new module to the server and it prevents the service from starting, first revert your changes in Git and push the corrected version back to the server. Then open the support chat — you'll need your UUID (sent in the confirmation email). After you tell our chatbot to git pull and restart the server, you'll receive a confirmation email; once confirmed, we'll bring your Odoo instance back online.</p>
|
|
<p>Before you check in a change like this, read <a href="/odoo-staging-environment/">test it safely first</a>: a staging environment is what stops a bad check-in taking your server down, and most small businesses do not need one.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>Why does my domain show an "Unknown Certificate" or "Bad Gateway"?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>This usually happens because the server has not been restarted after routing your domain to our service. Simply restart your server — once it comes back online, Odoo will generate the correct SSL certificate for your domain. If the error persists, please submit a support ticket.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Commercial -->
|
|
<div class="faq-panel" id="panel-commercial">
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>Is the Odoo Enterprise License included?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>No, the Odoo Enterprise License needs to be purchased separately.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How can I upgrade my service?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>You can upgrade your service directly in Odoo by going to Settings → 4 Server → Upgrade. From there, you can choose to move to a higher plan or add additional features individually, such as extra backup slots or additional domain routings.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Bring your Database -->
|
|
<div class="faq-panel" id="panel-migrate">
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>How can I migrate my Odoo database from another service provider?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>To migrate your database to our service, please submit a support ticket indicating that you want to migrate. Our team will then send you a link to a secure form where you can upload your database. Once received, we will spin up a new server according to your requirements and provide you with the credentials.</p>
|
|
<p>We do not support patch releases (e.g., 18.1 or 17.2) — only the main releases (18.0, 17.0, 19.0) are supported. Our migration service currently supports databases based on Odoo 17, 18, and 19.</p>
|
|
</div>
|
|
</div>
|
|
<div class="faq-item">
|
|
<button class="faq-question plausible-event-name=FAQ">
|
|
<span>Can I update my Odoo database from an older version, e.g., 14 → 19?</span>
|
|
<span class="faq-icon"><i class="fas fa-chevron-down"></i></span>
|
|
</button>
|
|
<div class="faq-answer">
|
|
<p>Yes, we can help you upgrade your database from older versions to a supported release (17, 18, or 19), but only after reviewing your database to ensure compatibility. Please submit a support ticket to start the process.</p>
|
|
<p>The full process, and the commands a developer would run, are explained on our <a href="odoo-community-upgrade.html">Odoo Community upgrade page</a>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Contact -->
|
|
<section class="contact-section" id="contact">
|
|
<div class="container">
|
|
<h2>Still questions? Contact our support.</h2>
|
|
<form class="contact-form" id="supportForm">
|
|
<div class="form-group">
|
|
<label>Your Name <span class="required">*</span></label>
|
|
<input type="text" id="contactName" name="contact_name" required placeholder="Your Name" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Your Email <span class="required">*</span></label>
|
|
<input type="email" id="contactEmail" name="email_from" required placeholder="Your Email" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>UUID</label>
|
|
<input type="text" id="contactUuid" name="UUID" placeholder="Paste your ODOO4projects UUID here" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Subject <span class="required">*</span></label>
|
|
<input type="text" id="contactSubject" name="name" required placeholder="Subject" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label>Your Question <span class="required">*</span></label>
|
|
<textarea id="contactQuestion" name="description" required placeholder="Describe your issue or question in detail..."></textarea>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary">Submit</button>
|
|
<div class="form-success" id="formSuccess">
|
|
<i class="fas fa-check-circle"></i> Thank you! Your ticket has been submitted.
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
|
|
<script>
|
|
document.querySelectorAll(".faq-question").forEach(function (btn) {
|
|
btn.addEventListener("click", function () {
|
|
var answer = this.nextElementSibling;
|
|
var isOpen = answer.classList.contains("open");
|
|
document.querySelectorAll(".faq-answer.open, .faq-question.open").forEach(function (el) {
|
|
el.classList.remove("open");
|
|
});
|
|
if (!isOpen) { answer.classList.add("open"); this.classList.add("open"); }
|
|
});
|
|
});
|
|
document.querySelectorAll(".faq-tab-btn").forEach(function (tab) {
|
|
tab.addEventListener("click", function () {
|
|
document.querySelectorAll(".faq-tab-btn, .faq-panel").forEach(function (el) {
|
|
el.classList.remove("active");
|
|
});
|
|
this.classList.add("active");
|
|
var panel = document.getElementById("panel-" + this.getAttribute("data-tab"));
|
|
if (panel) panel.classList.add("active");
|
|
});
|
|
});
|
|
var form = document.getElementById("supportForm");
|
|
var submitBtn = form.querySelector(".btn");
|
|
var successDiv = document.getElementById("formSuccess");
|
|
form.addEventListener("submit", function (e) {
|
|
e.preventDefault();
|
|
var name = document.getElementById("contactName").value.trim();
|
|
var email = document.getElementById("contactEmail").value.trim();
|
|
var uuid = document.getElementById("contactUuid").value.trim();
|
|
var subject = document.getElementById("contactSubject").value.trim();
|
|
var question = document.getElementById("contactQuestion").value.trim();
|
|
if (!name || !email || !subject || !question) { alert("Please fill in all required fields."); return; }
|
|
submitBtn.disabled = true;
|
|
submitBtn.textContent = "Submitting...";
|
|
var payload = { name: name, email: email, subject: subject, requirements: question, area: "support" };
|
|
if (uuid) payload.uuid = uuid;
|
|
fetch("https://n8n.odoo4projects.com/webhook/ODOO4projects/crm", {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify(payload)
|
|
}).then(function (r) {
|
|
if (!r.ok) throw new Error("bad status " + r.status);
|
|
submitBtn.style.display = "none";
|
|
successDiv.classList.add("visible");
|
|
}).catch(function () {
|
|
submitBtn.disabled = false;
|
|
submitBtn.textContent = "Submit";
|
|
alert("Could not submit. Please try again.");
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</main>
|
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
|
</body>
|
|
</html> |