Quarantine Locations

Learn how to configure locations in your warehouse to hold stock that must not be sold

A location can be tagged with the inventory-quarantine capability to mark it as an area used to hold stock which is physically present but must not be sold, for whatever reason.

Inventory stored in a quarantine location is still tracked by Jungle and still counts towards your stock on hand. It is removed from your available inventory and is never assigned to orders.

Warehouses will typically use quarantine locations to hold stock that has been received damaged from a supplier, is awaiting a quality check, or has been recalled. Our receiving workflows on the handheld app give warehouse operators the option to tag an item as damaged and store it in a quarantine location for later processing.

Configuring a quarantine location

A quarantine location is a location tagged with the inventory-quarantine capability. It also needs the store capability so that stock can be held there. Use the capabilitiesSet method of the Jungle API to set these capabilities on your chosen child location:

mutation {
  capabilitiesSet(
    input: {
      capabilityIds: ["store", "inventory-quarantine"]
      object: { id: "your_child_location_id", typename: "Location" }
    }
  ) {
    ok
  }
}

The capability applies to that location only. It is not inherited by child locations, so tag each location you want quarantined.

It is important to decide where you will store this quarantine stock ahead of time. An example warehouse layout might look like:

  • Jungle Warehouse top-level
    • Aisle 1
      • Rack A (capabilities: store)
      • Rack B (capabilities: store)
    • Aisle 2
      • Rack A (capabilities: store, inventory-quarantine)

Where you use Aisle 1 Rack A/B to store fit for sale inventory and reserve Aisle 2 Rack A for quarantined goods.

You can track stock levels of Aisle 2 Rack A by clicking into it in the web UI or scanning on with the handheld app and inspecting its inventory.

How quarantined stock is reported

Stock in a quarantine location stays in quantityOnHand and is reported separately as quantityQuarantined. It is excluded from quantityAvailable and quantityAvailableToPromise, so:

quantityAvailable = quantityOnHand - quantityAllocated - quantityQuarantined

This holds whether you query a single location or a parent location aggregated with its children.

Using the layout above, with 4 apples in Aisle 1 Rack A and 6 apples in Aisle 2 Rack A:

LocationquantityOnHandquantityAvailablequantityQuarantined
Aisle 1 Rack A440
Aisle 2 Rack A606

Querying the warehouse including its children reports 10 on hand, 4 available and 6 quarantined.

Since on hand can go negative when stock levels are mismatched, the quarantined quantity can also go negative when the mismatch is at a quarantine location. No floor is applied, so available always equals on hand minus allocated minus quarantined.

Quarantined stock is never assigned

Stock in a quarantine location is not assigned to orders, in either direction:

  • Automatic assignment skips quarantine locations. If the only stock for a product is quarantined, the allocation remains unassigned.
  • Manually assigning stock from a quarantine location to an allocation fails with a LOCATION_QUARANTINED error.
  • Replenishment, put-away suggestions and ready-to-pick checks all ignore quarantine locations.

Stock can still be moved into and out of a quarantine location. Moving stock in removes it from available, and moving it back out to a sellable location makes it available again.

Adding or removing the capability

Adding inventory-quarantine to a location that already holds stock quarantines that stock immediately. Any inventory at the location that was assigned to an allocation is unassigned and re-assigned from another location where possible. If no other location has stock, the allocation remains unassigned.

Removing inventory-quarantine from a location makes its stock available again, and allocations waiting on that product are re-evaluated so the stock can be assigned.

No account configuration is required. Quarantine is enforced as soon as the capability is set.

Damaged stock

The damaged capability is not a quarantine mechanism. It marks a location as a place where damaged stock can be stored, and is used to suggest a put-away location for items received in a damaged condition. It has no effect on available inventory or on assignment.

If you want damaged stock removed from sale, tag the location that holds it with inventory-quarantine as well.

Can't find what you're looking for? Contact us