I have worked on several warehousing applications that do what you need to.

They either used a model where one record could be a single item or a group of items or used a model where every item was considered a group which pointed to a seperate table of items.

Breaking up groups when they take part out may seem ugly logically but it works well in practice. Even merging the groups together when they put something pack isn't bad.

Jay