user30116: Let's imagine I am hosting an online shop. I sell five different items with a price of 1 BTC.
Bob buys item A and Alice buys items B. Bob is paying the bill by sending 1 BTC to my Bitcoin address. Alice decides not to pay anything.
Now here is the big question: How do I know that I have received the money from Bob and not from Alice (I don't know their wallet)? Is there some kind of optional order reference / comment field in a transaction?

user26873: Your best option is for the online shop to provide unique bitcoin addresses for each customer. 
Bob clicks to buy item A and then fills out a quick form with his shipping information, after completion he is prompted to send 1 BTC to bitcoin address X. Alice at the same time clicks to buy item B and fills out a form and she is prompted to send her payment to address Y.  If address X receives funds, the shop owner will know that Bob paid, and Alice did not. 

30116: <p>Let's imagine I am hosting an online shop. I sell five different items with a price of 1 BTC.</p>

<p>Bob buys item A and Alice buys items B. Bob is paying the bill by sending 1 BTC to my Bitcoin address. Alice decides not to pay anything.</p>

<p>Now here is the big question: How do I know that I have received the money from Bob and not from Alice (I don't know their wallet)? Is there some kind of optional order reference / comment field in a transaction?</p>
 26873: <p>Your best option is for the online shop to provide unique bitcoin addresses for each customer. </p>

<p>Bob clicks to buy item A and then fills out a quick form with his shipping information, after completion he is prompted to send 1 BTC to bitcoin address X. Alice at the same time clicks to buy item B and fills out a form and she is prompted to send her payment to address Y.  If address X receives funds, the shop owner will know that Bob paid, and Alice did not. </p>
