--- alias: user-guide-store-containers-in-resource description: "This operation stores a container within a resource, adhering to specific preconditions and sequence steps" --- # Store Containers in Resource :lock: Container.**Store** ## Overview This operation is used to store a **Container** in a storage **Resource** (from the perspective of the **Resource**). ## Setup No special setup is required other than to meet the preconditions of the transaction. ## Preconditions * The **Container** exists, it is Active and its System State is Available. * The **Container** is currently not associated with any **Resource**. * The **Resource** exists and it is Active. * The **Resource** must have the Processing Type set to Storage and it must be Dispatchable. * If the **Resource** has the Position Unit Type set to Container, the **Container** must not be topmost (it must not be contained inside other **Container**). Also, if the Container Type has been defined, the **Container** must be of that type. * **Resource** and **Container** are in the same Facility * The **Resource** and **Container** must be in the same **Facility**. * The **Resource** must have free positions, that is, if Track Positions is set to true, the used positions must be less than the total positions. * All topmost **Materials** currently associated with the **Container** must: * Not be In Transit. * Be in the state Queued or Processed. * If the **Material** is In Store, the **Material** Resource Association Type must be Related Container and the **Resource** where the **Material** is currently located must match the **Resource** used in this operation (a **Material** cannot be associated with two different **Resources** simultaneously). * If the **Resource** property Is Product Mix Allowed is `false`, all the **Container** **Materials** must have the same **Products** as other **Materials** already associated with the **Resource**. * If the **Resource** property Track Positions is `true`, the Used Positions count must be less than the Total Positions count. Also, if the position addresses are not automatically generated, you must provide a valid address and the specified position must be within the defined bounds for the different storage dimensions. * If the **Resource** has Storage Bins, the **Container** type must match the definition on the Storage Bin. ## Sequence of Steps 1. Choose a valid **Resource** and select Container from the **Store** button on the top ribbon. 2. Choose the **Container** to be stored by one of several available methods: * Select :material-camera: to add a new **Container** by scanning a barcode through an available webcam. * Select :material-keyboard: to add a new **Container** through text entry or using a barcode reader. * Select :material-plus: to add a new **Container** through text entry or search. * Select :material-trash-can: to remove an previously selected **Container**. 3. If the **Resource** property Track Positions is `true`, provide a valid position. Note that in this case the provided position address must be compliant with the defined **Resource** position address format. 4. If the **Resource** has Storage Bins, select the Storage Bin where the **Container** should be stored. 5. Select **Store** to complete the transaction. ![Store Containers in Resource](images/store_containers_in_resource.png)