Skip to content

[IMP] Inventory: Fedex Configuration update #13955

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 18.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FedEx integration
=================

Integrating a FedEx account with Odoo's **Inventory** app makes it possible to :doc:`calculate
shipping rates <../setup_configuration>`, and :doc:`generate shipping labels <labels>` within Odoo.
delivery rates <../setup_configuration>`, and :doc:`generate delivery labels <labels>` within Odoo.
This is accomplished by enabling the FedEx *shipping connector*, then configuring at least one
*shipping method*.

Expand All @@ -12,101 +12,107 @@ This is accomplished by enabling the FedEx *shipping connector*, then configurin
documentation on :doc:`third-party shippers <third_party_shipper>` for general shipper
integration instructions.

Enable shipping connector
Enable delivery connector
=========================

To enable the shipping connector for FedEx, navigate to :menuselection:`Inventory app -->
To enable the delivery connector for FedEx, navigate to :menuselection:`Inventory app -->
Configuration --> Settings`. Scroll down to the :guilabel:`Shipping Connectors` section, and tick
the checkbox next to :guilabel:`FedEx Connector`.

Finally, click :guilabel:`Save` to save the changes. After doing so, a :icon:`oi-arrow-right`
:guilabel:`FedEx Shipping Methods` button appears below :guilabel:`FedEx Connector`.

.. image:: fedex/fsm-button.png
:align: center
:alt: The FedEx Shipping Methods button below the FedEx Connector.

Configure shipping method
Configure delivery method
=========================

Once the FedEx shipping connector is enabled, it is necessary to configure at least one shipping
method. After doing so, the shipping method can be included in sales orders (SOs), and used to
compute shipping costs, and print shipping labels.
Once the FedEx delivery connector is enabled, it is necessary to configure at least one delivery
method. After doing so, the delivery method can be included in sales orders (SOs), and used to
compute delivery costs, and print delivery labels.

To enable a shipping method, navigate to :menuselection:`Inventory app --> Configuration -->
To enable a delivery method, navigate to :menuselection:`Inventory app --> Configuration -->
Settings`, and click the :guilabel:`FedEx Shipping Methods` button below the :guilabel:`FedEx
Connector` checkbox. Doing so opens a page that shows all existing FedEx shipping methods.
Connector` checkbox. Doing so opens a page that shows all existing FedEx delivery methods.

.. note::
To see all shipping methods for every shipper with a connector enabled, navigate to
:menuselection:`Inventory app --> Configuration --> Shipping Methods`.
To see all delivery methods for every shipper with a connector enabled, navigate to
:menuselection:`Inventory app --> Configuration --> Delivery Methods`.

Select a shipping method to open its form. Alternatively, click :guilabel:`New` to open a blank
form, and configure a new shipping method.
Select a delivery method to open its form. Alternatively, click :guilabel:`New` to open a blank
form, and configure a new delivery method.

.. image:: fedex/fedex-form.png
:align: center
:alt: The form for a FedEx shipping method.
:alt: The form for a FedEx delivery method.

.. important::
Enabling the FedEx shipping connector automatically creates two default shipping methods:
:guilabel:`FedEx US` and :guilabel:`FedEx International`. Each of these methods are
pre-configured with test credentials, allowing them to be used for testing purposes.

Before the shipping method can be used to create actual shipments, the test credentials must be
Before the delivery method can be used to create actual shipments, the test credentials must be
replaced with credentials from a valid FedEx account.

General information
-------------------

At the very top of a shipping method form are fields used to configure the way the method operates
At the very top of a delivery method form are fields used to configure the way the method operates
in Odoo. In the :guilabel:`Provider` field, select :guilabel:`FedEx` from the drop-down menu, if it
is not already selected.

The rest of the fields in this section are general to all shipping providers. For details on how to
The rest of the fields in this section are general to all delivery providers. For details on how to
fill them out, see the documentation on :doc:`third-party shippers <third_party_shipper>`.

Fedex Configuration tab
-----------------------

The options in the :guilabel:`Fedex Configuration` tab of a FedEx shipping method form are used to
connect the method to a FedEx account, and configure the shipping details associated with the method
The options in the :guilabel:`Fedex Configuration` tab of a FedEx delivery method form are used to
connect the method to a FedEx account, and configure the delivery details associated with the method
(drop-off type, package type, etc.).

A FedEx business account is required to obtain the information needed to fill out the fields in this
tab. To create a new account, navigate to FedEx's `Open Account
A FedEx developer account is required to obtain the information needed to fill out the fields in
this tab. To create a new account, navigate to FedEx's `Open Account
<https://www.fedex.com/en-us/open-account.html>`_ page, click on :guilabel:`Create Account`, and
follow the instructions.

Developer Key and Meter Number fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create API Project
~~~~~~~~~~~~~~~~~~

A *developer key* is used to integrate a FedEx account with an external service, like the Odoo
**Inventory** app. A *meter number* is a unique ID number used by FedEx to identify negotiated
shipping rates for each account.
After creating a `developer account <https://developer.fedex.com/api/en-us/home.html>`_, navigate to
the :guilabel:`My Projects` tab, and click :guilabel:`CREATE API PROJECT`.

To get a developer key and meter number, begin by navigating to FedEx's `Developer Resource Center
<https://www.fedex.com/en-us/developer/web-services.html>`_. Then, click on the :guilabel:`FedEx Web
Services` drop-down menu.
On the :guilabel:`Tell us about your API needs` popup, select `Ships with FedEX and needs to
integrate FedEx APIs into their system` in the :guilabel:`I work for a company that:` drop-down.

Click :guilabel:`Get Test Key` to start the process of getting a developer key and meter number
which can be used to configure a shipping method for testing purposes.
.. image:: fedex/fed-ex-api-needs.png
:alt: Pop-up on FedEx website to select API needs.

Click :guilabel:`Get Production Key` to start the process of getting a developer key and meter
number, which can be used to configure a shipping method that generates real shipments with FedEx.
Next, when prompted to `Select API(s) for your project`, make sure to enable the following APIs:

After clicking either option, follow the instructions until the :guilabel:`Confirmation` screen is
reached. This screen displays the developer key and meter number.
- :guilabel:`Ship, Rate & Other APIs`
- :guilabel:`Address Validation API`
- :guilabel:`Rates and Transit Times API`
- :guilabel:`Ship API`
- :guilabel:`Trade Documents Upload API`

Once the developer key and meter number are determined, enter them in the :guilabel:`Developer Key`
and :guilabel:`Meter Number` fields on the :guilabel:`Fedex Configuration` tab of the shipping
method form.
.. image:: fedex/select-apis.png
:alt: Page on FedEx website where users select the APIs needed for project.

Password and Account Number fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter a :guilabel:`Project name`, then select any countries where packages will be shipped to, or
delivered from.

A *password* is used, along with a username, to log into a FedEx account. An *account number* is the
unique number assigned to each FedEx account.
.. image:: fedex/country-selector.png
:alt: Page on FedEx website where users select the countries they ship to and from.

To move the project to production, click the :guilabel:`Production key` tab. From there, link a
:guilabel:`Shipping Account`. Copy the `API Key`, `Secret Key`, and `Account` number, then paste
them into the appropriate fields on the :guilabel:`Delivery Methods` form.

Account Number fields
~~~~~~~~~~~~~~~~~~~~~

An *account number* is the unique number assigned to each FedEx account.

To find a FedEx account number, log in to a FedEx account at https://www.fedex.com. Click on the
account holder's name in the top-right corner of the screen, and select :menuselection:`My Profile`
Expand All @@ -116,35 +122,35 @@ On the profile page, click :guilabel:`Account Management` on the left side of th
account number is displayed on this screen.

Once the password and account number are determined, enter them in the :guilabel:`Password` and
:guilabel:`Account Number` fields on the :guilabel:`Fedex Configuration` tab of the shipping method
:guilabel:`Account Number` fields on the :guilabel:`Fedex Configuration` tab of the delivery method
form.

Shipping details
Delivery details
~~~~~~~~~~~~~~~~

The main section of the :guilabel:`Fedex Configuration` tab includes a number of additional fields
used provide information about the shipping method:
used provide information about the delivery method:

- :guilabel:`Fedex Service Type`: The FedEx service used to ship a package.
- :guilabel:`Fedex Drop-Off Type`: The method for getting a package into FedEx's possession.
- :guilabel:`Fedex Package Type`: The type of package used for the shipping method.
- :guilabel:`Fedex Package Type`: The type of package used for the delivery method.
- :guilabel:`Package Weight Unit`: The unit of measure used to weigh packages.
- :guilabel:`Package Length Unit`: The unit of measure used to determine the dimensions of packages.
- :guilabel:`Label Type`: The type of shipping label used for packages.
- :guilabel:`Label Format`: The file format used by Odoo to generate shipping labels.
- :guilabel:`Label Type`: The type of delivery label used for packages.
- :guilabel:`Label Format`: The file format used by Odoo to generate delivery labels.
- :guilabel:`Commercial Invoice Type`: The dimensions and type of the paper used to print invoices.

.. important::
The options that should be selected on the :guilabel:`Fedex Configuration` tab of a shipping
method depend on the negotiated shipping services of the associated FedEx account. To confirm the
The options that should be selected on the :guilabel:`Fedex Configuration` tab of a delivery
method depend on the negotiated delivery services of the associated FedEx account. To confirm the
available services for a FedEx account, visit the *Account Management* page after logging in to
the FedEx website, or speak with a customer service representative.

Options section
~~~~~~~~~~~~~~~

The :guilabel:`Options` section of the :guilabel:`Fedex Configuration` tab provides a few additional
options to further configure the shipping method:
options to further configure the delivery method:

- :guilabel:`Saturday Delivery`: Tick the checkbox to allow packages shipped with the delivery
method to be delivered on Saturdays.
Expand All @@ -153,22 +159,22 @@ options to further configure the shipping method:
- :guilabel:`Duties paid by`: Use the drop-down menu to select whether duty charges should be paid
by the :guilabel:`Sender` or :guilabel:`Recipient`.

Activate shipping method
Activate delivery method
========================

By default, shipping methods in Odoo are created within a *test environment*. This means they can
only be used for testing purposes, and are unable to generate actual shipping orders.
By default, delivery methods in Odoo are created within a *test environment*. This means they can
only be used for testing purposes, and are unable to generate actual delivery orders.

To activate a shipping method in a *production environment*, click the :icon:`fa-stop`
:guilabel:`Test Environment` smart button at the top of the shipping method form. After doing so,
To activate a delivery method in a *production environment*, click the :icon:`fa-stop`
:guilabel:`Test Environment` smart button at the top of the delivery method form. After doing so,
the smart buttons changes to read :icon:`fa-play` :guilabel:`Production Environment`.

With the production environment enabled, validating a delivery order using the shipping method
generates an actual shipping label with FedEx.
With the production environment enabled, validating a delivery order using the delivery method
generates an actual delivery label with FedEx.

Click the :icon:`fa-play` :guilabel:`Production Environment` smart button to return the shipping
Click the :icon:`fa-play` :guilabel:`Production Environment` smart button to return the delivery
method to a test environment.

.. warning::
**Do not** enable the production environment for a shipping method before it is ready to be used
for actual shipping orders. Doing so may lead to the creation of unwanted charges with FedEx.
**Do not** enable the production environment for a delivery method before it is ready to be used
for actual delivery orders. Doing so may lead to the creation of unwanted charges with FedEx.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.