[IMP] ecommerce: shipping

taskid-4016678

closes odoo/documentation#11599

X-original-commit: 795afbb728
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
This commit is contained in:
Donatienne (dopi) 2024-11-26 14:36:13 +00:00 committed by Audrey (auva)
parent 6f192511cd
commit 51fd568cb1
5 changed files with 100 additions and 59 deletions

View File

@ -109,6 +109,8 @@ delivery method.
:guilabel:`Unpublished` smart button. Doing so changes that smart button to read:
:guilabel:`Published`.
.. _inventory/shipping_receiving/shipping-methods-details:
The :guilabel:`Shipping Method` page contains details about the provider, including:
- :guilabel:`Shipping Method` (*Required field*): the name of the delivery method (e.g. `FedEx US`,
@ -213,6 +215,8 @@ the :guilabel:`Logistics` section.
:align: center
:alt: Display the "Weight" field in the Inventory tab of the product form.
.. _inventory/shipping_receiving/apply-third-party-carrier:
Apply third-party shipping carrier
==================================

View File

@ -115,4 +115,4 @@ record.
- :doc:`../pipeline/manage_sales_teams`
- :doc:`convert`
- :doc:`../track_leads/lead_scoring`
- :ref:`Website forms <dynamic_content/form>`
- :ref:`Website forms <website/dynamic_content/form>`

View File

@ -116,7 +116,7 @@ website to trigger the creation of tasks in a project.
- :guilabel:`Action`: select :guilabel:`Create a Task`.
- :guilabel:`Project`: choose the project that you want the new tasks to be created in.
#. :ref:`Customize the form <dynamic_content/form>`.
#. :ref:`Customize the form <website/dynamic_content/form>`.
When the form is submitted, it automatically creates a project task. The task's content is defined
by the form's corresponding fields.

View File

@ -1,70 +1,107 @@
================
Shipping methods
================
========
Shipping
========
Depending on your shipping strategy, you have the choice to either use your :ref:`own shipping
methods <ecommerce-own-shipping>`, or use an integration with an :ref:`existing shipping provider
<ecommerce-shipping-providers>`.
Odoo eCommerce allows you to configure various shipping methods, enabling customers to choose
their preferred option at checkout. These methods include :ref:`external providers
<ecommerce/shipping/external-provider>`, :ref:`custom options <ecommerce/shipping/custom-method>`
such as flat-rate or free shipping, local carriers via
:doc:`Sendcloud <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping>`
or :ref:`Based on Rules <inventory/shipping/rules>`, and :ref:`in-store pickup
<ecommerce/shipping/instore-pickup>`.
.. _ecommerce-own-shipping:
.. _ecommerce/shipping/external-provider:
External provider integration
=============================
To handle product delivery, you can connect your database to :doc:`third-party shipping carriers
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper>`
like :doc:`FedEx <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/fedex>`,
:doc:`UPS <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials>`,
or :doc:`DHL <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dhl_credentials>`.
A shipping connector links to these providers, automating :doc:`tracking labels
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels>` and shipping
processes.
To enable a third-party shipping provider, go to :menuselection:`Website --> Configuration -->
Settings`, scroll to the :guilabel:`Shipping` section, select the desired shipping provider(s),
and :guilabel:`Save`.
Go to :menuselection:`Website --> Configuration --> Shipping Methods` and select the shipping method
in the list to :ref:`configure it <inventory/shipping_receiving/configure-delivery-method>`.
.. seealso::
:doc:`../checkout_payment_shipping/checkout`
:doc:`Third-party shipping carriers
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper>`
Own shipping methods
====================
.. important::
The field used to define additional fees **must** be filled **in your third-party shipping
provider account**, even if you do not plan to charge customers any additional fee. If you do not
want to apply a fee, enter `0`. If the field is left empty, the delivery price cannot be
calculated, and an error message prompts the customer to select an alternative shipping method.
You can create your own custom shipping methods and define rules to compute shipping costs. To do
so, go to :menuselection:`Website --> Configuration --> Shipping Methods`, and either select an
**existing** shipping method, or :guilabel:`Create` one. When creating a shipping method, you can
choose between :ref:`Fixed Price <inventory/shipping/fixed>`, :ref:`Based on Rules
<inventory/shipping/rules>`, and :guilabel:`Pickup in store`.
Margin on delivery rate
-----------------------
Pickup in store
---------------
To add an additional fee to the base shipping rate (e.g., to cover extra costs), log into your
carrier account and set the desired fee in the related field. The shipping connector retrieves this
fee and includes it in the final price at checkout. Contact your carrier for further assistance
with this configuration.
:guilabel:`Pickup in store` must first be **enabled** in the settings (:menuselection:`Website -->
Configuration --> Settings --> Shipping section)` by checking :guilabel:`On Site Payments &
Picking`. Once enabled, you can select and :guilabel:`Customize Pickup Sites`. :guilabel:`Picking
sites` can be made **website-specific**, but are by default available for *all* websites.
Alternatively, enter `0` in your third-party shipping provider account, then set the fee in Odoo.
To do so, access the desired :ref:`shipping method's form
<inventory/shipping_receiving/configure-delivery-method>` and enter the fee in the :guilabel:`Margin
on Rate` field to add a percentage to the shipping costs and/or the :guilabel:`Additional margin`
field to add a fixed amount.
.. seealso::
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/cancel`
.. important::
The field used to define additional fees cannot be left empty in your third-party shipping
provider account.
.. _ecommerce-shipping-providers:
.. _ecommerce/shipping/custom-method:
Shipping providers
==================
Custom shipping method
======================
Another solution is to use one of the integrations with an existing shipping provider. The advantage
of using an integration is that delivery costs are automatically computed based on each order as
well as generating shipping labels.
Custom shipping methods must be created, for example:
- to integrate shipping carriers through :doc:`Sendcloud
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping>`;
- to configure specific rules (e.g., to offer free shipping for orders above a specific amount) for
a specific provider;
- to configure :ref:`Fixed Price <inventory/shipping/fixed>` shipping or shipping
:ref:`Based on Rules <inventory/shipping/rules>`.
To create a custom shipping method, go to :menuselection:`Website --> Configuration -->
Shipping Methods`, click :guilabel:`New` and fill in the :ref:`fields
<inventory/shipping_receiving/shipping-methods-details>`.
.. seealso::
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/dhl_credentials`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels`
In the :guilabel:`Provider` field, select :ref:`Based on Rules <inventory/shipping/rules>`,
:ref:`Fixed Price <inventory/shipping/fixed>`, or :ref:`Pickup in store <inventory/shipping/pickup>`
if the shiping method does not involve any specific provider.
Website availability
====================
.. tip::
Upon :ref:`configuring <inventory/shipping_receiving/configure-delivery-method>` a shipping
method, you can:
Shipping methods can be made available on **specific** websites *only*, if desired. To do so, go to
:menuselection:`Website --> Configuration --> Settings --> Shipping Methods`, and select the desired
**shipping method**. In the :guilabel:`Website` field, set the website you want the shipping method
to be restrained to. Leave the field **empty** for the method to be available on *all* websites.
- restrict it :doc:`to a specific website <../../website/configuration/multi_website>` by
selecting it in :guilabel:`Website` field;
- use the :guilabel:`Destination availability` tab to filter the delivery carriers displayed
based on the customer's area;
- click the :guilabel:`Test Environment` smart button to switch to
the :guilabel:`Production Environment`, then click :guilabel:`Unpublished` to
:guilabel:`Publish` the shipping method and make it available to website visitors.
Delivery method at checkout
===========================
.. _ecommerce/shipping/instore-pickup:
Customers can choose the shipping method at the end of the checkout process, at the
:guilabel:`Confirm Order` step.
In-store pickup
===============
.. image:: shipping/shipping-checkout.png
:align: center
:alt: Delivery method choice at checkout
To allow customers to reserve products online and pay for/collect them in person at the store, go to
:menuselection:`Website --> Configuration --> Settings`, scroll to the :guilabel:`Shipping` section,
enable :guilabel:`On Site Payments & Picking`, and :guilabel:`Save`.
Then, click :guilabel:`Customize Pickup Sites`, select the shipping method or click :guilabel:`New`
to create a new one and :ref:`configure <inventory/shipping_receiving/configure-delivery-method>`
the fields. Make sure the :guilabel:`Provider` field is set to :guilabel:`Pickup in store`.

View File

@ -2,10 +2,10 @@
Dynamic content
===============
The :guilabel:`Dynamic Content` building blocks, such as :ref:`Form <dynamic_content/form>`,
:ref:`Products <dynamic_content/products>`, :ref:`Embed Code <dynamic_content/embed_code>`, or
:doc:`Blog Posts <../../../blog>`, help you create interactive and visually appealing layouts for
your web pages.
The :guilabel:`Dynamic Content` :doc:`building blocks <../building_blocks>`, such as
:ref:`Form <website/dynamic_content/form>`, :ref:`Products <website/dynamic_content/products>`,
:ref:`Embed Code <website/dynamic_content/embed_code>`, or :doc:`Blog Posts <../../../blog>`, help
you create interactive and visually appealing layouts for your web :doc:`pages <../../pages>`.
.. note::
To add a building block, click :guilabel:`Edit`, select the desired building block under the
@ -13,7 +13,7 @@ your web pages.
go to the :guilabel:`Customize` tab, where the available options depend on the type of block
selected.
.. _dynamic_content/form:
.. _website/dynamic_content/form:
Form
====
@ -70,7 +70,7 @@ contains. The fields available depend on the selected action.
.. tip::
Property fields added to the database can also be used.
.. _dynamic_content/products:
.. _website/dynamic_content/products:
Products
========
@ -88,7 +88,7 @@ the :guilabel:`Recently Sold Products` or :guilabel:`Recently Viewed Products` o
In addition, it is possible to display products from a single category only by selecting one with
the :guilabel:`Category` field.
.. _dynamic_content/embed_code:
.. _website/dynamic_content/embed_code:
Embed code
==========