Each step in the transaction flow appends a new step - digitally signed - into a JSON document that acts as a ledger. So the seller puts out the listing and the buyers signs it and sends the funds. The seller won't proceed with the order until the payment is made in full, so the ledger doesn't get any new information until then. The final step (the review) is the last addition to the ledger.
It's based on the concept of the Ricardian Contract by Ian Grigg, adapted to become a ledger. This allows trade to continue asynchronously.
Or, can I pay for a product from multiple addresses and leave many reviews?
Edit: typos