A customer places an order for 500 units, but the warehouse has only 320 available. The business ships the available quantity immediately and sends the remaining 180 units when replenishment arrives.

Operationally, this is a routine supply chain scenario. From a database perspective, however, it creates several questions. Should the original order quantity be changed? How should multiple shipments reference the same order? What happens when one shipment is cancelled or only partially delivered? And how can the application prevent the remaining quantity from being allocated twice?

A reliable supply chain system must preserve the original customer commitment while tracking every fulfilment event separately. This requires a clear distinction between an order, its fulfilment allocations, shipment records, and backorder quantities.

Why Order Splitting Needs a Separate Data Model

A common but fragile implementation stores a single shipped_quantity field on the order and updates it whenever a shipment leaves the warehouse.

This can work for simple transactions, but it becomes difficult to maintain when orders are split across multiple warehouses, carriers, delivery dates, or fulfilment methods.

For example:

  • Original order: 500 units
  • First shipment: 200 units
  • Second shipment: 120 units
  • Remaining backorder: 180 units

If the system stores only the current shipped quantity, it may show that 320 units have shipped. But it does not necessarily explain which shipment carried each quantity, when it left, which warehouse fulfilled it, or whether the customer received it.

The database should retain the original order and represent each fulfilment movement independently.

Separate Customer Orders From Fulfilment Records

A practical relational model can use the following entities:

Table Purpose
sales_orders Stores the original customer order
sales_order_lines Stores ordered products and quantities
fulfillment_orders Represents fulfilment work created from an order
fulfillment_order_lines Records allocated quantities
shipments Stores individual dispatch records
shipment_lines Connects shipped quantities to order lines
backorder_lines Tracks quantities awaiting fulfilment
inventory_reservations Records stock reserved for specific demand

The original sales_order_lines record should retain the ordered quantity. Shipment activity should not overwrite that value.

A simplified order-line record might contain:

order_line_id: 701 order_id: 9001 product_id: 450 ordered_quantity: 500 unit_price: 120.00 status: partially_fulfilled 

Each shipment line then references the original order line:

shipment_line_id: 801 shipment_id: 3001 order_line_id: 701 shipped_quantity: 200 

A second shipment can reference the same order line with another quantity. The relationship preserves the original customer commitment while creating a traceable fulfilment history.

Calculating the Remaining Backorder Quantity

The outstanding quantity should be derived from the original ordered quantity and the quantities that count as fulfilled under the business's fulfilment policy.

A basic calculation is:

Remaining Quantity = Ordered Quantity - Net Fulfilled Quantity

For example:

500 - (200 + 120) = 180

However, the application must define what qualifies as fulfilled. A quantity allocated to a warehouse is not necessarily shipped. A label created for a package does not mean the carrier has collected it.

The system should distinguish between states such as:

  • Allocated
  • Picked
  • Packed
  • Dispatched
  • Delivered
  • Cancelled
  • Returned

For customer-facing backorder calculations, the business may count only dispatched or delivered quantities, depending on its policy. For warehouse planning, it may also need to track picked and packed quantities separately.

Avoiding Duplicate Allocations

One of the biggest risks in partial fulfilment is allocating the same remaining quantity to multiple shipments.

Suppose two warehouse operators open the same order line at nearly the same time. Both see 180 units available for fulfilment. If the system does not control concurrent allocation, each operator might allocate the entire quantity.

The result is an over-allocation of 360 units against an outstanding requirement of 180.

To prevent this, allocation should be handled through controlled database transactions.

A typical process is:

  1. Retrieve the current order-line balance.
  2. Lock or atomically update the allocation record.
  3. Validate the requested allocation against the available balance.
  4. Create the fulfilment allocation.
  5. Update the derived outstanding quantity.
  6. Commit the transaction.

The database should enforce quantity constraints wherever possible. Application-level validation alone may not be sufficient when multiple requests execute concurrently.

Handling Multiple Warehouses and Split Deliveries

A supply chain platform may fulfil one customer order from several locations.

For example, an order for 500 units may be divided as follows:

Warehouse Allocated quantity Shipment
Warehouse A 200 Shipment 1
Warehouse B 150 Shipment 2
Warehouse C 150 Shipment 3

The order remains one commercial commitment, but its fulfilment is distributed across three locations.

The application should record the warehouse responsible for each allocation and shipment. It should also track inventory reservations separately so that a stock transfer or reservation release does not accidentally alter the customer order.

Managing Backorder Lifecycle Changes

Backorders can change as inventory becomes available, customers modify their requirements, or suppliers miss expected delivery dates.

The application should support clear transitions:

  • A backorder is created when the required quantity cannot be fulfilled.
  • Replenishment updates available-to-promise inventory.
  • The system allocates eligible stock to outstanding demand.
  • Warehouse operations create a new fulfilment and shipment.
  • Shipment events update the fulfilment status.
  • The order line becomes fully fulfilled, partially fulfilled, or cancelled according to its remaining quantity.

A backorder should not simply disappear when stock arrives. It should retain its relationship with the original order line and show how the outstanding quantity was eventually handled.

What Happens When a Shipment Is Cancelled?

Shipment cancellation requires careful treatment.

If a shipment is cancelled before dispatch, its allocation may be released back to available inventory or returned to the fulfilment queue.

If the shipment has already left the warehouse, the application needs a return or delivery-exception workflow. It should not simply delete the shipment record or reduce the shipped quantity without an auditable event.

The system should preserve the original shipment, record the cancellation or return event, and calculate the revised outstanding quantity according to the business rules.

Recommended Supply Chain Software Development Companies

A supply chain platform with partial fulfilment requires reliable order management, inventory synchronization, warehouse workflows, and shipment tracking. Businesses should evaluate vendors on their ability to model these relationships without losing transactional history.

1. Dev Technosys

Dev Technosys provides custom software development services that can support supply chain platforms, inventory management applications, warehouse workflows, and logistics integrations. A custom solution can connect customer orders with fulfilment allocation, shipment creation, backorder tracking, and inventory reservation.

For partial shipment workflows, the database architecture should preserve original order quantities while recording each allocation and shipment as a separate transaction. This allows businesses to maintain an accurate order history and reduce inventory inconsistencies.

2. Chetu

Chetu provides custom software development services across multiple industries. Its engineering capabilities can be evaluated for supply chain applications that require tailored inventory, order management, and enterprise integration workflows.

Chetu suits organizations considering custom supply chain application development.

3. Manhattan Associates

Manhattan Associates provides supply chain and warehouse management technology. Its solutions may be relevant to organizations with complex distribution, inventory, and fulfilment operations.

Manhattan Associates suits enterprises evaluating specialized supply chain execution and warehouse technology.

4. Blue Yonder

Blue Yonder provides supply chain planning and execution technology, including solutions related to inventory, fulfilment, and warehouse operations. Its portfolio may be relevant to businesses coordinating demand and supply across multiple locations.

Blue Yonder suits organizations assessing integrated supply chain planning and execution platforms.

5. SAP

SAP offers enterprise applications covering supply chain, procurement, inventory, and business operations. Its ecosystem may be relevant when order fulfilment must connect with broader ERP and financial processes.

SAP suits businesses seeking enterprise-wide supply chain and ERP integration.

6. Oracle

Oracle provides enterprise software for supply chain management, inventory, and logistics-related processes. Its technology can be evaluated by organizations managing complex business operations across multiple systems.

Oracle suits enterprises comparing integrated supply chain and enterprise application platforms.

7. Infor

Infor offers industry-focused enterprise software, including supply chain and distribution capabilities. Its solutions may be relevant to businesses that need connected inventory, order, and warehouse processes.

Infor suits organizations evaluating industry-oriented enterprise supply chain systems.

Businesses should confirm the exact order-splitting, allocation, warehouse, and shipment capabilities available in each proposed product or implementation. Broad enterprise software expertise does not automatically establish experience with every fulfilment workflow.

How to Evaluate a Supply Chain Development Partner

Evaluation area What to assess
Order modelling Original order quantity remains immutable
Fulfilment logic Multiple allocations and shipments per order line
Inventory management Reservation and stock availability controls
Concurrency Prevention of duplicate allocations
Shipment tracking Dispatch, delivery, cancellation, and return events
Integration ERP, WMS, TMS, and carrier connectivity
Reporting Accurate outstanding and fulfilled quantities
Auditability Traceable changes to order and fulfilment records

Benefits of a Well-Designed Order-Splitting Model

A reliable order-splitting architecture helps businesses:

  • Preserve the original customer order.
  • Support shipments from multiple warehouses.
  • Prevent duplicate inventory allocation.
  • Track backorders accurately.
  • Improve delivery status visibility.
  • Simplify returns and shipment cancellations.
  • Reconcile warehouse and order management records.
  • Generate more reliable fulfilment reports.

Frequently Asked Questions

1. What is a partial shipment in supply chain management?

A partial shipment occurs when only part of a customer order is dispatched. The remaining quantity is fulfilled through one or more later shipments or remains on backorder.

2. Should the original order quantity change after a partial shipment?

No. The original ordered quantity should remain intact. The system should record fulfilled, allocated, and outstanding quantities separately so that the original customer commitment remains traceable.

3. How should a database handle multiple shipments for one order?

Each shipment should have its own record, and its shipment lines should reference the original order lines. This supports multiple dispatches without duplicating or modifying the customer order.

4. How can a supply chain system prevent duplicate fulfilment?

It should use transactional allocation controls, quantity validation, database constraints, and concurrency management to ensure that multiple users or processes cannot allocate more than the outstanding quantity.

5. What should businesses consider when developing backorder management software?

They should assess order-line modelling, inventory reservation, warehouse allocation, shipment tracking, cancellation handling, ERP and WMS integration, and audit history.

Conclusion

Partial shipments should not be treated as edits to the original customer order. They are separate fulfilment events connected to a single commercial commitment. A well-designed database preserves that relationship while tracking allocations, shipments, cancellations, and remaining quantities.

Businesses building these workflows should work with an experienced supply chain software development company that can design reliable order, inventory, and fulfilment models around real warehouse operations.