Skip to Content

Odoo Shipping Integration Guide: Complete Workflow

Learn how Odoo Shipping Integration automates carrier connectivity, shipping labels, tracking, inventory, accounting and order fulfillment.
16 min read
July 1, 2026
Odoo eCommerce

Introduction

Shipping is much more than moving products from a warehouse to a customer's address. Every shipment begins with a customer order and passes through several operational stages before it reaches its destination. During this journey, sales, inventory, warehouse operations, shipping carriers, accounting and customer communication must work together. If these activities are managed through different systems, businesses often struggle with manual data entry, incorrect shipping costs, delayed deliveries and poor shipment visibility.

Many organizations still prepare shipments by manually copying customer addresses, package details and order information from their ERP into the carrier's website. Warehouse teams generate shipping labels separately, finance teams manually update shipping charges and customer service representatives depend on external carrier portals to answer tracking queries. As shipping volumes increase, this disconnected process consumes valuable time and increases operational errors.

Odoo eliminates these problems by integrating shipping directly into the ERP workflow. From the moment a Sales Order is confirmed, Odoo automatically prepares warehouse operations, communicates with shipping carriers, generates shipment requests, retrieves shipping labels and tracking numbers and connects every shipment with Inventory and Accounting. Instead of switching between multiple applications, users manage the complete shipping process from a single platform.

How Odoo Shipping Integration Works

Shipping in Odoo revolves around the Delivery application and its connection with Sales, Inventory, Website, eCommerce, Purchase and Accounting. Rather than treating shipping as a separate activity that begins after an order is packed, Odoo considers shipping to be an integrated part of the order fulfillment process.

When a customer confirms an order, Odoo does not immediately create a shipment with the carrier. The system first validates the order, checks inventory availability, creates warehouse operations and prepares the products for dispatch. Only after the warehouse confirms that the shipment is ready does Odoo communicate with the configured shipping carrier. This ensures that shipment requests are created only for products that are actually available for delivery.

Because every department works from the same Sales Order, shipping information automatically becomes available to warehouse teams, finance users, customer service representatives and management without requiring additional synchronization.

Complete Odoo Shipping Workflow

The shipping lifecycle in Odoo follows a connected workflow where every document automatically creates the next operational step.

Sales Order → Inventory Reservation → Delivery Order → Shipping Cost Calculation → Shipment Creation → Shipping Label → Tracking Number → Picking → Delivery Validation → Customer Delivery → Invoice → Accounting → Reports

Unlike traditional shipping software where warehouse staff manually enter shipment information into a carrier portal, Odoo reuses information that already exists in the ERP. Customer addresses, product weights, warehouse locations, package details and delivery methods are automatically passed to the shipping integration whenever a shipment is created.

Step 1: Configuring Delivery Methods

Before businesses can start shipping products, they configure one or more Delivery Methods inside Odoo. A Delivery Method represents the way shipping charges are calculated and determines which carrier will be used during order fulfillment.

Depending on the business requirements, a Delivery Method can use a fixed shipping charge, rule-based pricing, or real-time carrier rates. Once configured, the Delivery Method becomes available throughout the Sales application and the eCommerce checkout process. This means that sales representatives and website customers are both selecting from the same shipping configuration, ensuring consistency across every sales channel.

The Delivery Method also defines how Odoo should communicate with the carrier. If the method uses an integrated shipping provider, the carrier credentials and service configuration become part of the Delivery Method itself. As a result, warehouse users never need to log in to the carrier's website to prepare shipments.

Delivery Method

Step 2: Connecting the Shipping Carrier

After creating the Delivery Method, the next step is connecting Odoo with the shipping carrier. This is accomplished by entering the carrier credentials provided by the logistics company.

Once the credentials have been validated, Odoo establishes secure communication with the carrier's API. From this point onward, every shipping request generated inside Odoo is transmitted directly to the carrier without requiring manual intervention.

This integration allows Odoo to retrieve real-time shipping services, calculate delivery charges, create shipments, generate labels, receive tracking numbers and process shipment updates. Instead of becoming another standalone shipping application, the carrier simply becomes another service connected to the ERP.

Step 3: Preparing Products for Shipping

Shipping begins long before a customer places an order. Every product must contain the logistics information required for transportation.

When creating or editing a product, businesses typically define information such as product weight, volume, packaging details, unit of measure and shipping routes. Although customers usually never see this information, it becomes extremely important once Odoo starts communicating with the carrier.

For example, when shipping costs are calculated using real-time carrier rates, Odoo reads the weight and package information directly from the product record. If this information is inaccurate or incomplete, the carrier may return incorrect shipping charges or reject the shipment request entirely.

Because product information is maintained centrally, every future shipment automatically uses the latest logistics data without requiring warehouse users to enter it again.

Step 4: Customer Places an Order

The shipping process officially begins when a customer confirms an order. The order may originate from several places within Odoo, including the Website, eCommerce store, Customer Portal, or the Sales application. Regardless of where the order is created, Odoo follows the same fulfillment process.

At this stage, the Sales Order contains all the commercial information required to process the shipment. Customer details, delivery addresses, ordered products, quantities, taxes, payment terms and delivery preferences are already available within a single document. This Sales Order becomes the central document that connects every subsequent activity.

Unlike traditional workflows where warehouse teams receive shipping information through emails or spreadsheets, Odoo allows every department to access the same Sales Order throughout the order lifecycle.

Sale Order

Step 5: Sales Order Confirmation and Inventory Validation

Once the Sales Order is confirmed, Odoo immediately checks whether sufficient inventory exists to fulfill the customer's request. The Inventory module verifies stock availability according to the selected warehouse, storage locations and configured inventory routes.

If the required quantity is available, Odoo reserves the inventory for the customer. These reservations prevent the same stock from being allocated to another order while the shipment is being prepared. If inventory is unavailable, Odoo follows the configured replenishment rules, which may trigger procurement or manufacturing depending on the product configuration.

This automatic inventory validation ensures that shipment creation only begins after Odoo has confirmed that the required products can actually be delivered.

Step 6: Delivery Order Generation

After inventory has been reserved, Odoo automatically creates a Delivery Order inside the Inventory module. This document serves as the operational instruction for the warehouse team.

The Delivery Order contains all the information required to prepare the shipment, including the customer address, warehouse, reserved products, quantities, source location and destination location. Warehouse users do not need to recreate this information because it is inherited directly from the Sales Order.

If multiple warehouses or advanced routing rules are configured, Odoo determines which warehouse should process the shipment according to the defined logistics configuration. This allows businesses to operate multiple fulfillment centers while maintaining a single shipping workflow.

Delivery Order

Step 7: Calculating Shipping Charges

Before the shipment is created, Odoo determines the shipping cost associated with the order. The calculation depends entirely on how the selected Delivery Method has been configured.

If the business uses a fixed shipping price, Odoo immediately applies that charge to the Sales Order. However, when real-time carrier integration is enabled, Odoo sends shipment information—including the warehouse address, customer destination, package weight, dimensions and selected delivery service—to the carrier's API.

The carrier evaluates this information and returns the available shipping services together with their delivery charges. Odoo then displays these rates on the Sales Order or during website checkout, allowing the selected shipping charge to become part of the customer's final order value.

Because the calculation occurs automatically, businesses no longer need to visit carrier websites simply to determine delivery costs.

Step 8: Creating the Shipment

Once the warehouse confirms that the order is ready for dispatch, Odoo creates the shipment through the integrated shipping carrier.

Instead of manually entering shipment information into the carrier portal, Odoo automatically prepares the shipment request using information already available inside the Delivery Order. Customer addresses, warehouse information, package details, selected shipping service and shipment references are transmitted directly to the carrier.

The carrier validates the shipment request and returns a successful response to Odoo. From this point onward, both Odoo and the shipping provider reference the same shipment, allowing future tracking information to remain synchronized throughout the delivery process.

Step 9: Generating the Shipping Label

Immediately after the shipment has been created, Odoo requests the shipping label from the carrier. The carrier generates the label and returns it directly to the ERP.

Rather than downloading labels manually from external websites, warehouse employees simply open the Delivery Order and print the generated label. Since the label is attached directly to the shipment record, it remains available for future reference whenever customer service or warehouse teams need to review shipment information.

This integrated approach significantly reduces the time required to prepare packages while minimizing manual errors during the shipping process.

Documents Created During the First Half of the Shipping Process

Business ActivityOdoo Document
Customer confirms orderSales Order
Inventory reservationStock Move
Warehouse preparationDelivery Order
Shipping calculationDelivery Charge
Shipment requestCarrier Shipment
Label generationShipping Label

What Happens Behind the Scenes?

Although the warehouse team only confirms the Sales Order and creates the shipment, Odoo performs numerous automated operations in the background. The system validates inventory, reserves stock, creates warehouse operations, communicates securely with the shipping carrier, retrieves delivery charges, generates shipment records and stores shipping labels within the ERP.

Because these operations occur automatically, every department continues working from the same connected workflow. Sales teams can monitor shipment progress, warehouse employees prepare deliveries efficiently, finance teams receive accurate shipping costs and customer service representatives always have access to the latest shipment information.

Step 10: Receiving the Tracking Number

After the carrier successfully creates the shipment, it immediately returns a tracking number to Odoo. This tracking number becomes part of the Delivery Order and is linked with the corresponding Sales Order, allowing every department to access the same shipment information.

Unlike manual shipping processes where warehouse staff copy tracking numbers from a carrier portal into the ERP, Odoo stores the tracking reference automatically. Customer service representatives can open the Sales Order or Delivery Order at any time to check shipment progress without switching to another application.

Because the tracking number is stored within the ERP, it remains available throughout the entire order lifecycle, including customer support, delivery confirmation and future audits.

Step 11: Customer Notification

Once the shipment has been created and the tracking information is available, Odoo can notify the customer automatically.

Depending on the system configuration, customers receive shipment confirmation through email or other communication channels integrated with Odoo. The notification typically includes the tracking number, carrier information and shipment details, enabling customers to monitor the delivery without contacting the business.

At the same time, the Sales Order and Customer Portal are updated with the latest shipment status. This means customers and internal users are always viewing the same information, reducing unnecessary support requests regarding delivery progress.

Step 12: Warehouse Picking and Packing

Although the shipment already exists in the carrier's system, the warehouse still needs to prepare the physical package.

Warehouse employees open the Delivery Order generated earlier and begin the picking process. Odoo guides them to the correct storage locations where the reserved products are stored. As products are picked, warehouse users verify quantities, product variants, serial numbers, or lot numbers if tracking is enabled.

Once picking is complete, the products are packed according to the company's packaging procedures. Since the shipping label has already been generated, it can be printed directly from the Delivery Order and attached to the package before dispatch.

Because every activity is recorded within the same document, warehouse operations remain fully traceable.

Step 13: Delivery Validation

The shipment is not considered complete until the Delivery Order is validated.

When warehouse personnel click Validate, Odoo confirms that the products have physically left the warehouse. This single action triggers several important updates throughout the ERP.

The stock movement is completed, reserved quantities are released, inventory levels are updated and the Delivery Order status changes to Done. If automated inventory valuation is enabled, the accounting impact associated with inventory movement is also prepared.

Validation therefore represents the transition from warehouse preparation to actual customer delivery.

Step 14: Inventory Updates

One of the biggest advantages of Odoo Shipping Integration is that inventory updates happen automatically after shipment validation.

As soon as the Delivery Order is completed, Odoo reduces the available quantity from the warehouse location and updates the product's inventory information throughout the ERP. Since the Website, Sales, Point of Sale and other applications all reference the same Inventory module, the updated stock becomes immediately visible across every sales channel.

For example, if the last available unit of a product is shipped to a customer, that quantity is automatically reflected on the website. Customers browsing the online store no longer see outdated stock information because the Inventory module has already synchronized the changes.

This real-time inventory synchronization helps businesses avoid overselling and improves the accuracy of warehouse operations.

Step 15: Invoice Generation

Shipping is closely connected with the invoicing process.

Depending on the company's invoicing policy, Odoo can generate the customer invoice before shipment, after shipment, or according to delivered quantities. Since the invoice is created directly from the Sales Order, there is no need for finance teams to manually recreate order information.

The invoice automatically includes products, quantities, taxes, shipping charges, discounts and payment terms. If shipping costs were calculated using the integrated carrier during the earlier stages of the workflow, those delivery charges are also reflected in the invoice.

This ensures that the customer receives an accurate financial document matching the shipment that has just been dispatched.

Step 16: Accounting Integration

After invoicing and payment processing, the Accounting module automatically records the financial impact of the shipment.

Rather than requiring accountants to enter shipping information manually, Odoo generates the necessary accounting records from the operational workflow. Customer invoices update Accounts Receivable, payments update Bank Journals and shipping charges become part of the financial transaction.

If automated inventory valuation is enabled, inventory-related accounting entries are also generated as products leave the warehouse. As a result, finance teams always work with accounting information that originates directly from warehouse operations.

This integration improves financial accuracy while reducing repetitive accounting work.

Step 17: Managing Return Shipments

Not every shipment reaches a successful conclusion. Customers may return products because of incorrect deliveries, damaged goods, warranty claims, or order cancellations.

Odoo manages returns directly from the original Delivery Order. Instead of creating an entirely new shipping process, warehouse users initiate a return using the validated delivery record. Odoo creates a Return Picking operation that references the original shipment, ensuring complete traceability.

Once the returned products are received, inventory quantities are updated automatically. If a refund is required, the Accounting module generates the appropriate Credit Note, linking the financial adjustment with both the original invoice and the returned shipment.

This integrated return process ensures that inventory and accounting remain synchronized throughout the reverse logistics workflow.

Step 18: Multi-Warehouse Shipping

Many organizations operate multiple warehouses to serve customers in different regions or to separate inventory by product category.

Odoo supports this operational model by allowing each warehouse to maintain its own locations, delivery routes, operation types and shipping configuration. When a Sales Order is confirmed, Odoo determines which warehouse should fulfill the order according to the configured logistics rules.

The selected warehouse then follows the same shipping process described earlier, from inventory reservation to shipment creation and delivery validation. Although multiple warehouses participate in order fulfillment, users continue working within the same ERP database, allowing management to maintain complete visibility across all shipping operations.

Step 19: Shipping Reports and Operational Visibility

Every shipping activity contributes to Odoo's reporting system.

Managers can review shipping performance using operational dashboards that combine information from Sales, Inventory, Delivery and Accounting. Instead of collecting reports from different carrier portals, all shipping information is available within the ERP.

Typical reports allow businesses to monitor delivery performance, shipment status, warehouse workload, shipping costs, customer deliveries and overall fulfillment efficiency. Since these reports use live operational data, management can identify delays or bottlenecks before they affect customer satisfaction.

The ability to monitor shipping alongside inventory and financial information provides a more complete understanding of business performance than standalone shipping software.

Complete Odoo Shipping Flow

The entire shipping lifecycle can be summarized as follows:

Customer Order → Sales Order → Inventory Reservation → Delivery Order → Shipping Rate Calculation → Shipment Creation → Shipping Label → Tracking Number → Picking & Packing → Delivery Validation → Inventory Update → Invoice → Payment → Accounting → Reports

Every document is connected to the previous one, creating a complete audit trail from customer order to final financial reporting.

How Odoo Modules Participate in Shipping

Odoo ModuleResponsibility
SalesCreates and manages customer orders
InventoryStock reservation, picking, packing and delivery
DeliveryCarrier communication and shipment creation
Website/eCommerceCustomer checkout and delivery method selection
ContactsCustomer delivery information
AccountingInvoicing, shipping charges and financial entries
PurchaseProduct replenishment when stock is unavailable
ReportingShipping analytics and operational dashboards

Best Practices

A successful shipping process begins with accurate product information. Businesses should maintain correct product weights, dimensions, packaging details and warehouse routes so that shipping rates and carrier requests remain accurate. Delivery Methods should be tested using the carrier's test environment before they are activated for production.

Warehouse teams should validate Delivery Orders promptly, print shipping labels directly from Odoo and verify package contents before dispatch. Regular monitoring of shipment reports and carrier performance helps identify delays, incorrect shipping costs, or operational bottlenecks before they impact customers.

Organizations operating multiple warehouses should also review routing rules periodically to ensure orders are fulfilled from the most appropriate location.

Common Mistakes to Avoid

Even with an integrated shipping system, incorrect configuration can create fulfillment issues.

Some common mistakes include:

  • Missing product weights or dimensions.

  • Incorrect carrier credentials.

  • Using the wrong Delivery Method.

  • Skipping Delivery Order validation.

  • Ignoring warehouse routing rules.

  • Not testing shipping integrations before production.

  • Failing to monitor shipment exceptions.

  • Delaying inventory adjustments after returns.

Avoiding these issues helps maintain accurate shipments, reliable inventory records and better customer satisfaction.

Internal Linking Opportunities

Naturally link this article to:

Frequently Asked Questions

1. How does shipping integration work in Odoo?

Odoo connects Sales, Inventory, Delivery and Accounting with shipping carriers. After a Sales Order is confirmed, Odoo creates Delivery Orders, communicates with the carrier, generates shipping labels and tracking numbers, updates inventory and records the financial impact.

2. When is a Delivery Order created?

A Delivery Order is automatically generated after the Sales Order is confirmed and inventory is successfully reserved.

3. How are shipping charges calculated?

Shipping costs can be calculated using fixed pricing, predefined rules, or real-time carrier rates retrieved through the integrated shipping provider.

4. Does Odoo automatically generate shipping labels?

Yes. After the shipment is created with the carrier, Odoo retrieves the shipping label and attaches it to the Delivery Order for printing.

5. Can customers track their shipments?

Yes. Odoo stores the carrier tracking number and can display it in the Customer Portal while also sending shipment notifications.

6. How are return shipments managed?

Returns are processed from the original Delivery Order. Odoo creates a Return Picking operation, updates inventory and supports Credit Notes for refunds when required.

7. Can Odoo manage multiple warehouses?

Yes. Odoo supports multiple warehouses, each with its own routes and shipping configuration, while maintaining centralized operational visibility.

8. Which Odoo modules participate in shipping integration?

Sales, Inventory, Delivery, Website, eCommerce, Contacts, Purchase, Accounting and Reporting all contribute to the complete shipping workflow.

Conclusion

Shipping is not an isolated warehouse activity—it is a connected business process that begins when a customer confirms an order and continues through inventory reservation, shipment creation, carrier communication, delivery, invoicing and financial reporting. Managing these activities through separate systems often leads to manual work, inconsistent shipment information and limited operational visibility.

Odoo streamlines the entire shipping lifecycle by integrating Sales, Inventory, Delivery, Website, eCommerce and Accounting within a single ERP platform. Every shipment follows a structured workflow where delivery documents, shipping labels, tracking numbers, inventory updates and financial records are created automatically as the order progresses. This eliminates duplicate data entry while ensuring every department works with the same real-time information.

By understanding the complete Odoo shipping workflow, businesses can configure carrier integrations more effectively, improve warehouse efficiency, reduce fulfillment errors and provide customers with a faster and more transparent delivery experience. The result is a scalable shipping process that supports growing order volumes while maintaining operational accuracy and customer satisfaction.


Odoo Shipping Integration Guide: Complete Workflow
Harshiv Joshi Odoo Full Stack Developer

About the Author

I am an Odoo ERP specialist passionate about helping businesses optimize operations through technology and automation. I regularly writes about ERP implementation, business process improvement, and digital transformation strategies.
Book a Consultation

Share this post