Compare commits

...

19 Commits

Author SHA1 Message Date
Jonathan
bb4689ee98 [IMP] contributing/dev: add cd command to the git config section 2023-04-25 10:15:04 +02:00
Odoo Translation Bot
ba1105bff7 [I18N] Update translation terms from Transifex 2023-04-23 02:40:38 +02:00
Jonathan
5cb7eb5024 [MOV] pos: fiscal_position to "pricing" section
task-3284514

closes odoo/documentation#4236

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-21 23:00:51 +02:00
KC (ksc)
42148acbec [ADD] social marketing: added social marketing documentation to v14
closes odoo/documentation#2554

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-21 21:16:44 +02:00
Jonathan
7b2a178e82 [MOV] pos: restructuration of pos toctree
task-3284514

closes odoo/documentation#4226

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-21 17:52:56 +02:00
John Holton (hojo)
eb067d6dc1 [ADD] Maintenance: add new equipment
closes odoo/documentation#3532

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-18 22:48:53 +02:00
Odoo Translation Bot
7cfedaffc7 [I18N] Update translation terms from Transifex 2023-04-16 02:40:35 +02:00
Zuzanna Luczynska
1cbb06857d [MOV] field service: improve the structure and merge docs
Currently, there are two pages about onsite interventions in two
separate categories. This task aims to merge both pages into a single
one and remove the useless categories.

task-3275322

closes odoo/documentation#4169

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-14 18:37:44 +02:00
Elisabeth Dickinson
c758071861 [IMP] odoo_theme: fix menu links
When searching for a word, if that word happens to be in the menu, the
`display-flex` on the `a` would remove the space around the word because
a `span class=highlight` gets added around it.
Fixed by changing `display-flex` on the `a` to display-block (but
keeping it for `.o_toc_entry_wrapper`)

closes odoo/documentation#4168

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-14 17:45:59 +02:00
Brandon Seltenrich (BRSE)
1289a9ec45 [IMP] inventory: update owned_stock
closes odoo/documentation#3600

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-12 22:52:20 +02:00
Loan (LSE)
6f4822cb2b [IMP] iot: add documentation regarding HTTPS certificate
Also include details/troubleshoot/solutions for redundant
support issues:
 - Error code details for HTTPS certificate generation
   (see: https://github.com/odoo/odoo/pull/114993 )
 - DNS issue with HTTPS domain

 OPW-3227004

closes odoo/documentation#3818

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-12 19:57:11 +02:00
fvz-odoo
5ef339fe82 [l10n_mx] Update exempt tax configuration.
In Mexico there are two 0% taxes, 0% VAT and 0% exempt VAT. This change
makes the tip clearer so users do not confuse both taxes. Forward to
master.

closes odoo/documentation#2515

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-11 17:35:47 +02:00
Jonathan Castillo (jcs)
b0911a00ad [MOV] calendar: "Calendar" app from "Misc" to "Productivity"
To improve the structure of the documentation, the "Miscellaneous"
section should be limited as much as possible.

This commit:
- renames "Calendars" into "Calendar" (as the app name)
- moves the app from the "Miscellaneous" section to the "Productivity"
  section
- fixes the wrong file structure to follow the toc
  (e.g. general/calendars/outlook/outlook_calendar -> productivity/calendar/outlook)

task-3217827

closes odoo/documentation#4032

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-11 16:43:57 +02:00
Elisabeth Dickinson
3056c7b62d [IMP] odoo_theme: design improvements
Revamp of the side menu;
Round all borders for consistency with the buttons;
Improve .sig-* and .o_code elements;
Improve sphinx-tabs hover effect;

task-3046383

closes odoo/documentation#3264

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-11 16:43:55 +02:00
Elisabeth Dickinson
620e3c33ef [IMP] odoo_theme: general cleanup
A general reorganization of the code was needed for more clarity.
The different markup styles have been grouped together under a common
"chapter", comments have been rewritten and example pages have been
added for context.

Some levels have been removed Where there were too many for no reason.
By removing one level of styles (e.g.: `#wrap`) we avoid needing to
force overrides or adding `!important` to our code.
⌙ e.g.: before commit 9ef86cd93d8c6fc0fd96b437f629237e7a562c6e,
`.o_spoilers .accordion-body >:first-child` was being involuntarily
overridden.

task-3046383

Part-of: odoo/documentation#3264
2023-04-11 16:43:54 +02:00
Antoine Vandevenne (anv)
877d1de3c2 [IMP] odoo_theme: tweak the HTML structure of TOC entries
task-3046383

Part-of: odoo/documentation#3264
2023-04-11 16:43:54 +02:00
Antoine Vandevenne (anv)
281a893540 [IMP] extensions/custom_admonitions: tweak the HTML structure of dfn
The structure of the `dfn` role is changed from its default
`<em class="dfn">text</em>` to
`<span class="dfn"><span>text</span></span>` to ease the styling.

task-3046383

Part-of: odoo/documentation#3264
2023-04-11 16:43:54 +02:00
Jonathan Castillo (jcs)
e98cf5f54a [MOV] live chat: structure
task-3269837

closes odoo/documentation#4101

Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-11 15:55:41 +02:00
Jonathan Castillo (jcs)
ce4a0c3e35 [MOV] website: structure
As a first step to update the doc - at last! - we first need to update
its structure.

task-3269837

Part-of: odoo/documentation#4101
2023-04-11 15:55:40 +02:00
344 changed files with 2821 additions and 1440 deletions

View File

@@ -13,7 +13,7 @@ personal email address or an address created by a custom domain.
.. seealso::
- :doc:`/applications/general/auth/azure`
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
- :doc:`/applications/productivity/calendar/outlook`
Setup in Microsoft Azure Portal
===============================

View File

@@ -71,7 +71,7 @@ way to verify the ownership of your domain name is by adding a DNS record. You c
other providers.
.. seealso::
- :doc:`/applications/websites/website/optimize/seo`
- :doc:`/applications/websites/website/pages/seo`
- `Google Search Console Help - Verify your site ownership <https://support.google.com/webmasters/answer/9008080>`_
- `Bing Webmaster Tools - Add and Verify site <https://www.bing.com/webmasters/help/add-and-verify-site-12184f8b>`_

View File

@@ -13,7 +13,7 @@ email address or an address created by a custom domain.
.. seealso::
- :doc:`/applications/general/auth/google`
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
- :doc:`/applications/productivity/calendar/google`
Setup in Google
===============

View File

@@ -72,9 +72,9 @@ POS.
- Sell products without a valid VAT number.
- Use a POS that is not connected to an IoT box.
- The :doc:`cash rounding <../../sales/point_of_sale/shop/cash_rounding>` feature must be activated
and set to a :guilabel:`Rounding Precision` of `0,05` and a :guilabel:`Rounding Method` set as
:guilabel:`Half-Up`.
- The :doc:`cash rounding <../../sales/point_of_sale/pricing/cash_rounding>` feature must be
activated and set to a :guilabel:`Rounding Precision` of `0,05` and a :guilabel:`Rounding Method`
set as :guilabel:`Half-Up`.
- Taxes must be set as included in the price. To set it up, go to :menuselection:`Point of Sale -->
Configuration --> Settings`, and from the :guilabel:`Taxes` section, open the :guilabel:`Default
Sales Tax` form by clicking the arrow next to the default sales tax field. There, click

View File

@@ -174,8 +174,9 @@ Do the same for all the sales taxes that the company needs, either those that co
Odoo, or those that you add that are necessary for your company bill.
.. tip::
For the 0% VAT tax, select the option *Exento* instead of *Tasa* within the **Factor Type**
field.
For the 0% VAT tax, select the option :guilabel:`Tasa` within the :guilabel:`Factor Type` field.
For the 0% VAT **exempt** tax, select the option :guilabel:`Exento` instead of :guilabel:`Tasa`
within the :guilabel:`Factor Type` field.
When registering a payment, Odoo will carry out the movement of taxes from the **Cash Basis
Transition Account** to the account set in the **Definition** tab. For such movement, a tax base

View File

@@ -10,6 +10,5 @@ Miscellaneous
general/export_import_data
general/email_communication
general/voip
general/calendars
general/in_app_purchase
general/developer_mode

View File

@@ -6,5 +6,5 @@ Due to specific requirements in Azure's OAuth implementation, Microsoft Azure OA
is NOT compatible with Odoo at the moment.
.. seealso::
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
- :doc:`../../productivity/calendar/outlook`
- :doc:`/administration/maintain/azure_oauth`

View File

@@ -9,7 +9,7 @@ This is particularly helpful if your organization uses Google Workforce and you
within your organization to connect to Odoo with their Google Accounts.
.. seealso::
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
- :doc:`../../productivity/calendar/google`
- :doc:`/administration/maintain/google_oauth`
.. _google-sign-in/configuration:

View File

@@ -1,11 +0,0 @@
:nosearch:
=========
Calendars
=========
.. toctree::
:titlesonly:
calendars/outlook/outlook_calendar
calendars/google/google_calendar_credentials

View File

@@ -58,4 +58,4 @@ can change the Language to any previously installed language and click
:align: center
.. seealso::
* :doc:`../../websites/website/publish/translate`
* :doc:`../../websites/website/configuration/translate`

View File

@@ -1,45 +1,125 @@
===============================
Manage Stock that you don't own
===============================
=================================================
Consignment: buy and sell stock without owning it
=================================================
Sometimes, suppliers can offer you to store and sell products without
having to buy those items. This technique is called *consignee stock*.
Most of the time, products stored in a company's warehouse are either purchased from suppliers, or
are manufactured in-house. However, suppliers will sometimes let companies store and sell products
in the company's warehouse, without having to buy those items up-front. This is called
*consignment*.
Consignee stock is a great way for manufacturers and suppliers to launch
new products. As resellers may be reluctant to buy a product they are
not sure to be able to sell, consignee stock will allow them to offer an
item to check its market without having to pay for it in the first
place.
Consignment is a useful method for suppliers to launch new products, and easily deliver to their
customers. It's also a great way for the company storing the products (the consignee) to earn
something back for their efforts. Consignees can even charge a fee for the convenience of storing
products they don't actually own.
Of course, Odoo has the ability to manage those consignee stocks through
advanced settings.
Enable the consignment setting
==============================
Configuration
=============
To receive, store, and sell consignment stock, the feature needs to be enabled in the settings. To
do this, go to :menuselection:`Inventory --> Configuration --> Settings`, and under the
:guilabel:`Traceability` section, check the box next to :guilabel:`Consignment`, and then click
:guilabel:`Save` to finish.
To use this feature, go to :menuselection:`Inventory --> Configuration --> Settings` in
the inventory app. Then, enable the *Consignment* feature in the
*Traceability* section. Now, hit save.
.. image:: owned_stock/owned-stock-enable-consignment.png
:align: center
:alt: Enabled Consignment setting in Inventory configuration.
.. image:: owned_stock/owned_stock_01.png
:align: center
Receive (and store) consignment stock
=====================================
Reception of Consignee Stock
============================
When in the *Inventory* app, open the receipts and create a new
reception. On the right side, you will see that a new line called
*Assign Owner* has appeared. There, you can specify the partner which
owns the stock.
.. image:: owned_stock/owned_stock_02.png
:align: center
With the feature enabled in Odoo, consignment stock can now be received into a warehouse. From the
main :menuselection:`Inventory` dashboard, click into the :guilabel:`Receipts`
section. Then, click :guilabel:`Create`.
.. note::
If you are the owner, you can leave the field blank.
Consignment stock is not actually purchased from the vendor; it is simply received and stored.
Because of this, there are no quotations or purchase orders involved in receiving consignment
stock. So, *every* receipt of consignment stock will start by creating manual receipts.
Once the receipt is validated, the products enter your stock but still
belong to the owner. They dont impact your inventory valuation.
Choose a vendor to enter in the :guilabel:`Receive From` field, and then choose the same vendor to
enter in the :guilabel:`Assign Owner` field.
.. image:: owned_stock/owned_stock_03.png
:align: center
.. important::
Since the products received from the vendor will be owned by the same vendor, the
:guilabel:`Receive From` and :guilabel:`Assign Owner` fields must match.
Once the vendor-related fields are set, enter products into the :guilabel:`Product` lines, and set
the quantities to be received into the warehouse under the :guilabel:`Done` column. If the
:guilabel:`Units of Measure` feature is enabled, the :abbr:`UoM (Units of Measure)` can be changed,
as well. Once all the consignment stock has been received, :guilabel:`Validate` the receipt.
.. image:: owned_stock/owned-stock-receipt-fields.png
:align: center
:alt: Matching vendor fields in consignment Receipt creation.
Sell and deliver consignment stock
==================================
Once consignment stock has been received into the warehouse, it can be sold the same as any other
in-stock product that has the :guilabel:`Can Be Sold` option enabled on the product form.
To create a sales order, navigate to the :menuselection:`Sales` app, and from the
:guilabel:`Quotations` overview, click :guilabel:`Create`. Next, choose a customer to enter into the
:guilabel:`Customer` field.
.. note::
The :guilabel:`Customer` *must* be different from the :guilabel:`Vendor` that supplied the
consignment stock received (and stored) in the warehouse.
Add the consignment product under the :guilabel:`Product` column in the order lines, set the
:guilabel:`Quantity`, and fill out any other pertinent product details on the form. Once the
quotation is complete, click :guilabel:`Confirm`.
.. image:: owned_stock/owned-stock-sales-order.png
:align: center
:alt: Sales order of consignment stock.
Once the :abbr:`RFQ (Request for Quotation)` has been confirmed, it will become a sales order. From
here, the products can be delivered by clicking on the :guilabel:`Delivery` smart button, and
selecting :guilabel:`Validate` to validate the delivery.
Traceability and reporting of consignment stock
===============================================
Although consignment stock is owned by the vendor who supplied it, and not by the company storing it
in their warehouse, consignment products will *still* appear in certain inventory reports.
To find inventory reports, go to :menuselection:`Inventory --> Reporting`, and choose a report to
view.
.. note::
Since the consignee does not actually own consigment stock, these products are *not* reflected
in the :guilabel:`Stock Valuation` report, and have no impact on the consignee's inventory
valuation.
Product moves report
--------------------
To view all information about on-hand stock moves, navigate to the the :guilabel:`Product Moves`
dashboard by going to :menuselection:`Inventory --> Reporting --> Product Moves`. For consignment
products, the information in this report is the same as any other product: the history
of its product moves can be reviewed; the :guilabel:`Quantity Done` and :guilabel:`Reference`
document are available; and its :guilabel:`Locations` are available, as well. The consignment stock
will originate from :guilabel:`Partner Location/Vendors`.
.. tip::
To view a consignment product's moves by ownership, select the :guilabel:`Group By` filter,
choose the :guilabel:`Add Custom Group` parameter, and then select :guilabel:`From Owner`, and
:guilabel:`Apply` to finish.
.. image:: owned_stock/owned-stock-moves-history.png
:align: center
:alt: Consignment stock moves history.
.. tip::
To see forecasted units of consignment stock, go to :menuselection:`Inventory --> Reporting -->
Forecasted Inventory`.
Stock on hand report
--------------------
View the :guilabel:`Stock On Hand` dashboard by navigating to :menuselection:`Inventory -->
Reporting --> Inventory Report`. From this report, the :guilabel:`Locations` of all stock on-hand
are displayed, in addition to the quantities per location. For consigment products, the
:guilabel:`Owner` column will be populated with the owner of those products, or the original vendor
who supplied the products in the first place.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

View File

@@ -19,5 +19,6 @@ and allow workers to trigger maintenance operations, feedback loops, quality iss
.. toctree::
:titlesonly:
manufacturing/maintenance
manufacturing/management
manufacturing/quality_control

View File

@@ -0,0 +1,10 @@
:nosearch:
===========
Maintenance
===========
.. toctree::
:titlesonly:
maintenance/add_new_equipment

View File

@@ -0,0 +1,85 @@
=================
Add new equipment
=================
In Odoo, **equipment** refers to any item that is used in everyday operations, including the
manufacturing of products. This can mean a piece of machinery on a production line, a tool that is
used in different locations, or a computer in an office space. Equipment registered in Odoo can be
owned by the company that uses the Odoo database, or by a third party, such as a vendor in the case
of equipment rentals.
Using Odoo **Maintenance**, it is possible to track individual pieces of equipment, along with
information about their maintenance requirements. To add a new piece of equipment, navigate to the
:guilabel:`Maintenance` module, select :menuselection:`Equipments --> Machines & Tools --> Create`,
and configure the equipment as follows:
- :guilabel:`Equipment Name`: the product name of the piece of equipment
- :guilabel:`Equipment Category`: the category that the equipment belongs to; for example,
computers, machinery, tools, etc.; new categories can be created by navigating to
:menuselection:`Configuration --> Equipment Categories` and clicking :guilabel:`Create`
- :guilabel:`Company`: the company that owns the equipment; again, this can be the company that uses
the Odoo database, or a third-party company
- :guilabel:`Used By`: specify if the equipment is used by a specific employee, department, or both;
select :guilabel:`Other` to specify both an employee and a department
- :guilabel:`Maintenance Team`: the team responsible for servicing the equipment; new teams can be
created by navigating to :menuselection:`Configuration --> Maintenance Teams` and
selecting :guilabel:`Create`; the members of each team can also be assigned from this page
- :guilabel:`Technician`: the person responsible for servicing the equipment; this can be used to
assign a specific individual in the event that no maintenance team is assigned or when a specific
member of the assigned team should always be responsible for the equipment; any person added to
Odoo as a user can be assigned as a technician
- :guilabel:`Used in location`: the location where the equipment is used; this is a simple text
field that can be used to specify locations that are not work centers, like an office, for
example
- :guilabel:`Work Center`: if the equipment is used at a work center, specify it here; equipment can
also be assigned to a work center by navigating to :menuselection:`Maintenance --> Equipments -->
Work Centers`, selecting a work center or creating a new one using the :guilabel:`Create` button,
and clicking the :guilabel:`Equipment` tab on the work center form
.. image:: add_new_equipment/new-equipment-form.png
:align: center
:alt: An example of a fully configured new equipment form.
Include additional product information
--------------------------------------
The :guilabel:`Product Information` tab at the bottom of the form can be used to provide further
details about the piece of equipment:
- :guilabel:`Vendor`: the vendor that the equipment was purchased from
- :guilabel:`Vendor Reference`: the reference code assigned to the vendor
- :guilabel:`Model`: the specific model of the piece of equipment
- :guilabel:`Serial Number`: the unique serial number of the equipment
- :guilabel:`Effective Date`: the date that the equipment became available for use; this is used to
calculate the :abbr:`MTBF (Mean Time Between Failures)`
- :guilabel:`Cost`: the amount the equipment was purchased for
- :guilabel:`Warranty Expiration Date`: the date on which the equipment's warranty will expire
.. image:: add_new_equipment/new-equipment-product-information.png
:align: center
:alt: The product information tab for the new piece of equipment.
Add maintenance details
-----------------------
The :guilabel:`Maintenance` tab includes information that can be useful to maintenance teams:
- :guilabel:`Preventive Maintenance Frequency`: specifies how often maintenance should be
performed to prevent equipment failure
- :guilabel:`Maintenance Duration`: the amount of time required to fix the equipment when it fails
- :guilabel:`Expected Mean Time Between Failure`: the average amount of time that the equipment is
expected to operate before failing
.. image:: add_new_equipment/new-equipment-maintenance.png
:align: center
:alt: The maintenance tab for the new piece of equipment.
.. Note::
The :guilabel:`Maintenance` tab also includes sections for :guilabel:`Mean Time Between Failure`,
:guilabel:`Estimated Next Failure`, :guilabel:`Latest Failure`,
and :guilabel:`Mean Time To Repair`. These values are calculated automatically based on
maintenance requests if any exist.
.. tip::
To see the maintenance requests for a piece of equipment, go to the page for the equipment and
select :guilabel:`Maintenance` in the top right corner of the form.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -11,3 +11,4 @@ Marketing
marketing/sms_marketing
marketing/events
marketing/surveys
marketing/social_marketing

View File

@@ -0,0 +1,16 @@
:nosearch:
:show-content:
:hide-page-toc:
:show-toc:
================
Social Marketing
================
.. seealso::
- `Odoo Tutorials: Marketing <https://www.odoo.com/slides/marketing-27>`_
.. toctree::
:titlesonly:
social_marketing/essentials

View File

@@ -0,0 +1,11 @@
:nosearch:
==========
Essentials
==========
.. toctree::
:titlesonly:
essentials/social_essentials
essentials/social_campaigns

View File

@@ -0,0 +1,151 @@
==========================
Social marketing campaigns
==========================
Social marketing campaigns help companies connect directly with the marketplace. These campaigns
are helpful when introducing a new product to customers, explaining the value of a product or
service, or when advertising an upcoming event or product release.
The most effective social marketing campaigns typically involve multiple channels to maximize
content distribution, and Odoo's *Social Marketing* application acts as a singular control center to
monitor, plan, post, track, and analyze all of the various content and content channels within a
single dashboard.
Campaigns page
==============
To access a complete overview of all social marketing campaigns, open the :menuselection:`Social
Marketing` application, and click :menuselection:`Campaigns` from the header menu. Doing so reveals
a separate page with every campaign in a default kanban view.
.. image:: social_campaigns/campaigns-page.png
:align: center
:alt: View of the campaigns page in the Odoo Social Marketing application.
Each *stage* in the kanban view can be edited, by clicking the :guilabel:`gear icon` to the left of
the :guilabel:`+ (plus sign)` - located to the right of the stage title.
.. note::
The **gear icon** *only* appears when the cursor hovers to the left of the **+ (plus sign)**.
When the gear icon is clicked, a drop-down menu reveals the options: :guilabel:`Fold`,
:guilabel:`Edit Stage`, and :guilabel:`Delete`.
.. image:: social_campaigns/campaign-stage-dropdown.png
:align: center
:alt: View of the campaigns page in the Odoo Social Marketing application.
Clicking :guilabel:`Fold` minimizes that specific stage's column. The stage column can be restored
by clicking the folded version of it on the main :guilabel:`Campaigns` dashboard in the default
kanban view.
Selecting :guilabel:`Edit Stage` reveals a pop-up window, in which the name and the sequence of the
stage can be modified. If changes are made, be sure to click :guilabel:`Save`.
Clicking :guilabel:`Delete` removes the stage entirely.
.. note::
To add a new stage to the pipeline, side-scroll to the right on the :guilabel:`Campaigns`
dashboard, click :guilabel:`Add a Column`, enter in the desired information, and click
:guilabel:`Add`.
.. tip::
The same social marketing campaign information on the :guilabel:`Campaigns` dashboard can also be
viewed as a list, by selecting the :guilabel:`List` option, located under the search bar, in the
upper-right corner.
Create social marketing campaigns
=================================
First, open the :menuselection:`Social Marketing` application, and select :guilabel:`Campaigns` from
the header menu.
On the :guilabel:`Campaigns` dashboard, a new campaign can be created by clicking the quick add
:guilabel:`+ (plus sign)` located in the top-right corner of each stage in the pipeline, visible in
the kanban view. Campaigns can also be created by clicking :guilabel:`Create` in the upper-left
corner of the :guilabel:`Campaigns` dashboard.
Both options reveal a new campaign detail window directly on the :guilabel:`Campaigns` dashboard
when clicked.
.. image:: social_campaigns/quick-add-campaign.png
:align: center
:alt: View of the quick add option for campaigns in Odoo Social Marketing.
Here, the :guilabel:`Campaign Name`, :guilabel:`Responsible`, and :guilabel:`Tags` can be entered.
When all modifications are complete, click :guilabel:`Add` to add the campaign to the database.
Edit social marketing campaigns
===============================
In order to edit a campaign in greater detail, and create/send various forms of communications
related to it, the template page for that campaign must be accessed and modified, accordingly.
There are multiple ways to access a template page for a campaign.
- After entering the pertinent information in the :guilabel:`Quick Add` campaign drop-down, click
:guilabel:`Edit`.
- Simply select the desired campaign from the :guilabel:`Campaigns` dashboard in list or kanban
view.
- On the :guilabel:`Campaigns` dashboard in the kanban view, select the :guilabel:`⋮ (three dots)`
drop-down menu on the desired campaign, and select :guilabel:`Edit`.
Any of the above routes will reveal the *Campaign Template* page for that specific campaign.
Social marketing campaign templates
===================================
On a *Campaign Template* page, numerous elements can be customized/modified, and various forms of
communications can be created, modified, and sent or scheduled. Below is a sample of a completed
campaign template.
.. image:: social_campaigns/create-campaign.png
:align: center
:alt: View of a sample campaign template page in Odoo Social Marketing.
.. important::
In order for the :guilabel:`Send New Mailing` option to appear on campaign templates, make sure
the *Mailing Campaigns* feature is enabled in the *Email Marketing* app. To do that, navigate to
:menuselection:`Email Marketing --> Configuration --> Settings`, activate :guilabel:`Mailing
Campaigns`, and click :guilabel:`Save`.
.. note::
In order for the :guilabel:`Send SMS` option to appear, the Odoo *SMS Marketing* application must
be installed on the database.
Add content and communications to campaigns
===========================================
If the proper settings and applications are installed (as instructed above), there are four forms
of communication/content options that can be added to campaigns. Each of these options are displayed
as buttons in the upper-left corner of the campaign template page.
- :guilabel:`Send New Mailing`: reveals a blank email template on a separate page, in which the
message can be fully customized in a variety of ways.
- :guilabel:`Send SMS`: reveals a blank SMS template on a separate page, in which a SMS
communication can be created and configured.
- :guilabel:`Send Social Post`: reveals a blank social post template on a separate page, in which
a post can be created, and applied to social media accounts that are already connected to the
database.
- :guilabel:`Push Notification`: reveals a similar blank social post template on a separate page,
however, the :guilabel:`Push Notification` options are already pre-selected in the :guilabel:`Post
on` field.
Whichever form of communication is created, once it's completed, Odoo returns to the
:guilabel:`Campaign Template` page, showcasing that new content in its corresponding tab (e.g.
:guilabel:`Mailings`, :guilabel:`SMS`, :guilabel:`Social Media`, and/or :guilabel:`Push
Notifications`).
As content and communications are added to a campaign, tabs for those specific mediums appear,
along with a variety of analytical smart buttons (e.g. :guilabel:`Revenues`, :guilabel:`Quotations`,
:guilabel:`Leads`, etc.).
These smart buttons, located at the top of the template, display different metrics related to the
campaign, and its various communications and content. Clicking any smart button reveals a separate
page dedicated to that particular element of the campaign, allowing for quicker, more organized
analysis.
.. note::
The Odoo *Social Marketing* app is integrated with other Odoo applications, such as *Sales*,
*Invoicing*, *CRM*, and *Website*.
.. seealso::
:doc:`/applications/marketing/social_marketing/essentials/social_essentials`

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,345 @@
===========================
Social marketing essentials
===========================
Odoo's *Social Marketing* helps content marketers create and schedule posts, manage various social
media accounts, analyze content effectiveness, and engage directly with social media followers in
one, centralized location.
Add social media accounts
=========================
In order to create posts, each social media account must be added as a stream in the Odoo *Social
Marketing* application.
Add a social media stream
-------------------------
Add a social media account as a stream by navigating to :menuselection:`Social Marketing` and then
select the :guilabel:`Add A Stream` button located in the upper left corner
When :guilabel:`Add A Stream` is clicked, the following pop-up appears, displaying the different
social media outlets to choose from.
.. image:: social_essentials/social-add-streams.png
:align: center
:alt: View of the pop-up that appears when 'Add a Stream' is selected in Odoo.
.. note::
Additional social media outlet options are available depending on your version of Odoo.
From this pop-up, select a social media option: :guilabel:`Facebook`, :guilabel:`LinkedIn`, or
:guilabel:`Twitter`.
Then, Odoo navigates directly to that specific social media outlet's authorization page, where
permission must be granted, in order for Odoo to add that particular social media account to the
*Social Marketing* application as a stream on the main dashboard of the app.
.. note::
A Facebook page can be added as long as the Facebook account that grants permission is the
administrator for the page. Also, different pages can be added for different streams.
Once permission is granted, Odoo navigates back to the :guilabel:`Feed` on the main
:guilabel:`Social Marketing` dashboard, and a new column with that account's posts are automatically
added.
From here, new accounts and/or streams can be added and managed at any time.
.. image:: social_essentials/feed.png
:align: center
:alt: Example of how a populated stream-filled dashboard looks in Odoo Social Marketing
.. note::
Adding social media accounts to the feed also links that specific social media platform's KPIs
(if the platform has them). To get redirected to the statistics and metrics related to any social
account, click on :guilabel:`Insights`.
.. image:: social_essentials/insights.png
:align: center
:alt: The insights link that can be accessed for each social media stream added in Odoo.
Create and publish social media posts in Odoo
=============================================
To create content for social media accounts in the :menuselection:`Social Marketing` application,
click the :guilabel:`New Post` button located in the upper-left corner of the main dashboard, or
navigate to :menuselection:`Posts --> Create` from the header menu.
Either route reveals a blank post template page that can be customized and configured in a number
of different ways.
.. image:: social_essentials/social-create-post.png
:align: center
:alt: How to create a social media post directly through Odoo
Post template
-------------
The post template page has many different options avaiable.
'Your Post' section
~~~~~~~~~~~~~~~~~~~
The first option is the :guilabel:`Post on` field. This is where it's determined on what social
media account(s), or on which website(s) via push notification, this post will be published.
.. important::
In order for the :guilabel:`Push Notification` option to appear, make sure the *Enable Web Push
Notifications* feature is enabled in the *Website* app. To do that, navigate to
:menuselection:`Website --> Configuration --> Settings`, activate :guilabel:`Enable Web Push
Notifications`, fill out the corresponding fields, and click :guilabel:`Save`.
Odoo automatically provides every available social media account that's been linked to the database
as an option in this section, as well.
.. note::
If a social media account hasn't been added as a stream to the *Social Marketing* application, it
will not appear as an option on the post template.
Next, there's the :guilabel:`Message` field. This is where the main content of the post is created.
Type the desired message for the post in this field. To the right, as the :guilabel:`Message` field
is populated, Odoo displays visual samples of how the post will look on all the previously selected
social media accounts from the :guilabel:`Post on` field above.
.. tip::
Emojis can also be added directly to the text in the :guilabel:`Message` field. Just click the
:guilabel:`emoji (smiley face) icon`, located on the line of the :guilabel:`Message` field to the
far right. Clicking this icon reveals a drop-down containing numerous emojis to choose from.
If images are to be used in the post, click the :guilabel:`ATTACH IMAGES` link beneath the
:guilabel:`Message` field, and Odoo reveals a pop-up window. In this pop-up, the desired image must
be chosen, and then uploaded.
A preview of the entire post, text and image (if applicable), is instantly displayed in the visual
preview of the post.
Next, there's the option to attach this post to a specific marketing campaign in the database in
the :guilabel:`Campaign` field. Click the blank line next to :guilabel:`Campaign` to reveal the
previously configured campaigns to choose from.
.. tip::
A new campaign can be created, as well, by typing the name of the new campaign on the blank
:guilabel:`Campaign` field, and selecting :guilabel:`Create` from the drop-down field menu. Or,
select :guilabel:`Create and edit` from the menu to further customize that newly-created
campaign.
.. note::
A social post does *not* need to be attached to a campaign.
Then, in the :guilabel:`When` field, choose either :guilabel:`Send Now` to have Odoo publish the
post immediately, or :guilabel:`Schedule later` to have Odoo publish the post at a later date and
time.
If :guilabel:`Schedule later` is selected, Odoo reveals a new field beneath it (the
:guilabel:`Scheduled post date` field). Clicking that empty field reveals a pop-up calendar, in
which a future date and time is designated. At which time, Odoo will promptly publish the post on
the pre-determined social media accounts.
Click on the desired date to schedule the post for that day. Then, either select and customize
the default time in the :guilabel:`Scheduled post date` field manually. Or, adjust the desired post
time, by clicking the :guilabel:`scheduling (clock) icon` located on the calendar pop-up, and choose
the desired time for Odoo to publish this post on that future date.
If scheduling a post, remember to hit :guilabel:`Schedule` in the upper left of the post template.
Doing so, locks in that specific date/time for Odoo to send the post, and it changes the status of
the post to :guilabel:`Scheduled`.
.. note::
Also, when :guilabel:`Schedule` is clicked, a number of analytical smart buttons appear on the
post page. Each one offers up a detailed anaylsis of the corresponding metric (e.g.
:guilabel:`Leads`, :guilabel:`Revenues`, etc.). These same smart buttons appear when a post is
officially published, as well.
'Web Notification Options' section
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If any :guilabel:`Push Notifications` are selected in the :guilabel:`Post on` field, Odoo provides
another section of settings/options at the bottom of the post template. It should be noted that
*none* of these fields are required.
The first field is for a :guilabel:`Push Notification Title`. This is text that is displayed as the
title of the push notification whenever it's sent. Odoo displays a visual preview of this title, if
one is created.
To designate a specific page on the website that should trigger this push notification, enter that
page's URL in the :guilabel:`Push Target URL` field. Then, once a visitor reaches that specific
page, Odoo will display the push notification.
Below that field is the option to add a custom :guilabel:`Push Icon Image`. This is an icon that
appears beside the push notification. By default, Odoo uses a "smiley face" as the icon.
To upload a new image, click the :guilabel:`Edit (pencil) icon` when the :guilabel:`Push Icon Image`
field is hovered over with the cursor. Then, proceed to locate and upload the desired image, and
Odoo automatically displays a preview of how the icon will appear on the push notification.
Next, there is the option to :guilabel:`Send at Visitors' Timezone`. If enabled, Odoo will send it
at the appropriate, pre-determined time, taking the visitor's location into consideration.
Save, post, and test notification options
-----------------------------------------
When all the modifications have been made, and the post is completed, either click :guilabel:`Save`
to save the post as a *Draft*. Or, if the post is ready to be published immediately, click
:guilabel:`Post`, and Odoo automatically publishes the post on the pre-determined social media
accounts.
There is also the option to :guilabel:`Test Notification`, if a :guilabel:`Push Notification` was
selected in the :guilabel:`Post on` field. Clicking that, provides a quick example of how the
notification will appear for visitors.
Social post status bar
----------------------
In the top-right of the :guilabel:`Post Template` page is the :guilabel:`Status Bar`. This displays
the current status of the post.
When :guilabel:`Save` is clicked, the post is in the *Draft* status.
If the post is scheduled to be sent at a future date/time, and the :guilabel:`Schedule` button has
been clicked, the status of the post is *Scheduled*.
If the post is in the process of currently being published or sent, the status of the post is
*Posting*. And, lastly, if the post has already been published or sent, the status is *Posted*.
Posts page
==========
To see a complete overview of posts, go to Odoo :menuselection:`Social Marketing`, and click
:menuselection:`Posts` in the header menu. Here, every post that has been created and posted with
Odoo is available.
There are four different view options for :guilabel:`Posts` page data: *kanban*, *calendar*, *list*,
and *pivot*. The view options are located in the upper right corner of the :guilabel:`Posts` page,
beneath the search bar.
.. tabs::
.. tab:: Kanban view
By default, Odoo displays the posts in a kanban view. The information on this page can be
sorted even further, via the :guilabel:`Filters` and :guilabel:`Group by` drop-down menu.
.. image:: social_essentials/posts-page.png
:align: center
:alt: Kanban view of the posts page in the Odoo Social Marketing application.
.. tab:: Calendar view
The calendar view option displays a visual representation in a calendar format of when posts
were published, or are scheduled to be published. This option provides a clear overview of any
planned day, week, or month, and Odoo displays all drafted, scheduled, and published posts.
.. image:: social_essentials/calendar-view.png
:align: center
:alt: Example of the calendar view in Odoo Social Marketing.
.. tab:: List view
The list view option is similar to the kanban option, but instead of individual blocks, all
the post information is displayed in a clear, list layout. Each line of the list displays the
:guilabel:`Social Accounts`, :guilabel:`Message`, and :guilabel:`Status` of every post.
.. image:: social_essentials/list-view.png
:align: center
:alt: View of the list option on the posts page in Odoo Social Marketing.
.. tab:: Pivot view
The pivot view option provides a fully customizable grid table, where different measures of
data can be added and analyzed.
.. image:: social_essentials/pivot-view.png
:align: center
:alt: View of the pivot option on the posts page in Odoo Social Marketing.
The pivot view option provides numerous analytical options, allowing for in-depth, detailed
analysis of various posts.
Click on any :guilabel:`+ (plus sign) icon` next to a line in the pivot table to reveal more metric
options to add to the grid.
While in the pivot view, the option to :guilabel:`Insert in Spreadsheet` is available, located
to the right of the :guilabel:`Measures` drop-down.
When clicked, a pop-up appears, where the option to add this information to a current
spreadsheet is available. The option to create a new spreadsheet for this information
on-the-fly is also available in this pop-up, as well.
Next to the :guilabel:`Insert in Spreadsheet` are three view options, specific to the pivot
view.
From left to right, the options are:
- :guilabel:`Flip Axis`, which switches the *X* and *Y* axis in the grid table.
- :guilabel:`Expand All`, which expands each line in the grid, revealing more detailed
information related to it.
- :guilabel:`Download`, which, when clicked, instantly downloads the pivot table as a
spreadsheet.
Visitors
========
To see a complete overview of all the people who have visited the website(s) connected to the
database, navigate to :menuselection:`Social Marketing --> Visitors` in the header menu.
.. image:: social_essentials/visitors.png
:align: center
:alt: View of the Visitors page in the Odoo Social Marketing application.
Here, Odoo provides a detailed layout of all the visitors' pertinent information in a default
kanban view. This same information can be sorted via the :guilabel:`Filters` and :guilabel:`Group
By` options.
The visitor data can also be viewed as a list or a graph. Those view options are located in the
upper-right corner of the :guilabel:`Visitors` page beneath the search bar.
Social media page
=================
Go to :menuselection:`Configuration --> Social Media` to see a collection of all social media
options: :guilabel:`Facebook`, :guilabel:`LinkedIn`, :guilabel:`Twitter`, and :guilabel:`Push
Notifications`.
.. image:: social_essentials/social-media-page.png
:align: center
:alt: View of the social media page in the Odoo Social Marketing application.
If no account has been linked to any particular social media, click :guilabel:`Link Account` to
proceed through the linking process.
Social accounts page
====================
To see a list of all social accounts linked to the database, go to :menuselection:`Configuration -->
Social Accounts`. This page will display the :guilabel:`Medium Name` and the :guilabel:`Social
Media` platform it is associated with.
.. image:: social_essentials/social-accounts-page.png
:align: center
:alt: View of the social accounts page in the Odoo Social Marketing application.
To edit/modify any social accounts, simply select the desired account from the list on this page,
and proceed to make any adjustments necessary. Don't forget to hit :guilabel:`Save` to secure any
changes.
Social streams page
===================
Navigate to :menuselection:`Configuration --> Social Streams` to reveal a separate page containing
all of the social media streams that have been added to the main dashboard of the *Social Marketing*
app, accessible via the :guilabel:`Feed` option in the header menu.
.. image:: social_essentials/social-streams-page.png
:align: center
:alt: View of the social accounts page in the Odoo Social Marketing application.
Here, the social stream information is organized in a list with the :guilabel:`Social Media`, the
:guilabel:`Title` of the stream, and the :guilabel:`Type` of the stream (e.g. :guilabel:`Posts`,
:guilabel:`Keyword`, etc.).
To modify any stream's information, simply click the desired stream from the list, and proceed to
make any necessary adjustments. Don't forget to hit :guilabel:`Save` to secure any changes.
.. seealso::
:doc:`/applications/marketing/social_marketing/essentials/social_campaigns`

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -8,5 +8,6 @@ Productivity
.. toctree::
productivity/discuss
productivity/calendar
productivity/iot
productivity/studio

View File

@@ -1,10 +1,11 @@
:nosearch:
========
Helpdesk
Calendar
========
.. toctree::
:titlesonly:
helpdesk/plan_onsite
calendar/outlook
calendar/google

View File

@@ -1,6 +1,6 @@
=====================================
Synchronize Google Calendar with Odoo
=====================================
===============================
Google Calendar synchronization
===============================
Synchronize Google Calendar with Odoo to see and manage meetings from both platforms (updates go
in both directions). This integration helps organize your schedule so you never miss a meeting.
@@ -25,7 +25,7 @@ Begin by creating a new Google API project and enabling the Google Calendar API.
Next, click :guilabel:`Select a project` and select or create an API project to store credentials.
.. image:: google_calendar_credentials/new-api-project.png
.. image:: google/new-api-project.png
:align: center
:alt: Create a new API project to store credentials.
@@ -34,14 +34,14 @@ Next, click :guilabel:`Select a project` and select or create an API project to
Then, open the API Project and click :guilabel:`Enable APIs and Services`.
.. image:: google_calendar_credentials/enable-apis-services.png
.. image:: google/enable-apis-services.png
:align: center
:alt: Enable APIs and Services on the API Project.
After that, search for *Google Calendar API* using the search bar and select :guilabel:`Google
Calendar API` from the search results. Click :guilabel:`Enable`.
.. image:: google_calendar_credentials/enable-google-cal-api.png
.. image:: google/enable-google-cal-api.png
:align: center
:alt: Enable the Google Calendar API.
@@ -55,7 +55,7 @@ four steps to create your API credentials.
- In the first step, :guilabel:`Credential Type`, select the :guilabel:`Google Calendar API` and
:guilabel:`User Data` options. Then, click :guilabel:`Next`.
.. image:: google_calendar_credentials/credential-type.png
.. image:: google/credential-type.png
:align: center
:alt: Select Google Calendar API and User Data for the Credential Type.
@@ -76,7 +76,7 @@ four steps to create your API credentials.
your company's Odoo URL address followed by */google_account/authentication*. Finally, click
:guilabel:`Create` and :guilabel:`Done`.
.. image:: google_calendar_credentials/uri.png
.. image:: google/uri.png
:align: center
:alt: Add the authorized JavaScript origins and the authorized redirect URIs.
@@ -94,7 +94,7 @@ Next, locate the credentials you just created for the Google Calendar API. Then,
:guilabel:`Edit OAuth Client` (the pencil icon). The page will redirect to the edit page, where you
can view the Client ID and the Client Secret.
.. image:: google_calendar_credentials/edit-oauth-2.png
.. image:: google/edit-oauth-2.png
:align: center
:alt: Click Edit OAuth Client to view the credential details.
@@ -105,7 +105,7 @@ Once the Client ID and the Client Secret are located, open the Odoo database and
:menuselection:`Settings --> General Settings --> Integrations --> Google Calendar`. Check the box
next to :guilabel:`Google Calendar`.
.. image:: google_calendar_credentials/settings-google-cal.png
.. image:: google/settings-google-cal.png
:align: center
:alt: The Google Calendar checkbox in General Settings.
@@ -116,7 +116,7 @@ page into their respective fields below the :guilabel:`Google Calendar` checkbox
Finally, open the Calendar module in Odoo and click on the :guilabel:`Google` sync button to sync
Google Calendar with Odoo.
.. image:: google_calendar_credentials/sync-google.png
.. image:: google/sync-google.png
:align: center
:alt: Click the Google sync button in Odoo Calendar to sync Google Calendar with Odoo.
@@ -124,12 +124,12 @@ Google Calendar with Odoo.
The first time you sync your Google Calendar with Odoo, the page will redirect to your Google
Account. Click :guilabel:`OK` and :guilabel:`Allow` to authorize Odoo to access Google Calendar.
.. image:: google_calendar_credentials/trust-odoo.png
.. image:: google/trust-odoo.png
:align: center
:alt: Give Odoo permission to access Google Calendar.
Now, Odoo Calendar is successfully synced with Google Calendar!
.. image:: google_calendar_credentials/successful-sync.png
.. image:: google/successful-sync.png
:align: center
:alt: Successfully sync between Odoo and Google Calendar.

View File

@@ -1,6 +1,6 @@
======================================
Synchronize Outlook Calendar with Odoo
======================================
================================
Outlook Calendar synchronization
================================
Synchronizing a user's Outlook Calendar with Odoo is useful for keeping track of their tasks and
appointments across all related applications.
@@ -33,7 +33,7 @@ URI (URL) followed by `/microsoft_account/authentication`.
Enter `https://www.companyname.odoo.com/microsoft_account/authentication` for the
:guilabel:`Redirect URI`.
.. image:: outlook_calendar/azure-register-application.png
.. image:: outlook/azure-register-application.png
:align: center
:alt: The "Supported account type" and "Redirect URI" settings in the Microsoft Azure AD portal.
@@ -58,27 +58,27 @@ Configuration in Odoo
In the Odoo database, go to :menuselection:`Settings --> General Settings --> Integrations` and
activate the :guilabel:`Outlook Calendar` setting.
.. image:: outlook_calendar/outlook-calendar-setting.png
.. image:: outlook/outlook-calendar-setting.png
:align: center
:alt: The "Outlook Calendar" setting activated in Odoo.
From the Microsoft Azure portal, under the :guilabel:`Overview` section of the application, copy
the :guilabel:`Application (Client) ID`, and paste it into the :guilabel:`Client ID` field in Odoo.
.. image:: outlook_calendar/client-id.png
.. image:: outlook/client-id.png
:align: center
:alt: The "Client ID" in the Microsoft Azure portal.
In the Microsoft Azure portal, under the :guilabel:`Certificates & secrets` section, copy the
:guilabel:`Client Secret Value` and paste it into the :guilabel:`Client Secret` field in Odoo.
.. image:: outlook_calendar/client-secret-value.png
.. image:: outlook/client-secret-value.png
:align: center
:alt: The "Client Secret" token to be copied from Microsoft to Odoo.
Finally, on the Odoo :menuselection:`Settings --> General Settings` page, click :guilabel:`Save`.
.. _outlook_calendar/sync_with_outlook:
.. _outlook/sync:
Sync with Outlook
=================
@@ -125,7 +125,7 @@ In the Odoo database, go to the :guilabel:`Calendar` module and click the :guila
button. The page will redirect to a Microsoft login page, and the user is asked to log in to
their account, if they are not already, and grant the required permissions.
.. image:: outlook_calendar/outlook-sync-button.png
.. image:: outlook/outlook-sync-button.png
:align: center
:alt: The "Outlook" sync button in Odoo Calendar.
@@ -134,11 +134,11 @@ The synchronization is a two-way process, meaning that events are reconciled in
.. note::
All users that want to use the synchronization simply need to :ref:`sync their calendar with
Outlook <outlook_calendar/sync_with_outlook>`. The configuration of Microsoft's Azure account
Outlook <outlook/sync>`. The configuration of Microsoft's Azure account
is only done once, as Azure AD tenants' Client IDs and Client Secrets are unique, and represent
an organization that helps the user to manage a specific instance of Microsoft cloud services
for their internal and external users.
.. seealso::
- :doc:`../../../sales/crm/optimize/outlook_extension`
- :doc:`../google/google_calendar_credentials`
- :doc:`../../sales/crm/optimize/outlook_extension`
- :doc:`google`

View File

@@ -12,4 +12,3 @@ Internet of Things (IoT)
iot/config
iot/devices
../sales/point_of_sale/payment

View File

@@ -10,5 +10,6 @@ Configuration
config/connect
config/pos
config/https_certificate_iot
config/flash_sdcard
config/troubleshooting

View File

@@ -0,0 +1,260 @@
.. _iot/https_certificate_iot:
=======================
HTTPS certificate (IoT)
=======================
What is HTTPS?
==============
*Hypertext Transfer Protocol Secure* (HTTPS) is the secure version of *Hypertext Transfer Protocol*
(HTTP), which is the primary protocol used to send data back and forth between a web browser and a
website. :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is encrypted in order to increase the
security of data transfer.
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` uses an encryption protocol to encrypt
communications. The protocol is called *Transport Layer Security* (TLS), although formerly it was
known as *Secure Sockets Layer* (SSL).
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` occurs based upon the transmission of :abbr:`TLS
(Transport Layer Security)`/:abbr:`SSL (Secure Sockets Layer)` certificates, which verify that a
particular provider is who they say they are.
.. note::
In this documentation and throughout Odoo the term "HTTPS certificate" will be used to define the
fact that the :abbr:`SSL (Secure Sockets Layer)` certificate is valid and allows a :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` connection.
Why is it needed?
-----------------
In order to communicate with certain network devices (in particular for payment terminals), the
usage of :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is mandatory. If the :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` certificate isn't valid, some devices won't be able to
interact with the :abbr:`IoT (Internet of Things)` Box.
How to obtain a Hypertext Transfer Protocol Secure (HTTPS) certificate
======================================================================
The generation of the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate is automatic.
The :abbr:`IoT (Internet of Things)` Box will send a specific request to `<https://www.odoo.com>`_
which will send back the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate if the
:abbr:`IoT (Internet of Things)` box and database are eligible.
.. _iot/iot-eligibility:
Internet of Things (IoT) eligibility
------------------------------------
#. The database should be a **production** instance. The database instance should not be a copy, a
duplicate, a staging, or a development environment.
#. The Odoo subscription must:
- Have an :guilabel:`IoT Box Subscription` line.
- :guilabel:`Status` must be :guilabel:`In Progress`.
If the subscription is linked to a `<https://www.odoo.com>`_ portal user check the information
on the portal subscription page.
.. figure:: https_certificate_iot/sub-example-in-progress.png
:align: center
:alt: Odoo.com portal subscriptions filtered by "in progress".
In this case, both subscriptions are considered "in progress" as the :guilabel:`Filter By\:
In Progress` was used.
.. note::
If the subscription is in question, contact the database's Account Manager or Partner
regarding the matter.
Troubleshooting Hypertext Transfer Protocol Secure (HTTPS) certificate errors
=============================================================================
If anything goes wrong during the process of the "HTTPS certificate" generation or reception, a
specific error will code be given on the :abbr:`IoT (Internet of Things)` box home page.
.. tip::
Accessing the :abbr:`IoT (Internet of Things)` box homepage will check for the presence of the
"HTTPS certificate" and will attempt its generation if it is missing. As such, if there is an
error on the :abbr:`IoT (Internet of Things)` box home page, refresh the :abbr:`IoT (Internet of
Things)` home page to see if the error disappears.
`ERR_IOT_HTTPS_CHECK_NO_SERVER`
-------------------------------
Reason:
The configuration regarding the server is missing. In other words, the Odoo instance is not
connected with the IoT box.
Solution:
Ensure that the server is configured.
.. seealso::
:doc:`/applications/productivity/iot/config/connect`
`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`
-----------------------------------------
Reason:
An unhandled error happened when trying to read the existing :abbr:`HTTPS (Hypertext Transfer
Protocol Secure)` certificate.
Solution:
Ensure that the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate file is readable.
`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`
----------------------------------
Reason:
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing.
Solution:
Ensure that both values are configured as intended. To modify them, go to the :abbr:`IoT
(Internet of Things)` box home page, and navigate to :guilabel:`Credential`.
`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`
--------------------------------------
Reason:
An unexpected error happened when the :abbr:`IoT (Internet of Things)` box tried to reach
`<https://www.odoo.com>`_. The causes are likely due to the network
infrastructure/configuration:
- The :abbr:`IoT (Internet of Things)` box does not have access to internet.
- The network does not allow the :abbr:`IoT (Internet of Things)` box to communicate with
`<https://www.odoo.com>`_. This may be due to network devices preventing the communication
(firewalls, etc.) or the network configuration (:abbr:`VPN (Virtual Private Network)`,
etc.).
.. note::
More information regarding the error that occurred can be found in the full request
exception details, which are in the :abbr:`IoT (Internet of Things)` box logs.
Solution:
.. warning::
Consult with your system or network administrator should this issue arise. This error code
depends on the network infrastructure and goes beyond :doc:`Odoo support's service scope
</services/support/what_can_i_expect>`.
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS`
-----------------------------------
Reason:
The IoT-box was able to reach `<https://www.odoo.com>`_ but received an unusual
`HTTP response (status codes)
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Status>`_.
This error code will also give the HTTP response status codes. For example, if the error reads
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS 404` it means that the page returned a 404 error, which is
the "Page Not Found" code.
Solution:
Check if `<https://www.odoo.com>`_ is down using a web browser, as it's possible that it is down
due to maintenance.
- If `<https://www.odoo.com>`_ is down due to maintenance, unfortunately there is nothing that
can be done but instead wait for it to recover.
- If `<https://www.odoo.com>`_ is not down due to maintenance, open a `support ticket
<https://www.odoo.com/help>`_ on the matter. Ensure that the 3 digits status code next to the
code error is included in the support ticket.
`ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT`
--------------------------------------
Reason:
The :abbr:`IoT (Internet of Things)` box was able to reach `<https://www.odoo.com>`_ but it
refused to deliver the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate.
Solution:
Ensure that the :abbr:`IoT (Internet of Things)` box and database are eligible for a
certificate: :ref:`Internet of Things (IoT) eligibility <iot/iot-eligibility>`.
How to ensure that the HTTPS certificate is correct
===================================================
If the certificate has been applied successfully, a new :abbr:`HTTPS (Hypertext Transfer Protocol
Secure)` :abbr:`URL (Uniform Resource Locator)` for the :abbr:`IoT (Internet of Things)` box ending
with `.odoo-iot.com` will appear on the Odoo database, inside of the :menuselection:`IoT`
application on that specific device's form.
.. image:: https_certificate_iot/odoo-new-domain.png
:align: center
:alt: Odoo IoT app IoT box with .odoo-iot.com domain.
When navigating to the :abbr:`URL (Uniform Resource Locator)` in a browser a secured :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)` connection will be established.
.. figure:: https_certificate_iot/secured-connection.png
:align: center
:alt: Example of valid SSL certificate details on the browser.
Padlock in Chrome on Windows 10 attesting the fact that the connection is secured in :abbr:`HTTPS
(Hypertext Transfer Protocol Secure)`.
The IoT-box homepage will now display an `OK` status next to `HTTPS certificate`. The
drop-down menu icon, when clicked, will reveal information regarding the certificate.
.. image:: https_certificate_iot/status-ok.png
:align: center
:alt: IoT box homepage with HTTPS certificate OK status.
Domain Name System (DNS) issue
==============================
If the :abbr:`IoT (Internet of Things)` box can be accessed from its :abbr:`IP (Intrernet Protocol)`
address but not the Odoo assigned domain: `.odoo-iot.com`; then the :abbr:`IoT (Internet of Things)`
box is likely running into a :abbr:`DNS (Domain Name System)` issue. On some browsers, it will give
an error code mentioning :abbr:`DNS (Domain Name System)` (like `DNS_PROBE_FINISHED_NXDOMAIN`).
These :abbr:`DNS (Domain Name System)` issues may appear as the following in different browsers:
.. tabs::
.. tab:: Chrome
.. figure:: https_certificate_iot/dns-chrome.png
:align: center
:alt: DNS issue on Chrome browser on Windows 10.
DNS issue on Chrome browser on Windows 10.
.. tab:: Firefox
.. figure:: https_certificate_iot/dns-firefox.png
:align: center
:alt: DNS issue on Firefox browser on Windows 10.
DNS issue on Firefox browser on Windows 10.
.. tab:: Edge
.. figure:: https_certificate_iot/dns-edge.png
:align: center
:alt: DNS issue on Edge browser on Windows 10.
DNS issue on Edge browser on Windows 10.
Domain Name System (DNS) issue solution
---------------------------------------
#. Should the router allow the :abbr:`DNS (Domain Name System)` to be manually changed, change the
DNS to use `Google DNS <https://developers.google.com/speed/public-dns>`_.
#. If your router doesn't allow for this, then a change will need to be made on the :abbr:`DNS
(Domain Name System)` settings of each of the devices using `Google DNS
<https://developers.google.com/speed/public-dns>`_. This will need to occur on **every** device
that plans to interact with the :abbr:`IoT (Internet of Things)` box (e.g. computer, tablet or
phone). The individual device configuration processes can be found on the website of the
device's manufacturer.
.. note::
Other :abbr:`IoT (Internet of Things)` devices such as payment terminals likely won't need
their :abbr:`DNS (Domain Name System)` settings changed as they are already configured with
custom :abbr:`DNS (Domain Name System)`.
.. warning::
Consult with your system or network administrator should this issue arise. This error code
depends on the network infrastructure, and it goes beyond :doc:`Odoo support's service scope
</services/support/what_can_i_expect>`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -54,7 +54,7 @@ Then, you have to connect the peripheral devices to your IoT Box.
- **Payment terminal**: The connection process depends on the terminal,
please refer to the :doc:`payment terminals documentation
</applications/sales/point_of_sale/payment>`.
</applications/sales/point_of_sale/payment_methods>`.
Once it's done, you can connect the IoT Box to your PoS. For this, go in
:menuselection:`Point of Sale --> Configuration --> PoS`, tick *IoT Box*

View File

@@ -1,24 +1,120 @@
:nosearch:
:show-content:
:hide-page-toc:
:show-toc:
=============
Point of Sale
=============
With **Odoo Point of Sale**, run your shops or restaurants easily. The app runs on the browser, but
is able to continue working even if you are offline.
With **Odoo Point of Sale**, run your shops and restaurants easily. The app works on any device with
a web browser, even if you are temporarily offline. Product moves are automatically registered in
your stock, you get real-time statistics, and your data is consolidated across all shops.
.. seealso::
- `Odoo Tutorials: Point of Sale Tutorials <https://www.odoo.com/slides/point-of-sale-28>`_
- :doc:`IoT Boxes Documentations </applications/productivity/iot>`
.. _pos/session-start:
Start a session
===============
From the **POS dashboard**, click :guilabel:`New Session` to start a POS session, or
:guilabel:`Resume` if the session was already open.
.. note::
Multiple users can be connected to the same session at the same time. However, the session can
only be open once on the same browser.
.. _pos/sell:
Sell products
=============
Click on products to add them to the cart. To change the **quantity**, click :guilabel:`Qty` and
enter the number of products using the keypad. To add a **discount** or modify the product
**price**, click respectively :guilabel:`Disc` or :guilabel:`Price` and enter the amounts.
Once an order is completed, proceed to checkout by clicking :guilabel:`Payment`. Select the
**payment method**, enter the received amount, and click :guilabel:`Validate`. Click
:guilabel:`New Order` to move on to the next customer.
.. image:: point_of_sale/pos-interface.png
:align: center
:alt: POS session interface.
.. tip::
- You can use both `,` and `.` on your keyboard as decimal separators.
- **Cash** is selected by default if you enter the amount without choosing a payment method.
.. _pos/customers:
Register customers
==================
Registering your customers gives you the ability to grant them various privileges such as discounts,
loyalty program, specific communication. It is also required if they want an invoice and registering
them makes any future interaction with them faster.
From your session interface, use the customer button.
.. image:: point_of_sale/customer-button.png
Create a new one by using this button.
.. image:: point_of_sale/customer-add.png
You will be invited to fill out the customer form with their
information.
.. image:: point_of_sale/customer-form.png
Use the save button when you are done. You can then select that customer
in any future transactions.
.. _pos/refund:
Return and refund products
==========================
To return a product and make a refund,
#. from the **POS dashboard**, **open a session** and select the returned product;
#. click :guilabel:`Qty` and :guilabel:`+/-` to enter the quantity of returned products;
#. once the order is completed, click :guilabel:`Payment` to proceed to the refund;
#. click :guilabel:`Validate` and :guilabel:`New Order` to move on to the next customer.
.. _pos/session-close:
Close the POS session
=====================
To close your session,
#. go back to the POS dashboard by clicking :guilabel:`Close` and :guilabel:`Confirm` in the upper
right corner of your screen;
#. then, click :guilabel:`Close` and proceed to the **closing control**;
#. click the :guilabel:`Payments` smart button to know what amount of cash should be in your cash
drawer;
#. once the control is done, click :guilabel:`Close session & post entries`;
#. the status goes automatically from :guilabel:`In Progress` to :guilabel:`Closed & Posted`.
.. image:: point_of_sale/close-pos-session.png
:align: center
:alt: How to close a POS session.
.. tip::
- It is strongly advised to close your POS session at the end of each day.
- To look at all your previous sessions, go to :menuselection:`Point of Sale --> Orders -->
Sessions`.
.. toctree::
:titlesonly:
point_of_sale/overview
point_of_sale/employee_login
point_of_sale/receipts_invoices
point_of_sale/configuration
point_of_sale/shop
point_of_sale/restaurant
point_of_sale/payment
point_of_sale/advanced_pricing_features
point_of_sale/pricing
point_of_sale/payment_methods
point_of_sale/reporting

View File

@@ -1,13 +0,0 @@
:nosearch:
================
Pricing Features
================
.. toctree::
:titlesonly:
advanced_pricing_features/discounts
advanced_pricing_features/discount_tags
advanced_pricing_features/loyalty
advanced_pricing_features/pricelists

View File

@@ -0,0 +1,33 @@
:show-content:
:show-toc:
=============
Configuration
=============
.. _configuration/settings:
Access POS settings
===================
To access the general POS settings, go to :menuselection:`Point of Sale --> Configuration -->
Settings`.
To access the settings of a specific point of sale, go to :menuselection:`Point of Sale -->
Configuration --> Point of Sale`. Alternatively, from the Point of Sale dashboard, click the
vertical ellipsis (:guilabel:`⋮`) button on a POS card, then on :guilabel:`Settings`.
Make products available
=======================
To make products available for sale, go to :menuselection:`Point of Sale --> Products --> Products`,
and open a product. In the :guilabel:`Point of Sale` tab, enable :guilabel:`Available in POS`.
.. image:: configuration/pos-available.png
:alt: Making a product available in your POS.
.. toctree::
:titlesonly:
configuration/https
configuration/epos_ssc

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -21,7 +21,7 @@ To enable the feature, go to your *PoS settings* and check log in with
employees on your *PoS form*. Then, add the employees that have access
to the cash register.
.. image:: multicashiers/multicashiers01.png
.. image:: employee_login/multicashiers01.png
:align: center
Now, you can switch cashier easily.
@@ -32,12 +32,12 @@ Switch without pin codes
The easiest way to switch cashiers is without a code. To do so, click on
the cashier name in your PoS interface.
.. image:: multicashiers/multicashiers02.png
.. image:: employee_login/multicashiers02.png
:align: center
Now, you just have to click on your name.
.. image:: multicashiers/multicashiers03.png
.. image:: employee_login/multicashiers03.png
:align: center
.. _set-pin-code:
@@ -48,12 +48,12 @@ Switch cashier with pin codes
You can set a pin code on each cashier. To set up a pin code, go to the
employee form and add a security PIN, in the *HR settings tab*.
.. image:: multicashiers/multicashiers04.png
.. image:: employee_login/multicashiers04.png
:align: center
Now, when switching cashier, a PIN password will be asked.
.. image:: multicashiers/multicashiers05.png
.. image:: employee_login/multicashiers05.png
:align: center
.. _employee-barcode:
@@ -66,7 +66,7 @@ so, set up a barcode at the same place you add the PIN code. Print the
badge and when they will scan it, the cashier will be switched to that
employee.
.. image:: multicashiers/multicashiers06.png
.. image:: employee_login/multicashiers06.png
:align: center
Find who was the cashier
@@ -75,7 +75,7 @@ Find who was the cashier
Once you have closed your *PoS session*, you can have an overview of
the amount each cashier sold for. To do so, go to the orders menu.
.. image:: multicashiers/multicashiers07.png
.. image:: employee_login/multicashiers07.png
:align: center
Now, you can open the order and have a summary of the sold products.

View File

@@ -1,13 +0,0 @@
:nosearch:
========
Overview
========
.. toctree::
:titlesonly:
overview/getting_started
overview/register
overview/https
overview/epos_ssc

View File

@@ -1,118 +0,0 @@
===============
Getting started
===============
**Point of Sale** is a fully integrated application that allows you to sell products (online or
offline) with any device. It also automatically registers product moves in your stock, gives you
real-time statistics, and consolidations across all shops.
Configuration
=============
Make products available
-----------------------
To make products available for sale, go to :menuselection:`Point of Sale --> Products --> Products`,
and open a product. In the :guilabel:`Point of Sale` tab, enable :guilabel:`Available in POS`.
.. image:: getting_started/pos-available.png
:align: center
:alt: Making a product available in your POS.
Configure payment methods
-------------------------
To add a payment method, you first need to create it. Go to :menuselection:`Point of Sale -->
Configuration --> Payment Methods --> Create`. Set a name and select the **payment terminal** or
check :guilabel:`Cash` for cash payments.
.. image:: getting_started/payment-method.png
:align: center
:alt: Creating a new payment method for a POS.
.. note::
Credentials are mandatory to use a payment terminal. To learn how to configure the different
terminals, check out the following documentation pages:.
- :doc:`Adyen configuration <../payment/adyen>`
- :doc:`Vantiv configuration <../payment/vantiv>`
- :doc:`Ingenico configuration <../payment/ingenico>`
- :doc:`Six configuration <../payment/six>`
Now, you can select the payment method in your POS settings. To do so, go to
:menuselection:`Point of Sale --> Configuration --> Point of Sale` and select a POS for which you
wish to make the payment method available. Click :guilabel:`Edit` and add the payment method under
the :guilabel:`Payments` section.
POS sessions
============
Start a session
---------------
From the **POS dashboard**, click :guilabel:`New Session` to start a POS session, or
:guilabel:`Resume` if the session was already open.
.. note::
Multiple users can be connected to the same session at the same time. However, the session can
only be open once on the same browser.
Click on products to add them to the cart. To change the **quantity**, click :guilabel:`Qty` and
enter the number of products using the keypad. To add a **discount** or modify the product
**price**, click respectively :guilabel:`Disc` or :guilabel:`Price` and enter the amounts.
Once an order is completed, proceed to checkout by clicking :guilabel:`Payment`. Select the
**payment method**, enter the received amount, and click :guilabel:`Validate`. Click
:guilabel:`New Order` to move on to the next customer.
.. image:: getting_started/pos-interface.png
:align: center
:alt: POS session interface.
.. tip::
- You can use both `,` and `.` on your keyboard as decimal separators.
- **Cash** is selected by default if you enter the amount without choosing a payment method.
Return and refund products
--------------------------
To return a product and make a refund,
#. from the **POS dashboard**, **open a session** and select the returned product;
#. click :guilabel:`Qty` and :guilabel:`+/-` to enter the quantity of returned products;
#. once the order is completed, click :guilabel:`Payment` to proceed to the refund;
#. click :guilabel:`Validate` and :guilabel:`New Order` to move on to the next customer.
Close the POS session
---------------------
To close your session,
#. go back to the POS dashboard by clicking :guilabel:`Close` and :guilabel:`Confirm` in the upper
right corner of your screen;
#. then, click :guilabel:`Close` and proceed to the **closing control**;
#. click the :guilabel:`Payments` smart button to know what amount of cash should be in your cash
drawer;
#. once the control is done, click :guilabel:`Close session & post entries`;
#. the status goes automatically from :guilabel:`In Progress` to :guilabel:`Closed & Posted`.
.. image:: getting_started/close-pos-session.png
:align: center
:alt: How to close a POS session.
.. tip::
- It is strongly advised to close your POS session at the end of each day.
- To look at all your previous sessions, go to :menuselection:`Point of Sale --> Orders -->
Sessions`.
View statistics
===============
To access your statistics, go to :menuselection:`Point of Sale --> Reporting --> Orders`. Or, from
the **POS dashboard**, click the vertical ellipsis (:guilabel:`⋮`) button, :guilabel:`Reporting`,
and :guilabel:`Orders`.
These statistics are available in graph or pivot view that you can filter or group depending on your
needs.

Some files were not shown because too many files have changed in this diff Show More