-
Notifications
You must be signed in to change notification settings - Fork 10.6k
[IMP] inventory: update delivery methods from 12 to 16 #6287
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
Closed
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
245 changes: 179 additions & 66 deletions
245
...ent/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,100 +1,213 @@ | ||
| =============================== | ||
| How to setup a delivery method? | ||
| =============================== | ||
| ================ | ||
| Delivery methods | ||
| ================ | ||
|
|
||
| Overview | ||
| ======== | ||
| When activated in Odoo, the *Delivery Methods* setting adds the option of calculating the cost of | ||
| shipping on sales orders and e-commerce shopping carts. | ||
|
|
||
| Odoo can handle various delivery methods, but it is not activated by | ||
| default. Delivery methods can be used for your sale orders, your | ||
| deliveries but also on your e-commerce. | ||
| When integrated with a :ref:`third-party carrier <inventory/shipping/third_party>`, shipping prices | ||
| are calculated based on the carrier's pricing and packaging information. | ||
|
|
||
| Delivery methods allow you to manage the transport company, the price | ||
| and the destination. You can even integrate Odoo with external shippers | ||
| to compute the real price and the packagings. | ||
| .. seealso:: | ||
| - :ref:`Third-party shipping carrier setup <inventory/shipping/third_party>` | ||
| - `Odoo Tutorials: Delivery Prices | ||
| <https://www.odoo.com/slides/slide/delivery-prices-613?fullscreen=1>`_ | ||
|
|
||
| Configuration | ||
| ============= | ||
|
|
||
| Install the inventory module | ||
| ---------------------------- | ||
| To calculate shipping on sales orders and e-commerce, the *Delivery Costs* module must be installed. | ||
| To do so, navigate to the :menuselection:`Apps` application from the main Odoo dashboard. | ||
|
|
||
| Delivery methods are handled by the **Delivery costs** module. Go to | ||
| **Apps** and search for the module. You should remove the **Apps** filter in | ||
| order to see it : | ||
| Then, remove the :guilabel:`Apps` filter, and type in `Delivery Costs` in the :guilabel:`Search...` | ||
| bar. After finding the :guilabel:`Delivery Costs` module, click :guilabel:`Activate` to install it. | ||
|
|
||
| .. image:: delivery_method/setup05.png | ||
| .. image:: delivery_method/install-module.png | ||
| :align: center | ||
| :alt: Install the *Delivery Costs* module. | ||
|
|
||
| Add shipping method | ||
| =================== | ||
|
|
||
| To configure delivery methods, go to :menuselection:`Inventory app --> Configuration --> Shipping | ||
| Methods`. | ||
|
|
||
| .. note:: | ||
| If you want to integrate delivery methods in your e-commerce, | ||
| you'll have to install the **eCommerce Delivery** module. | ||
| If the :guilabel:`Shipping Methods` option is not available from the :guilabel:`Configuration` | ||
| drop-down menu, verify whether the feature is enabled by following these steps: | ||
|
|
||
| Configure the delivery method | ||
| ----------------------------- | ||
| #. Go to :menuselection:`Inventory app --> Configuration --> Settings`. | ||
| #. Scroll to the :guilabel:`Shipping` section and enable the :guilabel:`Delivery Methods` feature | ||
| by checking the corresponding checkbox. | ||
|
|
||
| To configure your delivery methods, go to the **Inventory** module, | ||
| click on :menuselection:`Configuration --> Delivery Methods`. | ||
| .. image:: delivery_method/enable-delivery.png | ||
| :align: center | ||
| :alt: Enable the *Delivery Methods* feature by checking the box in Configuration > Settings. | ||
|
|
||
| First set a name and a transporter company. | ||
| On the :guilabel:`Shipping Methods` page, add a method by clicking :guilabel:`New`. Doing so opens | ||
| a form to provide details about the shipping provider, including: | ||
|
|
||
| .. image:: delivery_method/setup03.png | ||
| :align: center | ||
| - :guilabel:`Shipping Method` (*Required field*): the name of the delivery method (e.g. `flat-rate | ||
| shipping`, `same day delivery`, etc.). | ||
| - :guilabel:`Provider` (*Required field*): choose the delivery service, like Fedex, if using a | ||
| :ref:`third-party carrier <inventory/shipping/third_party>`. Ensure the integration with the | ||
| shipping carrier is properly installed and select the provider from the drop-down menu. | ||
|
|
||
| Then you'll have to set the pricing. It can be fixed or based on rules. | ||
| For more details on configuring custom shipping methods, such as :ref:`fixed price | ||
| <inventory/shipping/fixed>`, :ref:`based on rules <inventory/shipping/rules>`, or :ref:`pickup in | ||
| store <inventory/shipping/pickup>` options, refer to their respective sections below. | ||
| - :guilabel:`Website`: configure shipping methods for an e-commerce page. Select the applicable | ||
| website from the drop-down menu, or leave it blank to apply the method to all web pages. | ||
| - :guilabel:`Company`: if the shipping method should apply to a specific company, select it from the | ||
| drop-down menu. Leave the field blank to apply the method to all companies. | ||
| - :guilabel:`Delivery Product` (*Required field*): the product listed on the :ref:`sales order line | ||
| <inventory/shipping/sales-order>` as the delivery charge. | ||
| - :guilabel:`Free if order amount is above`: checking this box enables free shipping if the customer | ||
| spends above the specified amount. | ||
|
|
||
| - If the price is fixed, tick **Fixed price**. You'll just have to define | ||
| the price. If you want the delivery to be free above a certain | ||
| amount, tick the option **Free if Order total is more | ||
| than** and set a price. | ||
| For examples on how to configure specific shipping methods, refer to the sections below. | ||
|
|
||
| .. image:: delivery_method/setup06.png | ||
| :align: center | ||
| .. _inventory/shipping/fixed: | ||
|
|
||
| - If the price varies according to rules, tick **Based on Rules**. Click | ||
| on **add an item to a pricing rule**. Choose a condition based on | ||
| either the weight, the volume, the price or the quantity. | ||
| Fixed price | ||
| ----------- | ||
|
|
||
| .. image:: delivery_method/setup04.png | ||
| :align: center | ||
| To configure a shipping price that is the same for all orders, go to :menuselection:`Inventory app | ||
| --> Configuration --> Shipping Methods`. Then, click :guilabel:`New`, and on the shipping method | ||
| form, set the :guilabel:`Provider` to the :guilabel:`Fixed Price` option. Selecting this option | ||
| makes the :guilabel:`Fixed Price` field become available, which is where the fixed rate shipping | ||
| amount is defined. | ||
|
|
||
| Finally you can limit the delivery method to a few destinations. The | ||
| limit can be applied to some countries, states or even zip codes. This | ||
| feature limits the list of countries on your e-commerce. | ||
| To enable free shipping if the amount of the order exceeds a specified amount, check the box | ||
| :guilabel:`Free if order amount is above` and fill in the amount. | ||
|
|
||
| .. image:: delivery_method/setup02.png | ||
| :align: center | ||
| .. example:: | ||
| To set up `$20` flat-rate shipping that becomes free if the customer spends over `$100`, fill in | ||
| the following fields: | ||
|
|
||
| .. note:: | ||
| You can integrate Odoo with external shippers in order to compute the | ||
| real price and packagings, and handle the printing the shipping labels. | ||
| See :doc:`third_party_shipper` | ||
| - :guilabel:`Shipping Method`: `Flat-rate shipping` | ||
| - :guilabel:`Provider`: :guilabel:`Fixed Price` | ||
| - :guilabel:`Fixed Price`: `$20.00` | ||
| - :guilabel:`Free if order amount is above`: `$100.00` | ||
| - :guilabel:`Delivery Product`: `[SHIP] Flat` | ||
|
|
||
| Delivery process | ||
| ================ | ||
| .. image:: delivery_method/new-shipping-method.png | ||
| :align: center | ||
| :alt: Example of filling out a shipping method. | ||
|
|
||
| Sale order | ||
| ---------- | ||
| .. _inventory/shipping/rules: | ||
|
|
||
| .. image:: delivery_method/setup07.png | ||
| :align: center | ||
| Based on rules | ||
| -------------- | ||
|
|
||
| You can now choose the **Delivery Method** on your sale order. If you want | ||
| to invoice the price of the delivery charge on the sale order, click on | ||
| **Set price**, it will add a line with the name of the delivery method as | ||
| a product. | ||
| To calculate the price of shipping based on pricing rules, set the :guilabel:`Provider` field to the | ||
| :guilabel:`Based on Rules` option. Optionally, adjust :guilabel:`Margin on Rate` and | ||
| :guilabel:`Additional margin` to include additional shipping costs. | ||
|
|
||
| Delivery | ||
| -------- | ||
| Create pricing rules | ||
| ~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| You can add or change the delivery method on the delivery itself. | ||
| Navigate to the :guilabel:`Pricing` tab and click :guilabel:`Add a line`. Doing so opens the | ||
| :guilabel:`Create Pricing Rules` window, where the :guilabel:`Condition` related to the product | ||
| weight, volume, price, or quantity is compared to a defined amount to calculate the | ||
| :guilabel:`Delivery Cost`. | ||
|
|
||
| .. image:: delivery_method/setup01.png | ||
| :align: center | ||
| Once finished, click either :guilabel:`Save & New` to add another rule, or :guilabel:`Save & Close`. | ||
|
|
||
| .. example:: | ||
| To charge customers $20 in shipping for orders with five or fewer products, set the | ||
| :guilabel:`Condition` to `Quantity <= 5.00`, and the :guilabel:`Delivery Cost` to `$20`. | ||
|
|
||
| .. image:: delivery_method/pricing-rule.png | ||
| :align: center | ||
| :alt: Display window to add a pricing rule. Set a condition and delivery cost. | ||
|
|
||
| To restrict shipping to specific destinations on the eCommerce website, in the shipping method form, | ||
| navigate to the :guilabel:`Destination Availability` tab and define the :guilabel:`Countries`, | ||
| :guilabel:`States`, and :guilabel:`Zip Prefixes`. Leave these fields empty if all locations apply. | ||
|
|
||
| Calculate delivery cost | ||
| ~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| Shipping cost is the :guilabel:`Delivery cost` specified in the rule that satisfies the | ||
| :guilabel:`Condition`, plus any extra charges from the :guilabel:`Margin on rate` and | ||
| :guilabel:`Additional margin`. | ||
|
|
||
| .. math:: | ||
| Total = Rule's~Delivery~Cost + (Margin~on~rate \times Rule's~Delivery~Cost) + Additional~margin | ||
|
|
||
| .. example:: | ||
| With the two following rules set up: | ||
|
|
||
| #. If the order contains five or fewer products, shipping is $20 | ||
| #. If the order contains more than five products, shipping is $50. | ||
|
|
||
| :guilabel:`Margin on Rate` is `10%` and :guilabel:`Additional margin` is `$9.00`. | ||
|
|
||
| On the delivery, check the **Carrier Information**. The carrier is the | ||
| chosen delivery method. | ||
| .. image:: delivery_method/delivery-cost-example.png | ||
| :align: center | ||
| :alt: Show example of "Based on rules" shipping method with margins configured. | ||
|
|
||
| When the first rule is applied, the delivery cost is $31 (20 + (0.1 * 20) + 9). When the second | ||
| rule is applied, the delivery cost is $64 (50 + (0.1 * 50) + 9). | ||
|
|
||
| .. _inventory/shipping/pickup: | ||
|
|
||
| Pickup in store | ||
| --------------- | ||
|
|
||
| To configure in-store pickup, select :guilabel:`Pickup in store` in the :guilabel:`Provider` field | ||
| and specify the pickup location in :guilabel:`Warehouse`. | ||
|
|
||
| To invoice the customer for the shipping cost to the pickup location, choose the :guilabel:`Get Rate | ||
| and Create Shipment` option in the :guilabel:`Integration Level` field. Then, pick either the | ||
| :guilabel:`Estimated cost` or :guilabel:`Real cost` radio options in the :guilabel:`Invoicing | ||
| Policy` field to decide whether the added shipping charge on the sales order is the precise cost | ||
| from the shipping carrier. | ||
|
|
||
| .. seealso:: | ||
| * :doc:`third_party_shipper` | ||
| * :doc:`../operation/invoicing` | ||
| :ref:`Invoice cost of shipping <inventory/shipping/invoice>` | ||
|
|
||
| .. _inventory/shipping/sales-order: | ||
|
|
||
| Add shipping | ||
| ============ | ||
|
|
||
| Shipping methods can be added to sales orders in the form of delivery products, which appear as | ||
| individual line items. First, navigate to the desired sales order by going to :menuselection:`Sales | ||
| app --> Orders --> Orders`. | ||
|
|
||
| On the sales order, click the :guilabel:`Add shipping` button, which opens the :guilabel:`Add a | ||
| shipping method` pop-up window. Then, choose a :guilabel:`Shipping Method` from the list. | ||
|
|
||
| The :guilabel:`Total Order Weight` is pre-filled based on product weights (that are defined in the | ||
| :guilabel:`Inventory` tab for each product form). Edit the field to specify the exact weight, and | ||
| then click :guilabel:`Add` to add the shipping method. | ||
|
|
||
| .. note:: | ||
| The amount defined in :guilabel:`Total Order Weight` overwrites the total product weights defined | ||
| on the product form. | ||
|
|
||
| The shipping cost is added to the *sales order line* as the :guilabel:`Delivery Product` detailed on | ||
| the shipping method form. | ||
|
|
||
| .. example:: | ||
| `Furniture Delivery`, a delivery product with a fixed rate of `$200`, is added to sales order | ||
| `S00088`. | ||
|
|
||
| .. image:: delivery_method/delivery-product.png | ||
| :align: center | ||
| :alt: Show delivery order on the sales order line. | ||
|
|
||
| Delivery order | ||
| -------------- | ||
|
|
||
| The shipping method added to the sales order is linked to the shipping carrier details on the | ||
| delivery order. To add or change the delivery method on the delivery itself, go to the | ||
| :guilabel:`Additional Info` tab and modify the :guilabel:`Carrier` field. | ||
|
|
||
| .. image:: delivery_method/delivery-order.png | ||
| :align: center | ||
| :alt: Shipping carrier information on the delivery form. | ||
|
|
||
|
|
||
Binary file added
BIN
+13.4 KB
...tory_and_mrp/inventory/shipping/setup/delivery_method/delivery-cost-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+5.98 KB
...s/inventory_and_mrp/inventory/shipping/setup/delivery_method/delivery-order.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+21.1 KB
...inventory_and_mrp/inventory/shipping/setup/delivery_method/delivery-product.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+16 KB
.../inventory_and_mrp/inventory/shipping/setup/delivery_method/enable-delivery.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+4.61 KB
...s/inventory_and_mrp/inventory/shipping/setup/delivery_method/install-module.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+8.97 KB
...entory_and_mrp/inventory/shipping/setup/delivery_method/new-shipping-method.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+6.25 KB
...ons/inventory_and_mrp/inventory/shipping/setup/delivery_method/pricing-rule.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed
BIN
-10.4 KB
...ications/inventory_and_mrp/inventory/shipping/setup/delivery_method/setup05.png
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section does not seem complete...Is there more to this here besides changing the carrier?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really, in the original doc, this section just was trying to communicate that the Carrier field on the delivery order is linked to the Carrier field on the sales order. So, changing one changes the other