diff --git a/.tx/config b/.tx/config index cbcaf9778..bd3428406 100644 --- a/.tx/config +++ b/.tx/config @@ -76,3 +76,8 @@ source_lang = en file_filter = locale//LC_MESSAGES/website.po source_file = locale/sources/website.pot source_lang = en + +[odoo-9-doc.ecommerce] +file_filter = locale//LC_MESSAGES/ecommerce.po +source_file = locale/sources/ecommerce.pot +source_lang = en diff --git a/_static/banners/ecommerce.jpg b/_static/banners/ecommerce.jpg new file mode 100644 index 000000000..0426d2eec Binary files /dev/null and b/_static/banners/ecommerce.jpg differ diff --git a/accounting/others/taxes.rst b/accounting/others/taxes.rst index 6f1995bf9..d359b191d 100644 --- a/accounting/others/taxes.rst +++ b/accounting/others/taxes.rst @@ -5,7 +5,10 @@ Taxes .. toctree:: :titlesonly: - taxes/application taxes/create + taxes/default_taxes + taxes/application + taxes/tax_cloud + taxes/tax_included taxes/retention - taxes/taxcloud \ No newline at end of file + taxes/B2B_B2C diff --git a/sales/products_prices/prices/B2B_B2C.rst b/accounting/others/taxes/B2B_B2C.rst similarity index 100% rename from sales/products_prices/prices/B2B_B2C.rst rename to accounting/others/taxes/B2B_B2C.rst diff --git a/accounting/others/taxes/application.rst b/accounting/others/taxes/application.rst index c306b85de..2515f9bf3 100644 --- a/accounting/others/taxes/application.rst +++ b/accounting/others/taxes/application.rst @@ -1,132 +1,96 @@ -====================================================== -How to apply specific taxes by country, state or city? -====================================================== +========================================================== +How to adapt taxes to your customer status or localization +========================================================== -In Odoo, the default tax to apply on a product/service is set on the -**product form**. But, some customers may have specific tax rates because of -their status (in some countries, construction companies are VAT exempts) -or their location (customers in a different country, state and/or city -may be subjected to another tax rate). +Most often sales tax rates depend on your customer status or localization. +To map taxes, Odoo brings the so-called *Fiscal Positions*. -In order to select the right tax to apply according to the customer or -product, Odoo uses the concept of **fiscal positions**. If a customer has a -specific fiscal position, the default tax may be replaced by another -one. (as an example, construction companies have 0% instead of 21% in -Belgium for construction related work). +Create tax mapping +================== -As an example, in Belgium, for the VAT tax, there are 3 fiscal positions -that depend on on the country of the customer and some companies (like -construction companies) benefit from a specific fiscal treatments: - -- **Belgian companies:** with 21% VAT (default, on product form) - -- **European companies:** with 0% VAT (intra-EU) - -- **Other countries:** 0% (but a different tax since it uses different - accounts) - -- **Construction companies:** with 0% VAT, only for construction companies - in Belgium - -Configuration -============= - -Set the right taxes on your products ------------------------------------- - -The main taxes are automatically configured according to the chart of -accounts of your country. - -But if you want to set a specific tax on a specific product, you can set -the **sales and purchases taxes** on the **product form**, under the **Accounting -tab**. These taxes are the default one (used when you sell to companies -that are in the same country/state than you) - -.. image:: media/application05.png - :align: center - -.. tip:: - If you work in a multi-company environment, the sales and - purchase taxes may have a different value according to the - company you work for. You can login into two different companies - and change this field for each company. - -Defining Fiscal Positions -------------------------- - -The main fiscal positions are automatically created according to the -chart of accounts of your country. But you may have to create fiscal -positions manually for specific use cases. - -To define fiscal positions, from the **Accounting** application, go to -:menuselection:`Configuration --> Fiscal Positions`. - -Fiscal position is just a set of rules that maps default taxes (as defined on -product form) into other taxes. In the screenshot below, european -customers have a VAT of 0% instead of the default 15%, for both sales -and purchases. +A fiscal position is just a set of rules that maps default taxes (as defined +on product form) into other taxes. In the screenshot below, foreign customers +get a 0% tax instead of the default 15%, for both sales and purchases. .. image:: media/application02.png :align: center +The main fiscal positions are automatically created according to your +localization. But you may have to create fiscal positions for specific use cases. +To define fiscal positions, go to +:menuselection:`Invoicing/Accounting --> Configuration --> Fiscal Positions`. + .. note:: - You can also map the **income / expense account** according to the fiscal - position. For example, in Belgium, revenues from sales are not posted in + If you use Odoo Accounting, you can also map the Income/Expense accounts according to the fiscal + position. For example, in some countries, revenues from sales are not posted in the same account than revenues from sales in foreign countries. -Apply fiscal positions automatically ------------------------------------- +Adapt taxes to your customer status +=================================== -If you check the box **Detect Automatically**, the fiscal position will be -applied automatically if the **Country**, **State**, **City** or even the -**Country Group** matches. You can also apply the fiscal position only -to companies having a valid **VAT number**. +If a customer falls into a specific taxation rule, you need to apply a tax-mapping. +To do so, create a fiscal position and assign it to your customers. -You can also set a target **Country/State/City**. The fiscal position will -be applied if the destination address of the customer matches these -criteria. +.. image:: media/application01.png + :align: center + +Odoo will use this specific fiscal position for any order/invoice recorded for the customer. + +.. note:: + If you set the fiscal position in the sales order or invoice manually, it will only + apply to this document and not to future orders/invoices of the same customer. + +Adapt taxes to your customer address (destination-based) +======================================================== + +Depending on your localization, sales taxes may be origin-based or destination-based. +Most states or countries require you to collect taxes at the rate of the destination +(i.e. your buyer’s address) while some others require to collect them at the rate effective +at the point of origin (i.e. your office or warehouse). + +If you are under the destination-based rule, create one fiscal position per tax-mapping to apply. + +* Check the box *Detect Automatically*. +* Select a country group, country, state or city to trigger the tax-mapping. .. image:: media/application04.png :align: center +This way if no fiscal position is set on the customer, Odoo will choose the fiscal position matching the +shipping address on creating an order. + +.. note:: + For eCommerce orders, the tax of the visitor's cart will automatically + update and apply the new tax after the visitor has logged in or filled + in his shipping address. + +In the US +--------- +If you are based in the US, right tax rates can be computed automatically thanks to TaxCloud. +This is effort-less. + +* Create an account on TaxCloud.com. +* Install *Account TaxCloud* addon in :menuselection:`Apps`. +* Enter your credentials in :menuselection:`Accounting --> Configuration --> Settings`. +* Hit *Sync TaxCloud Catgories (TIC)*. +* Select a default TIC to compute taxes in :menuselection:`Accounting --> Configuration --> Settings`. +* If some products go under a different TIC, select it from the product detail form (in *Invoicing* tab). + Specific use cases ------------------- +================== If, for some fiscal positions, you want to remove a tax, instead of -replacing by another, just keep the **Tax to Apply** field empty. +replacing by another, just keep the *Tax to Apply* field empty. .. image:: media/application03.png :align: center If, for some fiscal positions, you want to replace a tax by two other -taxes, just create two lines having the same **Tax on Product**. You can -also create one that is a grouping of two other taxes, depending on how -you want to make them appear on the invoice. +taxes, just create two lines having the same *Tax on Product*. -Using fiscal positions -====================== - -If you keep the field **Fiscal Position** empty on customers -:menuselection:`Accounting --> Sales --> Customers`, the fiscal position -is applied automatically on sales order, purchase orders, web orders and invoices. - -.. image:: media/application01.png - :align: center - -But, if you set the fiscal position, Odoo will use this specific fiscal -position for this customer on orders (example: construction companies). -In such a case, it's recommended to set the fiscal position on the -customer form. Odoo will automatically reuse this value for orders and -invoices, without trying to auto-detect the fiscal position. - -If you set the fiscal position at the sale order or invoice level, it -will only apply to this document only and not to future orders/invoices -of the same customer. - -For eCommerce orders, the tax of the visitor's cart will automatically -update and apply the new tax after the visitor has logged in or filled -in his shipping address. .. seealso:: - * :doc:`create` \ No newline at end of file + * :doc:`create` + * :doc:`tax_included` + * :doc:`B2B_B2C` diff --git a/accounting/others/taxes/create.rst b/accounting/others/taxes/create.rst index 577066b97..83f60b5b5 100644 --- a/accounting/others/taxes/create.rst +++ b/accounting/others/taxes/create.rst @@ -1,123 +1,70 @@ ======================== -How to define new taxes? +How to create new taxes ======================== Odoo's tax engine is very flexible and support many different type of -taxes: value added taxes (VAT), eco-taxes, federal taxes, retention, -withholding taxes, etc. For most countries, the chart of account you -setup is automatically pre-configured with the main taxes of the -country. +taxes: value added taxes (VAT), eco-taxes, federal/states/city taxes, retention, +withholding taxes, etc. For most countries, your system is pre-configured with the +right taxes. -This section details how you can define new taxes for specific use -cases. +This section details how you can define new taxes for specific use cases. -Managing Taxes -============== - -Defining new taxes ------------------- - -In order to create new taxes, use the menu :menuselection:`Configuration --> Taxes` in the -accounting application. From this menu, you will get all the taxes you -can use: sales taxes and purchase taxes. +* Go to :menuselection:`Accounting --> Configuration --> Taxes`. From this menu, you + get all the taxes you can use: sales taxes and purchase taxes. .. image:: media/create01.png :align: center -When you create a new tax, you can set the following information: +* Choose a scope: Sales, Purchase or None (e.g. deprecated tax). -- **Scope**: Sales, Purchases or None (e.g. deprecated tax) +* Select a computation method: -- **Tax Account**: is the account where the tax journal item will be - posted. This field is optional, if you keep it empty, Odoo posts - the tax journal item in the income account. + * **Fixed**: eco-taxes, etc. -- **Label on Invoices**: a short text on how you want this tax to be - printed on invoice line. For example, a tax named "21% on - Services" can have the following label on invoice "21%". + * **Percentage of Price**: most common (e.g. 15% sales tax) -- **Tax Group**: defines where this tax is summed in the invoice footer. - All the tax belonging to the same tax group will be grouped on - the invoice footer. Examples of tax group: VAT, Retention. + * **Percentage of Price Tax Included**: used in Brazil, etc. -- **Include in Analytic Cost**: the tax is counted as a cost and, thus, - generate an analytic entry if your invoice uses analytic - accounts. - -- **Tags**: are used for custom reports. (usually, you can keep this field - empty) - -Taxes allow different computation mechanism: - -- **Fixed**, example: an eco-tax of $1.34 per battery - -- **Percentage**, example: 15% sales tax - -- **Percentage of price**, tax included: example in brazil - -- **Group of taxes**: allows to have a compound tax + * **Group of taxes**: allows to have a compound tax .. image:: media/create02.png :align: center -.. note:: - if you need more advanced tax mechanism, you can install the - module **account_tax_python** and you will be able to define new taxes - with Python code. +* If you use Odoo Accounting, set a tax account (i.e. where the tax journal item will be + posted). This field is optional, if you keep it empty, Odoo posts + the tax journal item in the income account. -If a tax is included in price, it means that the price set on the -product form includes this tax. As an example, let's say you have a -product with a sale tax of 10%. The sale price on the product form is -$100. - -- If the tax is not included in the price, you will get: - - - Price without tax: $100 - - - Taxes: $10 - - - Total to pay: $110 - -- If the tax is included in the price - - - Price without tax: 90.91 - - - Taxes: $9.09 - - - Total to pay: $100 - -.. image:: media/create03.png - :align: center - -Stop using a tax ----------------- - -If you want to avoid using a tax, you can not delete it because the tax -is probably used in several invoices. So, in order to avoid users to -continue using this tax, you should set the field **Tax Scope** to **None**. - -Setting your default taxes -========================== - -Once you have created your taxes, you can define which tax is the -default one when creating new products (for sales and purchase taxes). -To set the default taxes, in the accounting application, go in the menu -:menuselection:`Configuration --> Settings`. - -.. image:: media/create04.png - :align: center - -Once taxes are set by default, when you create a new product, Odoo will -propose you the right taxes by default on the product form. +.. tip:: + If you want to avoid using a tax, you can not delete it because the tax + is probably used in several invoices. So, in order to avoid users to + continue using this tax, you should set the field *Tax Scope* to *None*. .. note:: + If you need more advanced tax mechanism, you can install the + module **account_tax_python** and you will be able to define new taxes + with Python code. + +Advanced configuration +====================== + +* **Label on Invoices**: a short text on how you want this tax to be + printed on invoice line. For example, a tax named "15% on + Services" can have the following label on invoice "15%". + +* **Tax Group**: defines where this tax is summed in the invoice footer. + All the tax belonging to the same tax group will be grouped on + the invoice footer. Examples of tax group: VAT, Retention. + +* **Include in Analytic Cost**: the tax is counted as a cost and, thus, + generate an analytic entry if your invoice uses analytic + accounts. + +* **Tags**: are used for custom reports. Usually, you can keep this field + empty. - Setting the default taxes impact the creation of product, but not - sales order or invoices. The tax used on sales order or invoices is - defined by the product on the sale order line. .. seealso:: * :doc:`application` - * :doc:`retention` + * :doc:`tax_included` diff --git a/accounting/others/taxes/default_taxes.rst b/accounting/others/taxes/default_taxes.rst new file mode 100644 index 000000000..f86fef824 --- /dev/null +++ b/accounting/others/taxes/default_taxes.rst @@ -0,0 +1,30 @@ +======================== +How to set default taxes +======================== + +Taxes applied in your country are installed automatically for most localizations. + +Default taxes set in orders and invoices come from each product's Invoicing tab. +Such taxes are used when you sell to companies that are in the same country/state than you. + +.. image:: media/application05.png + :align: center + +To change the default taxes set for any new product created go to +:menuselection:`Invoicing/Accounting --> Configuration --> Settings`. + +.. image:: media/create04.png + :align: center + +.. tip:: + If you work in a multi-companies environment, the sales and + purchase taxes may have a different value according to the + company you work for. You can login into two different companies + and change this field for each company. + +.. seealso:: + + * :doc:`create` + * :doc:`application` + * :doc:`B2B_B2C` + * :doc:`tax_included` diff --git a/accounting/others/taxes/media/create03.png b/accounting/others/taxes/media/create03.png deleted file mode 100644 index 4ca018d42..000000000 Binary files a/accounting/others/taxes/media/create03.png and /dev/null differ diff --git a/sales/products_prices/prices/media/price_B2C_B2B01.png b/accounting/others/taxes/media/price_B2C_B2B01.png similarity index 100% rename from sales/products_prices/prices/media/price_B2C_B2B01.png rename to accounting/others/taxes/media/price_B2C_B2B01.png diff --git a/sales/products_prices/prices/media/price_B2C_B2B02.png b/accounting/others/taxes/media/price_B2C_B2B02.png similarity index 100% rename from sales/products_prices/prices/media/price_B2C_B2B02.png rename to accounting/others/taxes/media/price_B2C_B2B02.png diff --git a/sales/products_prices/prices/media/price_B2C_B2B03.png b/accounting/others/taxes/media/price_B2C_B2B03.png similarity index 100% rename from sales/products_prices/prices/media/price_B2C_B2B03.png rename to accounting/others/taxes/media/price_B2C_B2B03.png diff --git a/sales/products_prices/prices/media/price_B2C_B2B04.png b/accounting/others/taxes/media/price_B2C_B2B04.png similarity index 100% rename from sales/products_prices/prices/media/price_B2C_B2B04.png rename to accounting/others/taxes/media/price_B2C_B2B04.png diff --git a/sales/products_prices/prices/media/price_B2C_B2B05.png b/accounting/others/taxes/media/price_B2C_B2B05.png similarity index 100% rename from sales/products_prices/prices/media/price_B2C_B2B05.png rename to accounting/others/taxes/media/price_B2C_B2B05.png diff --git a/accounting/others/taxes/media/tax_included.png b/accounting/others/taxes/media/tax_included.png new file mode 100644 index 000000000..1b4d65134 Binary files /dev/null and b/accounting/others/taxes/media/tax_included.png differ diff --git a/accounting/others/taxes/tax_included.rst b/accounting/others/taxes/tax_included.rst new file mode 100644 index 000000000..3273549dd --- /dev/null +++ b/accounting/others/taxes/tax_included.rst @@ -0,0 +1,41 @@ +============================== +How to set tax-included prices +============================== + +In most countries, B2C prices are tax-included. To do that in Odoo, check +*Included in Price* for your sales taxes in +:menuselection:`Accounting --> Configuration --> Taxes`. + +.. image:: media/tax_included.png + :align: center + +This way the price set on the product form includes the tax. As an example, +let's say you have a product with a sales tax of 10%. The sales price on +the product form is $100. + +- If the tax is not included in the price, you will get: + + - Price without tax: $100 + + - Taxes: $10 + + - Total to pay: $110 + +- If the tax is included in the price + + - Price without tax: 90.91 + + - Taxes: $9.09 + + - Total to pay: $100 + +You can rely on following documentation if you need both tax-included (B2C) and +tax-excluded prices (B2B): :doc:`B2B_B2C`. + +Show tax-included prices in eCommerce catalog +============================================ + +By default prices displayed in your eCommerce catalog are tax-excluded. To display +it in tax-included, check *Show line subtotals with taxes included (B2C)* in +:menuselection:`Sales --> Configuration --> Settings` (Tax Display). + diff --git a/applications.rst b/applications.rst index 88b1309e4..ec6384232 100644 --- a/applications.rst +++ b/applications.rst @@ -8,6 +8,7 @@ Applications accounting crm sales + ecommerce discuss/getting_started purchase inventory diff --git a/ecommerce.rst b/ecommerce.rst new file mode 100644 index 000000000..dad217894 --- /dev/null +++ b/ecommerce.rst @@ -0,0 +1,17 @@ +:banner: banners/ecommerce.jpg + +========= +eCommerce +========= + +.. toctree:: + :titlesonly: + + ecommerce/overview + ecommerce/getting_started + ecommerce/managing_products + ecommerce/taxes + ecommerce/shopper_experience + ecommerce/publish + ecommerce/maximizing_revenue + diff --git a/ecommerce/getting_started.rst b/ecommerce/getting_started.rst new file mode 100644 index 000000000..c357bc371 --- /dev/null +++ b/ecommerce/getting_started.rst @@ -0,0 +1,10 @@ +================= +Getting Started +================= + +.. toctree:: + :titlesonly: + + getting_started/product_page + getting_started/catalog + diff --git a/ecommerce/getting_started/catalog.rst b/ecommerce/getting_started/catalog.rst new file mode 100644 index 000000000..b2423a334 --- /dev/null +++ b/ecommerce/getting_started/catalog.rst @@ -0,0 +1,37 @@ +================================== +How to customize your catalog page +================================== + +Product Catalog +=============== + +All your published items show up in your catalog page (or *Shop* page). + +.. image:: ./media/shop.png + :align: center + +Most options are available in the *Customize* menu: display attributes, +website categories, etc. + +.. image:: ./media/shop_customize.png + :align: center + +Highlight a product +=================== + +Boost the visibility of your star/promoted products: push them to top, make them +bigger, add a ribbon that you can edit (Sale, New, etc.). Open the Shop page, switch +to Edit mode and click any item to start customizing the grid. + +See how to do it: https://www.odoo.com/openerp_website/static/src/video/e-commerce/editing.mp4 + +Quick add to cart +================= + +If your customers buy a lot of items at once, make their process shorter by enabling purchases from +the catalog page. To do so, add product description and add to cart button. Turn on the following +options in *Customize* menu: Product Description, Add to Cart, List View (to display product +description better). + +.. image:: ./media/shop_list.png + :align: center \ No newline at end of file diff --git a/ecommerce/getting_started/media/create_product.png b/ecommerce/getting_started/media/create_product.png new file mode 100644 index 000000000..2b87776a0 Binary files /dev/null and b/ecommerce/getting_started/media/create_product.png differ diff --git a/ecommerce/getting_started/media/product_customize.png b/ecommerce/getting_started/media/product_customize.png new file mode 100644 index 000000000..37afc62d5 Binary files /dev/null and b/ecommerce/getting_started/media/product_customize.png differ diff --git a/ecommerce/getting_started/media/product_page_tips.png b/ecommerce/getting_started/media/product_page_tips.png new file mode 100644 index 000000000..c0f0f0c6d Binary files /dev/null and b/ecommerce/getting_started/media/product_page_tips.png differ diff --git a/ecommerce/getting_started/media/shop.png b/ecommerce/getting_started/media/shop.png new file mode 100644 index 000000000..cb2e1c866 Binary files /dev/null and b/ecommerce/getting_started/media/shop.png differ diff --git a/ecommerce/getting_started/media/shop_customize.png b/ecommerce/getting_started/media/shop_customize.png new file mode 100644 index 000000000..918d238bc Binary files /dev/null and b/ecommerce/getting_started/media/shop_customize.png differ diff --git a/ecommerce/getting_started/media/shop_list.png b/ecommerce/getting_started/media/shop_list.png new file mode 100644 index 000000000..ebe27c9fe Binary files /dev/null and b/ecommerce/getting_started/media/shop_list.png differ diff --git a/ecommerce/getting_started/product_page.rst b/ecommerce/getting_started/product_page.rst new file mode 100644 index 000000000..acea63ec9 --- /dev/null +++ b/ecommerce/getting_started/product_page.rst @@ -0,0 +1,33 @@ +============================ +How to build a product page +============================ + +On the website click *New Page* in the top-right corner. + +Then click *New Product* and follow the blinking tips. + +.. image:: ./media/create_product.png + :align: center + +Here are the main elements of the Product page: + +.. image:: ./media/product_page_tips.png + :align: center + +Many elements can be made visible from the *Customize* menu. + +.. image:: ./media/product_customize.png + :align: center + +See how to configure your products from links here below. + +.. seealso:: + + * :doc:`../managing_products/variants` + * :doc:`../../sales/products_prices/taxes` + * :doc:`../managing_products/stock` + * :doc:`../maximizing_revenue/cross_selling` + * :doc:`../maximizing_revenue/reviews` + * :doc:`../maximizing_revenue/pricing` + * :doc:`../../website/optimize/seo` + diff --git a/ecommerce/managing_products.rst b/ecommerce/managing_products.rst new file mode 100644 index 000000000..a4ed4c4b5 --- /dev/null +++ b/ecommerce/managing_products.rst @@ -0,0 +1,12 @@ +================= +Manage your products +================= + +.. toctree:: + :titlesonly: + + managing_products/multi_images + managing_products/variants + managing_products/stock + ../../sales/products_prices/products/import + diff --git a/ecommerce/managing_products/media/multi_images01.png b/ecommerce/managing_products/media/multi_images01.png new file mode 100644 index 000000000..89eb8820a Binary files /dev/null and b/ecommerce/managing_products/media/multi_images01.png differ diff --git a/ecommerce/managing_products/media/multi_images02.png b/ecommerce/managing_products/media/multi_images02.png new file mode 100644 index 000000000..9ccb8e094 Binary files /dev/null and b/ecommerce/managing_products/media/multi_images02.png differ diff --git a/ecommerce/managing_products/media/stock.png b/ecommerce/managing_products/media/stock.png new file mode 100644 index 000000000..5c2b03ca7 Binary files /dev/null and b/ecommerce/managing_products/media/stock.png differ diff --git a/ecommerce/managing_products/media/stock_warning.png b/ecommerce/managing_products/media/stock_warning.png new file mode 100644 index 000000000..34ec03d23 Binary files /dev/null and b/ecommerce/managing_products/media/stock_warning.png differ diff --git a/ecommerce/managing_products/media/stock_web.png b/ecommerce/managing_products/media/stock_web.png new file mode 100644 index 000000000..0fd580fba Binary files /dev/null and b/ecommerce/managing_products/media/stock_web.png differ diff --git a/ecommerce/managing_products/media/variant_active.png b/ecommerce/managing_products/media/variant_active.png new file mode 100644 index 000000000..06e8ca813 Binary files /dev/null and b/ecommerce/managing_products/media/variant_active.png differ diff --git a/ecommerce/managing_products/media/variant_archive.png b/ecommerce/managing_products/media/variant_archive.png new file mode 100644 index 000000000..4c5caf75f Binary files /dev/null and b/ecommerce/managing_products/media/variant_archive.png differ diff --git a/ecommerce/managing_products/media/variant_prices.png b/ecommerce/managing_products/media/variant_prices.png new file mode 100644 index 000000000..4cdde3b64 Binary files /dev/null and b/ecommerce/managing_products/media/variant_prices.png differ diff --git a/ecommerce/managing_products/media/variant_prices_button.png b/ecommerce/managing_products/media/variant_prices_button.png new file mode 100644 index 000000000..3c38b47f4 Binary files /dev/null and b/ecommerce/managing_products/media/variant_prices_button.png differ diff --git a/ecommerce/managing_products/media/variant_prices_web.png b/ecommerce/managing_products/media/variant_prices_web.png new file mode 100644 index 000000000..d49a778b8 Binary files /dev/null and b/ecommerce/managing_products/media/variant_prices_web.png differ diff --git a/ecommerce/managing_products/media/variants.png b/ecommerce/managing_products/media/variants.png new file mode 100644 index 000000000..2b01e0f7e Binary files /dev/null and b/ecommerce/managing_products/media/variants.png differ diff --git a/ecommerce/managing_products/media/variants_button.png b/ecommerce/managing_products/media/variants_button.png new file mode 100644 index 000000000..a4ccdab1f Binary files /dev/null and b/ecommerce/managing_products/media/variants_button.png differ diff --git a/ecommerce/managing_products/media/variants_setup.png b/ecommerce/managing_products/media/variants_setup.png new file mode 100644 index 000000000..5e1c8ec42 Binary files /dev/null and b/ecommerce/managing_products/media/variants_setup.png differ diff --git a/ecommerce/managing_products/multi_images.rst b/ecommerce/managing_products/multi_images.rst new file mode 100644 index 000000000..d717f3c19 --- /dev/null +++ b/ecommerce/managing_products/multi_images.rst @@ -0,0 +1,19 @@ +========================================= +How to display several images per product +========================================= + +By default your product web page displays the main image of your product only. +If you like to show your products under several angles, you can turn the image into a carrousel. + +.. image:: ./media/multi_images01.png + :align: center + +* Check *Several images per product* in :menuselection:`Website Admin --> Configuration --> Settings`. + +* Open a product detail form and upload images from *Images* tab. Hit *Create* in Edit mode to get the upload wizard. + +.. image:: ./media/multi_images02.png + :align: center + +.. note:: + Such extra image are common to all the product variants (if any). diff --git a/ecommerce/managing_products/stock.rst b/ecommerce/managing_products/stock.rst new file mode 100644 index 000000000..617a1f2b6 --- /dev/null +++ b/ecommerce/managing_products/stock.rst @@ -0,0 +1,26 @@ +--------------------------------- +How to show product availability +--------------------------------- + +The availability of your products can be shown on the website to reassure your customers. + +.. image:: ./media/stock_web.png + :align: center + +To display this, open the *Sales* tab in the product detail form and select an option in +*Availability*. + +.. image:: ./media/stock.png + :align: center + +A custom warning message can be anything related to a stock out, delivery delay, etc. + +.. image:: ./media/stock_warning.png + :align: center + +.. note:: + This tool does not require the Inventory app to be installed. + +.. tip:: + If one item is no longer sellable, unpublish it from your website. If it comes to + one particular product variant, deactivate the variant in the backend (see :doc:`../maximizing_revenue/pricing`). diff --git a/ecommerce/managing_products/variants.rst b/ecommerce/managing_products/variants.rst new file mode 100644 index 000000000..2e8b30977 --- /dev/null +++ b/ecommerce/managing_products/variants.rst @@ -0,0 +1,90 @@ +============================== +How to manage product variants +============================== + +Product variants are used to offer variations of the same product to your +customers on the products page. For example, the customer chooses a T-shirt +and then selects its size and color. + +.. image:: ./media/variants.png + :align: center + +How to create attributes & variants +=================================== + +* Turn on *Products can have several attributes, defining variants (Example: + size, color,...)* in :menuselection:`Sales --> Settings`. + +* Select a product from the Products list, go to the *Variants* tab. + +* Add as many attributes as you need from 3 different types: radio buttons, + drop-down menu or color buttons. You get several variants as soon as there are + 2 values for 1 attribute. + +.. image:: ./media/variants_setup.png + :align: center + +How to edit variants +==================== + +See all the variants from the product template detail form. + +.. image:: ./media/variants_button.png + :align: center + :scale: 50 + :width: 50 + :height: 50 + +You can edit following data: + +* Picture (will update in real time on the website), +* Barcode, +* Internal Reference (SKU #), +* Volume, +* Weight, +* Active (available in quotes & website). + +.. note:: + Both the Barcode and the Internal Reference are variant-specific. + You need to populate them once the variants generated. + +.. tip:: + See and edit all the variants from :menuselection:`Sales --> Sales --> Product Variants` + as well. This might be quicker if you manage lots of variants. + +How to set specific prices per variant +====================================== + +You can also set a specific public price per variant by clicking *Variant Prices* +in the product detail form (action in top-left corner). + +.. image:: ./media/variant_prices_button.png + :align: center + +The Price Extra is added to the product price whenever the corresponding attribute +value is selected. + +.. image:: ./media/variant_prices.png + :align: center + +.. image:: ./media/variant_prices_web.png + :align: center + +.. tip:: + Pricelist formulas let you set advanced price computation methods for product variants. + See :doc:`../maximizing_revenue/pricing`. + +How to disable/archive variants +=============================== + +You can disable/archive specific variants so that they are no longer available in quotes & +website (not existing in your stock, deprecated, etc.). Simply uncheck *Active* in their detail form. + +.. image:: ./media/variant_active.png + :align: center + +To retrieve such archived items, hit *Archived* on searching the variants list. You can +reactivate them the same way. + +.. image:: ./media/variant_archive.png + :align: center diff --git a/ecommerce/maximizing_revenue.rst b/ecommerce/maximizing_revenue.rst new file mode 100644 index 000000000..2555bb07d --- /dev/null +++ b/ecommerce/maximizing_revenue.rst @@ -0,0 +1,16 @@ +================= +Maximize your revenue +================= + +.. toctree:: + :titlesonly: + + maximizing_revenue/upselling + maximizing_revenue/cross_selling + maximizing_revenue/reviews + maximizing_revenue/pricing + maximizing_revenue/promo_code + + + + diff --git a/ecommerce/maximizing_revenue/cross_selling.rst b/ecommerce/maximizing_revenue/cross_selling.rst new file mode 100644 index 000000000..5d8833c7f --- /dev/null +++ b/ecommerce/maximizing_revenue/cross_selling.rst @@ -0,0 +1,55 @@ +============================================================= +How to sell accessories and optional products (cross-selling) +============================================================= + +You sell computers. Why not stimulating your customers to buy a top-notch +screen or an extra-warranty? That's the goal of cross-selling functionalities: + +* Accessory products on checkout page, +* Optional products on a new *Add to Cart* screen (not installed by default). + +Accessory products when checking out +=================================== + +Accessories (e.g. for computers: mouse, keyboard) show up when the customer +reviews the cart before paying. + +.. image:: ./media/cross_sell_accessory_web.png + :align: center + +Select accessories in the *Sales* tab of the product detail page. + +.. image:: ./media/cross_sell_accessory.png + :align: center + +.. note:: + There is an algorithm to figure out the best accessories to display in case + several items are added to cart. If any item is the accessory of several products + added to cart, it is most likely that it will be atop the list of suggested accessories. + +Optional products when adding to cart +===================================== + +Optional products are directly related to the item added to cart (e.g. for computers: +warranty, OS software, extra components). Whenever the main product is added to cart, +such a new screen pops up as an extra step. + +.. image:: ./media/cross_sell_optional_web.png + :align: center + +To publish optional products: + +* Install *eCommerce Optional Products* addon in *Apps* menu. Remove the default filter to +search on addons as well, otherwise only main apps show up. + +.. image:: ./media/cross_sell_optional_install.png + :align: center + +* Select optional items from the *Sales* tab of the product detail form. + +.. image:: ./media/cross_sell_optional.png + :align: center + +.. note:: + The quantity of optional items added to cart is the same than the main item. + diff --git a/ecommerce/maximizing_revenue/media/comment_inbox.png b/ecommerce/maximizing_revenue/media/comment_inbox.png new file mode 100644 index 000000000..d3107f02e Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_inbox.png differ diff --git a/ecommerce/maximizing_revenue/media/comment_new.png b/ecommerce/maximizing_revenue/media/comment_new.png new file mode 100644 index 000000000..887a57f4d Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_new.png differ diff --git a/ecommerce/maximizing_revenue/media/comment_post.png b/ecommerce/maximizing_revenue/media/comment_post.png new file mode 100644 index 000000000..b21b77736 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_post.png differ diff --git a/ecommerce/maximizing_revenue/media/comment_setup.png b/ecommerce/maximizing_revenue/media/comment_setup.png new file mode 100644 index 000000000..961515be0 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_setup.png differ diff --git a/ecommerce/maximizing_revenue/media/comment_unpublish.png b/ecommerce/maximizing_revenue/media/comment_unpublish.png new file mode 100644 index 000000000..c746bcc06 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_unpublish.png differ diff --git a/ecommerce/maximizing_revenue/media/comment_webpage.png b/ecommerce/maximizing_revenue/media/comment_webpage.png new file mode 100644 index 000000000..a44c641bc Binary files /dev/null and b/ecommerce/maximizing_revenue/media/comment_webpage.png differ diff --git a/ecommerce/maximizing_revenue/media/cross_sell_accessory.png b/ecommerce/maximizing_revenue/media/cross_sell_accessory.png new file mode 100644 index 000000000..5cd7c093a Binary files /dev/null and b/ecommerce/maximizing_revenue/media/cross_sell_accessory.png differ diff --git a/ecommerce/maximizing_revenue/media/cross_sell_accessory_web.png b/ecommerce/maximizing_revenue/media/cross_sell_accessory_web.png new file mode 100644 index 000000000..abe9249de Binary files /dev/null and b/ecommerce/maximizing_revenue/media/cross_sell_accessory_web.png differ diff --git a/ecommerce/maximizing_revenue/media/cross_sell_optional.png b/ecommerce/maximizing_revenue/media/cross_sell_optional.png new file mode 100644 index 000000000..9afbcc935 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/cross_sell_optional.png differ diff --git a/ecommerce/maximizing_revenue/media/cross_sell_optional_install.png b/ecommerce/maximizing_revenue/media/cross_sell_optional_install.png new file mode 100644 index 000000000..be76bb41c Binary files /dev/null and b/ecommerce/maximizing_revenue/media/cross_sell_optional_install.png differ diff --git a/ecommerce/maximizing_revenue/media/cross_sell_optional_web.png b/ecommerce/maximizing_revenue/media/cross_sell_optional_web.png new file mode 100644 index 000000000..dea3dbbae Binary files /dev/null and b/ecommerce/maximizing_revenue/media/cross_sell_optional_web.png differ diff --git a/ecommerce/maximizing_revenue/media/promocode.png b/ecommerce/maximizing_revenue/media/promocode.png new file mode 100644 index 000000000..f84d83d11 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/promocode.png differ diff --git a/ecommerce/maximizing_revenue/media/promocode_backend.png b/ecommerce/maximizing_revenue/media/promocode_backend.png new file mode 100644 index 000000000..d3b5afeab Binary files /dev/null and b/ecommerce/maximizing_revenue/media/promocode_backend.png differ diff --git a/ecommerce/maximizing_revenue/media/promocode_publish.png b/ecommerce/maximizing_revenue/media/promocode_publish.png new file mode 100644 index 000000000..83a2fef1c Binary files /dev/null and b/ecommerce/maximizing_revenue/media/promocode_publish.png differ diff --git a/ecommerce/maximizing_revenue/media/promocode_web.png b/ecommerce/maximizing_revenue/media/promocode_web.png new file mode 100644 index 000000000..801097c23 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/promocode_web.png differ diff --git a/ecommerce/maximizing_revenue/media/upsell.png b/ecommerce/maximizing_revenue/media/upsell.png new file mode 100644 index 000000000..4f8f1d1a7 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/upsell.png differ diff --git a/ecommerce/maximizing_revenue/media/upsell_publish.png b/ecommerce/maximizing_revenue/media/upsell_publish.png new file mode 100644 index 000000000..0e346bf29 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/upsell_publish.png differ diff --git a/ecommerce/maximizing_revenue/media/upsell_web.png b/ecommerce/maximizing_revenue/media/upsell_web.png new file mode 100644 index 000000000..4adb0fe2f Binary files /dev/null and b/ecommerce/maximizing_revenue/media/upsell_web.png differ diff --git a/ecommerce/maximizing_revenue/media/website_pricelist_select.png b/ecommerce/maximizing_revenue/media/website_pricelist_select.png new file mode 100644 index 000000000..c85e54fc5 Binary files /dev/null and b/ecommerce/maximizing_revenue/media/website_pricelist_select.png differ diff --git a/ecommerce/maximizing_revenue/pricing.rst b/ecommerce/maximizing_revenue/pricing.rst new file mode 100644 index 000000000..b4aa86155 --- /dev/null +++ b/ecommerce/maximizing_revenue/pricing.rst @@ -0,0 +1,36 @@ +============================================== +How to adapt the prices to my website visitors +============================================== + +This section sheds some light on pricing features of eCommerce app: + +* force a price by geo-localization, + +* let the customer choose the currency. + +As a pre-requisite, check out how to managing produt pricing: +:doc:`../../sales/products_prices/prices/pricing`). + +Geo-IP to automatically apply the right price +================================================ + +Assign country groups to your pricelists. That way, your visitors not yet +logged in will get their own currency when landing on your website. + +Once logged in, they get the pricelist matching their country. + +Currency selector +================= + +In case you sell in several currencies, you can let your customers choose +their own currency. Check *Selectable* to add the pricelist to the website drop-down menu. + +.. image:: ./media/website_pricelist_select.png + :align: center + :width: 50 % + +.. seealso:: + + * :doc:`../../sales/products_prices/prices/pricing` + * :doc:`../../sales/products_prices/prices/currencies` + * :doc:`promo_code` diff --git a/ecommerce/maximizing_revenue/promo_code.rst b/ecommerce/maximizing_revenue/promo_code.rst new file mode 100644 index 000000000..8c26b6ed6 --- /dev/null +++ b/ecommerce/maximizing_revenue/promo_code.rst @@ -0,0 +1,43 @@ +======================================= +How to create & share promotional codes +======================================= + +Want to boost your sales for Xmas? Share promocodes through your marketing campaigns +and apply any kind of discounts. + +Setup +===== + +* Go to :menuselection:`Sales --> Settings` and choose + *Advanced pricing based on formula* for *Sale Price*. + +* Go to :menuselection:`Website Admin --> Catalog --> Pricelists` and create a new + pricelist with the discount rule (see :doc:`pricing`). + Then enter a code. + +.. image:: ./media/promocode.png + :align: center + +* Make the promocode field available on your *Shopping Cart* page (option in + *Customize* menu). Add a product to cart to reach it. + +.. image:: ./media/promocode_publish.png + :align: center + +Once turned on you see a new section on the right side. On clicking *Apply* prices get +automatically updated in the cart. + +.. image:: ./media/promocode_web.png + :align: center + +The promocode used by the customer is stored in the system so you can analyze the +performance of your marketing campaigns. + +.. image:: ./media/promocode_backend.png + :align: center + ++ Show sales per pricelists... + +.. seealso:: + + * :doc:`pricing` diff --git a/ecommerce/maximizing_revenue/reviews.rst b/ecommerce/maximizing_revenue/reviews.rst new file mode 100644 index 000000000..8466b573f --- /dev/null +++ b/ecommerce/maximizing_revenue/reviews.rst @@ -0,0 +1,59 @@ +=============================== +How to enable comments & rating +=============================== + +Publishing and monitoring customer experience will help you gain the trust +of new customers and better engage with your community. In 2 clicks, allow +your customer to share their feedback! + +.. image:: ./media/comment_post.png + :align: center + +Setup +===== + +Activate comments & rating from the *Customize* menu of the product web page. + +.. image:: ./media/comment_setup.png + :align: center + +.. note:: + Visitors must log in to share their comments. Make sure they are able to + do so (see Portal documentation). + +Review the posts in real time +============================= + +Whenever a post is published, the product manager and all the product followers +get notified in their Inbox (*Discuss* menu). + +.. image:: ./media/comment_new.png + :align: center + +.. note:: + By default the user who created the product is automatically set as follower. + +Click the product name to open the detail form and review the comment (in the +product discussion thread). + +.. image:: ./media/comment_inbox.png + :align: center + +Moderate & unpublish +==================== + +You can easily moderate by using the chatter, either in the product detail form +or on the web page. + +To unpublish the post, open the product web page and click the *Published* button +to turn it red (*Unpublished*). + +.. image:: ./media/comment_unpublish.png + :align: center + +..tip:: + You can access the web page from the detail form by clicking the *Published* + smart button (and vice versa). + +.. image:: ./media/comment_webpage.png + :align: center diff --git a/ecommerce/maximizing_revenue/upselling.rst b/ecommerce/maximizing_revenue/upselling.rst new file mode 100644 index 000000000..254135480 --- /dev/null +++ b/ecommerce/maximizing_revenue/upselling.rst @@ -0,0 +1,25 @@ +==================================================== +How to sell pricier product alternatives (upselling) +==================================================== + +In order to maximize your revenue, suggesting pricier alternative products is +strongly advised for basic items. That way, your customer will spend more time +browsing your catalog. + +.. image:: ./media/upsell_web.png + :align: center + +To do so: + +* Select such *Alternative Products* in the *Sales* tab of the product detail form. + 3 alternatives are fine! Don't publish too many otherwise your customers will be confused. + +.. image:: ./media/upsell.png + :align: center + +* Turn on *Alternative Products* from the *Customize* menu of the product web page. + +.. image:: ./media/upsell_publish.png + :align: center + + diff --git a/ecommerce/overview.rst b/ecommerce/overview.rst new file mode 100644 index 000000000..820f9d47c --- /dev/null +++ b/ecommerce/overview.rst @@ -0,0 +1,9 @@ +================= +Overview +================= + +.. toctree:: + :titlesonly: + + overview/introduction + diff --git a/ecommerce/overview/introduction.rst b/ecommerce/overview/introduction.rst new file mode 100644 index 000000000..1d34c7717 --- /dev/null +++ b/ecommerce/overview/introduction.rst @@ -0,0 +1,24 @@ +============================== +Introduction to Odoo eCommerce +============================== + +.. youtube:: tR0xandHlhU + :align: right + :width: 700 + :height: 394 + +The documentation will help you go live with your eCommerce website in no time. +The topics follow the buying process: + +* Product Page +* Shop Page +* Pricing +* Taxes +* Checkout process +* Upselling & cross-selling +* Payment +* Shipping & Tracking + +.. seealso:: + + * :doc:`../../website/publish/domain_name` diff --git a/ecommerce/publish.rst b/ecommerce/publish.rst new file mode 100644 index 000000000..93859ee3e --- /dev/null +++ b/ecommerce/publish.rst @@ -0,0 +1,12 @@ +=================== +Launch your website +=================== + +.. toctree:: + :titlesonly: + + ../website/publish/domain_name + ../website/publish/translate + + + diff --git a/ecommerce/shopper_experience.rst b/ecommerce/shopper_experience.rst new file mode 100644 index 000000000..513be901b --- /dev/null +++ b/ecommerce/shopper_experience.rst @@ -0,0 +1,14 @@ +================= +Improve the shopper experience +================= + +.. toctree:: + :titlesonly: + + shopper_experience/payment + shopper_experience/paypal + shopper_experience/portal + + + + diff --git a/ecommerce/shopper_experience/media/portal_link.png b/ecommerce/shopper_experience/media/portal_link.png new file mode 100644 index 000000000..9f1e26c20 Binary files /dev/null and b/ecommerce/shopper_experience/media/portal_link.png differ diff --git a/ecommerce/shopper_experience/media/portal_menu.png b/ecommerce/shopper_experience/media/portal_menu.png new file mode 100644 index 000000000..0830261c8 Binary files /dev/null and b/ecommerce/shopper_experience/media/portal_menu.png differ diff --git a/ecommerce/shopper_experience/media/portal_odoo_signup.png b/ecommerce/shopper_experience/media/portal_odoo_signup.png new file mode 100644 index 000000000..85e2ea4a6 Binary files /dev/null and b/ecommerce/shopper_experience/media/portal_odoo_signup.png differ diff --git a/ecommerce/shopper_experience/payment.rst b/ecommerce/shopper_experience/payment.rst new file mode 100644 index 000000000..860e41eeb --- /dev/null +++ b/ecommerce/shopper_experience/payment.rst @@ -0,0 +1,175 @@ +============================= +How to set up payment methods +============================= + +To collect payments, you can either request your customers to process it +manually (e.g. wire transfer) or redirect them to payment acquirers. The payment +process described hereunder is common to both eCommerce and online quotations. + +Payment methods +=============== + +Wire transfer +------------- + +Wire Transfer is the default payment method available. The aim is providing your +customers with your bank details so that they can pay via their bank. This is very +easy to start with but slow and inefficient process-wise. Opt for online acquirers +as soon as you can! + +.. tip:: + For B2B users: you can create new manually-processed payment methods (check, + purchase order, etc.) by renaming 'Wire Transfer' or duplicating it. + +Online payment acquirers +------------------------ + +Redirect your customers to payment acquirer platforms to collect money effortless. +Odoo supports more and more platforms over time: Paypal, Ingenico, Authorize.net, +etc. Once the payment accepted, orders are confirmed in Odoo so that the delivery +& invoicing processes are triggered automatically. + +Custom (advanced) +----------------- + +Can be used to request payments to any payment acquirer not listed in Odoo. + +Edit a payment method +======================= + +To make payment methods intuitive for your customers feel free to customize them by editing: + +* the name, + +* the picture, + +* the notification messages (thank you & next step, error, cancellation). + +Go to :menuselection:`Website Admin --> Configuration --> Payment Acquirers` to do so. + +Generic setup +============= + +1. Review the elements here above. + +2. Enter your credentials (online acquirers only). + +3. Choose your order confirmation preference (see below). + +4. Publish the payment method. + +5. Test the payment flow in *Test* mode (default mode). + +6. Switch to *Production* mode. + +7. Se your default payment acquirer in :menuselection:`Accounting --> Configuration --> Settings`. + It will be auto-selected for your customers when they enter the payment screen. + +.. note:: + Rely on the documentation related to your payment acquirer to go through step 2, 5 and 6. Some + acquirers provides you with specific credentials for test and production modes (Paypal). Others + let you switch mode in their setup interface (Authorize.net). + +.. tip:: + With Ingenico and Authorize.net, you can let your customers save and reuse a payment card to + accelerate the process on next checkouts. See *Store Card Data* in Configuration tab. + +Payment flow +============ + +1. When choosing the payment method, the customer is taken to the payment acquirer interface to + process the payment. + +2. Once done he is taken back to Odoo's confirmation page. The transaction status shows up: + +* *Pending*: the order will be confirmed as soon as you authorize the transaction in the acquirer interface. + +* *Confirmed*: the payment has been authorized automatically. + +3. A confirmation email is sent to the customer with a copy of the order in pdf. It shows the payment status. + +4. Launch the delivery and invoicing from: + +* eCommerce: :menuselection:`Website Admin --> Orders --> (Unpaid) Orders`, + +* online quotations: :menuselection:`Sales --> Sales --> Quotations/Sales Orders`. + +For internal tracking purposes, a link to the transaction status is provided in the sales order. + +.. note:: + If the customer cancels the payment while on the payment acquirer form, it is taken back to + the store page (or online quotation) in order to reprocess the order. The payment is + marked as *Cancelled* in Odoo. + +.. tip:: + You can edit the confirmation email template from + :menuselection:`Website Admin --> Configuration --> Settings`. + +Order confirmation preferences +============================== + +There are 4 different behaviors available for any payment acquirer. + +No automatic confirmation +------------------------- + +This is the default mode for *Wire Transfer*. It means Odoo does not confirm orders but keep +them in an intermediary stage (*Quotation Sent* = *Unpaid Order*). Once you get the payment, +you are expected to confirm the order manually to pursue the process (delivery, invoicing). + +Authorize the amount and confirm the SO on acquirer confirmation (capture manually) +----------------------------------------------------------------------------------- + +Odoo confirms the order as soon as the payment success notification comes in. To get the +money however, you need to capture it from your payment transaction. In lots of countries +you are indeed requested to deliver your goods before capturing the amount. + +Authorize & capture the amount and confirm the SO on acquirer confirmation +-------------------------------------------------------------------------- + +This is the default mode for payment acquirers. The amount is captured automatically. + +.. tip:: + For B2B: if you use a manual payment method like *Wire Transfer* and don't expect any + upfront payment to launch the delivery, switch to this mode as well. + +Authorize & capture the amount, confirm the SO and auto-validate the invoice on acquirer confirmation +----------------------------------------------------------------------------------------------------- + +If you invoice upfront and not at the delivery, switch to this last mode to automate everything. +You are requested to select a Payment Journal to record such payments +(see :doc:`../../accounting/receivables/customer_payments/credit_cards`). + +Custom payment acquirers (advanced) +=================================== + +Odoo can submit payment requests and redirect to any payment acquirer. In such a case, you need +to confirm the sale manually in Odoo once you get paid because Odoo cannot read any payment +status sent by the acquirer. + +To configure this: + +* switch to developer mode, + +* edit the *Custom* payment method, + +* set up the payment form (S2S Form Template) as instructed by your payment acquirer. You can + start from *default_acquirer_button* that you can duplicate. + +Recurring payments & Installment plans +====================================== + +The Ingenico integration allows you to process and manage recurring payments from Odoo +Subscriptions app out-of-the-box (more information coming soon). + +With some customization, Odoo can also trigger installment plans if this is permitted by +your payment acquirer’s API: + +e.g. Paypal Installment Plans (see https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/installment_buttons). + +Such a service is made on-demand by our technical experts based on your own requirements. +Ask our business advisors at info@odoo.com. + +.. seealso:: + + * :doc:`paypal` diff --git a/ecommerce/shopper_experience/paypal.rst b/ecommerce/shopper_experience/paypal.rst new file mode 100644 index 000000000..a3f0c1c3b --- /dev/null +++ b/ecommerce/shopper_experience/paypal.rst @@ -0,0 +1,54 @@ +=================================== +How to collect payments with Paypal +=================================== + +Paypal is the easiest payment method to configure. It is also the only one without any subscription +free. + +Setup your Paypal account +========================= + +1. Create a business account at Paypal.com (see: +https://www.paypal.com/in/cgi-bin/webscr?cmd=xpt/Marketing/general/how-to-set-up-a-paypal-account-outside) +or upgrade your account to Business account (merchant) if you have a basic account. + +2. Log in to your account at Paypal.com and go to +:menuselection:`My Account --> Profile --> My Selling Tools`. There click *PayPal button language +encoding* under *More Selling Tools* section. Then, click *More Options* and replace the two default +encoding formats by *UTF-8*. + +3. Open Paypal setup form in Odoo and enter your *Email ID*. + +4. The Paypal Merchant ID is not mandatory (extra verification level). It is provided in +Paypal under :menuselection:`My Account --> Overview`. + +5. Configure the IPN feedback (Paypal contacting your Odoo instance without needing the +redirection). The setting can be found in +:menuselection:`Profile --> My Selling Tools --> Instant payment notification`. +Activate it and set it to /payment/paypal/ipn. + +6. To test the workflow, you can create sandbox accounts by logging in at +https://developer.paypal.com/webapps/developer/applications/myapps with the same Paypal credentials. +Two default sandbox accounts are automatically generated when you register to Paypal: +one is a buyer, the other is a shopper. + +7. Log in with your buyer sandbox account to https://www.sandbox.paypal.com (same password than real +account) and apply the same format change. + +.. tip:: + To automatically redirect your customers when the payment is completed, go to your Website + Preferences and turn *Auto Return* on. Set *Return URL* to /shop/confirmation. + Verify that your *Notify URL* uses the correct protocol (HTTP/HTTPS). + +.. tip:: + If you want your customers to pay without creating a Paypal account, *Paypal Account + Optional* needs to be turned on. + +Transaction fees +================ + +You can charge an extra to the customer to cover the transaction fees Paypal charges you. +Once redirected to Paypal, your customer sees an extra applied to the order amount. + +To activate this, go to the *Configuration* tab and check *Add Extra Fees*. Default +fees are the ones charged by Paypal. diff --git a/ecommerce/shopper_experience/portal.rst b/ecommerce/shopper_experience/portal.rst new file mode 100644 index 000000000..bd0466af9 --- /dev/null +++ b/ecommerce/shopper_experience/portal.rst @@ -0,0 +1,38 @@ +========================================== +How your customers can access their portal +========================================== + +It has never been so easy for your customers to access their documents +through a portal. Forget endless signup forms, Odoo makes it as easy as +ABC. With eCommerce and Online Quotation apps, your customers are requested +to create a portal account (name, email, password only) from the very first +order confirmation or online quotation email they get from you. + +Sign up +======= + +When clicking the link in the email or when clicking *Sign up* in the checkout +process, your customer is directed to the *Sign up* page. + +.. image:: ./media/portal_odoo_signup.png + :align: center + +Customer account +================ + +Once logged in the customer will access his account by clicking *My Account* +in the login dropdown menu. + +.. image:: ./media/portal_link.png + :align: center + +From the portal menu all the customer history can be reviewed. The main address +(billing) can also be modified. + +.. image:: ./media/portal_menu.png + :align: center + +.. note:: + If a portal user is a contact of a company (*Company* field set in customer + detail form), this last will see all the documents of the company and all + its other contacts through the portal. diff --git a/ecommerce/taxes.rst b/ecommerce/taxes.rst new file mode 100644 index 000000000..9800785b3 --- /dev/null +++ b/ecommerce/taxes.rst @@ -0,0 +1,12 @@ +================= +Collect taxes +================= + +.. toctree:: + :titlesonly: + + ../../accounting/others/taxes/default_taxes + ../../accounting/others/taxes/application + ../../accounting/others/taxes/tax_included + ../../accounting/others/taxes/taxcloud + diff --git a/sales/products_prices.rst b/sales/products_prices.rst index 773f5d92b..ba25a8d24 100644 --- a/sales/products_prices.rst +++ b/sales/products_prices.rst @@ -5,4 +5,6 @@ Products & Prices .. toctree:: :titlesonly: - products_prices/prices \ No newline at end of file + products_prices/products + products_prices/taxes + products_prices/prices diff --git a/sales/products_prices/prices.rst b/sales/products_prices/prices.rst index c292501a4..969d399e4 100644 --- a/sales/products_prices/prices.rst +++ b/sales/products_prices/prices.rst @@ -1,8 +1,9 @@ ================= -Prices Management +Manage your pricing ================= .. toctree:: :titlesonly: - prices/B2B_B2C \ No newline at end of file + prices/pricing + prices/currencies diff --git a/sales/products_prices/prices/currencies.rst b/sales/products_prices/prices/currencies.rst new file mode 100644 index 000000000..694c6e660 --- /dev/null +++ b/sales/products_prices/prices/currencies.rst @@ -0,0 +1,49 @@ +================================= +How to sell in foreign currencies +================================= + +Pricelists can also be used to manage prices in foreign currencies. + +* Check *Allow multi currencies* in :menuselection:`Invoicing/Accounting --> Settings`. +As admin, you need *Adviser* access rights on Invoicing/Accounting apps. + +* Create one pricelist per currency. A new *Currency* field shows up in pricelist setup form. + +.. tip:: + To activate a new currency, go to :menuselection:`Accounting --> Configuration --> Currencies`, + select it in the list and press *Activate*in the top-right corner. Now it will show up in + currencies drop-down lists. + +Prices in foreign currencies can be defined in two fashions. + +Automatic conversion from public price +===================================== + +The public price is in your company's main currency (see +:menuselection:`Accounting --> Settings`) and is set in product detail form. + +.. image:: ./media/public_price.png + :align: center + +The conversion rates can be found in +:menuselection:`Accounting --> Configuration --> Currencies`. They can be updated +from Yahoo or the European Central Bank at your convenience: manually, daily, weekly, +etc. See :menuselection:`Accounting --> Settings`. + +.. image:: ./media/currency_rate.png + :align: center + +.. image:: ./media/prices_conversion.png + :align: center + +Set your own prices +=================== + +This is advised if you don't want your pricing to change along with currency rates. + +.. image:: ./media/pricing_currency.png + :align: center + +.. seealso:: + + * :doc:`pricing` diff --git a/sales/products_prices/prices/discount.rst b/sales/products_prices/prices/discount.rst deleted file mode 100644 index b573c4133..000000000 --- a/sales/products_prices/prices/discount.rst +++ /dev/null @@ -1,3 +0,0 @@ -========================================== -How to apply discounts and limited offers? -========================================== \ No newline at end of file diff --git a/sales/products_prices/products/margin.rst b/sales/products_prices/prices/margin.rst similarity index 100% rename from sales/products_prices/products/margin.rst rename to sales/products_prices/prices/margin.rst diff --git a/sales/products_prices/prices/media/currency_rate.png b/sales/products_prices/prices/media/currency_rate.png new file mode 100644 index 000000000..e8cc32bf8 Binary files /dev/null and b/sales/products_prices/prices/media/currency_rate.png differ diff --git a/sales/products_prices/prices/media/customer_pricelist.png b/sales/products_prices/prices/media/customer_pricelist.png new file mode 100644 index 000000000..621085ee0 Binary files /dev/null and b/sales/products_prices/prices/media/customer_pricelist.png differ diff --git a/sales/products_prices/prices/media/discount_options.png b/sales/products_prices/prices/media/discount_options.png new file mode 100644 index 000000000..d5bcdbf95 Binary files /dev/null and b/sales/products_prices/prices/media/discount_options.png differ diff --git a/sales/products_prices/prices/media/formula_cost.png b/sales/products_prices/prices/media/formula_cost.png new file mode 100644 index 000000000..a95beccaa Binary files /dev/null and b/sales/products_prices/prices/media/formula_cost.png differ diff --git a/sales/products_prices/prices/media/formula_discount.png b/sales/products_prices/prices/media/formula_discount.png new file mode 100644 index 000000000..8477f1d1e Binary files /dev/null and b/sales/products_prices/prices/media/formula_discount.png differ diff --git a/sales/products_prices/prices/media/price_computation.png b/sales/products_prices/prices/media/price_computation.png new file mode 100644 index 000000000..932eb7152 Binary files /dev/null and b/sales/products_prices/prices/media/price_computation.png differ diff --git a/sales/products_prices/prices/media/pricelist_apply.png b/sales/products_prices/prices/media/pricelist_apply.png new file mode 100644 index 000000000..99034119d Binary files /dev/null and b/sales/products_prices/prices/media/pricelist_apply.png differ diff --git a/sales/products_prices/prices/media/prices_conversion.png b/sales/products_prices/prices/media/prices_conversion.png new file mode 100644 index 000000000..df546c853 Binary files /dev/null and b/sales/products_prices/prices/media/prices_conversion.png differ diff --git a/sales/products_prices/prices/media/pricing_currency.png b/sales/products_prices/prices/media/pricing_currency.png new file mode 100644 index 000000000..4f9ffffec Binary files /dev/null and b/sales/products_prices/prices/media/pricing_currency.png differ diff --git a/sales/products_prices/prices/media/pricing_customer.png b/sales/products_prices/prices/media/pricing_customer.png new file mode 100644 index 000000000..b4895f1c5 Binary files /dev/null and b/sales/products_prices/prices/media/pricing_customer.png differ diff --git a/sales/products_prices/prices/media/pricing_formula.png b/sales/products_prices/prices/media/pricing_formula.png new file mode 100644 index 000000000..db57fba71 Binary files /dev/null and b/sales/products_prices/prices/media/pricing_formula.png differ diff --git a/sales/products_prices/prices/media/pricing_options.png b/sales/products_prices/prices/media/pricing_options.png new file mode 100644 index 000000000..4c9919528 Binary files /dev/null and b/sales/products_prices/prices/media/pricing_options.png differ diff --git a/sales/products_prices/prices/media/pricing_period.png b/sales/products_prices/prices/media/pricing_period.png new file mode 100644 index 000000000..7770baa9f Binary files /dev/null and b/sales/products_prices/prices/media/pricing_period.png differ diff --git a/sales/products_prices/prices/media/pricing_quantity.png b/sales/products_prices/prices/media/pricing_quantity.png new file mode 100644 index 000000000..1364b804b Binary files /dev/null and b/sales/products_prices/prices/media/pricing_quantity.png differ diff --git a/sales/products_prices/prices/media/public_price.png b/sales/products_prices/prices/media/public_price.png new file mode 100644 index 000000000..d4ff4f068 Binary files /dev/null and b/sales/products_prices/prices/media/public_price.png differ diff --git a/sales/products_prices/prices/pricing.rst b/sales/products_prices/prices/pricing.rst new file mode 100644 index 000000000..5972f866c --- /dev/null +++ b/sales/products_prices/prices/pricing.rst @@ -0,0 +1,126 @@ +============================================================== +How to adapt your prices to your customers and apply discounts +============================================================== + +Have the pricing strategy tailored to your business, with specific prices +and discounts per quantity, period, currency or customer segment. Odoo has an +integrated tool to set and compute sales prices, the so-called Pricelists. + +Choose your pricing strategy in click on :menuselection:`Sales --> Settings`. + +.. image:: ./media/pricing_options.png + :align: center + +Several prices per product +========================== + +To apply several prices per product, select *Different prices per customer +segment* in :menuselection:`Sales --> Settings`. Then open the *Sales* tab +in the product detail form. You can settle following strategies. + +Prices per customer segment +--------------------------- + +Create pricelists for your customer segments: e.g. registered, premium, etc. + +.. image:: ./media/pricing_customer.png + :align: center + +The default pricelist applied to any new customer is *Public Pricelist*. To +segment your customers, open the customer detail form and change the *Sale +Pricelist* in the *Sales & Purchases* tab. + +.. image:: ./media/customer_pricelist.png + :align: center + +Temporary prices +---------------- + +Apply deals for bank holidays, etc. Enter start and end dates dates. + +.. image:: ./media/pricing_period.png + :align: center + +.. tip:: + Make sure you have default prices set in the pricelist outside of the + deals period. Otherwise you might have issues once the period over. + +Prices per minimum quantity +--------------------------- + +.. image:: ./media/pricing_quantity.png + :align: center + +.. note:: + The prices order does not matter. The system is smart and applies + first prices that match the order date and/or the minimal quantities. + +Discounts, margins, roundings +============================= + +The third option allows to apply discounts % or amounts, margins and +rounding based on formulas. Once installed go to +:menuselection:`Sales --> Configuration --> Pricelists +(or :menuselection:`Website Admin --> Catalog --> Pricelists` if you +use e-Commerce). + +.. image:: ./media/pricing_formula.png + :align: center + +Each pricelist item can be associated to either all products, to a product internal category (set of products) or to a specific product. Like in second option, you can set dates and minimum quantities. + +.. image:: ./media/pricelist_apply.png + :align: center + +.. note:: + +* Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item. + +* Make sure at least one pricelist item covers all your products. +There are 3 modes of computation: fix price, discount & formula. + +.. image:: ./media/price_computation.png + :align: center + +Here are different price settings made possible thanks to formulas. + +Discounts with roundings +------------------------ + +e.g. 20% discounts with prices rounded up to 9.99. + +.. image:: ./media/formula_discount.png + :align: center + +Costs with markups (retail) +--------------------------- + +e.g. sale price = 2*cost (100% markup) with $5 of minimal margin. + +.. image:: ./media/formula_cost.png + :align: center + +Prices per country +================== +Pricelists can be set by countries group. +Any new customer recorded in Odoo gets a default pricelist, i.e. the first one in the list matching the country. In case no country is set for the customer, Odoo takes the first pricelist without any country group. + +The default pricelist can be replaced when creating a sales order. + +.. tip:: You can change the pricelists sequence by drag & drop in list view. + +Compute and show discount % to customers +============================= + +In case of discount, you can show the public price and the computed discount % on printed sales orders and in your eCommerce catalog. To do so: + +* Check *Allow discounts on sales order lines* in :menuselection:`Sales --> Configuration --> Settings --> Quotations & Sales --> Discounts`. +* Apply the option in the pricelist setup form. + +.. image:: ./media/discount_options.png + :align: center + +.. seealso:: + + * :doc:`currencies` + * :doc:`../../../ecommerce/maximizing_revenue/pricing` diff --git a/sales/products_prices/prices/taxes.rst b/sales/products_prices/prices/taxes.rst deleted file mode 100644 index 1efdf7d76..000000000 --- a/sales/products_prices/prices/taxes.rst +++ /dev/null @@ -1,3 +0,0 @@ -=============================== -How to comply with local taxes? -=============================== \ No newline at end of file diff --git a/sales/products_prices/products.rst b/sales/products_prices/products.rst index 94cbd24fa..7881bce0b 100644 --- a/sales/products_prices/products.rst +++ b/sales/products_prices/products.rst @@ -1,7 +1,9 @@ =================== -Products Management +Manage your products =================== .. toctree:: :titlesonly: + products/import + diff --git a/sales/products_prices/products/currencies.rst b/sales/products_prices/products/currencies.rst deleted file mode 100644 index 2fb5902d6..000000000 --- a/sales/products_prices/products/currencies.rst +++ /dev/null @@ -1,3 +0,0 @@ -============================================= -How to sell products in different currencies? -============================================= \ No newline at end of file diff --git a/sales/products_prices/products/import.rst b/sales/products_prices/products/import.rst new file mode 100644 index 000000000..49e9378e2 --- /dev/null +++ b/sales/products_prices/products/import.rst @@ -0,0 +1,64 @@ +========================= +How to import my products +========================= + +How to start +============ + +Download the following import templates: + +1. Partners: customers, vendors (no relation field, can be imported as is) +2. Products (no relation field, can be imported as is) +3. Product Website Categories +4. Product Attributes & Values +5. Products with Categories & Attributes (3 & 4 must be imported first) + +Download link: https://drive.google.com/drive/folders/0B1uIL9E_zXrrTEp5eGI2dXJSUjg?usp=sharing + +You can open them with any spreadsheets software (Microsoft Office, OpenOffice, Google Drive, etc.). + +How to customize the file +========================= + +* Remove columns you don't need. Don't remove the first one (called *ID*, see + why here below). +* Don't change labels of columns you want to import. Otherwse Odoo won't match + the columns automatically. +* Feel free to add new columns but the fields need to exist in Odoo. If Odoo fails + in matching the column name with a field, you can make it manually when importing + by browsing a list of available fields. +* Once modified, keep your file in .csv format. + +How to import the file +====================== + +1. Go to the Products menu in Sales, Purchase, Website Admin, etc. +2. Switch to list view (top-right corner). +3. Click the *Import* button (top-left corner). +4. Make sure all the columns match an existing field. If not select it + manually from the drop-down list. +5. Press * Validate* to test the import. +6. If you get "Everything seems valid." as result message, press *Import* + to process the real import. Otherwise correct the issues spotted during the test. + +Why an “ID” column +================== + +The ID is an unique identifier for the line item. Feel free to use the one of your +previous software to ease the transition to Odoo. + +Setting an ID is not mandatory when importing but it helps in many cases: + +* Update imports: you can import the same file several times without creating duplicates; +* Import relation fields (see here below). + +How to import relation fields +============================= + +An Odoo object is always related to many other objects (e.g. a product is linked +to product categories, attributes, vendors, etc.). To import those relations you need to +import the records of the related object first from their own list menu. + +You can do it using either the name of the related record or its ID. The ID is expected when +two records have the same name. In such a case add " / ID" at the end of the column title +(e.g. for product attributes: Product Attributes / Attribute / ID). diff --git a/sales/products_prices/products/media/import_templates.zip b/sales/products_prices/products/media/import_templates.zip new file mode 100644 index 000000000..493d343e9 Binary files /dev/null and b/sales/products_prices/products/media/import_templates.zip differ diff --git a/sales/products_prices/products/version.rst b/sales/products_prices/products/version.rst deleted file mode 100644 index 4b0dd7c97..000000000 --- a/sales/products_prices/products/version.rst +++ /dev/null @@ -1,3 +0,0 @@ -=================================================================== -How to create different versions of a product (size, colour, etc.)? -=================================================================== \ No newline at end of file diff --git a/sales/products_prices/taxes.rst b/sales/products_prices/taxes.rst new file mode 100644 index 000000000..a5928ff2d --- /dev/null +++ b/sales/products_prices/taxes.rst @@ -0,0 +1,13 @@ +================= +Set taxes +================= + +.. toctree:: + :titlesonly: + + ../../accounting/others/taxes/default_taxes + ../../accounting/others/taxes/application + ../../accounting/others/taxes/tax_included + ../../accounting/others/taxes/taxcloud + ../../accounting/others/taxes/B2B_B2C + diff --git a/website.rst b/website.rst index 3652da23f..233381e4f 100644 --- a/website.rst +++ b/website.rst @@ -7,6 +7,7 @@ Website .. toctree:: :titlesonly: - website/seo - website/google_analytics - website/translate_website + website/publish + website/optimize + + diff --git a/website/optimize.rst b/website/optimize.rst new file mode 100644 index 000000000..277da134e --- /dev/null +++ b/website/optimize.rst @@ -0,0 +1,12 @@ +======= +Optimize +======= + +.. toctree:: + :titlesonly: + + optimize/seo + optimize/google_analytics + + + diff --git a/website/optimize/ab_testing.rst b/website/optimize/ab_testing.rst new file mode 100644 index 000000000..068de73a8 --- /dev/null +++ b/website/optimize/ab_testing.rst @@ -0,0 +1,87 @@ +===================== +How to do A/B Testing +===================== + +

+ A/B testing is the process of testing two versions of a page to see which one performs better in reaching your business objectives. +

+

Here is a basic guide for your first A/B testing:

+
+
+
+
+

1. Define what to test
+ The main goal is increasing your ROI. Figure out the best page(s) to + test. Here are a few examples of good testing variables: +

+
  • Call-to-action’s (i.e. button’s) wording, size, color and placement,
  • +
  • Headline or product description,
  • +
  • Form’s length and types of fields,
  • +
  • Product pricing and promotional offers,
  • +
  • Images on landing and product pages,
  • +
  • Amount of text on the page (short vs. long).
  • +
    +
    +
    +
    +
    +
    +

    2. Create the page variation
    +

    +
    +
    +
    +
    +
    +

    3. Configure a Google Analytics account
    + This is necessary in order to record the statistics of your test. +

    +
    +
    +
    +
    +
    +

    4. Create your campaign in Google Analytics
    + Simply follow the wizard by creating a new experiment in the Behavior > + Experiments menu of Google Analytics. + To learn more, take a look at their online help. +

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + +

    Good practices

    Bad practices

    Know how long to run a test before giving up
    + Don't give up too early! Wait for your test results to be significant. Take a look at the statistical + confidence in Google Analytics; It should be at least 95%.
    + Don't give up too late neither because poorly performing variations could cost you revenues.
    Don't test versions at different time periods
    If you + test one version one week and the second the next one, your results won't be + accurate, or worse, wrong!
    Do many A/B tests
    + Don't despair if your first A/B test turns out to be a lemon. The key in optimizing conversion rates is to do a ton of A/B in order to put together all the most effective configurations.
    Don’t surprise regular visitors
    + If you are testing a core part of your website, include only new visitors in + the test. You want to avoid shocking regular visitors, especially because the + variations may not ultimately be implemented.
    Test only one variable
    Try only one variable at a time, otherwise you won't be able to clearly interpret the results of your modifications.
    + + + diff --git a/website/google_analytics.rst b/website/optimize/google_analytics.rst similarity index 62% rename from website/google_analytics.rst rename to website/optimize/google_analytics.rst index 484ad85f8..c4199a26f 100644 --- a/website/google_analytics.rst +++ b/website/optimize/google_analytics.rst @@ -1,8 +1,6 @@ -:banner: banners/getting_started.jpg - -================ -Google Analytics -================ +================================================== +How to track your traffic through Google Analytics +================================================== To setup the signin process with Google, first you have to perform the following steps: @@ -17,8 +15,9 @@ To setup the signin process with Google, first you have to perform the following .. image:: media/GC_new_project.png :align: center -- In the menu on left side, select the sub menu APIs (from menu APIs and auth) and activate **"Analytics API"** by clicking on button "OFF". - When it's done, check that the button of **"Calendar API"** is well in green and with text "ON" +- In the menu on left side, select the sub menu APIs (from menu APIs and auth) and + activate **"Analytics API"** by clicking on button "OFF". When it's done, check + that the button of **"Calendar API"** is well in green and with text "ON" .. image:: media/GC_API.png :align: center @@ -29,7 +28,8 @@ To setup the signin process with Google, first you have to perform the following .. image:: media/GC_on_api.png :align: center -- In the menu on left side, select the sub menu **"Credentials"** (from menu APIs and auth) and click on button **"Create New Client ID"** +- In the menu on left side, select the sub menu **"Credentials"** (from menu APIs and + auth) and click on button **"Create New Client ID"** .. image:: media/GC_credentials.png :align: center @@ -38,14 +38,15 @@ To setup the signin process with Google, first you have to perform the following :align: center - Fill in the Name of application and check that the platform is well on **"Web Application"**. - You should now configure the allowed pages on which you will be redirected. To do it, you need to complete the field **"Redirect RI"** - and set as value (your own domain followed by ``/google_account/authentication``) : - You can now click on **"Create Client ID"** + You should now configure the allowed pages on which you will be redirected. To do + it, you need to complete the field **"Redirect RI"** and set as value (your own domain + followed by ``/google_account/authentication``) : You can now click on **"Create Client ID"** .. image:: media/GC_client_id.png :align: center -- Once done, you will have the both informations (**Client ID** and **Client Secret**) that you need to insert in the 2 fields below ! +- Once done, you will have the both informations (**Client ID** and **Client Secret**) that + you need to insert in the 2 fields below ! .. image:: media/GC_copy.png :align: center diff --git a/website/media/GC_API.png b/website/optimize/media/GC_API.png similarity index 100% rename from website/media/GC_API.png rename to website/optimize/media/GC_API.png diff --git a/website/media/GC_Project.png b/website/optimize/media/GC_Project.png similarity index 100% rename from website/media/GC_Project.png rename to website/optimize/media/GC_Project.png diff --git a/website/media/GC_client_id.png b/website/optimize/media/GC_client_id.png similarity index 100% rename from website/media/GC_client_id.png rename to website/optimize/media/GC_client_id.png diff --git a/website/media/GC_copy.png b/website/optimize/media/GC_copy.png similarity index 100% rename from website/media/GC_copy.png rename to website/optimize/media/GC_copy.png diff --git a/website/media/GC_create_new_client_id.png b/website/optimize/media/GC_create_new_client_id.png similarity index 100% rename from website/media/GC_create_new_client_id.png rename to website/optimize/media/GC_create_new_client_id.png diff --git a/website/media/GC_create_project.png b/website/optimize/media/GC_create_project.png similarity index 100% rename from website/media/GC_create_project.png rename to website/optimize/media/GC_create_project.png diff --git a/website/media/GC_credentials.png b/website/optimize/media/GC_credentials.png similarity index 100% rename from website/media/GC_credentials.png rename to website/optimize/media/GC_credentials.png diff --git a/website/media/GC_enable_api.png b/website/optimize/media/GC_enable_api.png similarity index 100% rename from website/media/GC_enable_api.png rename to website/optimize/media/GC_enable_api.png diff --git a/website/media/GC_new_project.png b/website/optimize/media/GC_new_project.png similarity index 100% rename from website/media/GC_new_project.png rename to website/optimize/media/GC_new_project.png diff --git a/website/media/GC_off_api.png b/website/optimize/media/GC_off_api.png similarity index 100% rename from website/media/GC_off_api.png rename to website/optimize/media/GC_off_api.png diff --git a/website/media/GC_on_api.png b/website/optimize/media/GC_on_api.png similarity index 100% rename from website/media/GC_on_api.png rename to website/optimize/media/GC_on_api.png diff --git a/website/media/seo01.png b/website/optimize/media/seo01.png similarity index 100% rename from website/media/seo01.png rename to website/optimize/media/seo01.png diff --git a/website/media/seo02.png b/website/optimize/media/seo02.png similarity index 100% rename from website/media/seo02.png rename to website/optimize/media/seo02.png diff --git a/website/media/seo03.png b/website/optimize/media/seo03.png similarity index 100% rename from website/media/seo03.png rename to website/optimize/media/seo03.png diff --git a/website/media/seo04.png b/website/optimize/media/seo04.png similarity index 100% rename from website/media/seo04.png rename to website/optimize/media/seo04.png diff --git a/website/media/seo05.png b/website/optimize/media/seo05.png similarity index 100% rename from website/media/seo05.png rename to website/optimize/media/seo05.png diff --git a/website/media/seo06.png b/website/optimize/media/seo06.png similarity index 100% rename from website/media/seo06.png rename to website/optimize/media/seo06.png diff --git a/website/media/seo07.png b/website/optimize/media/seo07.png similarity index 100% rename from website/media/seo07.png rename to website/optimize/media/seo07.png diff --git a/website/media/seo08.png b/website/optimize/media/seo08.png similarity index 100% rename from website/media/seo08.png rename to website/optimize/media/seo08.png diff --git a/website/media/seo09.png b/website/optimize/media/seo09.png similarity index 100% rename from website/media/seo09.png rename to website/optimize/media/seo09.png diff --git a/website/media/seo10.png b/website/optimize/media/seo10.png similarity index 100% rename from website/media/seo10.png rename to website/optimize/media/seo10.png diff --git a/website/media/seo11.png b/website/optimize/media/seo11.png similarity index 100% rename from website/media/seo11.png rename to website/optimize/media/seo11.png diff --git a/website/media/seo12.png b/website/optimize/media/seo12.png similarity index 100% rename from website/media/seo12.png rename to website/optimize/media/seo12.png diff --git a/website/seo.rst b/website/optimize/seo.rst similarity index 99% rename from website/seo.rst rename to website/optimize/seo.rst index a339cfb92..2048d564a 100644 --- a/website/seo.rst +++ b/website/optimize/seo.rst @@ -1,5 +1,5 @@ ========================== -Search Engine Optimisation +How to do Search Engine Optimisation in Odoo ========================== How is SEO handled in Odoo? diff --git a/website/publish.rst b/website/publish.rst new file mode 100644 index 000000000..013a5665c --- /dev/null +++ b/website/publish.rst @@ -0,0 +1,12 @@ +======= +Publish +======= + +.. toctree:: + :titlesonly: + + publish/domain_name + publish/translate + + + diff --git a/website/publish/domain_name.rst b/website/publish/domain_name.rst new file mode 100644 index 000000000..1cd85ac18 --- /dev/null +++ b/website/publish/domain_name.rst @@ -0,0 +1,39 @@ +============================= +How to set my own domain name +============================= + +These steps briefly explain how to link your company’s registered domain +(e.g. www.yourcompany.com) to your Odoo instance. Once someone types your +company’s domain, they are immediately directed to Odoo (i.e. yourcompany.odoo.com). + +* Check its availability or see who currently owns it at https://www.whois.net/. +* Buy your domain name at a provider. See recommended providers here: + http://www.mytipshub.com/top-ten-best-domain-registrar/. + +* Access your Odoo.com account from your homepage. + +.. image:: media/domain_name01.png + :align: center + +* Access 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. Type your custom domain (e.g. www.yourcompany.com) + and press *Add*. Then click *OK*. + +* Go to your domain manager’s website and search for the DNS Zones management page. + +* Create a CNAME record that points your domain (e.g. www.yourcompany.com) to your + Odoo database (yourcompany.odoo.com). Please reference your domain manager for + specific directions on how to complete this task. + +.. seealso:: + + * :doc:`../../getting_started/documentation` diff --git a/website/publish/media/domain_name01.png b/website/publish/media/domain_name01.png new file mode 100644 index 000000000..c1b13b127 Binary files /dev/null and b/website/publish/media/domain_name01.png differ diff --git a/website/publish/media/domain_name02.png b/website/publish/media/domain_name02.png new file mode 100644 index 000000000..b1bdf7e1a Binary files /dev/null and b/website/publish/media/domain_name02.png differ diff --git a/website/publish/media/domain_name03.png b/website/publish/media/domain_name03.png new file mode 100644 index 000000000..3e2ec7367 Binary files /dev/null and b/website/publish/media/domain_name03.png differ diff --git a/website/media/translate_website01.png b/website/publish/media/translate_website01.png similarity index 100% rename from website/media/translate_website01.png rename to website/publish/media/translate_website01.png diff --git a/website/media/translate_website02.png b/website/publish/media/translate_website02.png similarity index 100% rename from website/media/translate_website02.png rename to website/publish/media/translate_website02.png diff --git a/website/media/translate_website03.png b/website/publish/media/translate_website03.png similarity index 100% rename from website/media/translate_website03.png rename to website/publish/media/translate_website03.png diff --git a/website/media/translate_website04.png b/website/publish/media/translate_website04.png similarity index 100% rename from website/media/translate_website04.png rename to website/publish/media/translate_website04.png diff --git a/website/media/translate_website05.png b/website/publish/media/translate_website05.png similarity index 100% rename from website/media/translate_website05.png rename to website/publish/media/translate_website05.png diff --git a/website/translate_website.rst b/website/publish/translate.rst similarity index 98% rename from website/translate_website.rst rename to website/publish/translate.rst index 59b2653e7..aa01cec95 100644 --- a/website/translate_website.rst +++ b/website/publish/translate.rst @@ -1,5 +1,5 @@ =============================== -How can I translate my website? +How to translate my website =============================== Overview