The most expensive moment to discover the wrong tile is when it is already on the wall. Check-in moves that discovery to delivery day.
Print the labels
Every row in a trade package carries a QR code, and you can print a label sheet for a whole trade package or a whole order sheet. The sheets are laid out for standard adhesive label stock.
Stick a label on the material, or hand the printed sheet to whoever is meeting the delivery.
Scan it
Point a phone camera at the code. It opens the item's identity card: the image, the manufacturer, the model, the finish, the size, and the quantity. No app, no account, no login.
That card is the check. What is on the pallet should match what is on the screen.
Two answers
Delivered, looks right. Optionally attach a photo. The item's status moves to delivered.
Problem. Say which kind: wrong finish, damaged, or short. Add a note and a photo. You get an email straight away, because a problem at the dock is a problem with a clock on it.
What gets recorded
Check-ins are added, never edited or removed. Each one keeps what was reported, when, and any photo, so the delivery record is evidence rather than a status field somebody can quietly flip.
They show up in the project's feed, so you can see what has physically arrived without calling anybody.
The delivered status
Items now move pending, selected, ordered, delivered, installed. Delivered sits between ordered and installed and means the material is on site and checked.
Filter the spec by status to see what has landed and what has not.
Who can do this
Anybody holding the trade link or a printed label. That is the point: the person meeting the truck is often not you and should not need an account. The scan page shows one item, carries no money, and cannot change anything except adding a check-in record.