Allocation &Cartonization
Backend execution engine that allocates inventory from optimal locations, handles ship-complete and partial orders, and cartonizes orders into the fewest shipments possible—all while respecting FEFO/FIFO, holds, and container constraints.
What is Allocation & Cartonization?
Allocation and Cartonization is a backend SmartTask execution engine that processes orders from creation to pick-ready status. It finds the optimal inventory locations for each order line, handles ship-complete requirements, and fits orders into the fewest containers possible.
The process is triggered from Order Download, Order Creation, and Trouble Order processing. It queries multiple inventory areas in sequence, respects hold flags and expiration dates, splits lines when necessary, and assigns the appropriate work type for efficient picking.
V8.1: Container Cube & Weight Filtering
Version 8.1 introduces filterContainersByCubeAndWeight. When enabled, the system first filters containers to only those whose cube and weight capacity can accommodate the order's total cube and weight—before applying carrier, zone, and sales channel matching.
The engine handles complex scenarios including partial shipments, value-added services (Sets explosion), push inventory for unallocated demand (V7.0), and pallet pick optimization (V8.0). Work types are assigned dynamically based on order characteristics, carrier requirements, and warehouse zones.
Allocation Search Sequence
Inventory is searched across multiple areas in configurable priority order
Pick Clean Prime
Locations flagged as pick clean with highest priority
Mixed Area
Multi-product locations for efficient picking
Prime Area
Primary pick locations for each product
Carton Area
Case-level storage for bulk allocation
Bulk Area
Pallet storage for large quantity orders
Available Inventory Formula
Only locations where Allocation_Allowable="Y", Hold_Code is blank, and System_Code is blank are considered.
Order Hold Processing
Multiple hold types prevent allocation until conditions are met
Order Hold
ORDER_HOLDCustomer-set hold flag. Order remains on hold until released by separate program.
Hold Until Date
HOLD_UNTIL_DATETime-based hold. Auto-releases when date ≤ current date. Marked trouble if future date.
Credit Hold
CREDIT_HOLD_CODEFinancial hold. Order marked as trouble until credit is resolved.
Product Hold
PRODUCTS.HOLDIf any product in order is on hold, entire order inherits hold code and date.
Cartonization Workflow
Fitting orders into optimal containers for shipping
Get Order Cube & Weight
Calculate liquid cube (L×W×H×Qty) and total weight for all allocated lines. Track largest item dimensions.
Get Valid Containers
Query CONTAINERS table for Container_Type="BOX". V8.1 filters by order cube/weight capacity. Sort by Storage Net Cube.
Can Order Fit in Box?
Compare liquid cube to container capacity. Verify largest item dimensions fit. If yes, assign and release.
Split & Cartonize
If order exceeds one container, loop through lines. Fill current container, split when full, start new container.
Reanalyze Container Size
After splitting, check if a smaller container can be used for the last carton. Optimize box selection.
Assign & Release
Update Work_Type_Headers with Container_ID, ASN, status="OPEN". Create Work_Histories record with job="CARTONIZED".
Key Capabilities
Intelligent allocation with full control over inventory, holds, and containers
Multi-Area Allocation
Searches Pick Clean Prime, Mixed, Prime, Carton, and Bulk areas in configurable sequence. Only allocates from locations where Allocation_Allowable="Y" and inventory has no hold codes.
Ship Complete Logic
When Ship Complete flag is set, allocation ensures all items are available. If any item cannot be fully allocated, the entire order is unallocated and flagged as trouble.
FEFO/FIFO Sorting
Automatically sequences inventory by expiration date (FEFO) or receipt date (FIFO). V6.1 ensures inbound inventory is considered even when earlier dates exist.
Intelligent Cartonization
Fits allocated lines into containers by comparing liquid cube vs storage net cube. Splits orders across multiple cartons when needed, reanalyzing for optimal box size.
Line Splitting
When a location cannot fulfill the full quantity, automatically splits the line and continues allocation from the next available location in the hash map.
Push Inventory (V7.0)
Analyzes unallocated trouble orders and generates PUSHDEMAND restock work from PUSH_FROM locations to PUSH_TO destinations based on total demand.
Pallet Pick Logic (V8.0)
Assigns Pallet Pick when quantity is ≥50% of PALLET UOM and empties the location. Configurable percentage per fulfillment center.
Container Filtering (V8.1)
When filterContainersByCubeAndWeight is ON, only considers containers that can accommodate the order's total cube and weight capacity.
Work Type Assignment
Determines work type (Single, Kit, Retail, Discrete, Putwall) based on Work_Type_Assignments table, carrier service, zone, and product handling codes.
Work Type Assignment
Determines the optimal picking workflow based on order characteristics
Embroidery
JOB_CONTROL_ID populated in any Work Type Line
Single
Only one open line in the order
Kit
Item exists in KIT_SET_PARENTS where KIT_SET_ID="KIT"
Retail
STORE_NUMBER populated in Work_Type_Header
Discrete
All OPEN lines allocated from same zone
Putwall
Default if none of the above conditions match
Version History
Key enhancements from V6.1 to V8.1
Inbound to restockable locations
Skip remaining locations when inventory found
Inbound allocation for Ship Partial orders
Preferred zone allocation sequencing
Container selection by carrier & service
Push Inventory demand analysis
Product handling code splits
Dimensional packing calculation
Pallet pick percentage logic
Container cube/weight filtering
Frequently Asked Questions
Common questions about Allocation & Cartonization
QWhat triggers the Allocation and Cartonization process?
This backend job is invoked from Order Download, Order Creation (front-end), and Trouble Order processing. Parameters are passed via a Bean to create a Common Session. Initial work status is "ORDER CREATED".
QHow does Ship Complete work?
When the Ship Complete flag is set on Sales Order Headers, allocation must find all units for all items. If any item cannot be fully allocated, the entire order is unallocated (returned to prior state) and flagged as trouble in Work_Type_Headers.
QWhat is the Available Inventory Formula?
Available = Inventory in Location + Inbound to Location - Outbound from Location. Only inventory where Allocation_Allowable="Y", Hold_Code is blank, and System_Code is blank is considered.
QHow does line splitting work?
If allocatable quantity is less than required, the line is split. A new line is created with the allocatable quantity and assigned to the current location. The original line retains the remaining quantity and continues seeking allocation from the next location.
QWhat is Push Inventory (V7.0)?
For unallocated trouble orders, the system calculates total demand for each SKU, finds inventory in PUSH_FROM locations, and creates RESTOCK work with Task="PUSHDEMAND" to move inventory to PUSH_TO locations.
QHow does Pallet Pick determination work (V8.0)?
A pick becomes a Pallet Pick when: (1) Quantity required is ≥50% of the PALLET UOM quantity, AND (2) the pick empties the location. The percentage is configurable per fulfillment center via General_Codes.
QHow are containers selected (V8.1)?
When filterContainersByCubeAndWeight is ON, containers are filtered first by whether their cube and weight capacity can accommodate the order. Then containers are matched by Carrier_ID, Carrier_Service, Work_Zone, and Sales_Channel.
QWhat determines the Work Type assignment?
Work Type is determined in order: Work_Type_Assignments table → Embroidery → Single → Kit → Retail → Discrete → Carrier/Service match → Zone match → Product Handling Code → Default to Putwall.
Ready to Optimize Order Fulfillment?
See how JASCI's Allocation & Cartonization engine can streamline your order processing with intelligent inventory selection and optimal container assignment.
Related Solutions
Explore capabilities that work seamlessly with this solution