Also,
When I purchased the tshirt. I ended up scanning their QR Code with my phone and with my laptop clicked the payment had completed. How the heck did the vendor know it was me that sent the .15 BTC?
Most merchants use a unique single use address for each sale. When you checked out the server assigned a unique payment address to your order. When the right amount of funds were received in that address the server "knew" your order had been paid.
This may seem strange when thinking of other systems where the cost of producing an "account" is expensive. A merchant wouldn't open 10,000 bank accounts and direct each customer to send payment to their unique payment account. However the cost of producing a new address in Bitcoin is negligible. A good system can generate a thousand a second easily. We generate a new address for every order unpaid or not.