It can be a bit of a struggle coming from spreadsheets into Airtable and figuring out how to leverage it’s strengths and work around its shortcomings, since Airtable is much more a database than it is a spreadsheet.
A general best practice tip is to think of each “thing” you need to track as it’s own entity which will benefit from having it’s own table (this isn’t always true, but a general rule). If that thing can be both pluralized and singularized in the way you speak about it as part of your operations, then it’s often a good candidate for its own table.
The obvious example, in your case, is “Crates” - maybe you have a table called “Crates”, and each Record(row) in that table represents one “Crate”.
The less obvious example is the history of each crate. But you spoke of tracking the “Locations” a crate has been at, and a crate is only ever in one “Location” – thus, I was able to identify that as a “thing” you need to track that could use its own table – it’s related to shipping, so a “Shipping Records” table where each Record(row) represents one “Shipping Record”.
Because Airtable is a database, you’re inevitably going to run into things that your spreadsheet was able to handle quite easily, but Airtable has no clear way to handle. There is usually a way to work around it, just ask the community. But sometimes you have to just rethink the way you record your data.