Hi Anil,
I think there is already a functional issue in the example before we even get
to the reservation handling.
If an order requests a quantity of 2 while only 1 is available, I don't think
a partial picklist should be created if maySplit = N (OrderItemShipGroup).  
From a warehouse
perspective, the order should simply wait until the complete quantity is
available.
Only if maySplit = Y should it be possible to create a picklist for the
available quantity while leaving the remaining quantity on backorder.
In that case, I would also expect the backordered quantity to become reservable
again when new stock arrives. However, I would not expect an already released
or active picklist to be modified afterwards, nor should additional quantities
or picklist items be added automatically.
Changing an active picklist after warehouse processing has started can easily
lead to picking and packing errors. From our experience, picklists should be
considered stable once they have been created and released.
We use the OFBiz fulfillment process quite extensively in our daily operations,
so this scenario is very relevant for us.
For that reason, I would first like to clarify the expected business behavior
before discussing the technical implementation. Once there is agreement on the
business rules, the implementation can follow naturally.
Best regards,
Dimitri

________________________________
From: Anil Patel <[email protected]>
Sent: Wednesday, July 1, 2026 7:05 AM
To: ofbiz users <[email protected]>; [email protected] 
<[email protected]>
Subject: [DISCUSSION] OFBIZ-830 — clearing backorders while a picklist is active

Hi all,

I'd like to get community feedback on OFBIZ-830, which touches how OFBiz
reassigns inventory reservations when stock arrives while a pick is in
progress.

https://issues.apache.org/jira/browse/OFBIZ-830

Short version of what I confirmed on current trunk:

- Order 2 of a product with only 1 in stock -> one reservation row with
  quantity 2 and quantityNotAvailable 1 (1 reserved, 1 backordered).
- Create a picklist for the available unit.
- Receive the second unit. The backorder does NOT clear -- not on
  receipt, and not after the picklist completes. It only clears if the
  inventory balance runs again later, on some unrelated receipt.

The reason: the available and backordered quantities live on the same
OrderItemShipGrpInvRes row, and the picklist references that row. The
reassign logic clears backorders by cancelling and re-reserving the whole
row, so it (correctly) won't touch it while a picklist is active.

The operational need I'd like to raise: when stock arrives during an
active pick, the backordered portion should become reservable against the
new stock right away -- without waiting for the pick to finish and without
disturbing the pick of the already-available unit. That means reassigning
only the not-available portion, i.e. splitting the reservation rather than
cancel-and-re-reserve.

That's a change to core reservation semantics, so before anyone codes it
I'd like input on the preferred direction:

- Split a reservation row on demand (keep the picked qty, move only the
  backordered qty to fresh stock)? Or model available vs backordered
  quantities as separate rows from the start so the backordered part can be
  reassigned independently?
- For those running real fulfillment on OFBiz: is immediate mid-pick
  reassignment the behavior you'd expect, or do you rely on the current
  "settle it after the pick" behavior?

Details, exact entity states, and the reproduction steps are in the Jira
comment. Feedback and real-world experience much appreciated.

Thanks and Regards
Anil Patel
CEO
HotWax Systems
http://www.hotwaxsystems.com
Cell: + 1 509 398 3120

Reply via email to