[IMP] sales: updated amazon order management

closes odoo/documentation#7378

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
This commit is contained in:
KC (ksc) 2023-11-08 13:10:10 -08:00 committed by Zachary Straub (ZST)
parent 9aa0b714ef
commit f751e9548a

View File

@ -1,57 +1,73 @@
============================
Manage Amazon orders in Odoo
============================
=======================
Amazon order management
=======================
Synchronization of orders
=========================
Order synchronization
=====================
Orders are automatically fetched from Amazon, and synchronized in Odoo, at regular intervals.
Orders are automatically fetched from Amazon and synchronized in Odoo at regular intervals.
The synchronization is based on the Amazon status: only orders whose status has changed since the
last synchronization are fetched from Amazon. For **FBA** (Fulfilled by Amazon), only **Shipped**
and **Canceled** orders are fetched. For **FBM** (Fulfilled by Merchant), the same is done for
**Unshipped** and **Canceled** orders. For each synchronized order, a sales order and a customer are
created in Odoo if they are not yet registered.
last synchronization are fetched from Amazon. This includes changes on either end (Amazon or Odoo).
When an order is canceled in Amazon and was already synchronized in Odoo, the corresponding sales
order is automatically canceled in Odoo.
For *FBA* (Fulfilled by Amazon), only *Shipped* and *Canceled* orders are fetched.
For *FBM* (Fulfilled by Merchant), the same is done for *Unshipped* and *Canceled* orders. For each
synchronized order, a sales order and customer are created in Odoo (if the customer is not already
registered in the database).
.. note::
To force the synchronization of an order whose status has not changed since the last
synchronization, activate the :ref:`developer mode <developer-mode>`, navigate to your Amazon
account and modify the date under :menuselection:`Orders Follow-up --> Last Order Sync`. Pick a
date anterior to the last status change of the order that you wish to synchronize and save.
When an order is canceled in Amazon, and was already synchronized in Odoo, the corresponding
sales order is automatically canceled in Odoo.
Force synchronization
=====================
In order to force the synchronization of an order, whose status has **not** changed since the
previous synchronization, start by activating the :ref:`developer mode <developer-mode>`. This
includes changes on either end (Amazon or Odoo).
Then, navigate to the Amazon account in Odoo (:menuselection:`Sales app --> Configuration -->
Settings --> Connectors --> Amazon Sync --> Amazon Accounts`), and modify the date under
:menuselection:`Orders Follow-up --> Last Order Sync`.
Be sure to pick a date that occurs prior to the last status change of the desired order to
synchronize and save. This will ensure synchronization occurs correctly.
.. tip::
To synchronize immediately the orders of your Amazon account switch to :ref:`developer mode
<developer-mode>`, head to your Amazon account and click on **SYNC ORDERS**. The same can be done
with pickings by clicking on **SYNC PICKINGS**.
To immediately synchronize the orders of an Amazon account, switch to :ref:`developer mode
<developer-mode>`, head to the Amazon account in Odoo, and click :guilabel:`Sync Orders`. The
same can be done with pickings by clicking :guilabel:`Sync Pickings`.
Manage deliveries in FBM
========================
When a **FBM** (Fulfilled by Merchant) order is synchronized in Odoo, a picking is created along
with the sales order and the customer. You can either ship all the ordered products to your customer
at once or ship products partially by using backorders.
Whenever an FBM (Fulfilled by Merchant) order is synchronized in Odoo, a picking is instantly
created in the *Inventory* app, along with a sales order and customer record. Then, decide to either
ship all the ordered products to the customer at once, or ship products partially using backorders.
When a picking related to the order is confirmed, a notification is sent to Amazon who will, in
turn, notify the customer that the order (or a part of it) is on its way.
When a picking related to the order is confirmed, a notification is then sent to Amazon, who, in
turn, notifies the customer that the order (or a part of it) is on its way.
.. important::
Amazon requires to provide a tracking reference with each delivery. You'll need to assign a
carrier. If the carrier doesn't automatically provide a tracking reference, you'll need to set
one manually. This concerns all marketplaces.
Amazon requires users to provide a tracking reference with each delivery. This is needed to
assign a carrier.
If the carrier doesn't automatically provide a tracking reference, one must be set manually. This
rule applies to all Amazon marketplaces.
.. tip::
- If your chosen carrier isn't one supported by Odoo, you can still create a carrier bearing its
name (e.g. create a carrier named `Colissimo`). This name is case insensitive, but be careful
about typos, as Amazon won't recognize them.
- Create a delivery carrier named `Self Delivery` to inform Amazon that you make your own
deliveries. You still have to enter a tracking reference.
- Keep in mind that the customer is notified by email about the delivery, and the carrier and
tracking reference are displayed in the email to the customer.
If the chosen carrier isn't supported by Odoo, a carrier with the same name can still be created
(e.g. create a carrier named `easyship`). The name used is **not** case sensitive, but be mindful
to avoid typos. If there are typos, Amazon will **not** recognize them. Next, create a delivery
carrier named `Self Delivery` to inform Amazon that the user will make the deliveries. Even with
this route, a tracking reference still **must** be entered. Remember, the customer is notified by
email about the delivery, and the carrier, along with the tracking reference, are displayed in
the email to the customer.
.. seealso::
- :doc:`/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper`
:doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper`
.. _manage/manage_delivery_errors:
@ -77,71 +93,103 @@ corrected in Odoo, synchronize the shipment again using the :guilabel:`Retry Ama
Follow deliveries in FBA
========================
When a **FBA** (Fulfilled by Amazon) order is synchronized in Odoo, a stock move is recorded for
each sales order item so that it is saved in your system. Inventory managers can find such moves
in :menuselection:`Inventory --> Reporting --> Product Moves`. They pick up products in a specific
inventory location called **Amazon**. This location represents your stock in Amazon's warehouses
and allows you to manage the stock of your products under the FBA program.
When an FBA (Fulfilled by Amazon) order is synchronized in Odoo, a stock move is recorded in the
*Inventory* app for each sales order item. That way, it's saved in the system.
Inventory managers can access these stock moves by navigating to :menuselection:`Inventory app -->
Reporting --> Moves History`.
For FBA orders, the stock move is automatically created in Odoo by the Amazon connector, thanks to
the shipping status of Amazon. When sending new products to Amazon, the user should manually create
a picking (delivery order) to transfer these products from their warehouse to the Amazon location.
.. tip::
To follow your Amazon (FBA) stock in Odoo, you can make an inventory adjustment after
replenishing it. You can also trigger an automated replenishment from reordering rules on the
Amazon location.
To follow *Amazon (FBA)* stock in Odoo, make an inventory adjustment after replenishing stock. An
automated replenishment from reordering rules can also be triggered on the Amazon location.
.. tip::
The Amazon location is configurable by Amazon account managed in Odoo. All accounts of the same
company use the same location by default. It is however possible to follow the stock by
marketplace. First, remove the marketplace for which you want to follow the stock separately from
the list of synchronized marketplaces. Then, create another registration for this account and
remove all marketplaces, except the one to isolate from the others. Finally, assign another stock
location to the second registration of your account.
The Amazon location is configurable by accessing the Amazon account managed in Odoo. To access
Amazon accounts in Odoo navigate to :menuselection:`Sales app --> Configuration --> Settings -->
Connectors --> Amazon Sync --> Amazon Accounts`.
Issue invoices and register payments
====================================
All accounts of the same company use the same Amazon location, by default. However, it is possible
to follow the stock filtered by marketplace.
To do that, first remove the marketplace, where the desired stock to follow separately can be found,
from the list of synchronized marketplaces, which can be found by navigating to
:menuselection:`Sales app --> Configuration --> Settings --> Connectors --> Amazon Sync --> Amazon
Accounts`.
Next, create another registration for this account, and remove all marketplaces--- **except** the
marketplace this is desired to be isolated from the others.
Lastly, assign another stock location to the second registration of the account.
Invoice and register payments
=============================
Issue invoices
--------------
Sending invoices to Amazon customers directly from Odoo is not feasible due to Amazon's policy of
not sharing customer email addresses. Instead, it is possible to manually upload the invoices
generated on Odoo to the Amazon backend.
Due to Amazon's policy of not sharing customer email addresses, it is **not** possible to send
invoices directly to Amazon customers from Odoo. However, it **is** possible to manually upload the
generated invoices from Odoo to the Amazon back-end.
In addition, for your B2B clients, it is currently required to manually retrieve VAT numbers from
the Amazon backend before creating the invoice in Odoo.
Additionally, for B2B clients, it is currently required to manually retrieve VAT numbers from the
Amazon back-end **before** creating an invoice in Odoo.
.. note::
For :doc:`TaxCloud <../../../finance/accounting/taxes/taxcloud>` users: invoices created from
Amazon sales orders are **not** synchronized with TaxCloud, since Amazon already includes them in
its own tax report to TaxCloud.
.. warning::
TaxCloud integration will be decommissioned in Odoo 17+.
Register payments
-----------------
As customers pay Amazon as an intermediary, creating a dedicated *Bank* journal (for example, named
`Amazon payments`) with a dedicated *Bank and Cash* intermediary account is recommended.
Since customers pay Amazon as an intermediary, creating a dedicated *Bank* journal (e.g. named
`Amazon Payments`), with a dedicated *Bank and Cash* intermediary account is recommended.
In addition, as Amazon makes a single monthly payment, selecting all the invoices linked to a single
payment is necessary when registering payments. Use the dedicated `Amazon payments`
:guilabel:`Journal` and select :guilabel:`Batch Deposit` as the :guilabel:`Payment Method`. Then,
select all the payments generated and click :menuselection:`Actions --> Create batch payment -->
Validate`.
Additionally, as Amazon makes a single monthly payment, selecting all the invoices linked to a
single payment is necessary when registering payments.
To do that, use the appropriate :guilabel:`Journal` dedicated to Amazon payments, and select
:guilabel:`Batch Deposit` as the :guilabel:`Payment Method`.
Then, select all the generated payments, and click :menuselection:`Actions --> Create batch payment
--> Validate`.
.. tip::
The same can be done with vendor bills from Amazon dedicated to commissions. When the balance is
received in the bank account at the end of the month and the banks statements are recorded,
credit the Amazon intermediary account by the amount received.
This same action can be performed with vendor bills from Amazon dedicated to commissions.
Follow your Amazon sales in sales reporting
===========================================
When the balance is received in the bank account at the end of the month, and the bank statements
are recorded, credit the Amazon intermediary account by the amount received.
As a sales team is set on your account under the tab **Order Follow-up**, this helps you give quick
glances at the figures in just a few clicks in Sales reporting. By default, your account's sales
team is shared between all of your company's accounts.
Follow Amazon sales in sales reporting
======================================
If you wish, you can change the sales team on your account for another to perform a separate
On the Amazon account profile in Odoo, a sales team is set under the :guilabel:`Order Follow-up`
tab.
This gives quick access to important metrics related to sales reporting. By default, the Amazon
account's sales team is shared between all of the company's accounts.
If desired, the sales team on the account can be changed for another, in order to perform a separate
reporting for the sales of this account.
.. tip::
It is also possible to perform reporting on a per-marketplace basis in a similar fashion. First,
remove the marketplace you wish to track separately from the list of synchronized marketplaces.
Then, create another registration for this account and remove all marketplaces, except the one to
isolate from the others. Finally, assign another sales team to one of the two registrations of
your account.
It is also possible to perform reporting on a per-marketplace basis.
First, remove the desired marketplace from the list of synchronized marketplaces.
To access the list of synchronized marketplaces in Odoo, navigate to :menuselection:`Sales app
--> Configuration --> Settings --> Connectors --> Amazon Sync --> Amazon Accounts`.
Then, create another registration for this account, and remove all other marketplaces **except**
the one to isolate.
Lastly, assign another sales team to one of the two registrations of the account.
.. seealso::
- :doc:`features`