[IMP] ecommerce: order handling

taskid- 4367344
This commit is contained in:
Donatienne (dopi) 2024-11-29 15:32:46 +01:00
parent 2bfd2b64af
commit d601c7dec6
2 changed files with 83 additions and 76 deletions

View File

@ -909,7 +909,7 @@ After configuring the Peruvian :ref:`electronic invoicing <peru-accounting-setti
the following configurations for the **eCommerce** flow:
- :ref:`Client account registration <checkout-sign>`;
- :ref:`Automatic invoice <handling/legal>`;
- :ref:`Automatic invoice <ecommerce/handling/legal>`;
- :doc:`../../websites/ecommerce/products`: Set the :guilabel:`Invoicing Policy` to
:guilabel:`Ordered quantities` and define the desired :guilabel:`Customer taxes`.
- :doc:`../payment_providers`;

View File

@ -2,111 +2,118 @@
Order handling
==============
When a customer orders on your eCommerce, there are **three** record types required to be handle in
Odoo:
In Odoo's eCommerce workflow, every purchase generates **key documents** to ensure smooth order
processing from start to finish:
:ref:`Sales orders <ecommerce/handling/sales>` upon order confirmation,
:ref:`Delivery orders <ecommerce/handling/delivery>` to manage picking, packaging, and
:doc:`shipping <../checkout_payment_shipping/shipping>`,
and :ref:`Invoices <ecommerce/handling/legal>` as the final step.
- :ref:`Sales orders <handling/sales>`;
- :ref:`Delivery orders <handling/delivery>`;
- :ref:`Invoices & legal requirements <handling/legal>`.
.. _handling/sales:
.. _ecommerce/handling/sales:
Sales orders
============
Order and payment status
------------------------
A sales order (SO) is automatically created when a customer confirms an online purchase.
The first step when a customer adds a product to his cart is the creation of a quotation. Orders can
be managed either from the **Website** or :doc:`Sales </applications/sales/sales>` app. eCommerce
orders can automatically be assigned to a specific sales team by going to :menuselection:`Website
--> Configuration --> Settings`. In the **Shop - Checkout Process** section, select a
:guilabel:`Sales Team` or :guilabel:`Salesperson` to handle eCommerce orders.
Sales order are available in :menuselection:`Website --> eCommerce --> Orders: Orders`. Click on a
sales order to open it. The status bar lets you know the payment status:
.. image:: order_handling/handling-salesteam.png
:align: center
:alt: Assignment of online orders to a sales team or salesperson
- :guilabel:`Quotation`: A new product is :doc:`added to the cart <../checkout_payment_shipping/cart>`
but the customer has not gone through the :doc:`checkout <../checkout_payment_shipping/checkout>`
process yet. If the customer is not logged in, the quotation is assigned to the default
"Public User".
- :guilabel:`Quotation Sent`: The customer has gone through the checkout process and confirmed the
order, but the :doc:`payment <../../../finance/payment_providers>` is not yet confirmed.
- :guilabel:`Sales Order`: The customer has completed the checkout process, confirmed the order, and
the payment is received.
Orders can be found under :menuselection:`Website --> eCommerce --> Orders/Unpaid Orders`. Each
order goes through a different status:
- **Quotation**: a new product is added to the cart, but the customer has *not* gone through the
checkout process yet;
- **Quotation sent**: the customer has gone through the checkout process and confirmed the order,
but the payment is not yet confirmed;
- **Order**: the customer has gone through the checkout process, confirmed the order, and the
payment is received.
.. image:: order_handling/handling-status.png
:align: center
:alt: Statuses of eCommerce orders
.. tip::
You can assign a :doc:`sales team <../../../sales/crm/pipeline/manage_sales_teams>` or
salesperson to manage your online orders by navigating to
:menuselection:`Website --> Configuration --> Settings`. In the
:guilabel:`Shop - Checkout Process` section, go to :guilabel:`Assignment` and select the desired
:guilabel:`Sales Team` or :guilabel:`Salesperson`.
Abandoned cart
--------------
An **abandoned cart** represents an order for which the customer did **not finish** the checkout
confirmation process. For these orders, it is possible to send an **email reminder** to the
customer automatically. To enable that feature, go to :menuselection:`Website --> Configuration -->
Settings` and in the :guilabel:`Email & Marketing` section, enable :guilabel:`Automatically send
abandoned checkout emails`. Once enabled, you can set the **time-lapse** after which the email is
sent and customize the **email template** used.
The order is considered an abandoned cart when a customer does not complete the
:doc:`checkout <../checkout_payment_shipping/checkout>` confirmation process.
To automate **email reminders** for abandoned carts, go to :menuselection:`Website --> Configuration
--> Settings`, scroll to the :guilabel:`Email & Marketing` section, and enable
:guilabel:`Automatically send abandoned checkout emails`. Set the delay in the
:guilabel:`Send after` field, and customize the email template by clicking
:icon:`fa-arrow-right` :guilabel:`Customize abandoned email template`. To track abandoned carts, go
to :menuselection:`Website --> eCommerce --> Orders: Abandoned Carts`.
.. note::
For abandoned cart emails, the customer must either have entered their contact details during the
checkout process; or be logged-in when they added the product to their cart.
- Abandoned cart emails can only be sent if the customer either entered their contact details
during :doc:`checkout <../checkout_payment_shipping/checkout>` or was logged in when
:doc:`adding items to their cart <../checkout_payment_shipping/cart>`.
- Abandoned carts are not visible if the :guilabel:`Automatically send abandoned checkout emails`
feature is not enabled.
.. _handling/delivery:
.. _ecommerce/handling/delivery:
Delivery orders
===============
Delivery flow
-------------
Once a quotation has been confirmed, a delivery order is automatically created. The next step is to
process this delivery.
Packing eCommerce orders usually requires picking the product, preparing the packaging, printing the
shipping label(s) and shipping to the customer. Depending on the number of orders, strategy, or
resources, those steps can be considered as one or multiple actions in Odoo.
An automatic email can be sent to the customer when the transfer status in Odoo is “done”. To do so,
enable the feature in the settings of the
:doc:`Inventory </applications/inventory_and_mrp/inventory>` app.
Once an online order is confirmed, a delivery order is automatically created. To access the delivery
order, click the :guilabel:`Delivery` button on the sales order. Alternatively, you can go to
:menuselection:`Inventory --> Operations --> Deliveries`, and search your sales order in the
:guilabel:`Source Document` column.
.. note::
If customers are allowed to pay when picking up their order in stores or by wire transfer, the
quotation is **not** be confirmed and the stock is **not** be reserved. Orders must be confirmed
manually to reserve products in stock.
The :guilabel:`Delivery` button does not appear on the sales order when the product type is set
to :guilabel:`Service` or if :guilabel:`Recurring` is selected in the :ref:`product form
<ecommerce/products/product-form>`.
.. seealso::
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels`
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack`
Packing eCommerce orders usually involves picking the product, preparing the
:doc:`packaging <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/multipack>`,
:doc:`printing the shipping label(s) <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels>`,
and :doc:`shipping <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/invoicing>`
the items to the customer.
.. tip::
- If customers can pay when :ref:`picking up <inventory/shipping/pickup>` their order in-store or
by wire transfer, the quotation is **not** confirmed, and the stock is **not** reserved. Orders
must be confirmed manually to reserve products in stock.
- You can send an automatic confirmation email when delivery orders are completed by going to
:menuselection:`Inventory --> Configuration --> Settings`, scrolling to the
:guilabel:`Shipping` section, and enabling :guilabel:`Email Confirmation`.
Returns and refunds
-------------------
Customers can only return an order through an online form. It may not be possible to return products
depending on the return strategy or type of product.
Customers can :doc:`return </applications/sales/sales/products_prices/returns>` products through
their :doc:`portal <../../../general/users/portal>` by navigating to :guilabel:`My Orders` section,
selecting the relevant order, and clicking :guilabel:`Return`. A return document is then generated
to include in the parcel.
Full refunds can be directly sent to customers from within the order interface. A refund-compatible
payment provider needs to be enabled first.
.. Note::
- Returning products may not be possible depending on the
:doc:`return </applications/sales/sales/products_prices/returns>` strategy or product type.
- Full :doc:`refunds </applications/sales/sales/products_prices/returns>` can be sent to
customers directly from within the order interface. First, a refund-compatible
:ref:`payment provider <payment_providers/supported_providers>` needs to be enabled.
.. seealso::
- :doc:`/applications/sales/sales/products_prices/returns`
- :doc:`/applications/services/helpdesk/advanced/after_sales`
- :doc:`/applications/finance/payment_providers`
:doc:`/applications/services/helpdesk/advanced/after_sales`
.. _handling/legal:
.. _ecommerce/handling/legal:
Invoice and legal requirements
==============================
Invoices
========
The final step of an ecommerce order is to generate the invoice and send it to the customer.
Depending on the type of business (B2B or B2C), an invoice can either be generated automatically
(B2B) or on demand of the customer (B2C). This process can be automated if (and when) the online
payment is :ref:`confirmed <handling/sales>`.
The final step is generating the
:doc:`customer invoice </applications/finance/accounting/customer_invoices/overview>` and send it to
the customer.
To automate invoicing, go to :menuselection:`Website --> Configuration --> Settings` and in the
:guilabel:`Invoicing` section, enable :guilabel:`Automatic Invoice`.
Invoices are generated upon customer request for B2C transactions, while they are usually created
automatically for B2B transactions.
To enable automatic invoicing upon :doc:`online payment </applications/finance/payment_providers>`
confirmation, go to :menuselection:`Website --> Configuration --> Settings`, scroll to the
:guilabel:`Invoicing` section, and enable :guilabel:`Automatic Invoice`.