# Packing Process ## Overview The Packing Process feature enables the structured organization of finished materials into containers for storage or shipment. It ensures that materials are grouped, tracked, and labeled correctly, supporting efficient logistics and full traceability from production to delivery. --- ### Concept In manufacturing, finished goods often need to be grouped into packaging units (e.g., boxes, pallets) before leaving production. The Packing Process provides a controlled way to: - Create packing containers - Add or remove materials from containers - Manage container states (open/closed) - Track hierarchical packing structures (e.g., Board > Box > Pallet) This ensures: - Accurate grouping of materials - Consistent handling of packaging operations - Complete traceability of packed goods --- ## Functional Behavior ### Packing Flow The packing process typically follows these stages: 1. **Open Container** - A container material is created and initialized 2. **Add Items** - Materials are added into the container 3. **Remove Items (optional)** - Materials can be removed before finalization 4. **Close Container** - Container is finalized for storage or shipment --- ### Packing Structure Packing supports multiple levels of hierarchy, such as: - Board to Packing Box - Packing Box to Pallet The allowed relationships are defined in: - `SMTMaterialPackingContext` --- ### Container Behavior Packing containers are materials with a specific Product (`IsPackingContainer = True`). They maintain a **Packing State**: - Open: can accept materials - Closed: finalized, no further changes allowed And can be nested which means containers can be packed into other containers. --- ### Material Handling #### Adding Materials - Materials are associated to the container - Labels may be generated (if configured) --- #### Removing Materials - Materials are detached from the container - Container state may revert from Closed to Open (if applicable) - Removed materials remain available for repacking --- #### Closing Containers - Marks container as finalized - Prevents further changes - Triggers label printing (if configured) --- ### System Configuration - Feature must be enabled: - `/SMT/MaterialPacking/IsEnabled` - Packing Step must have: - `IsPacking = True` - Container Product must have: - `IsPackingContainer = True` - Required Smart Tables must be configured: - `SMTMaterialPackingContext` - `SMTMaterialNameGenerationContext` - `SMTMaterialPrintableDocumentContext` (optional) #### SMTMaterialPackingContext Defines: - Which products can be packed into which containers - Multi-level packing relationships --- #### SMTMaterialNameGenerationContext Defines: - Naming rules for packing containers --- #### SMTMaterialPrintableDocumentContext Defines: - Labels printed during packing operations: - Open container - Add items - Close container --- ### Result After the packing process: - Materials are organized into containers - Containers reflect correct structure and hierarchy - Containers are ready for logistics operations (storage/shipping) - Traceability is maintained across all packing levels --- ### Key Capabilities - Multi-level packing support (e.g., Box to Pallet) - Controlled container lifecycle (Open to Close) - Automatic label generation - Full traceability of packed materials - Flexible material handling (add/remove before closing) --- You can find more detailed information in the [**Packing Process**](../../tutorials/packingprocess/index.md) tutorial.