Ship Multiple Sales Orders in One Package with EasyPost Batch Shipping in Odoo

Google tag manager

For many distributors and manufacturers, shipping multiple sales orders to the same customer in a single package is a common way to reduce freight costs. This is especially true for international shipments, where combining orders into one package can result in significant savings. However, Odoo’s standard shipping workflow makes this difficult when using EasyPost. Companies often have to rely on third-party shipping software or manually consolidate orders, creating extra work and increasing the risk of errors.

Steersman has developed an enhancement that extends Odoo’s Batch Transfers functionality, allowing businesses to consolidate multiple EasyPost shipments into a single package while maintaining separate Sales Orders, deliveries, and invoices.

The Challenge with Standard Batch Transfers

Odoo includes a Batch Transfers feature that allows warehouse users to process multiple deliveries together. While this works well for many shipping workflows, it isn’t compatible with EasyPost out of the box.

When multiple deliveries using EasyPost are validated as a batch, Odoo is unable to process the shipment correctly, preventing companies from taking advantage of consolidated shipping.

As a result, businesses are often forced to choose between two inefficient options:

  • Ship each Sales Order individually, increasing shipping costs.
  • Manually combine order lines into a new Sales Order, making invoicing and order tracking more complicated.

Neither approach is ideal for organizations that regularly ship multiple orders to the same customer.

The Solution: EasyPost Batch Shipping

Steersman’s enhancement bridges the gap between Odoo’s Batch Transfers and the EasyPost integration.

Warehouse users can now add multiple outbound deliveries to a single Batch Transfer, package them together, and generate one EasyPost shipment and one shipping label—while keeping each Sales Order and delivery record separate.

This allows companies to reduce shipping costs without disrupting their existing order or invoicing processes.

Built-In Shipment Validation

Before creating a consolidated shipment, the system performs a series of validation checks to ensure the deliveries are compatible.

The deliveries must all share the same:

  • Customer
  • Delivery address
  • Shipping carrier and shipping method
  • Shipping billing configuration

If shipping charges are billed to the receiver or a third party, the billing account information must also match.

If any of these conditions are not met, Odoo prevents the shipment from being validated and clearly identifies the issue before a shipping label is purchased.

These safeguards help prevent incorrect shipments and unnecessary carrier charges.

One Shipment, One Label

Once validation succeeds, the enhancement changes how EasyPost processes the shipment.

Instead of creating separate shipments for each delivery, Odoo sends the combined package information to EasyPost as a single shipment.

EasyPost then:

  • Creates one shipment
  • Performs carrier rate shopping
  • Purchases one shipping label
  • Returns tracking information for the combined package

Steersman’s integration automatically distributes the shipment information back to each individual delivery record, preserving complete traceability across every Sales Order included in the shipment.

Automatic Shipping Cost Allocation

Shipping one package shouldn’t mean losing visibility into shipping costs.

After EasyPost returns the shipment cost, the system automatically allocates the shipping expense across every delivery that contributed to the package.

Each Sales Order continues to maintain accurate shipping cost information, allowing businesses to preserve reporting accuracy and support existing “Real Shipping Cost” workflows.

Handles Real-World Warehouse Scenarios

The enhancement was designed for the realities of warehouse operations.

It supports:

  • Multiple Sales Orders shipped together
  • Shared packages
  • Automatic tracking updates
  • Batch validation
  • Partial shipment success handling
  • Backorder processing when necessary

Even when part of a batch cannot be processed, successful shipments continue while remaining deliveries are safely moved into backorders, minimizing disruption to fulfillment operations.

A Typical Workflow

With the enhancement installed, the shipping process becomes straightforward:

  1. Create multiple Sales Orders for the same customer.
  2. Generate outbound deliveries for each order.
  3. Create a Batch Transfer and add the deliveries.
  4. Package the deliveries together.
  5. Validate the batch.
  6. Odoo verifies that all deliveries are compatible.
  7. A single EasyPost shipment and shipping label are created.
  8. Tracking information is written back to each delivery.
  9. Shipping costs are automatically distributed across the participating orders.

The result is a streamlined fulfillment process with fewer shipping charges and no manual consolidation.

The Benefits

By extending Odoo’s EasyPost integration to support Batch Transfers, businesses gain:

  • Lower shipping costs by consolidating multiple orders into one shipment
  • Single shipping label generation for combined packages
  • Automatic validation to prevent incompatible shipments
  • Accurate shipping cost allocation across Sales Orders
  • Preserved order and invoice integrity
  • Reduced manual work and fewer shipping errors
  • Full EasyPost integration within Odoo’s existing warehouse workflow