[IMP] website: fixes grammatical errors & updates doc for v14
Reworked the Website portion of the documentation to update the screenshots (and processes) for v14 and condensed (instead of deleted) the easier, more straight-forward portions. Removed the "Ensure all URLs use custom domain" section of domain_names.rst because I could not find any section that it spoke about, nor could I find anything called "System Parameters." If there is a new process (or place to look) for such a process, please feel free to share that process (or place) with me, and I'll write it into this doc. I'll need someone with more techinical expertise to confirm that the "GeoIP" doc is correct. Same for the "Technical hints for customization" section of the Multi-Website doc, as well as the Google Analytics seciton in "Tracking" doc.
@ -10,6 +10,5 @@ eCommerce
|
||||
ecommerce/managing_products
|
||||
ecommerce/taxes
|
||||
ecommerce/shopper_experience
|
||||
ecommerce/publish
|
||||
ecommerce/maximizing_revenue
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
===================
|
||||
Launch my website
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
../website/publish/domain_name
|
||||
../website/publish/on-premise_geo-ip-installation
|
||||
../website/publish/translate
|
||||
|
||||
|
||||
|
@ -2,13 +2,826 @@
|
||||
Optimize
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
Now that you've built your website, it's time to optimize it with Odoo. Odoo provides numerous
|
||||
tools to enhance your site's SEO, loading speed, image optimization, and so much more.
|
||||
|
||||
optimize/seo
|
||||
optimize/google_analytics
|
||||
optimize/google_analytics_dashboard
|
||||
optimize/link_tracker
|
||||
Search Engine Optimization (SEO)
|
||||
================================
|
||||
|
||||
Search Engine Optimization, otherwise known as SEO, is a set of strategic practices that can
|
||||
optimize your website and enhance its ranking in search engines (like, Google). Proper SEO practices
|
||||
are important because a great SEO ranking helps your website gain more visitors.
|
||||
|
||||
Some quality SEO practices include: having fast load times, making sure each page has one (and only
|
||||
one) title ``<h1>``, your meta tags (alt-tag, title-tag) should be consistent with the content
|
||||
they represent, and your website should have a ``/sitemap.xml`` file. But these are just a few of
|
||||
the *many* SEO strategies you can employ to earn a better SEO ranking for your website.
|
||||
|
||||
To guarantee that your Odoo Website (and Odoo eCommerce) has a great SEO ranking, Odoo eliminates
|
||||
all the technical complexities of SEO, and handles these intricate search engine strategies *for
|
||||
you* - in the easiest way possible.
|
||||
|
||||
First, let's see how to boost your ranking by fine-tuning your content (and meta tags) for your
|
||||
website.
|
||||
|
||||
Meta Tags
|
||||
---------
|
||||
|
||||
Title, description
|
||||
******************
|
||||
|
||||
Every page on your website should define the ``<title>`` and ``<description>`` meta data.
|
||||
|
||||
These elements are used by search engines to promote your website. They are automatically generated
|
||||
based on the page title and content, but you can fine-tune them whenever you'd like, by clicking
|
||||
*Optimize SEO* under the *Promote* menu.
|
||||
|
||||
.. image:: optimize/seo/seo-optimize.png
|
||||
:align: center
|
||||
:alt: optimize seo under the promote menu
|
||||
|
||||
When you click *Optimize SEO* a pop-up appears, in which you enter in the pertinent SEO-related
|
||||
information about the page and its content.
|
||||
|
||||
Remember, you need to be accurate with this information. If they don't fit the content of the page,
|
||||
search engines will downgrade your website, which negatively affects your SEO ranking.
|
||||
|
||||
.. image:: optimize/seo/optimize-seo-pop-up.png
|
||||
:align: center
|
||||
:alt: optimize seo pop-up
|
||||
|
||||
Keywords
|
||||
********
|
||||
|
||||
To get the most out of your content *and* boost traffic, Odoo provides users with a ``<keyword>``
|
||||
finder. These keywords are the search terms that you want to lead towards your website.
|
||||
|
||||
When you enter a keyword into the *Keywords* field, and hit *Add*, you see how it is used in the
|
||||
content (H1, H2, page title, page description, page content). You also see what the related
|
||||
keywords are in Google. If you want to add any of those related keywords to your list, simply
|
||||
click on it, and Odoo will add it for you.
|
||||
|
||||
The more keywords used, the better.
|
||||
|
||||
.. image:: optimize/seo/keyword-finder.png
|
||||
:align: center
|
||||
:alt: odoo keyword finder seo optimization
|
||||
|
||||
.. note::
|
||||
If your website is in multiple languages, you can use the *Promote* tool for every language of a
|
||||
single page, set a specific title, description, and search tags, as well.
|
||||
|
||||
Content is king
|
||||
---------------
|
||||
|
||||
When it comes to SEO, content is king. That's why Odoo provides several modules to help users build
|
||||
incredible content for their websites.
|
||||
|
||||
Odoo offers the following:
|
||||
|
||||
- **Odoo Blogs**: write great content about anything you want.
|
||||
|
||||
- **Odoo eLearning Course**: publish all sorts of content as part of an educational online course.
|
||||
The content is automatically indexed on the web page.
|
||||
|
||||
- **Odoo Forum**: let your community create content for you, by allowing them to share their
|
||||
thoughts, feelings, and opinions with each other. Example: `odoo.com/forum/1 <https://odoo
|
||||
.com/forum/1>`_
|
||||
|
||||
...and many more!
|
||||
|
||||
.. note::
|
||||
The 404 page is a regular page that you can edit like any other in Odoo. That way, you can build
|
||||
build a great 404 page to redirect to the top content of your website when visitors get lost with
|
||||
invalid URLs.
|
||||
|
||||
Social networks
|
||||
---------------
|
||||
|
||||
Social media is built for mass-sharing. If lots of people share your content on social media, it's
|
||||
likely that even more people will link to it, and links are a *huge* factor for SEO rankings.
|
||||
|
||||
That's why Odoo embeds several tools to help share content through various social media channels.
|
||||
|
||||
Social network links
|
||||
********************
|
||||
|
||||
Odoo allows users to link all their social media accounts in the footer of their website. All
|
||||
you have to do is input all the necessary accounts in your company settings, and Odoo will take
|
||||
care of the rest.
|
||||
|
||||
.. image:: optimize/seo/seo03.png
|
||||
:align: center
|
||||
:alt: connect with us social media links
|
||||
|
||||
Social share
|
||||
************
|
||||
|
||||
It's important to allow your visitors to share any content they like on your website on their
|
||||
various social media platforms. The best way to do that, is to drop the *Share* building block on
|
||||
any page you want your visitors to share with their followers.
|
||||
|
||||
When visitors click that icon, they are then prompted to share that page on their social media feed.
|
||||
|
||||
.. image:: optimize/seo/share-block.png
|
||||
:align: center
|
||||
:alt: share building block on website
|
||||
|
||||
Remember, most social media platforms use a picture of the image as part of the share post.
|
||||
|
||||
Odoo uses the website logo by default, but you can choose any other image of your page by going
|
||||
to :menuselection:`Promote --> Optimize SEO` and select an image for social sharing purposes.
|
||||
|
||||
.. image:: optimize/seo/seo05.png
|
||||
:align: center
|
||||
:alt: picture used for social media shares
|
||||
|
||||
Facebook page
|
||||
*************
|
||||
|
||||
Looking for a unique way to catch the eye of your visitor *and* promote your *Facebook* page
|
||||
(or business)? Simply drop the *Facebook* building block onto your page, while in the *Edit* mode
|
||||
on the front-end of your website.
|
||||
|
||||
Doing so, will display a customizable widget showcasing your *Facebook* business page, and it will
|
||||
encourage visitors to follow it.
|
||||
|
||||
.. image:: optimize/seo/seo-facebook-block.png
|
||||
:align: center
|
||||
:alt: facebook building block in odoo's website builder
|
||||
|
||||
You can choose display the timeline, next events, messages, and more.
|
||||
|
||||
.. image:: optimize/seo/seo-facebook-features.png
|
||||
:align: center
|
||||
:alt: facebook features used in facebook building block
|
||||
|
||||
Twitter Scroller
|
||||
****************
|
||||
|
||||
Displaying Twitter feeds with testimonials from happy customers expressing their satisfaction on
|
||||
your website is a great way to increase (and enhance) your company's online presence.
|
||||
|
||||
.. image:: optimize/seo/seo-twitter-scroller.png
|
||||
:align: center
|
||||
:alt: twitter scroller building block icon
|
||||
|
||||
Test website
|
||||
------------
|
||||
|
||||
You can compare how your website ranks (in terms of SEO) against Odoo using free services, like
|
||||
WooRank : `woorank.com <https://www.woorank.com>`_
|
||||
|
||||
Handling URLs
|
||||
-------------
|
||||
|
||||
The following section explains how Odoo makes URLs SEO-friendly.
|
||||
|
||||
.. note::
|
||||
The following URLs are *not active*. They are purely meant to be used as an example to show
|
||||
how Odoo makes URL management easier than ever before.
|
||||
|
||||
URL structure
|
||||
*************
|
||||
|
||||
A typical Odoo URL will look like this:
|
||||
|
||||
- https://www.mysite.com/fr\_FR/shop/product/my-great-product-31
|
||||
|
||||
URLs are composed of the following components:
|
||||
|
||||
- **https://** = Protocol
|
||||
|
||||
- **www.mysite.com** = Domain name
|
||||
|
||||
- **/fr\_FR** = This is the language that the page is currently in. This part of the URL is removed
|
||||
if the visitor browses the main language of the website. In that case, the main version of this
|
||||
page would look like this:
|
||||
https://www.mysite.com/shop/product/my-great-product-31
|
||||
|
||||
- **/shop/product** = every module defines its own namespace. Thus, */shop* is for the catalog of
|
||||
the eCommerce module, and */shop/product* is for a product page.
|
||||
|
||||
- **my-great-product** = by default, this is the slugified title of the product this page refers
|
||||
to, but you can customize it for SEO purposes. For instance, if a product is named "Office Lamp"
|
||||
it gets slugified to "office-lamp". Depending on the namespace, this could be different objects
|
||||
(blog post, page title, forum post, forum comment, product category, etc.).
|
||||
|
||||
- **-31** = the unique ID of the product
|
||||
|
||||
.. note::
|
||||
Any dynamic component of a URL can be reduced to its ID. As an example, the following
|
||||
URLs all do a 301 redirect to the above URL:
|
||||
|
||||
- https://www.mysite.com/fr\_FR/shop/product/31 (short version)
|
||||
|
||||
- http://mysite.com/fr\_FR/shop/product/31 (even shorter version)
|
||||
|
||||
- http://mysite.com/fr\_FR/shop/product/other-product-name-31 (old product name)
|
||||
|
||||
Some URLs have several dynamic parts, like this one (a blog category *and* a post):
|
||||
|
||||
- https://www.odoo.com/blog/company-news-5/post/the-odoo-story-56
|
||||
|
||||
In the above example:
|
||||
|
||||
- *Company News* is the title of the blog
|
||||
|
||||
- *The Odoo Story* is the title of the specific blog post
|
||||
|
||||
When an Odoo page has a "pager," the page number is set directly in the URL (does not have a GET
|
||||
argument). This allows every page to be indexed by search engines.
|
||||
|
||||
Example: https://www.odoo.com/blog/page/3
|
||||
|
||||
Changes in URLs and titles
|
||||
**************************
|
||||
|
||||
The URL of a page can change for many reasons. Like, when it becomes a more SEO-friendly version
|
||||
of a product name, for example. When the URL of a page changes, don't worry. Odoo will
|
||||
automatically update all its corresponding links to the new URL.
|
||||
|
||||
Not only that, but if external websites *still* point to the old URL, a 301 redirect is done,
|
||||
which re-routes visitors to the new address of the page.
|
||||
|
||||
As an example, this URL...
|
||||
|
||||
- http://mysite.com/shop/product/old-product-name-31
|
||||
|
||||
...will automatically redirect to:
|
||||
|
||||
- http://mysite.com/shop/product/new-and-better-product-name-31
|
||||
|
||||
In other words, if you change the title of a blog post (or the name of a product), the changes
|
||||
automatically apply everywhere in your website. Also, the old link still functions when used by
|
||||
external websites, via a 301 redirect, maintaining the SEO link power.
|
||||
|
||||
HTTPS
|
||||
*****
|
||||
|
||||
Search engines boost rankings of secure HTTPS/SSL websites. That's why, by default, all Odoo Online
|
||||
databases are fully based on HTTPS. If the visitor accesses your website through a non-HTTPS URL,
|
||||
they get a 301 redirect to its HTTPS equivalent.
|
||||
|
||||
Links: Nofollow strategy
|
||||
************************
|
||||
|
||||
The more a page is linked from external and quality websites, the more it helps your SEO ranking.
|
||||
|
||||
Here are some Odoo strategies to help you manage links:
|
||||
|
||||
- Every link you add to your website is "dofollow", which means this link will contribute to the
|
||||
'SEO Juice' for the linked page.
|
||||
|
||||
- Every link posted by a contributor (forum post, blog comment, etc.) that links to your own website
|
||||
is "dofollow," as well.
|
||||
|
||||
- Every link posted by a contributor that links to an external website is "nofollow." That way, you
|
||||
don't run the risk of people posting links on your website to third-party websites, which may have
|
||||
a bad reputation.
|
||||
|
||||
.. note::
|
||||
When using the forum, contributors who have a lot of Karma *can be* trusted. In such case, their
|
||||
links will not have any ``rel="nofollow"`` attribute.
|
||||
|
||||
Multi-Language URLs
|
||||
*******************
|
||||
|
||||
If you run a website in multiple languages, the same content will be available in different URLs,
|
||||
depending on the language used:
|
||||
|
||||
- https://www.mywebsite.com/shop/product/my-product-1 (The main language here is English)
|
||||
|
||||
- https://www.mywebsite.com\/fr\_FR/shop/product/mon-produit-1 (This is the French version)
|
||||
|
||||
In this example, fr\_FR is the language of the page. You can even have several variations of the
|
||||
same language, like pt\_BR (Portuguese from Brazil), pt\_PT (Portuguese from Portugal), and so on.
|
||||
|
||||
Language annotation
|
||||
*******************
|
||||
|
||||
To let search engines know the second URL is the French translation of the first URL, Odoo adds an
|
||||
HTML link element in the header.
|
||||
|
||||
In the HTML <head> section of the main version, Odoo automatically adds a link element pointing
|
||||
to the translated versions of that webpage:
|
||||
|
||||
- <link rel="alternate" hreflang="fr"
|
||||
href="https://www.mywebsite.com\/fr\_FR/shop/product/mon-produit-1"/>
|
||||
|
||||
With this approach search engines redirect to the right language, according to the visitor language.
|
||||
|
||||
Don't worry, though. You don't get penalized by search engines if your page isn't translated yet.
|
||||
Also, when it is, it's not considered "duplicated content." It's merely a different version of the
|
||||
same content.
|
||||
|
||||
Language detection
|
||||
******************
|
||||
|
||||
When a visitor lands on your website for the first time (e.g. yourwebsite.com/shop), they may be
|
||||
automatically redirected to a translated version, according to that visitor's browser language
|
||||
preference (e.g. **yourwebsite.com/fr\_FR/shop**).
|
||||
|
||||
A cookie of the current language will be kept, so when they visit your website again in the
|
||||
future, they can avoid any redirection.
|
||||
|
||||
To force a visitor to stick to the default language of your website, you can use the code of the
|
||||
default language in any link you share.
|
||||
|
||||
For example: **yourwebsite.com/en\_US/shop**
|
||||
|
||||
That above link will always direct visitors to the English version of the page, without using the
|
||||
browser language preferences.
|
||||
|
||||
Page speed
|
||||
----------
|
||||
|
||||
The time it takes to load a page on your website is an important criteria for search engines. A
|
||||
faster website not only improves your visitor's experience, it gives you a better page ranking,
|
||||
as well.
|
||||
|
||||
Studies have shown that, if you divide the time it takes to load your pages in half (e.g. 2 seconds,
|
||||
instead of 4 seconds), the visitor abandonment rate is also divided by two (25% to 12.5%). One extra
|
||||
second to load a page could `cost $1.6b to Amazon in sales <http://www.fastcompany
|
||||
.com/1825005/how-one-second-could-cost-amazon-16-billion-sales>`__.
|
||||
|
||||
.. image:: optimize/seo/seo06.png
|
||||
:align: center
|
||||
:alt: page load time graph
|
||||
|
||||
Fortunately, Odoo does all the page speed magic for you!
|
||||
|
||||
Below, you will discover the tricks Odoo uses to speed up your loading time. You can compare how
|
||||
your website ranks using these two tools:
|
||||
|
||||
- `Google Page Speed <https://developers.google.com/speed/pagespeed/insights/>`__
|
||||
|
||||
- `Pingdom Website Speed Test <http://tools.pingdom.com/fpt/>`__
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
When you upload new images, Odoo automatically compresses them to reduce their size, with lossless
|
||||
compression for .PNG and .GIF and lossy compression for .JPG.
|
||||
|
||||
Once uploaded, you can manually adjust the look and quality of the image, via the helpful toolbar
|
||||
located on the right, while in *Edit* mode.
|
||||
|
||||
The key is to make the image look great, with the smallest file size possible, *without* sacrificing
|
||||
quality.
|
||||
|
||||
.. image:: optimize/seo/seo-image-features.png
|
||||
:align: center
|
||||
:alt: image features toolbar website builder
|
||||
|
||||
.. note::
|
||||
Odoo compresses images when they are uploaded to your website, *not* when requested by the
|
||||
visitor. Thus, it's possible that, *if* you use a third-party theme, it will provide images that
|
||||
are not compressed efficiently. But all images used in Odoo official themes have been compressed
|
||||
by default.
|
||||
|
||||
When the image is selected, Odoo allows you to add the Alt and title attributes of the ``<img>``
|
||||
tag by clicking *Description:* in that same toolbar.
|
||||
|
||||
When you click on *Description*, the following window appears:
|
||||
|
||||
.. image:: optimize/seo/seo09.png
|
||||
:align: center
|
||||
:alt: alt title pop up window images
|
||||
|
||||
Pictograms
|
||||
----------
|
||||
|
||||
Odoo's pictograms are implemented using a font (`Font Awesome <https://fortawesome.github
|
||||
.io/Font-Awesome/icons/>`__ in most Odoo themes). You can use as many pictograms as you want, as
|
||||
they don't result in extra requests to load the page.
|
||||
|
||||
.. image:: optimize/seo/seo10.png
|
||||
:align: center
|
||||
:alt: sample array of pictograms
|
||||
|
||||
Static resources: CSS
|
||||
---------------------
|
||||
|
||||
All CSS files are pre-processed, concatenated, minified, compressed, and cached (server-side and
|
||||
browser-side).
|
||||
|
||||
The result is:
|
||||
|
||||
- only one CSS file request is needed to load a page
|
||||
|
||||
- this CSS file is shared and cached amongst pages, so when the visitor clicks on another page, the
|
||||
browser doesn't even have to load a single CSS resource
|
||||
|
||||
- this CSS file is optimized to be small
|
||||
|
||||
Pre-processed
|
||||
*************
|
||||
|
||||
The CSS framework used by Odoo is Bootstrap.
|
||||
|
||||
While a theme might use another framework, most of `Odoo themes <https://www.odoo
|
||||
.com/apps/themes>`__ extend and customize Bootstrap directly. Since Odoo supports Less and Sass,
|
||||
you can modify CSS rules, instead of overwriting them through extra CSS lines, which results in a
|
||||
smaller file.
|
||||
|
||||
Concatenated
|
||||
************
|
||||
|
||||
Every module (or library) you might use in Odoo has its own set of CSS, Less, or
|
||||
Sass files (eCommerce, blogs, themes, etc.).
|
||||
|
||||
Having several CSS files is great for the modularity, but not good for the performance. Mainly
|
||||
because most browsers can only perform 6 requests in parallel, resulting in lots of files loaded in
|
||||
series.
|
||||
|
||||
The latency time to transfer a file is usually much longer than the actual data transfer time,
|
||||
especially for small files, like .JS and .CSS. Thus, the time to load CSS resources depends more
|
||||
on the number of requests to be done, rather than the actual file size, itself.
|
||||
|
||||
To address this issue, all CSS / Less / Sass files are concatenated into a single .CSS file to send
|
||||
to the browser.
|
||||
|
||||
That way, a visitor has **only one .CSS file to load** per page, which is extremely efficient.
|
||||
|
||||
As the CSS is shared amongst all pages, when the visitor clicks on another page, the browser does
|
||||
not even have to load a new CSS file!
|
||||
|
||||
================================= =============================================
|
||||
**Both files in the <head>** **What the visitor gets (only one file)**
|
||||
================================= =============================================
|
||||
/\* From bootstrap.css \*/ .text-muted {
|
||||
.text-muted { color: #666;
|
||||
color: #777; background: yellow
|
||||
background: yellow; }
|
||||
}
|
||||
|
||||
/\* From my-theme.css \*/
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
================================= =============================================
|
||||
|
||||
The CSS sent by Odoo includes all CSS / Less / Sass of all pages and modules.
|
||||
|
||||
By doing this, additional page views from the same visitor will *not* have to load CSS files at all.
|
||||
However, some modules might include huge CSS/Javascript resources that you do not want to
|
||||
prefetch at the first page because they are *too* big.
|
||||
|
||||
In this case, Odoo splits this resource into a second bundle that is loaded only when the page using
|
||||
it is requested. An example of this is the backend, which is only loaded when the visitor logs in
|
||||
and accesses the backend (/web).
|
||||
|
||||
.. note::
|
||||
If the CSS file is very big, Odoo will split it into two smaller files to avoid the 4095
|
||||
selectors limit per sheet of Internet Explorer. But most themes fit below this limit.
|
||||
|
||||
Minified
|
||||
********
|
||||
|
||||
After being pre-processed and concatenated, the resulting CSS is minified to reduce its size.
|
||||
|
||||
============================ ==============================
|
||||
**Before minification** **After minification**
|
||||
============================ ==============================
|
||||
/\* some comments \*/ .text-muted {color: #666}
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
============================ ==============================
|
||||
|
||||
The final result is then compressed, before being delivered to the browser.
|
||||
|
||||
Then, a cached version is stored server-side (we don't have to pre-process, concatenate, or minify
|
||||
at every request) and browser-side (the same visitor will load the CSS only once for all pages that
|
||||
they visit).
|
||||
|
||||
Static resources: Javascript
|
||||
----------------------------
|
||||
|
||||
Just like with CSS resources, Javascript resources are also concatenated, minified, compressed, and
|
||||
cached (server-side and browser-side).
|
||||
|
||||
Odoo creates three Javascript bundles:
|
||||
|
||||
- One for all the pages of the website (including code for parallax effects, form validation, etc.)
|
||||
|
||||
- One for common Javascript code shared amongst the front-end and back-end (Bootstrap)
|
||||
|
||||
- One for back-end specific Javascript code (Odoo Web Client interface for your employees using
|
||||
Odoo)
|
||||
|
||||
Most visitors only need the first two bundles, resulting in a maximum of two Javascript files to
|
||||
load in order to render one page. As these files are shared across all pages, further clicks by
|
||||
the same visitor will not load any other Javascript resource.
|
||||
|
||||
.. note::
|
||||
If you work in "Developer Mode," the CSS and Javascript are neither concatenated, nor minified.
|
||||
Thus, it's much slower. However, it allows you to easily debug with the Chrome debugger, as CSS
|
||||
and Javascript resources are not transformed from their original versions.
|
||||
|
||||
CDN
|
||||
---
|
||||
|
||||
If you activate the CDN feature in Odoo, static resources (Javascript, CSS, images) are loaded from
|
||||
a Content Delivery Network.
|
||||
|
||||
Using a Content Delivery Network has three advantages:
|
||||
|
||||
- Load resources from a nearby server (most networks have servers in main countries around the
|
||||
globe)
|
||||
|
||||
- Cache resources efficiently (no computation resources used on your own server)
|
||||
|
||||
- Split the resource loading on different services, allowing more resources to load in parallel
|
||||
(since the Chrome limit of 6 parallel requests is by domain)
|
||||
|
||||
You can activate and configure your CDN options from the **Website** settings, found under the
|
||||
Configuration menu, but only while in `Developer Mode <https://www.odoo.com/documentation/user/14.0/general/developer_mode/activate
|
||||
.html#:~:text=Go%20to%20Settings%20%E2%80%A3%20Activate,
|
||||
developer%20mode%20option%20becomes%20available.>`_.
|
||||
|
||||
Here is an example of configuration you can use:
|
||||
|
||||
.. image:: optimize/seo/seo11.png
|
||||
:align: center
|
||||
:alt: cdn setting in the website admin app
|
||||
|
||||
HTML pages
|
||||
----------
|
||||
|
||||
HTML pages can be compressed, but this task is usually handled by your web server (NGINX or Apache).
|
||||
|
||||
The Odoo Website Builder has been optimized to guarantee clean and short HTML code. Building blocks
|
||||
have been developed to produce clean HTML code, as well, usually using Bootstrap and the HTML
|
||||
editor.
|
||||
|
||||
For example, if you use the color picker to change the color of a paragraph to the primary color
|
||||
of your website, Odoo will produce the following code:
|
||||
|
||||
``<p class="text-primary">My Text</p>``
|
||||
|
||||
But most other HTML editors (such as, CKEditor) will produce the following code:
|
||||
|
||||
``<p style="color: #AB0201">My Text</p>``
|
||||
|
||||
Responsive design
|
||||
-----------------
|
||||
|
||||
Websites that are not mobile-friendly are negatively impacted in search engine rankings. All Odoo
|
||||
themes rely on Bootstrap to render everything efficiently, according to the device that's being
|
||||
used: desktop, tablet, or mobile.
|
||||
|
||||
.. image:: optimize/seo/seo12.png
|
||||
:align: center
|
||||
:alt: examples of odoo's responsive design
|
||||
|
||||
Since all Odoo modules share the same technology, all pages on your website are automatically
|
||||
mobile-friendly.
|
||||
|
||||
Browser caching
|
||||
---------------
|
||||
|
||||
Javascript, images, and CSS resources have a URL that changes dynamically when their content
|
||||
changes. This allows Odoo to set a very long cache delay (XXX) on these resources: XXX secs, while
|
||||
being updated instantly (if you update the resource).
|
||||
|
||||
Scalability
|
||||
-----------
|
||||
|
||||
In addition to being fast, Odoo is also more scalable than traditional CMS and eCommerce platforms
|
||||
(like Drupal, Wordpress, Magento, Prestashop).
|
||||
|
||||
Here's a quick summarization highlighting the scalability of Odoo Website and eCommerce.
|
||||
|
||||
.. image:: optimize/seo/seo13.png
|
||||
:align: center
|
||||
:alt: slide about odoo's scalability
|
||||
|
||||
Sitemap
|
||||
-------
|
||||
|
||||
The sitemap points out pages to index to search engine robots. Odoo generates a ``/sitemap.xml``
|
||||
file automatically for you. For performance reasons, this file is cached and updated every 12 hours.
|
||||
|
||||
By default, all URLs will be in a single ``/sitemap.xml`` file, but if you have a lot of pages,
|
||||
Odoo automatically creates a Sitemap Index file, respecting the `sitemaps.org protocol
|
||||
<http://www.sitemaps.org/protocol.html>`__ grouping sitemap URLs in 45,000 chunks per file.
|
||||
|
||||
Every sitemap entry has 4 attributes that are computed automatically:
|
||||
|
||||
- ``<loc>`` : the URL of a page
|
||||
|
||||
- ``<lastmod>`` : last modification date of the resource, computed automatically based on a related
|
||||
object. For a page related to a product, this could be the last modification date of the product
|
||||
(or the page).
|
||||
|
||||
- ``<priority>`` : modules may implement their own priority algorithm based on their content.
|
||||
For example, a forum might assign a priority based on the number of votes on a specific post. The
|
||||
priority of a static page is defined by its priority field, which is normalized (16 is the
|
||||
default).
|
||||
|
||||
Structured data markup
|
||||
----------------------
|
||||
|
||||
Structured Data Markup is used to generate Rich Snippets in search engine results. It is a way for
|
||||
website owners to send structured data to search engine robots; helping them understand your content
|
||||
and create well-presented search results.
|
||||
|
||||
Google supports a number of rich snippets for content types, including:
|
||||
Reviews, People, Products, Businesses, Events, and Organizations.
|
||||
|
||||
Odoo implements micro-data as defined in the `schema.org <http://schema.org>`__ specification for
|
||||
events, eCommerce products, forum posts, and contact addresses. This allows your product pages to
|
||||
be displayed in Google using extra information, like the price and rating of a product:
|
||||
|
||||
.. image:: optimize/seo/seo14.png
|
||||
:align: center
|
||||
:alt: sample of google search results
|
||||
|
||||
robots.txt
|
||||
----------
|
||||
|
||||
When indexing your website, search engines first look at the general indexing rules of the
|
||||
``/robots.txt`` file (allowed robots, sitemap path, etc.). Odoo automatically creates this file
|
||||
for you.
|
||||
|
||||
It consists of:
|
||||
|
||||
User-agent: \*
|
||||
Sitemap: https://www.odoo.com/sitemap.xml
|
||||
|
||||
It means all robots are allowed to index your website, and there is no other indexing rule specified
|
||||
in the sitemap to be found at that address.
|
||||
|
||||
You can customize the file *robots* in
|
||||
:doc:`Developer mode <../../general/developer_mode/activate>` from :menuselection:`Settings -->
|
||||
Technical --> User Interface --> Views` (exclude robots, exclude some pages, or redirect to a custom
|
||||
Sitemap).
|
||||
|
||||
Make the Model Data of the view *Non Updatable*, in order to not reset the file after system
|
||||
upgrades.
|
||||
|
||||
Track traffic
|
||||
=============
|
||||
|
||||
Now that you've created a website with engaging content, it's time to see how well it performs with
|
||||
your audience. That's why it's incredibly important to track your website's traffic. With Odoo,
|
||||
users can track this vital information in a number of different ways.
|
||||
|
||||
Track traffic in Google Analytics
|
||||
---------------------------------
|
||||
|
||||
To follow your website's traffic with Google Analytics you need to `Create a Google Analytics
|
||||
account <https://www.google.com/analytics/>`__ if you don't have one.
|
||||
|
||||
Then, you must complete the creation form and accept the conditions to get the tracking ID.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_account.png
|
||||
:align: center
|
||||
:alt: google analytics account
|
||||
|
||||
Following that, copy the tracking ID to insert it in Odoo.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_tracking_id.png
|
||||
:align: center
|
||||
:alt: google analytics tracking id
|
||||
|
||||
Now, go to :menuselection:`Configuration --> Settings` in the Website app. Then, you must turn on
|
||||
Google Analytics, and paste the tracking ID here. Don't forget to hit *Save* when you're done.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google-analytics-setting.png
|
||||
:align: center
|
||||
:alt: google analytics setting
|
||||
|
||||
If you need help getting started with Google Analytics, you can refer to `Google Documentation
|
||||
<https://support.google.com/analytics/answer/1008015?hl=en/>`_.
|
||||
|
||||
Track traffic from Odoo Dashboard
|
||||
---------------------------------
|
||||
|
||||
You can accurately track traffic statistics straight from your Odoo Website Dashboard, thanks to
|
||||
Google Analytics.
|
||||
|
||||
First, you need to create a Google Analytics account. Then, copy and paste your tracking ID
|
||||
in your website settings. Next, go to `Google APIs platform library <https://console.cloud.google
|
||||
.com/apis/library?supportedpurview=project>`__ in order to generate Analytics API credentials.
|
||||
|
||||
Now, log in with your Google account, and create a new project with an appropriate name (e.g. Odoo).
|
||||
You need this project to store your API credentials.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_create_project.png
|
||||
:align: center
|
||||
:alt: google analytics create project
|
||||
|
||||
In the API Library, select *Google Analytics API*.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google-analytics-api.png
|
||||
:align: center
|
||||
:alt: google analytics api
|
||||
|
||||
Then, select *Enable* next to "Analytics API."
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_enable.png
|
||||
:align: center
|
||||
:alt: google analytics enable api
|
||||
|
||||
In order to properly use this API, you need to create credentials to use in Odoo.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_create_credentials.png
|
||||
:align: center
|
||||
:alt: google analytics create credentials
|
||||
|
||||
Following that, you must select *Web browser (Javascript)* as the calling source and *User data* as
|
||||
the kind of data.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_get_credentials.png
|
||||
:align: center
|
||||
:alt: google analytics api get credentials
|
||||
|
||||
Then, you can create a Client ID.
|
||||
|
||||
To do so, enter the name of the application (e.g. My Odoo Database) and the allowed pages that
|
||||
trigger a redirection.
|
||||
|
||||
The *Authorized JavaScript origin* is your Odoo's database URL. The *Authorized redirect URI* is
|
||||
your Odoo database URL followed by '/google_account/authentication', as showcased below.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_authorization.png
|
||||
:align: center
|
||||
:alt: google analytics authorization
|
||||
|
||||
Proceed to the Consent Screen, and enter a product name (e.g. Google Analytics in Odoo). You
|
||||
can check the customizations options at this time, but it's not mandatory.
|
||||
|
||||
.. note::
|
||||
The Consent Screen will *only* show up when you enter the Client ID in Odoo for the **first**
|
||||
time.
|
||||
|
||||
Then, you are provided with your Client ID, which you then copy to paste in Odoo.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_client_id.png
|
||||
:align: center
|
||||
:alt: google analytics client id
|
||||
|
||||
Go to :menuselection:`Website application --> Configuration --> Settings`, activate *Google
|
||||
Analytics Dashboard* and paste the Client ID in the fields that appear.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google-analytics-dashboard.png
|
||||
:align: center
|
||||
:alt: google analytics dashboard setting
|
||||
|
||||
And finally, authorize Odoo to access your Google API.
|
||||
|
||||
.. image:: optimize/tracking_analytics/google_analytics_login.png
|
||||
:align: center
|
||||
:alt: google analytics login
|
||||
|
||||
Link Trackers
|
||||
-------------
|
||||
|
||||
Link Trackers allow you to easily track all your marketing campaigns (emails, banner ads, blog
|
||||
posts, social media posts, affiliate links, etc.). With Link Trackers, you can quickly identify your
|
||||
your best traffic sources. This valuable data helps you make more informed decisions about the
|
||||
distribution of your marketing budget.
|
||||
|
||||
Setup
|
||||
*****
|
||||
|
||||
On the front-end of your website, go to :menuselection:`Promote --> Link Tracker`.
|
||||
|
||||
Here, you are able to get a specific tracked URL based on the campaign, medium, and source being
|
||||
used.
|
||||
|
||||
.. image:: optimize/tracking_analytics/link_tracker_fields.png
|
||||
:align: center
|
||||
:alt: View of the link tracker fields for Odoo Website
|
||||
|
||||
- **URL**: URL of the page you want to track (e.g. the home page or a product page).
|
||||
- **Campaign**: context of your link (e.g. a special promotion).
|
||||
- **Medium**: channel used to share (deliver) your link (e.g. an email or a Facebook ad).
|
||||
- **Source**: platform where the traffic originates (e.g. Google or Twitter).
|
||||
|
||||
Then, click *Get tracked link* to generate a URL that you can post (or send) by the source you have
|
||||
decided on.
|
||||
|
||||
Follow-up on tracked links
|
||||
**************************
|
||||
|
||||
On that same Link Tracker page, beneath the *Get tracked link* fields, you can look at statistics
|
||||
in the *Your tracked links* section.
|
||||
|
||||
In addition to seeing the *Most Clicked* and *Recently Used* links, you can also see complete
|
||||
statistics by clicking on *Stats* next to a link you want to analyze, including the number of
|
||||
clicks.
|
||||
|
||||
.. image:: optimize/tracking_analytics/links_statistics.png
|
||||
:align: center
|
||||
:alt: View of the tracked list emphasizing the statistics buttons in Odoo Website
|
||||
|
||||
.. tip::
|
||||
#. You can also access the link tracker on *odoo.com/r* via your browser.
|
||||
#. Activate the developer mode (:menuselection:`Settings --> Activate the developer mode`) and
|
||||
get access to the *Link Tracker* module and its back-end functionalities.
|
||||
#. Integrated with Google Analytics, those trackers allow you to see the number of clicks and
|
||||
visitors to keep you on top of your marketing campaigns.
|
||||
|
@ -1,32 +0,0 @@
|
||||
=======================================================
|
||||
How to track your website's traffic in Google Analytics
|
||||
=======================================================
|
||||
|
||||
To follow your website's traffic with Google Analytics:
|
||||
|
||||
- `Create a Google Analytics account <https://www.google.com/analytics/>`__ if
|
||||
you don't have any.
|
||||
|
||||
- Go through the creation form and accept the conditions to get the tracking ID.
|
||||
|
||||
.. image:: media/google_analytics_account.png
|
||||
:align: center
|
||||
|
||||
- Copy the tracking ID to insert it in Odoo.
|
||||
|
||||
.. image:: media/google_analytics_tracking_id.png
|
||||
:align: center
|
||||
|
||||
- Go to the *Configuration* menu of your Odoo's Website app.
|
||||
In the settings, turn on Google Analytics and paste the tracking ID.
|
||||
Then save the page.
|
||||
|
||||
.. image:: media/google_analytics_settings.png
|
||||
:align: center
|
||||
|
||||
To make your first steps in Google Analytics, refer to `Google Documentation
|
||||
<https://support.google.com/analytics/answer/1008015?hl=en/>`_.
|
||||
|
||||
.. seealso::
|
||||
|
||||
* :doc:`google_analytics_dashboard`
|
@ -1,70 +0,0 @@
|
||||
==========================================================
|
||||
How to track your website traffic from your Odoo Dashboard
|
||||
==========================================================
|
||||
|
||||
You can follow your traffic statistics straight from your Odoo Website
|
||||
Dashboard thanks to Google Analytics.
|
||||
|
||||
- A preliminary step is creating a Google Analytics account and entering the
|
||||
tracking ID in your Website's settings (see :doc:`google_analytics`).
|
||||
|
||||
- Go to `Google APIs platform <https://console.developers.google.com>`__
|
||||
to generate Analytics API credentials. Log in with your Google account.
|
||||
|
||||
- Select Analytics API.
|
||||
|
||||
.. image:: media/google_analytics_api.png
|
||||
:align: center
|
||||
|
||||
- Create a new project and give it a name (e.g. Odoo).
|
||||
This project is needed to store your API credentials.
|
||||
|
||||
.. image:: media/google_analytics_create_project.png
|
||||
:align: center
|
||||
|
||||
- Enable the API.
|
||||
|
||||
.. image:: media/google_analytics_enable.png
|
||||
:align: center
|
||||
|
||||
- Create credentials to use in Odoo.
|
||||
|
||||
.. image:: media/google_analytics_create_credentials.png
|
||||
:align: center
|
||||
|
||||
- Select *Web browser (Javascript)*
|
||||
as calling source and *User data* as kind of data.
|
||||
|
||||
.. image:: media/google_analytics_get_credentials.png
|
||||
:align: center
|
||||
|
||||
- Then you can create a Client ID.
|
||||
Enter the name of the application (e.g. Odoo) and the allowed pages on
|
||||
which you will be redirected. The *Authorized JavaScript origin* is your
|
||||
Odoo's instance URL. The *Authorized redirect URI* is your Odoo's instance
|
||||
URL followed by '/google_account/authentication'.
|
||||
|
||||
.. image:: media/google_analytics_authorization.png
|
||||
:align: center
|
||||
|
||||
|
||||
- Go through the Consent Screen step by entering a product name
|
||||
(e.g. Google Analytics in Odoo). Feel free to check the customizations options
|
||||
but this is not mandatory. The Consent Screen will only show up when you enter
|
||||
the Client ID in Odoo for the first time.
|
||||
|
||||
- Finally you are provided with your Client ID. Copy and paste it in Odoo.
|
||||
|
||||
.. image:: media/google_analytics_client_id.png
|
||||
:align: center
|
||||
|
||||
- Open your Website Dashboard in Odoo and link your Analytics account to past
|
||||
your Client ID.
|
||||
|
||||
.. image:: media/google_analytics_start.png
|
||||
:align: center
|
||||
|
||||
- As a last step, authorize Odoo to access Google API.
|
||||
|
||||
.. image:: media/google_analytics_login.png
|
||||
:align: center
|
@ -1,56 +0,0 @@
|
||||
=============================================
|
||||
Track clicks and visitors using Link Trackers
|
||||
=============================================
|
||||
|
||||
Link Trackers allow you to track your marketing campaigns (emails, banner ads, blog posts, social
|
||||
media posts, affiliate links, etc.). This way, you are able to identify your best traffic sources
|
||||
and make informed decisions about the distribution of your marketing budget.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Website --> Configuration --> Settings` and activate *Link Trackers*.
|
||||
|
||||
.. image:: media/enable_link_tracker.png
|
||||
:align: center
|
||||
:alt: View of Website settings page emphasizing the link trackers field in Odoo Website
|
||||
|
||||
Set up traceable URLs
|
||||
---------------------
|
||||
|
||||
Go to :menuselection:`Website --> Go to website --> Promote --> Track this page`. Here, you are able
|
||||
to get a specific tracked URL based on the campaign, medium, and source being used.
|
||||
|
||||
.. image:: media/link_tracker_fields.png
|
||||
:align: center
|
||||
:alt: View of the link traker fields for Odoo Website
|
||||
|
||||
- **URL**: url of the page you want to track (e.g. the home page or a product's page).
|
||||
- **Campaign**: context of your link (e.g. a special promotion).
|
||||
- **Medium**: channel used to share (deliver) your link (e.g. an email or a Facebook ad).
|
||||
- **Source**: platform where the traffic originates (e.g. Google or Twitter).
|
||||
|
||||
Now, click on *Get tracked link* to generate a URL that you can post or send by the source you have
|
||||
decided on.
|
||||
|
||||
Follow-up on tracked links
|
||||
==========================
|
||||
|
||||
To look at statistics of your links, go to :menuselection:`Website --> Go to website --> Promote
|
||||
--> Track this page`. Besides being able to see the *Most Clicked* and *Recently Used* links, you
|
||||
can also see complete statistics by clicking on *Stats*, including the number of clicks, and the
|
||||
country of origin for those clicks.
|
||||
|
||||
.. image:: media/links_statistics.png
|
||||
:align: center
|
||||
:alt: View of the tracked list emphasizing the statistics buttons in Odoo Website
|
||||
|
||||
.. tip::
|
||||
|
||||
#. You can also access the link tracker on *odoo.com/r* via your browser.
|
||||
#. Activate the developer mode (:menuselection:`Settings --> Activate the developer mode`) and
|
||||
get access to the *Link Tracker* module and its back-end functionalities.
|
||||
#. Integrated with :doc:`Google Analytics <google_analytics>`, those trackers allow you to see
|
||||
the number of clicks and visitors to keep you on top of your marketing campaigns.
|
||||
#. The integration with the :doc:`CRM </applications/sales/crm/track_leads/prospect_visits>` application allows
|
||||
you to understand where your leads and opportunities are coming from.
|
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 18 KiB |
@ -1,644 +0,0 @@
|
||||
==================================================
|
||||
How to do Search Engine Optimisation (SEO) in Odoo
|
||||
==================================================
|
||||
|
||||
Search Engine Optimization (SEO) is a set of good practices to optimize
|
||||
your website so that you get a better ranking in search engines like
|
||||
Google. In short, a good SEO allows you to get more visitors.
|
||||
|
||||
Some examples of SEO rules: your web pages should load fast, your page
|
||||
should have one and only one title ``<h1>``, meta tags
|
||||
(alt-tag, title-tag) should be
|
||||
consistent with the content, your website should have a
|
||||
``/sitemap.xml`` file, etc.
|
||||
|
||||
To guarantee Odoo Website and Odoo
|
||||
eCommerce users have a great SEO, Odoo abstracts all the technical
|
||||
complexities of SEO and handles everything for you, in the best possible
|
||||
way. This will be explained here below.
|
||||
|
||||
But first, let see how you can easily boost your ranking
|
||||
by finetuning the content and the meta tags of your website.
|
||||
|
||||
Meta Tags
|
||||
=========
|
||||
|
||||
Title, Description
|
||||
------------------
|
||||
|
||||
Every web page should define the ``<title>`` and ``<description>`` meta data.
|
||||
These information elements are used by search engines to promote your website.
|
||||
They are automatically generated based on page title & content, but you can
|
||||
finetune them. Make sure they fit the content of the page, otherwise you will
|
||||
be downgraded by search engines.
|
||||
|
||||
.. image:: media/seo01.png
|
||||
:align: center
|
||||
|
||||
Keywords
|
||||
--------
|
||||
In order to write quality content and boost your traffic, Odoo provides
|
||||
a ``<keyword>`` finder. Those keywords are the searches you want to head
|
||||
towards your website. For each keyword, you see how it is used in the content
|
||||
(H1, H2, page title, page description, page content) and what are the related
|
||||
searches in Google. The more keywords are used the better.
|
||||
|
||||
.. image:: media/seo02.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
If your website is in multiple languages, you can use the Promote
|
||||
tool for every language of a single page and set specific title,
|
||||
description and search tags.
|
||||
|
||||
Content is King
|
||||
===============
|
||||
|
||||
When it comes to SEO, content is usually king. Odoo provides several
|
||||
modules to help you build your website content:
|
||||
|
||||
- **Odoo Blogs**: write great contents.
|
||||
|
||||
- **Odoo Slides**: publish all your Powerpoint or PDF presentations.
|
||||
Their content is automatically indexed on the web page. Example:
|
||||
`odoo.com/slides/public-channel-1 <https://www.odoo.com/slides/public-channel-1>`_
|
||||
|
||||
- **Odoo Forum**: let your community create contents for you. Example:
|
||||
`odoo.com/forum/1 <https://odoo.com/forum/1>`_
|
||||
(accounts for 30% of Odoo.com landing pages)
|
||||
|
||||
- **Odoo Mailing List Archive**: publish mailing list archives on your
|
||||
website. Example:
|
||||
`odoo.com/groups/community-59 <https://www.odoo.com/groups/community-59>`_
|
||||
(1000 pages created per month)
|
||||
|
||||
.. note::
|
||||
The 404 page is a regular page, that you can edit like any other
|
||||
page in Odoo. That way, you can build a great 404 page to redirect to
|
||||
the top content of your website when visitors get lost in invalid URLs.
|
||||
|
||||
Use Social Networks
|
||||
===================
|
||||
|
||||
Social media is built for mass sharing. If lots of people share your content
|
||||
on social media, then it's likely more people will link to it,
|
||||
and links are a huge factor for SEO ranking.
|
||||
|
||||
Odoo embeds several tools to share content through social media:
|
||||
|
||||
Social Network
|
||||
--------------
|
||||
|
||||
Odoo allows to link all your social network accounts in your website footer.
|
||||
All you have to do is to refer all your accounts in your company settings.
|
||||
|
||||
.. image:: media/seo03.png
|
||||
:align: center
|
||||
|
||||
Social Share
|
||||
------------
|
||||
|
||||
Drop the building block *Share* on any page you want your visitors to share.
|
||||
By clicking the icon, they are prompted to share the page in their social media
|
||||
wall.
|
||||
|
||||
.. image:: media/seo04.png
|
||||
:align: center
|
||||
|
||||
Most social media use a picture of the picture to decorate the share post.
|
||||
Odoo uses the website logo by default but you can choose any other image
|
||||
of your page in the Promote tool.
|
||||
|
||||
.. image:: media/seo05.png
|
||||
:align: center
|
||||
|
||||
Facebook Page
|
||||
-------------
|
||||
|
||||
Drop the building block *Facebook Page* to display a widget of your Facebook
|
||||
business page and encourage visitors to follow it.
|
||||
You can display the timeline, the next events and the messages.
|
||||
|
||||
Twitter Scroller
|
||||
----------------
|
||||
|
||||
Display the Twitter feeds with customer satifaction on your website.
|
||||
This will increase the number of tweets and shares.
|
||||
|
||||
Test Your Website
|
||||
=================
|
||||
|
||||
You can compare how your website rank, in terms of SEO, against Odoo
|
||||
using WooRank free services:
|
||||
`woorank.com <https://www.woorank.com>`_
|
||||
|
||||
URLs Handling
|
||||
=============
|
||||
|
||||
This section sheds some light on how Odoo makes URLs SEO-friendly.
|
||||
|
||||
URLs Structure
|
||||
--------------
|
||||
|
||||
A typical Odoo URL will look like this:
|
||||
|
||||
- https://www.mysite.com/fr\_FR/shop/product/my-great-product-31
|
||||
|
||||
With the following components:
|
||||
|
||||
- **https://** = Protocol
|
||||
|
||||
- **www.mysite.com** = your domain name
|
||||
|
||||
- **/fr\_FR** = page language. This part of the URL is
|
||||
removed if the visitor browses the main language of the website
|
||||
Thus, the main version of this page is:
|
||||
https://www.mysite.com/shop/product/my-great-product-31
|
||||
|
||||
- **/shop/product** = every module defines its own namespace (/shop is
|
||||
for the catalog of the eCommerce module, /shop/product is for a
|
||||
product page).
|
||||
|
||||
- **my-great-product** = by default, this is the slugified title of the
|
||||
product this page refers to. But you can customize it for SEO
|
||||
purposes. A product named "Pain carré" will be slugified to
|
||||
"pain-carre". Depending on the namespace, this could be different
|
||||
objects (blog post, page title, forum post, forum comment,
|
||||
product category, etc.).
|
||||
|
||||
- **-31** = the unique ID of the product
|
||||
|
||||
Note that any dynamic component of an URL can be reduced to its ID. As
|
||||
an example, the following URLs all do a 301 redirect to the above URL:
|
||||
|
||||
- https://www.mysite.com/fr\_FR/shop/product/31 (short version)
|
||||
|
||||
- http://mysite.com/fr\_FR/shop/product/31 (even shorter version)
|
||||
|
||||
- http://mysite.com/fr\_FR/shop/product/other-product-name-31 (old
|
||||
product name)
|
||||
|
||||
Some URLs have several dynamic parts, like this one (a blog category and
|
||||
a post):
|
||||
|
||||
- https://www.odoo.com/blog/company-news-5/post/the-odoo-story-56
|
||||
|
||||
In the above example:
|
||||
|
||||
- *Company News* is the title of the blog
|
||||
|
||||
- *The Odoo Story* is the title of a specific blog post
|
||||
|
||||
When an Odoo page has a pager, the page number is set directly in the
|
||||
URL (does not have a GET argument). This allows every page to be indexed
|
||||
by search engines. Example:
|
||||
|
||||
- https://www.odoo.com/blog/page/3
|
||||
|
||||
Changes in URLs & Titles
|
||||
------------------------
|
||||
|
||||
When the URL of a page changes (e.g. a more SEO friendly version of your
|
||||
product name), you don't have to worry about updating all links:
|
||||
|
||||
- Odoo will automatically update all its links to the new URL.
|
||||
|
||||
- If external websites still points to the old URL, a 301 redirect will
|
||||
be done to route visitors to the new address of the page.
|
||||
|
||||
As an example, this URL:
|
||||
|
||||
- http://mysite.com/shop/product/old-product-name-31
|
||||
|
||||
Will automatically redirect to:
|
||||
|
||||
- http://mysite.com/shop/product/new-and-better-product-name-31
|
||||
|
||||
In short, just change the title of a blog post or the name of a product,
|
||||
and the changes will apply automatically everywhere in your website. The
|
||||
old link still functions when used by external websites, via a 301 redirect,
|
||||
maintaining the SEO link juice.
|
||||
|
||||
HTTPS
|
||||
-----
|
||||
|
||||
Search engines boost ranking of secure HTTPS/SSL websites.
|
||||
So, by default all Odoo Online instances are fully
|
||||
based on HTTPS. If the visitor accesses your website through a non HTTPS
|
||||
url, it gets a 301 redirect to its HTTPS equivalent.
|
||||
|
||||
Links: Nofollow Strategy
|
||||
------------------------
|
||||
|
||||
The more a page is linked from external and quality websites,
|
||||
the better it is for your SEO.
|
||||
|
||||
Here are Odoo strategies to manage links:
|
||||
|
||||
- Every link you add to your website is
|
||||
"dofollow", which means that this link will contribute to the SEO
|
||||
Juice for the linked page.
|
||||
|
||||
- Every link posted by a contributor (forum post, blog comment, etc.)
|
||||
that links to your own website is "dofollow" too.
|
||||
|
||||
- But every link posted by a contributor that links to an external
|
||||
website is "nofollow". In that way, you do not run the risk of
|
||||
people posting links on your website to third-party websites
|
||||
which have a bad reputation.
|
||||
|
||||
- Note that, when using the forum, contributors having a lot of Karma
|
||||
can be trusted. In such case, their links will not have any
|
||||
``rel="nofollow"`` attribute.
|
||||
|
||||
Multi-Language Support
|
||||
======================
|
||||
|
||||
Multi-Language URLs
|
||||
-------------------
|
||||
|
||||
If you run a website in multiple languages, the same content will be
|
||||
available in different URLs, depending on the language used:
|
||||
|
||||
- https://www.mywebsite.com/shop/product/my-product-1 (main language, English here)
|
||||
|
||||
- https://www.mywebsite.com\/fr\_FR/shop/product/mon-produit-1 (French version)
|
||||
|
||||
In this example, fr\_FR is the language of the page. You can even have
|
||||
several variations of the same language: pt\_BR (Portuguese from Brazil)
|
||||
, pt\_PT (Portuguese from Portugal).
|
||||
|
||||
Language Annotation
|
||||
-------------------
|
||||
|
||||
To let search engines know that the second URL is the French translation of the
|
||||
first URL, Odoo will add an HTML link element in the header. In the HTML
|
||||
<head> section of the main version, Odoo automatically adds a link
|
||||
element pointing to the translated versions of that webpage;
|
||||
|
||||
- <link rel="alternate" hreflang="fr"
|
||||
href="https://www.mywebsite.com\/fr\_FR/shop/product/mon-produit-1"/>
|
||||
|
||||
With this approach:
|
||||
|
||||
- Search engines will redirect to the right language according to the
|
||||
visitor language.
|
||||
|
||||
- You do not get penalized by search engines if your page is not translated
|
||||
yet. Indeed, it's not a duplicated content, but a different
|
||||
version of the same content.
|
||||
|
||||
Language Detection
|
||||
------------------
|
||||
|
||||
When a visitor lands for the first time on your website (e.g.
|
||||
yourwebsite.com/shop), they may automatically be redirected to a
|
||||
translated version according to their browser language preference (e.g.
|
||||
yourwebsite.com/fr\_FR/shop).
|
||||
|
||||
Next time, it keeps a cookie of the current language to
|
||||
avoid any redirection.
|
||||
|
||||
To force a visitor to stick to the default language, you can use the
|
||||
code of the default language in your link, example:
|
||||
yourwebsite.com/en\_US/shop. This will always land visitors to the
|
||||
English version of the page, without using the browser language
|
||||
preferences.
|
||||
|
||||
Page Speed
|
||||
==========
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The time to load a page is an important criteria for search engines. A faster
|
||||
website not only improves your visitor's experience, but gives
|
||||
you a better page ranking. Some studies have shown that, if you divide the time to
|
||||
load your pages by two (e.g. 2 seconds instead of 4 seconds), the
|
||||
visitor abandonment rate is also divided by two. (25% to 12.5%). One
|
||||
extra second to load a page could `cost $1.6b to Amazon in
|
||||
sales <http://www.fastcompany.com/1825005/how-one-second-could-cost-amazon-16-billion-sales>`__.
|
||||
|
||||
.. image:: media/seo06.png
|
||||
:align: center
|
||||
|
||||
Fortunately, Odoo does all the magic for you. Below, you will find the
|
||||
tricks Odoo uses to speed up your page loading time. You can compare how
|
||||
your website ranks using these two tools:
|
||||
|
||||
- `Google Page Speed <https://developers.google.com/speed/pagespeed/insights/>`__
|
||||
|
||||
- `Pingdom Website Speed Test <http://tools.pingdom.com/fpt/>`__
|
||||
|
||||
Images
|
||||
------
|
||||
|
||||
When you upload new images, Odoo automatically
|
||||
compresses them to reduce their sizes (lossless compression for .PNG
|
||||
and .GIF and lossy compression for .JPG).
|
||||
|
||||
From the upload button, you have the option to keep the original image
|
||||
unmodified if you prefer to optimize the quality of the image rather
|
||||
than performance.
|
||||
|
||||
.. image:: media/seo07.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
Odoo compresses images when they are uploaded to your website, not
|
||||
when requested by the visitor. Thus, it's possible that, if you use a
|
||||
third-party theme, it will provide images that are not compressed
|
||||
efficiently. But all images used in Odoo official themes have been
|
||||
compressed by default.
|
||||
|
||||
When you click on an image, Odoo shows you the Alt and title attributes
|
||||
of the ``<img>`` tag. You can click on it to set your own title and Alt
|
||||
attributes for the image.
|
||||
|
||||
.. image:: media/seo08.png
|
||||
:align: center
|
||||
|
||||
When you click on this link, the following window will appear:
|
||||
|
||||
.. image:: media/seo09.png
|
||||
:align: center
|
||||
|
||||
Odoo's pictograms are implemented using a font (`Font
|
||||
Awesome <https://fortawesome.github.io/Font-Awesome/icons/>`__ in most
|
||||
Odoo themes). Thus, you can use as many pictograms as you want in your
|
||||
page, they will not result in extra requests to load the page.
|
||||
|
||||
.. image:: media/seo10.png
|
||||
:align: center
|
||||
|
||||
Static Resources: CSS
|
||||
---------------------
|
||||
|
||||
All CSS files are pre-processed, concatenated, minified, compressed and
|
||||
cached (server-side and browser-side). The result:
|
||||
|
||||
- only one CSS file request is needed to load a page
|
||||
|
||||
- this CSS file is shared and cached amongst pages, so that when the
|
||||
visitor clicks on another page, the browser doesn't have to even
|
||||
load a single CSS resource.
|
||||
|
||||
- this CSS file is optimized to be small
|
||||
|
||||
**Pre-processed:** The CSS framework used by Odoo is Bootstrap.
|
||||
Although a theme might use another framework, most of `Odoo
|
||||
themes <https://www.odoo.com/apps/themes>`__ extend and customize
|
||||
Bootstrap directly. Since Odoo supports Less and Sass, you can modify
|
||||
CSS rules instead of overwriting them through extra CSS lines,
|
||||
resulting in a smaller file.
|
||||
|
||||
**Concatenated:** every module or library you might use in Odoo has its
|
||||
own set of CSS, Less or Sass files (eCommerce, blogs, themes, etc.). Having
|
||||
several CSS files is great for the modularity, but not good for the
|
||||
performance because most browsers can only perform 6 requests in
|
||||
parallel resulting in lots of files loaded in series. The
|
||||
latency time to transfer a file is usually much longer than the actual
|
||||
data transfer time, for small files like .JS and .CSS. Thus, the time to
|
||||
load CSS resources depends more on the number of requests to be done
|
||||
than the actual file size.
|
||||
|
||||
To address this issue, all CSS / Less / Sass files are concatenated into
|
||||
a single .CSS file to send to the browser. So a visitor has **only one
|
||||
.CSS file to load** per page, which is particularly efficient. As the
|
||||
CSS is shared amongst all pages, when the visitor clicks on another
|
||||
page, the browser does not even have to load a new CSS file!
|
||||
|
||||
================================= =============================================
|
||||
**Both files in the <head>** **What the visitor gets (only one file)**
|
||||
================================= =============================================
|
||||
/\* From bootstrap.css \*/ .text-muted {
|
||||
.text-muted { color: #666;
|
||||
color: #777; background: yellow
|
||||
background: yellow; }
|
||||
}
|
||||
|
||||
/\* From my-theme.css \*/
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
================================= =============================================
|
||||
|
||||
The CSS sent by Odoo includes all CSS / Less / Sass of all pages /
|
||||
modules. By doing this, additional page views from the same visitor will
|
||||
not have to load CSS files at all. But some modules might include huge
|
||||
CSS/Javascript resources that you do not want to prefetch at the first
|
||||
page because they are too big. In this case, Odoo splits this resource
|
||||
into a second bundle that is loaded only when the page using it is
|
||||
requested. An example of this is the backend that is only loaded when
|
||||
the visitor logs in and accesses the backend (/web).
|
||||
|
||||
.. note::
|
||||
If the CSS file is very big, Odoo will split it into two smaller
|
||||
files to avoid the 4095 selectors limit per sheet of Internet Explorer.
|
||||
But most themes fit below this limit.
|
||||
|
||||
**Minified:** After being pre-processed and concatenated, the resulting
|
||||
CSS is minified to reduce its size.
|
||||
|
||||
============================ ==============================
|
||||
**Before minification** **After minification**
|
||||
============================ ==============================
|
||||
/\* some comments \*/ .text-muted {color: #666}
|
||||
.text-muted {
|
||||
color: #666;
|
||||
}
|
||||
============================ ==============================
|
||||
|
||||
The final result is then compressed, before being delivered to the
|
||||
browser.
|
||||
|
||||
Then, a cached version is stored server-side (so we do not have
|
||||
to pre-process, concatenate, minify at every request) and browser-side
|
||||
(so the same visitor will load the CSS only once for all pages they
|
||||
visit).
|
||||
|
||||
Static Resources: Javascript
|
||||
----------------------------
|
||||
|
||||
As with CSS resources, Javascript resources are also concatenated,
|
||||
minified, compressed and cached (server-side and browser-side).
|
||||
|
||||
Odoo creates three Javascript bundles:
|
||||
|
||||
- One for all pages of the website (including code for parallax
|
||||
effects, form validation, etc.)
|
||||
|
||||
- One for common Javascript code shared among frontend and backend
|
||||
(Bootstrap)
|
||||
|
||||
- One for backend specific Javascript code (Odoo Web Client interface
|
||||
for your employees using Odoo)
|
||||
|
||||
Most visitors of your website will only need the first two bundles,
|
||||
resulting in a maximum of two Javascript files to load to render one
|
||||
page. As these files are shared across all pages, further clicks by the
|
||||
same visitor will not load any other Javascript resource.
|
||||
|
||||
.. note::
|
||||
If you work on :doc:`Developer mode </applications/general/developer_mode>`, the CSS and
|
||||
Javascript are neither concatenated, nor minified. Thus, it's much slower. But it allows you to
|
||||
easily debug with the Chrome debugger as CSS and Javascript resources are not transformed from
|
||||
their original versions.
|
||||
|
||||
CDN
|
||||
---
|
||||
|
||||
If you activate the CDN feature in Odoo, static resources (Javascript,
|
||||
CSS, images) are loaded from a Content Delivery Network. Using a Content
|
||||
Delivery Network has three advantages:
|
||||
|
||||
- Load resources from a nearby server (most CDN have servers in main
|
||||
countries around the globe)
|
||||
|
||||
- Cache resources efficiently (no computation resources usage on your
|
||||
own server)
|
||||
|
||||
- Split the resource loading on different services allowing to load
|
||||
more resources in parallel (since the Chrome limit of 6 parallel
|
||||
requests is by domain)
|
||||
|
||||
You can configure your CDN options from the **Website Admin** app, using
|
||||
the Configuration menu. Here is an example of configuration you can use:
|
||||
|
||||
.. image:: media/seo11.png
|
||||
:align: center
|
||||
|
||||
HTML Pages
|
||||
----------
|
||||
|
||||
The HTML pages can be compressed, but this is usually handled by your web
|
||||
server (NGINX or Apache).
|
||||
|
||||
The Odoo Website builder has been optimized to guarantee clean and short
|
||||
HTML code. Building blocks have been developed to produce clean HTML
|
||||
code, usually using Bootstrap and the HTML editor.
|
||||
|
||||
As an example, if you use the color picker to change the color of a
|
||||
paragraph to the primary color of your website, Odoo will produce the
|
||||
following code:
|
||||
|
||||
``<p class="text-primary">My Text</p>``
|
||||
|
||||
Whereas most HTML editors (such as CKEditor) will produce the following
|
||||
code:
|
||||
|
||||
``<p style="color: #AB0201">My Text</p>``
|
||||
|
||||
Responsive Design
|
||||
-----------------
|
||||
|
||||
Websites that are not mobile-friendly are negatively
|
||||
impacted in search engine rankings. All Odoo themes rely on Bootstrap to
|
||||
render efficiently according to the device: desktop, tablet or mobile.
|
||||
|
||||
.. image:: media/seo12.png
|
||||
:align: center
|
||||
|
||||
As all Odoo modules share the same technology, absolutely all pages in
|
||||
your website are mobile friendly.
|
||||
|
||||
Browser Caching
|
||||
---------------
|
||||
|
||||
Javascript, images and CSS resources have an URL that changes
|
||||
dynamically when their content change. As an example, all CSS files are
|
||||
loaded through this URL:
|
||||
`localhost:8069/web/content/457-0da1d9d/web.assets\_common.0.css <http://localhost:8069/web/content/457-0da1d9d/web.assets_common.0.css>`__.
|
||||
The ``457-0da1d9d`` part of this URL will change if you modify the CSS of
|
||||
your website.
|
||||
|
||||
This allows Odoo to set a very long cache delay (XXX) on these
|
||||
resources: XXX secs, while being updated instantly if you update the
|
||||
resource.
|
||||
|
||||
Scalability
|
||||
-----------
|
||||
|
||||
In addition to being fast, Odoo is also more scalable than traditional
|
||||
CMS and eCommerce (Drupal, Wordpress, Magento, Prestashop). The
|
||||
following link provides an analysis of the major open source CMS and
|
||||
eCommerce compared to Odoo when it comes to high query volumes:
|
||||
`https://www.odoo.com/slides/slide/197
|
||||
<https://www.odoo.com/slides/slide/odoo-cms-performance-comparison-and-optimisation-197>`_
|
||||
|
||||
.. todo:: fix above link
|
||||
|
||||
Here is the slide that summarizes the scalability of Odoo Website & eCommerce.
|
||||
|
||||
.. image:: media/seo13.png
|
||||
:align: center
|
||||
|
||||
Search Engines Files
|
||||
====================
|
||||
|
||||
Sitemap
|
||||
-------
|
||||
|
||||
The sitemap points out pages to index to search engine robots.
|
||||
Odoo generates a ``/sitemap.xml`` file automatically for you. For
|
||||
performance reasons, this file is cached and updated every 12 hours.
|
||||
|
||||
By default, all URLs will be in a single ``/sitemap.xml`` file, but if you
|
||||
have a lot of pages, Odoo will automatically create a Sitemap Index
|
||||
file, respecting the `sitemaps.org
|
||||
protocol <http://www.sitemaps.org/protocol.html>`__ grouping sitemap
|
||||
URL's in 45000 chunks per file.
|
||||
|
||||
Every sitemap entry has 4 attributes that are computed automatically:
|
||||
|
||||
- ``<loc>`` : the URL of a page
|
||||
|
||||
- ``<lastmod>`` : last modification date of the resource, computed
|
||||
automatically based on related object. For a page related to a
|
||||
product, this could be the last modification date of the product
|
||||
or the page.
|
||||
|
||||
- ``<priority>`` : modules may implement their own priority algorithm based
|
||||
on their content (example: a forum might assign a priority based
|
||||
on the number of votes on a specific post). The priority of a
|
||||
static page is defined by it's priority field, which is
|
||||
normalized (16 is the default).
|
||||
|
||||
Structured Data Markup
|
||||
----------------------
|
||||
|
||||
Structured Data Markup is used to generate Rich Snippets in search
|
||||
engine results. It is a way for website owners to send structured data
|
||||
to search engine robots; helping them understand your content and
|
||||
create well-presented search results.
|
||||
|
||||
Google supports a number of rich snippets for content types, including:
|
||||
Reviews, People, Products, Businesses, Events and Organizations.
|
||||
|
||||
Odoo implements micro data as defined in the
|
||||
`schema.org <http://schema.org>`__ specification for events, eCommerce
|
||||
products, forum posts and contact addresses. This allows your product
|
||||
pages to be displayed in Google using extra information like the price
|
||||
and rating of a product:
|
||||
|
||||
.. image:: media/seo14.png
|
||||
:align: center
|
||||
|
||||
robots.txt
|
||||
----------
|
||||
|
||||
When indexing your website, search engines take a first look at the
|
||||
general indexing rules of the a``/robots.txt`` file (allowed robots,
|
||||
sitemap path, etc.). Odoo automatically creates it. Its content is:
|
||||
|
||||
User-agent: \*
|
||||
Sitemap: https://www.odoo.com/sitemap.xml
|
||||
|
||||
It means that all robots are allowed to index your website
|
||||
and there is no other indexing rule than specified in the sitemap
|
||||
to be found at following address.
|
||||
|
||||
You can customize the file *robots* in
|
||||
:doc:`Developer mode </applications/general/developer_mode>` from *Settings --> Technical -->
|
||||
User Interface --> Views* (exclude robots, exclude some pages, redirect to a custom Sitemap).
|
||||
Make the Model Data of the view *Non Updatable* to not reset the file after system upgrades.
|
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
BIN
content/applications/websites/website/optimize/seo/seo09.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 61 KiB |
@ -2,12 +2,825 @@
|
||||
Publish
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
Odoo's Website Builder is designed to help anyone build a beautiful, professional-grade website.
|
||||
|
||||
publish/domain_name
|
||||
publish/translate
|
||||
publish/multi_website
|
||||
With intuitive building blocks, unique design elements, and tons of customizable features, users
|
||||
can create top-notch websites in a fraction of the time - without any coding experience whatsoever.
|
||||
|
||||
Website essentials
|
||||
==================
|
||||
|
||||
Odoo provides the user with a myriad of eye-catching, feature-filled design elements that are
|
||||
easy-to-use, simple to customize, and able to take your website to the next level.
|
||||
|
||||
Pick a theme
|
||||
------------
|
||||
|
||||
Upon installing the *Website* application, you are redirected to a page full of website themes to
|
||||
choose from.
|
||||
|
||||
.. image:: publish/essentials/pick-theme-page.png
|
||||
:align: center
|
||||
:alt: the pick a theme page in the website application
|
||||
|
||||
Each theme provides its own unique style (and look) that expertly cater to a variety of businesses
|
||||
or personal purposes.
|
||||
|
||||
While they differ in initial design, each theme still provides the user with all the functionality,
|
||||
options, tools, and features that Odoo has to offer. That way, you can get the most of your website,
|
||||
no matter what theme you pick.
|
||||
|
||||
When you hover over a theme on the *Pick a Theme* page, you are presented with two options: *Use
|
||||
This Theme* or *Live Preview*.
|
||||
|
||||
.. image:: publish/essentials/live-preview-option.png
|
||||
:align: center
|
||||
:alt: live preview of a website theme
|
||||
|
||||
Clicking *Live Preview* presents you with a sample website in that desired theme. You can also
|
||||
choose to see it in *Desktop* or *Mobile*.
|
||||
|
||||
If you want to choose the theme for your website, simply click *Start Now* in the upper-left
|
||||
corner. If you'd like to go back to the theme selection page, click *Choose another theme*.
|
||||
|
||||
.. image:: publish/essentials/sample-website-preview.png
|
||||
:align: center
|
||||
:alt: sample website preview
|
||||
|
||||
.. tip::
|
||||
You can change your theme at any time. From the front-end of the website (in *Edit* mode),
|
||||
select *Switch Theme* at the bottom of the *Options* section in the toolbar. From the backend, go
|
||||
to :menuselection:`Website app --> Configuration --> Settings` and select *Pick a Theme* from the
|
||||
*Website* section.
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
When a theme is selected, Odoo takes you to a blank homepage (already in *Edit* mode) that you
|
||||
can start designing with the help of Odoo's toolbar, located on the right-side of the screen.
|
||||
|
||||
If you're not sure where to start, you can follow the helpful purple drops that Odoo provides to
|
||||
guide users through a few quick steps to begin their website building process.
|
||||
|
||||
.. image:: publish/essentials/purple-drops.png
|
||||
:align: center
|
||||
:alt: odoo purple drops in website builder
|
||||
|
||||
Building Blocks
|
||||
---------------
|
||||
|
||||
Odoo provides the user with a huge collection of helpful design elements (and features) to help
|
||||
them build their website. The first section you see is **Blocks**, which contains all of Odoo's
|
||||
eye-catching, easy-to-use *Building Blocks*.
|
||||
|
||||
To use these *Building Blocks*, simply drag and drop your desired block anywhere on your page, and
|
||||
start customizing it to fit the needs of your company.
|
||||
|
||||
They are divided into 4 categories:
|
||||
|
||||
- **Structure**: core features that provide foundational elements to your site.
|
||||
|
||||
- **Features**: unique array of informative, attention-grabbing aspects to help your web design
|
||||
look more professional and pleasing to visitors.
|
||||
|
||||
- **Dynamic Content**: features designed to showcase more information about the company, its
|
||||
location, social presence, and so much more.
|
||||
|
||||
- **Inner Content**: engaging forms of content and design elements that can be directly
|
||||
incorporated within other *Building Blocks*
|
||||
|
||||
Customize Building Blocks
|
||||
-------------------------
|
||||
|
||||
Once you have dragged and dropped a *Building Block* onto your webpage, you can edit it in a number
|
||||
of ways.
|
||||
|
||||
To do so, select the block you wish to change, and a new set of options appears in the toolbar.
|
||||
These options are specific to that selected block, and can be found in the *Style* section of the
|
||||
toolbar.
|
||||
|
||||
.. image:: publish/essentials/block-toolbar-options.png
|
||||
:align: center
|
||||
:alt: building block with specific options in the toolbar
|
||||
|
||||
As mentioned, these options are different for every block, so be sure to consider every available
|
||||
configuration as you design your website.
|
||||
|
||||
Shapes
|
||||
------
|
||||
|
||||
Of course, you can change the image and background color of any block, but Odoo also provides the
|
||||
user with unique design elements known as *Shapes*. These are artistic design elements that
|
||||
create a stunning, completely cohesive design, without drawing attention away from your content.
|
||||
|
||||
When a block is selected, you can choose to add a *Shapes* element in the "Background" field,
|
||||
indicated by this button
|
||||
|
||||
.. image:: publish/essentials/shapes-icon.png
|
||||
:align: center
|
||||
:alt: shapes element icon in the toolbar
|
||||
|
||||
Odoo offers numerous categories, styles, and designs. Each of which can be fully customized in
|
||||
many ways. To preview how they look, just hover over any *Shapes*, and Odoo instantly shows how
|
||||
it looks on your website.
|
||||
|
||||
.. image:: publish/essentials/shapes-hover.png
|
||||
:align: center
|
||||
:alt: Shapes element on webpage when cursor hovers over option
|
||||
|
||||
You can create cohesion between your blocks by using similar *Shapes* to seamlessly connect your
|
||||
content together, creating a smooth flow throughout your page.
|
||||
|
||||
To do that, simply select the block you wish to connect, click the *Shapes* icon again, and Odoo
|
||||
will automatically connect those elements together (if there's a perfect match). But you can
|
||||
customize and choose any *Shapes* you want.
|
||||
|
||||
.. image:: publish/essentials/shapes-on-block.png
|
||||
:align: center
|
||||
:alt: example of how a Shapes element looks on a block before it's connected
|
||||
|
||||
.. image:: publish/essentials/connected-shapes.png
|
||||
:align: center
|
||||
:alt: two connected shape elements to create cohesive design
|
||||
|
||||
The limitless possibilities of web design brought forth by these unique *Shapes* are guaranteed
|
||||
to give your website a memorable, professional look that visitors won't soon forget.
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
In the *Options* section of the toolbar, you can control numerous features that are utilized
|
||||
throughout your site.
|
||||
|
||||
Theme Colors
|
||||
************
|
||||
|
||||
For instance, it's here in the *Options* tab where you can customize the *Theme Colors* of your
|
||||
entire site. These unique combinations of colors can be configured in any way you'd like, or you
|
||||
can select one from a list of pre-made color combinations that Odoo provides.
|
||||
|
||||
.. image:: publish/essentials/theme-colors.png
|
||||
:align: center
|
||||
:alt: theme colors setting area on the toolbar
|
||||
|
||||
You can choose any combination of colors you'd like, and all of them are easily adapted to any
|
||||
feature (or element) that you put on your page. Having pre-configured *Theme Colors* just a click
|
||||
away, allows you to keep creating a beautiful website, page after page, without any delays.
|
||||
|
||||
Theme options
|
||||
*************
|
||||
|
||||
In "Theme Options," you can customize the look and layout of various design aspects.
|
||||
|
||||
.. image:: publish/essentials/theme-options-area.png
|
||||
:align: center
|
||||
:alt: theme options on the website builder toolbar
|
||||
|
||||
The changes you make here will become the new defaults for the site, but you can adjust, modify,
|
||||
and change them at any time. You can change things like the overall layout, font, button style,
|
||||
and more.
|
||||
|
||||
Header and Footer
|
||||
-----------------
|
||||
|
||||
When the header or footer of your page is selected, Odoo instantly reveals a new *Style* menu
|
||||
with options and features specifically designed for these elements of your website.
|
||||
|
||||
.. image:: publish/essentials/header-style-options.png
|
||||
:align: center
|
||||
:alt: header style options in the toolbar
|
||||
|
||||
Here, you can customize the layout, the colors, the position, and so much more! So, don't forget
|
||||
to play around with these options during the building of your website.
|
||||
|
||||
Custom domain name
|
||||
==================
|
||||
|
||||
By default, your Odoo database (and website) have an *.odoo.com* domain name, which is seen in the
|
||||
URL and emails.
|
||||
|
||||
However, you can change it to a custom URL (e.g. *www.yourcompany.com*) at any time.
|
||||
|
||||
Good domain qualities
|
||||
---------------------
|
||||
|
||||
Choosing the right domain name for your business is extremely important for your branding.
|
||||
|
||||
That's why it's vital to consider the following aspects when creating a custom URL for your business
|
||||
(or organization).
|
||||
|
||||
Make sure your domain name is:
|
||||
|
||||
- Simple and obvious
|
||||
- Easy to remember (*and* spell)
|
||||
- Concise: the shorter, the better
|
||||
- Avoid special characters
|
||||
- Aim for a ".com" and/or your country extension
|
||||
|
||||
Read more: `How to Choose a Domain Name for Maximum SEO <https://www.searchenginejournal.com/choose-a-domain-name-maximum-seo/158951/>`__
|
||||
|
||||
Buy a domain name
|
||||
-----------------
|
||||
|
||||
Buy your domain name at a popular registrar site, like:
|
||||
|
||||
- `GoDaddy <https://www.godaddy.com>`__
|
||||
- `Namecheap <https://www.namecheap.com>`__
|
||||
- `OVH <https://www.ovh.com>`__
|
||||
|
||||
.. note:: Steps to buy a domain name are pretty straight-forward. If you have any issues, check out
|
||||
this easy-to-follow tutorial:
|
||||
|
||||
- `GoDaddy <https://roadtoblogging.com/buy-domain-name-from-godaddy>`__
|
||||
|
||||
Feel free to buy an email server to have email addresses using your domain name. However,
|
||||
*don't* buy any extra service to create (or host) your website - that's Odoo's job!
|
||||
|
||||
.. _custom_domain:
|
||||
|
||||
|
||||
Apply domain name to Odoo
|
||||
-------------------------
|
||||
|
||||
First, you must authorize the URL redirection (*yourcompany.com --> yourcompany.odoo.com*):
|
||||
|
||||
To do that, open your Odoo.com account from the homepage.
|
||||
|
||||
.. image:: publish/domain_name/odoo-account.png
|
||||
:align: center
|
||||
:alt: opening odoo.com account from homepage
|
||||
|
||||
Then, select *My Databases* page under the same drop-down menu.
|
||||
|
||||
.. image:: publish/domain_name/my-databases.png
|
||||
:align: center
|
||||
:alt: manage databases page
|
||||
|
||||
That redirects to the *Manage Your Databases* page. Here, you need to click on *Domains* to the
|
||||
right of the database you want to redirect.
|
||||
|
||||
.. image:: publish/domain_name/manage-databases.png
|
||||
:align: center
|
||||
:alt: clicking domains of the database
|
||||
|
||||
Then, a database domain prompt appears, wherein you enter your custom domain:
|
||||
(e.g. *www.yourcompany.com*).
|
||||
|
||||
.. image:: publish/domain_name/enter-domain.png
|
||||
:align: center
|
||||
:alt: domain name database prompt
|
||||
|
||||
At this point, you can apply the redirection from your domain name's manager account:
|
||||
|
||||
In order to do that, log in to your account, and search for the DNS Zones management page.
|
||||
|
||||
Then, create a CNAME record (*www.yourdomain.com*) pointing to *mywebsite.odoo.com*. If you want to
|
||||
use the naked domain (e.g. *yourdomain.com*), you need to redirect *yourdomain.com* to
|
||||
*www.yourdomain.com*.
|
||||
|
||||
.. note:: Here are some specific guidelines to create a CNAME record:
|
||||
|
||||
- `GoDaddy <https://be.godaddy.com/fr/help/add-a-cname-record-19236>`__
|
||||
- `Namecheap <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/10/how-can-i-set-up-a-cname-record-for-my-domain>`__
|
||||
- `OVH <https://www.ovh.co.uk/g1519.exchange_20132016_how_to_add_a_cname_record>`__
|
||||
|
||||
Enable SSL (HTTPS) for Odoo
|
||||
---------------------------
|
||||
|
||||
Odoo no longer requires users to use a third-party CDN service provide (like, CloudFlare) to
|
||||
enable SSL. Odoo generates the certificate for you automatically, using integration with
|
||||
`Let's Encrypt Certificate Authority and ACME protocol <https://letsencrypt.org/how-it-works/>`__.
|
||||
|
||||
In order to enable SSL, simply add your domain name in your customer portal. A separate certificate
|
||||
is generated for each domain name specified.
|
||||
|
||||
.. warning::
|
||||
**The certificate generation may take up to 24h.**
|
||||
|
||||
.. note::
|
||||
If you already use CloudFlare (or a similar service), you can keep using it, or simply change to
|
||||
Odoo.
|
||||
|
||||
Website indexed twice by Google
|
||||
-------------------------------
|
||||
|
||||
If you set up a custom domain name (*mydomain.com*) for *mydatabase.odoo.com*, Google indexes your
|
||||
website under *both* names.
|
||||
|
||||
This is a minor limitation of the Odoo cloud platforms.
|
||||
|
||||
Website translation
|
||||
===================
|
||||
|
||||
In addition to creating beautiful, professional-grade websites, Odoo provides users with the ability
|
||||
to translate them into multiple different languages - at any time.
|
||||
|
||||
Translate
|
||||
---------
|
||||
|
||||
To enable translation, go to your website, and scroll down to your footer. Click on the
|
||||
language (i.e. *English - US*) to reveal a menu, then click *Add a Language*.
|
||||
|
||||
.. image:: publish/translate/translate-menu.png
|
||||
:align: center
|
||||
:alt: translate menu in the website footer
|
||||
|
||||
Choose the language you want from the language pop-up that appears. You can also decide which
|
||||
website you'd like to apply it to here, as well. Then, click *Add*.
|
||||
|
||||
.. image:: publish/translate/translate-pop-up.png
|
||||
:align: center
|
||||
:alt: add a language feature
|
||||
|
||||
When you navigate back to your website, that new language is now an option.
|
||||
|
||||
.. image:: publish/translate/new-language-option.png
|
||||
:align: center
|
||||
:alt: showing a new language option in footer
|
||||
|
||||
When selected, some of the text translates automatically.
|
||||
|
||||
.. image:: publish/translate/auto-translation.png
|
||||
:align: center
|
||||
:alt: new language option available
|
||||
|
||||
To translate the content of the website, click on **Translate** (in the upper-right corner), which
|
||||
appears in that newly-chosen language.
|
||||
|
||||
Here, for example, it's **Traduire**, since we are translating the website in French.
|
||||
|
||||
.. image:: publish/translate/translate-button.png
|
||||
:align: center
|
||||
:alt: translate button
|
||||
|
||||
At this point, most of the content is highlighted in yellow or green.
|
||||
|
||||
The yellow represents content that you have to translate manually, and green represents content that
|
||||
has already been translated by Odoo automatically.
|
||||
|
||||
.. image:: publish/translate/translate-colors.png
|
||||
:align: center
|
||||
:alt: green and yellow translate colors
|
||||
|
||||
Manage multiple websites
|
||||
========================
|
||||
|
||||
Odoo helps users to build, customize, and manage multiple websites in one easy-to-use platform.
|
||||
|
||||
Having multiple websites opens up the possibilities of diversification and customer segmentation
|
||||
for any business. Multiple websites are also a great way to multiply your audience and boost
|
||||
revenue!
|
||||
|
||||
Each Odoo website can work in a fully independent way, with its very own theme, branding, domain
|
||||
name, pages, languages, products, blogs, forums, events, live chat channels, and so much more.
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
To create a new website, go to :menuselection:`Website --> Configuration --> Settings`.
|
||||
|
||||
.. image:: publish/multi_website/config-settings.png
|
||||
:align: center
|
||||
:alt: website application configuration settings
|
||||
|
||||
To start building a new website, simply click on *+New* located next to the title of the "Website"
|
||||
section on the *Website* settings page.
|
||||
|
||||
.. image:: publish/multi_website/new-website-button.png
|
||||
:align: center
|
||||
:alt: new website button on the settings page
|
||||
|
||||
When clicked, a pop-up appears. In this pop-up, you input the name of your new website, its domain,
|
||||
and a logo (if you have one).
|
||||
|
||||
.. image:: publish/multi_website/new-website-pop-up.png
|
||||
:align: center
|
||||
:alt: new website pop-up with empty information fields
|
||||
|
||||
.. note::
|
||||
If you want to publish this new website under the default domain of your Odoo database, simply
|
||||
leave the domain field blank.
|
||||
|
||||
Once all the necessary fields have been filled, you may click *Pick a Theme* to select how you
|
||||
want your new website to look.
|
||||
|
||||
.. image:: publish/multi_website/pick-theme-button.png
|
||||
:align: center
|
||||
:alt: website pick a theme button on the pop-up window
|
||||
|
||||
Clicking that, takes you to a catalog of professional-grade website themes that Odoo has to
|
||||
choose from.
|
||||
|
||||
Remember, this new website may have an entirely different purpose (and/or audience) than your
|
||||
initial site. So, feel free to choose a completely new theme to fit your needs. And, don't
|
||||
forget, you can change themes at any time.
|
||||
|
||||
.. image:: publish/multi_website/multi-website-theme-selection.png
|
||||
:align: center
|
||||
:alt: various website themes
|
||||
|
||||
To select a theme, hover the cursor over your desired theme, and click *Use This Theme*. You can
|
||||
also preview what that theme would look like, by selecting *Live Preview*.
|
||||
|
||||
.. image:: publish/multi_website/theme-live-preview-hover.png
|
||||
:align: center
|
||||
:alt: website theme live preview hover over options
|
||||
|
||||
Once a theme is selected, you can start building your website. Not sure where to begin? Simply
|
||||
follow the "purple drops" located on the screen. They will help get your started.
|
||||
|
||||
.. image:: publish/multi_website/purple-drops.png
|
||||
:align: center
|
||||
:alt: website builder purple drops
|
||||
|
||||
When the cursor hovers over them, they explain the function and purpose of that particular
|
||||
feature.
|
||||
|
||||
.. image:: publish/multi_website/purple-drops-explanation.png
|
||||
:align: center
|
||||
:alt: website builder purple drops with explanation of function
|
||||
|
||||
Then, you can start dragging and dropping any of Odoo's "Building Blocks" (on the right) to create
|
||||
your design. Remember to hit *Save* once you are done.
|
||||
|
||||
.. image:: publish/multi_website/partially-built-homepage.png
|
||||
:align: center
|
||||
:alt: partially built website with building blocks
|
||||
|
||||
.. note::
|
||||
If you run Odoo Online, don’t forget to redirect any new domain name to your Odoo database
|
||||
(``CNAME``) and to authorize it on the Odoo-side.
|
||||
|
||||
Create the menu
|
||||
---------------
|
||||
|
||||
By default, this new website has a default menu with all the installed applications.
|
||||
|
||||
To edit it, click :menuselection:`Pages --> Edit Menu`.
|
||||
|
||||
.. image:: publish/multi_website/pages-edit-menu.png
|
||||
:align: center
|
||||
:alt: pages edit menu on header
|
||||
|
||||
When selected, a pop-up appears, in which you can modify the header menu of your website.
|
||||
|
||||
.. image:: publish/multi_website/edit-menu-pop-up.png
|
||||
:align: center
|
||||
:alt: edit header menu pop-up window
|
||||
|
||||
.. note::
|
||||
Moving forward, you only edit the menu of the website you are currently on.
|
||||
|
||||
Switching websites
|
||||
------------------
|
||||
|
||||
In the upper-right corner, there is a "Website Switcher" drop-down menu. It will show the website
|
||||
that you are currently on. When clicked, it will reveal your other websites, which you can instantly
|
||||
jump to with one click.
|
||||
|
||||
If you use another domain for the website, the user is requested to sign in.
|
||||
|
||||
.. image:: publish/multi_website/multi_website03.png
|
||||
:align: center
|
||||
:alt: website switcher button in the corner
|
||||
|
||||
.. note::
|
||||
When switching, you are redirected to the same domain path on the other website
|
||||
(e.g., ``/shop/myproduct``). If this URL is not used, you will be redirected to a 404 page, and
|
||||
prompted to create a new page from there.
|
||||
|
||||
Add features
|
||||
------------
|
||||
|
||||
The website apps you install (like *Blogs*) are made available on all your websites. Of course,
|
||||
you can keep them hidden in one website by removing the menu item, as previously mentioned.
|
||||
|
||||
Each website comes with a wide array of features and options that can be found on the *Settings*
|
||||
page (:menuselection:`Website app --> Configuration --> Settings`).
|
||||
|
||||
To modify those features and options, you first need to select which website you want to
|
||||
customize. In order to do that, you need to select your desired website from the first section of
|
||||
settings, titled: "Select the Website to Configure."
|
||||
|
||||
.. image:: publish/multi_website/multi_website15.png
|
||||
:align: center
|
||||
:alt: selecting which website should be configured
|
||||
|
||||
Once a website is selected, take a look at the options on the rest of the page, particularly the
|
||||
ones flagged with an Earth icon.
|
||||
|
||||
This icon means that those features will only impact the very website you are currently working on.
|
||||
|
||||
.. image:: publish/multi_website/multi_website12.png
|
||||
:align: center
|
||||
:alt: earth icon in the website settings menu
|
||||
|
||||
You can, for instance, set specific:
|
||||
|
||||
- Languages
|
||||
|
||||
- Domain names
|
||||
|
||||
- Social media links
|
||||
|
||||
- Dedicated live chat channels
|
||||
|
||||
- And so much more...
|
||||
|
||||
The other options are global and will apply to *all* your websites.
|
||||
|
||||
Customize the visitor experience
|
||||
--------------------------------
|
||||
|
||||
Thanks to Odoo's *Customize* menu, there are plenty of ways you can customize (and enhance) the
|
||||
overall user experience for your visitors.
|
||||
|
||||
All the visual-related options in this drop-down menu are specific to each page you are
|
||||
customizing.
|
||||
|
||||
For example, the options available for your blogs won't be the same as the options available for
|
||||
your online store because each page serves a different purpose. Odoo provides the user with the
|
||||
professional-grade options and features to enhance every single page, no matter what.
|
||||
|
||||
So, while building your website, be sure to go through the different pages, and adapt them to fit
|
||||
this new audience/purpose. Focus on workflows and automatic pages (eCommerce checkout, blogs,
|
||||
events, etc.), as there more options to be found there.
|
||||
|
||||
.. image:: publish/multi_website/customize-drop-down.png
|
||||
:align: center
|
||||
:alt: customize drop-down menu on the front-end of the website
|
||||
|
||||
Publish specific content per website
|
||||
------------------------------------
|
||||
|
||||
Like static pages, any content created from the front-end (product page, blog post, etc.) is always
|
||||
*only* published on that current website.
|
||||
|
||||
You can change that by editing the form in the back-end, and leaving the *Website* field blank.
|
||||
This will publish it on all your websites.
|
||||
|
||||
.. image:: publish/multi_website/multi_website06.png
|
||||
:align: center
|
||||
:alt: publishing content on a specific website
|
||||
|
||||
Here are all the objects you can link to *any (or all)* websites:
|
||||
|
||||
1. Products
|
||||
|
||||
2. Product Categories (for eCommerce)
|
||||
|
||||
3. Blogs
|
||||
|
||||
4. Pages
|
||||
|
||||
5. Forums
|
||||
|
||||
6. Events
|
||||
|
||||
7. Job Positions
|
||||
|
||||
8. eLearning Courses
|
||||
|
||||
Publish on all websites
|
||||
-----------------------
|
||||
|
||||
When a new static page is created, it's only made available on that current website. However, you
|
||||
can duplicate it to other websites by going to :menuselection:`Website --> Configuration --> Pages`.
|
||||
|
||||
Then, select the page you wish to duplicate, click *Edit*, and leave the *Website* field empty.
|
||||
|
||||
If you want to duplicate it in just *one* other website, duplicate the page, and select your
|
||||
desired website in the the *Website* field of the newly duplicated page.
|
||||
|
||||
.. image:: publish/multi_website/multi-website-pages.png
|
||||
:align: center
|
||||
:alt: placing a page onto another website
|
||||
|
||||
To efficiently (and quickly) manage your pages, you can click
|
||||
:menuselection:`Pages --> Manage Pages` found on the front-end of the website.
|
||||
|
||||
.. image:: publish/multi_website/manage-pages-drop-down.png
|
||||
:align: center
|
||||
:alt: manage pages drop-down menu option
|
||||
|
||||
That takes you to a page with all your web pages and you can edit/modify them in a number of
|
||||
different ways.
|
||||
|
||||
.. image:: publish/multi_website/multi-website-manage-pages.png
|
||||
:align: center
|
||||
:alt: the manage pages section on the front-end
|
||||
|
||||
.. tip::
|
||||
By grouping pages by URL in the page manager, you quickly find the original page behind
|
||||
each edited page.
|
||||
|
||||
.. image:: publish/multi_website/multi_website10.png
|
||||
:align: center
|
||||
:alt: detailed look at the manage pages section
|
||||
|
||||
Multiple companies
|
||||
------------------
|
||||
|
||||
If you are working in a multi-company environment, each website can be linked to a specific
|
||||
company in your system.
|
||||
|
||||
To link each website to a specific company, go to
|
||||
:menuselection:`Website application --> Configuration --> Settings` and select which company
|
||||
you'd like to link to this website, located in the *Website* section.
|
||||
|
||||
.. image:: publish/multi_website/multi_website16.png
|
||||
:align: center
|
||||
:alt: choose which website to designate to a company
|
||||
|
||||
With such a configuration in place, only company-related data will appear on that website (products,
|
||||
jobs, events, etc.).
|
||||
|
||||
Website editors can only view and edit pages of records they have access to, which is typically
|
||||
only the ones that belong to their current company (and to their subsidiaries, or child companies
|
||||
in Odoo language).
|
||||
|
||||
.. note::
|
||||
If websites are multi-companies, you don’t change the company when switching websites. To
|
||||
change the company, and see the related content, use the company selector in the menu.
|
||||
|
||||
.. image:: publish/multi_website/different-company-drop-down.png
|
||||
:align: center
|
||||
:alt: company selector drop-down menu
|
||||
|
||||
Configure eCommerce website
|
||||
---------------------------
|
||||
|
||||
eCommerce is a crucial feature for any online business, especially one with multiple websites. Odoo
|
||||
allows users to customize the entire flow (and shopping experience) to cater to the specific
|
||||
audience found on each website.
|
||||
|
||||
Products only available on one website
|
||||
--------------------------------------
|
||||
|
||||
Above, you learned how to publish a specific record on only one website. The process is similar
|
||||
for eCommerce products, as well.
|
||||
|
||||
Simply modify the *Website* field in the eCommerce tab of the product form. And remember, an
|
||||
empty field means it will be available on all websites.
|
||||
|
||||
.. image:: publish/multi_website/multi-website-ecommerce-tab.png
|
||||
:align: center
|
||||
:alt: the ecommerce tab of a pricelist template
|
||||
|
||||
Products available on select websites
|
||||
-------------------------------------
|
||||
|
||||
To make a product available on some websites, but not all of them, you can duplicate the product,
|
||||
and assign it to each website you want it to appear on.
|
||||
|
||||
If you need a unique reference to manage in your inventory, you should install *Manufacturing*
|
||||
and create *Kits* BoMs (Bills of Materials).
|
||||
|
||||
Each kit will link each published “virtual” product to the main reference managed in your inventory.
|
||||
That way, any item sold from your website will be converted into the storable item in the delivery
|
||||
order.
|
||||
|
||||
Pricelists
|
||||
----------
|
||||
|
||||
To manage specific prices by website, go to :menuselection:`Website app --> Configuration -->
|
||||
Settings` and activate *Pricelists* and *Multiple Prices per Product* in the *Pricing* section.
|
||||
Then, hit *Save*.
|
||||
|
||||
.. image:: publish/multi_website/pricelists-setting.png
|
||||
:align: center
|
||||
:alt: specific pricelists setting
|
||||
|
||||
Following that, go to :menuselection:`Website --> Products --> Pricelists` to create additional
|
||||
pricelists. Or you can click on *--> Pricelists* located beneath the *Pricelists* option in the
|
||||
*Pricing* section of the *Website* settings.
|
||||
|
||||
.. image:: publish/multi_website/various-routes-to-pricelists.png
|
||||
:align: center
|
||||
:alt: various routes to get to the pricelists page
|
||||
|
||||
After clicking a pricelist you wish to modify, simply select a website in the *Website* field
|
||||
(found in the *Configuration* tab of the pricelist detail form), and that pricelist becomes
|
||||
exclusively available on that website only.
|
||||
|
||||
.. image:: publish/multi_website/multi-website-pricelist.png
|
||||
:align: center
|
||||
:alt: designate which website is linked to which pricelist
|
||||
|
||||
Leaving the field empty means this pricelist will be available on *all* websites, but it will
|
||||
only be visible to customers if *Selectable* is activated in the pricelist detail form, as well.
|
||||
|
||||
Otherwise, it's only available for backend operations in the *Sales* and *Point of Sale*
|
||||
applications.
|
||||
|
||||
Payment Acquirers and Delivery Methods
|
||||
--------------------------------------
|
||||
|
||||
By default, published payment acquirers and delivery methods are deployed in all websites.
|
||||
|
||||
You could use specific payment acquirers per country (using Geo IP) by defining countries in their
|
||||
configuration. Or, you can do it per website by filling in the *Website* field.
|
||||
|
||||
Customer accounts
|
||||
-----------------
|
||||
|
||||
You can choose how to manage your customer accounts in the settings of the *Website* application.
|
||||
Go to :menuselection:`Website --> Configuration --> Settings` and select *Specific User Account*
|
||||
in the *Website* section.
|
||||
|
||||
Activating this feature forces your user to create a specific account for each of your websites.
|
||||
This comes in handy if your websites shouldn't be related to each other in the visitor's mind.
|
||||
However, you can allow customers to use one account for all your websites, by simply
|
||||
deactivating that feature.
|
||||
|
||||
.. image:: publish/multi_website/multi_website17.png
|
||||
:align: center
|
||||
:alt: specific user account in website settings
|
||||
|
||||
Technical hints for customization
|
||||
---------------------------------
|
||||
|
||||
If you want to publish custom objects on the website, here are a few tips to make it work with
|
||||
multiple websites:
|
||||
|
||||
- **Sitemap**: don’t forget the domain in the route to only publish available records in each
|
||||
website's sitemap.
|
||||
|
||||
- **Access**: you should call the method *can_access_from_current_website* in the controller to
|
||||
make sure the visitor can see a record in the current website.
|
||||
|
||||
- **Search**: when a list of records is displayed, don’t forget to specify the domain to *only*
|
||||
display records available for the current website.
|
||||
|
||||
.. image:: publish/multi_website/multi_website11.png
|
||||
:align: center
|
||||
:alt: coding language of technical customization
|
||||
|
||||
Geo IP installation (on-premises database)
|
||||
==========================================
|
||||
|
||||
.. warning::
|
||||
Please note that the installation depends on your computer's operating system and distribution.
|
||||
In this instance, we will assume that a Linux operating system is being used.
|
||||
|
||||
First, install `geoip2 <https://pypi.org/project/geoip2/>`__ Python library
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install geoip2
|
||||
|
||||
Following that, you need to download the
|
||||
`GeoLite2 City database <https://dev.maxmind.com/geoip/geoip2/geolite2/>`_.
|
||||
|
||||
You will end up with a file called ``GeoLite2-City.mmdb``. Then, move the file to the folder
|
||||
``/usr/share/GeoIP/``
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
mv ~/Downloads/GeoLite2-City.mmdb /usr/share/GeoIP/
|
||||
|
||||
At this point, you need to restart the server.
|
||||
|
||||
.. note::
|
||||
If you can't/don't want to locate the GeoIP database in ``/usr/share/GeoIP/``, you can use the
|
||||
``--geoip-db`` option of the Odoo command line interface. This option takes the absolute path to
|
||||
the GeoIP database file, and uses it as the GeoIP database. For example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./odoo-bin --geoip-db= ~/Downloads/GeoLite2-City.mmdb
|
||||
|
||||
.. seealso::
|
||||
- `CLI documentation <https://www.odoo.com/documentation/14.0/reference/cmdline.html>`_.
|
||||
|
||||
.. warning::
|
||||
``GeoIP`` Python library can also be used. However, this version is discontinued since January
|
||||
2019. See `GeoLite Legacy databases are now discontinued
|
||||
<https://support.maxmind.com/geolite-legacy-discontinuation-notice/>`_
|
||||
|
||||
Test GeoIP Geolocation on Odoo website
|
||||
--------------------------------------
|
||||
|
||||
Go to your website, and open the web page you want to test ``GeoIP``. Then, select
|
||||
:menuselection:`Customize --> HTML/CSS/JS Editor`, and add the following piece of XML in the page:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<h1 class="text-center" t-esc="request.session.get('geoip')"/>
|
||||
|
||||
That leaves you with a dictionary indicating the location of the IP address.
|
||||
|
||||
.. image:: publish/geo_ip_installation/on-premise_geo-ip-installation01.png
|
||||
:align: center
|
||||
:alt: on premise geo-ip installation
|
||||
|
||||
.. note::
|
||||
If the curly braces are empty ``{}``, it can be for any of the following reasons :
|
||||
|
||||
- The browsing IP address is the localhost (``127.0.0.1``) or a local area network one
|
||||
(``192.168.*.*``)
|
||||
- If a reversed proxy is used, make sure to configure it correctly. See `--proxy-mode
|
||||
<https://www.odoo.com/documentation/14.0/reference/cmdline
|
||||
.html#cmdoption-odoo-bin-proxy-mode>`__
|
||||
- ``geoip2`` is not installed, or the GeoIP database file wasn't found
|
||||
- The GeoIP database was unable to resolve the given IP address
|
||||
|
@ -1,120 +0,0 @@
|
||||
=============================
|
||||
How to use my own domain name
|
||||
=============================
|
||||
|
||||
By default, your Odoo Online instance and website have a *.odoo.com* domain name,
|
||||
for both the URL and the emails.
|
||||
But you can change to a custom one (e.g. www.yourcompany.com).
|
||||
|
||||
What is a good domain name
|
||||
==========================
|
||||
Your website address is as important to your branding as the name of your
|
||||
business or organization, so put some thought into changing it for a proper
|
||||
domain. Here are some tips:
|
||||
|
||||
- Simple and obvious
|
||||
- Easy to remember and spell
|
||||
- The shorter the better
|
||||
- Avoid special characters
|
||||
- Aim for a .com and/or your country extension
|
||||
|
||||
Read more: `How to Choose a Domain Name for Maximum SEO <https://www.searchenginejournal.com/choose-a-domain-name-maximum-seo/158951/>`__
|
||||
|
||||
How to buy a domain name
|
||||
========================
|
||||
Buy your domain name at a popular registrar:
|
||||
|
||||
- `GoDaddy <https://www.godaddy.com>`__
|
||||
- `Namecheap <https://www.namecheap.com>`__
|
||||
- `OVH <https://www.ovh.com>`__
|
||||
|
||||
.. note:: Steps to buy a domain name are pretty much straight forward.
|
||||
In case of issue, check out those easy tutorials:
|
||||
|
||||
- `GoDaddy <https://roadtoblogging.com/buy-domain-name-from-godaddy>`__
|
||||
- `Namecheap <https://www.loudtips.com/buy-domain-name-hosting-namecheap//>`__
|
||||
|
||||
Feel free to buy an email server to have email addresses using your domain name.
|
||||
However don't buy any extra service to create or host your website.
|
||||
This is Odoo's job!
|
||||
|
||||
.. _custom_domain:
|
||||
|
||||
|
||||
How to apply my domain name to my Odoo instance
|
||||
===============================================
|
||||
First let's authorize the redirection (yourcompany.com -> yourcompany.odoo.com):
|
||||
|
||||
* Open your Odoo.com account from your homepage.
|
||||
|
||||
.. image:: media/domain_name01.png
|
||||
:align: center
|
||||
|
||||
* Go to the *Manage Databases* page.
|
||||
|
||||
.. image:: media/domain_name02.png
|
||||
:align: center
|
||||
|
||||
* Click on *Domains* to the right of the database you would like to redirect.
|
||||
|
||||
.. image:: media/domain_name03.png
|
||||
:align: center
|
||||
|
||||
* A database domain prompt will appear. Enter your custom domain
|
||||
(e.g. www.yourcompany.com).
|
||||
|
||||
|
||||
.. image:: media/domain_name04.png
|
||||
:align: center
|
||||
|
||||
We can now apply the redirection from your domain name's manager account:
|
||||
|
||||
* Log in to your account and search for the DNS Zones management page.
|
||||
|
||||
* Create a CNAME record *www.yourdomain.com* pointing to *mywebsite.odoo.com*.
|
||||
If you want to use the naked domain (e.g. yourdomain.com), you need to redirect
|
||||
*yourdomain.com* to *www.yourdomain.com*.
|
||||
|
||||
.. note:: Here are some specific guidelines to create a CNAME record:
|
||||
|
||||
- `GoDaddy <https://be.godaddy.com/fr/help/add-a-cname-record-19236>`__
|
||||
- `Namecheap <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/10/how-can-i-set-up-a-cname-record-for-my-domain>`__
|
||||
- `OVH <https://www.ovh.co.uk/g1519.exchange_20132016_how_to_add_a_cname_record>`__
|
||||
|
||||
How to enable SSL (HTTPS) for my Odoo instance
|
||||
==============================================
|
||||
|
||||
Until recently, Odoo users needed to use a third-party CDN service provider such as CloudFlare to enable SSL.
|
||||
|
||||
It is not required anymore: Odoo generates the certificate for you automatically, using integration with `Let's Encrypt Certificate Authority and ACME protocol <https://letsencrypt.org/how-it-works/>`__.
|
||||
In order to get this, simply add your domain name in your customer portal (a separate certificate is generated for each domain name specified).
|
||||
|
||||
.. warning::
|
||||
**Please note that the certificate generation may take up to 24h.**
|
||||
|
||||
If you already use CloudFlare or a similar service, you can keep using it or simply change for Odoo. The choice is yours.
|
||||
|
||||
|
||||
How to make sure that all my URLs use my custom domain?
|
||||
=======================================================
|
||||
|
||||
To set up the root URL of your website and of all the links sent in emails, you can ask an administrator of your database (any user in the *Settings* group) to perform a login from the login screen. It's as simple as that!
|
||||
|
||||
If you want to do it manually, you can go to :menuselection:`Settings --> Technical --> System Parameters` .
|
||||
Find the entry called ``web.base.url`` (you can create it if it does not exist) and enter the full URL of your website, like ``https://www.myodoowebsite.com``.
|
||||
|
||||
.. warning::
|
||||
The URL must include the protocol (``https://`` or ``http://``) and must not end by a slash (``/``).
|
||||
|
||||
If you want to block the root URL update when an administrator logs in, you can add a System Parameter called ``web.base.url.freeze`` with its value set to ``True``.
|
||||
|
||||
|
||||
My website is indexed twice by Google
|
||||
=====================================
|
||||
|
||||
If you set up a custom domain *mydomain.com* name for *mydatabase.odoo.com*,
|
||||
Google indexes your website under both names. This is a limitation of the Odoo cloud platforms/
|
||||
|
||||
.. seealso::
|
||||
|
||||
* :doc:`/applications/productivity/discuss/advanced/email_servers`
|
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 207 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 154 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 228 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 274 KiB |
@ -1,308 +0,0 @@
|
||||
=====================
|
||||
Manage Multi Websites
|
||||
=====================
|
||||
|
||||
.. image:: media/multi_website04.png
|
||||
:align: center
|
||||
|
||||
Odoo’s Multi-Websites opens up broad possibilities of diversification and
|
||||
customer segmentation for your business. A multiplied audience and
|
||||
boosted revenue are now just a few clicks away!
|
||||
|
||||
Each website can work in a fully independent way, with its theme,
|
||||
branding, domain name, header & footer, pages, languages, products, blog
|
||||
posts, forum, slides, events, live chat channels, etc. Let’s go for a
|
||||
tour!
|
||||
|
||||
Setup
|
||||
=====
|
||||
|
||||
To create a new website, go to :menuselection:`Website --> Configuration --> Settings`.
|
||||
The button, *Create a new website*, lays in the first section.
|
||||
|
||||
|
||||
|
||||
.. image:: media/multi_website05.png
|
||||
:align: center
|
||||
|
||||
In the upcoming prompt, set a name for your new website and a specific
|
||||
domain name. Leave empty to publish the new website under the default
|
||||
domain of your Odoo database. You can later set some country groups to
|
||||
redirect visitors to it using Geo IP.
|
||||
|
||||
.. image:: media/multi_website01.png
|
||||
:align: center
|
||||
|
||||
Then, select a theme. This new website might have an entirely different
|
||||
purpose or audience than the first one. So feel free to go for a
|
||||
different theme!
|
||||
|
||||
Once the theme is selected, you can start to build the homepage of your
|
||||
website. Follow the purple drops; they will help you in the first steps.
|
||||
|
||||
.. image:: media/multi_website08.png
|
||||
:align: center
|
||||
|
||||
|
||||
.. note::
|
||||
If you run Odoo Online, don’t forget to redirect any new domain name to your Odoo database
|
||||
(``CNAME``) and to authorize it Odoo-side. See :doc:`domain_name`.
|
||||
|
||||
Create the menu
|
||||
===============
|
||||
|
||||
The new website has a default menu with all the installed applications.
|
||||
To edit it, click :menuselection:`Pages --> Edit Menu`. Moving forward you only edit
|
||||
the menu of the current website.
|
||||
|
||||
Switch from one website to another
|
||||
==================================
|
||||
|
||||
|
||||
As easy as ABC! There is a website switcher in the right corner of the
|
||||
edit bar. Switching to another website will connect to the domain of
|
||||
this website. If you use another domain for the website, the user is
|
||||
requested to sign in.
|
||||
|
||||
.. image:: media/multi_website03.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
When switching, you are redirected to the same domain path on the other website
|
||||
(e.g., ``/shop/myproduct``). If this URL is not used, you will be redirected to a 404 page but
|
||||
prompted to create a new page from there.
|
||||
|
||||
Add features
|
||||
============
|
||||
|
||||
The website apps you install (e.g., Slides, Blogs) are made available on
|
||||
all your websites. You can, of course, keep them hidden in one website by
|
||||
removing the menu item.
|
||||
|
||||
Each website comes with a high range of specific options in the
|
||||
settings. First, select the website to configure.
|
||||
|
||||
.. image:: media/multi_website15.png
|
||||
:align: center
|
||||
|
||||
Then, take a look at the options flagged with the earth icon. It means
|
||||
they only impact the very website you are working on.
|
||||
|
||||
.. image:: media/multi_website12.png
|
||||
:align: center
|
||||
|
||||
You can, for instance, set specific :
|
||||
|
||||
- languages,
|
||||
|
||||
- domain names,
|
||||
|
||||
- social media links,
|
||||
|
||||
- customer portal mode (B2C vs. B2B),
|
||||
|
||||
- dedicated live chat channels,
|
||||
|
||||
- etc.
|
||||
|
||||
The other options are global and apply to all your websites.
|
||||
|
||||
Manage domain names
|
||||
===================
|
||||
|
||||
As said earlier, your websites can either share the same domain name or
|
||||
use a specific one. If you share it and want to adapt the content per
|
||||
region, set country groups in the setting of each website. Visitors will
|
||||
be redirected to the right website using GeoIP.
|
||||
|
||||
.. image:: media/multi_website18.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
Geo IP is installed by default in Odoo Online. If you run Odoo
|
||||
on-premise, don’t forget to install *GeoIP* library.
|
||||
See :doc:`on-premise_geo-ip-installation`
|
||||
|
||||
.. seealso::
|
||||
- :doc:`domain_name`
|
||||
|
||||
Customize the visitor experience
|
||||
================================
|
||||
|
||||
|
||||
The customer experience can be customized very profoundly thanks to the menu
|
||||
\*Customize\*. All the visual options available there are specific to
|
||||
each website. Go through the different pages to adapt them to this new
|
||||
audience. Focus on workflows, and automatic pages (eCommerce checkout,
|
||||
blogs, events, etc.) as the number of available options is higher there.
|
||||
|
||||
.. image:: media/multi_website14.png
|
||||
:align: center
|
||||
|
||||
Publish specific content per website
|
||||
------------------------------------
|
||||
|
||||
|
||||
Like static pages, any content created from the front-end (product, blog
|
||||
post, etc.) is always only published in the current website. You can
|
||||
change that from the edit form view in the backend and leave the
|
||||
*Website* field blank. This will publish it in all the websites.
|
||||
|
||||
.. image:: media/multi_website06.png
|
||||
:align: center
|
||||
|
||||
Here are all the objects that you can link to *either one or all the
|
||||
websites*:
|
||||
|
||||
1. Products
|
||||
|
||||
2. Product Categories for eCommerce
|
||||
|
||||
3. Blogs
|
||||
|
||||
4. Slide Channels
|
||||
|
||||
5. Forums
|
||||
|
||||
6. Events
|
||||
|
||||
7. Job Positions
|
||||
|
||||
.. note::
|
||||
When you create the record from the backend and publish it,
|
||||
typically a product or an event, it is made available in all websites.
|
||||
|
||||
Publish a page in all websites
|
||||
------------------------------
|
||||
|
||||
A new static page is created and only made available in the current
|
||||
website. You can duplicate it to other websites from
|
||||
:menuselection:`Website --> Configuration --> Pages`. To do so, leave the *Website* field empty.
|
||||
|
||||
If you want to duplicate it in just one other website, duplicate the
|
||||
page and set the new website.
|
||||
|
||||
.. image:: media/multi_website09.png
|
||||
:align: center
|
||||
|
||||
When you edit the page again, the change only affects the current
|
||||
website. A new page is duplicated and tied up to the website.
|
||||
The original page still being linked to all websites.
|
||||
|
||||
.. tip::
|
||||
By grouping pages by URL in the page manager, you quickly find
|
||||
the original page behind each edited page.
|
||||
|
||||
.. image:: media/multi_website10.png
|
||||
:align: center
|
||||
|
||||
Multi-companies
|
||||
===============
|
||||
|
||||
Each website can be linked to a specific company of your system, in a
|
||||
multi-companies environment.
|
||||
|
||||
.. image:: media/multi_website16.png
|
||||
:align: center
|
||||
|
||||
With such a configuration, only company-related data appear on the
|
||||
website (products, jobs, events, etc.).
|
||||
|
||||
Website editors can only view and edit the pages of the records they
|
||||
have access to, typically the ones belonging to their current company
|
||||
(and to their subsidiaries, or child companies in Odoo language). And so
|
||||
is it for visitors.
|
||||
|
||||
.. note::
|
||||
If websites are multi-companies, you don’t change company when switching websites. To change the company and see the related content, use the company selector in the menu.
|
||||
|
||||
.. image:: media/multi_website02.png
|
||||
:align: center
|
||||
|
||||
Configure your eCommerce website
|
||||
================================
|
||||
|
||||
eCommerce is a crucial feature in the multi-websites environment. We made it
|
||||
so that the entire flow can be customized to fit the very audience of
|
||||
each website.
|
||||
|
||||
Products only available on one website
|
||||
--------------------------------------
|
||||
|
||||
We already saw earlier how to publish a specific record in only one
|
||||
website. You will find the \*Website\* field in the eCommerce tab of the
|
||||
product edit form. Empty means available in all websites.
|
||||
|
||||
.. image:: media/multi_website13.png
|
||||
:align: center
|
||||
|
||||
Products available on *some* websites
|
||||
-------------------------------------
|
||||
|
||||
To make a product available on some websites, but not all of them, you
|
||||
should duplicate the product for each website.
|
||||
|
||||
If you need a unique reference to manage in your inventory, you should
|
||||
install *Manufacturing\ and create *Kits* BoMs (bills of materials).
|
||||
Each kit will link each published “virtual” product to the main
|
||||
reference managed in your inventory. That way, any item sold from your
|
||||
website will be converted into the storable item in the delivery order.
|
||||
|
||||
Pricelists
|
||||
----------
|
||||
|
||||
To manage specific prices by websites, you can activate *Multiple Sales
|
||||
Prices per Product* in Website settings.
|
||||
|
||||
Then, go to :menuselection:`Website --> Products --> Pricelists` to create additional
|
||||
pricelists. See :doc:`../../ecommerce/maximizing_revenue/pricing`.
|
||||
|
||||
If you need help. Select a website to make a pricelist only available on
|
||||
this website.
|
||||
|
||||
.. image:: media/multi_website07.png
|
||||
:align: center
|
||||
|
||||
Leaving the field empty means that you make it work in all websites if
|
||||
*Selectable* is selected. Otherwise, it makes it only available for
|
||||
backend operations of Sales and Point of Sale applications.
|
||||
|
||||
Payment Acquirers and Delivery Methods
|
||||
--------------------------------------
|
||||
|
||||
By default, published payment acquirers and delivery methods are deployed in all websites.
|
||||
You could already use specific payment acquirers per country using Geo
|
||||
IP by defining countries in their configuration. Now you can also do it
|
||||
per website by filling in the *Website* field.
|
||||
|
||||
Customer accounts
|
||||
-----------------
|
||||
|
||||
There is a setting to choose how to manage customer accounts in Website
|
||||
settings. You can either allow customers to use one account through all
|
||||
the websites or compel them to create one account for each website. This
|
||||
last option is convenient if your websites shouldn’t be related to each
|
||||
other in the visitor mind.
|
||||
|
||||
.. image:: media/multi_website17.png
|
||||
:align: center
|
||||
|
||||
Technical hints for customization
|
||||
=================================
|
||||
|
||||
If you want to publish custom objects on the website, here are a few
|
||||
tips to make it work with multi websites:
|
||||
|
||||
- Sitemap: don’t forget the domain in the route to only publish
|
||||
available records in each website’s sitemap.
|
||||
|
||||
- Access: you should call the method
|
||||
*can_access_from_current_website* in the controller to make
|
||||
sure the visitor can see a record in the current website.
|
||||
|
||||
- Search: when a list of records is displayed, don’t forget to specify
|
||||
the domain to only display records available for the current
|
||||
website.
|
||||
|
||||
.. image:: media/multi_website11.png
|
||||
:align: center
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 64 KiB |