Per the example, how would that process work with what you suggested? How are you going to predict what address they send payment to you as?
I think we are looking at things slightly differently.
This is how I think you are thinking about your process.
Your shop publishes an address: A_SHOP
Customer does a bitcoin transaction from A_CUST to A_SHOP for 9.95 and passes extra parameters 'from:
customer@email.address' and 'for: your cool ebook'
Your bitcoin payment system picks up this this transaction.
Your system sends 'cool ebook' to '
customer@email.address'
Another Customer does a bitcoin transaction from A_BOB to A_SHOP for 9.95 'from:
bob@somewhere.else' 'for: audiobook version'
Your bitcoin payment system picks up this this transaction.
Your system sends 'audiobook' to '
bob@somewhere.else'
In my proposed system it works like a traditional shopping cart/checkout system:
Customer comes to your shop.
Clicks the 'buy cool ebook button'
Fills our their delivery address on a web form.
You create a unique receiving address for this transaction: A_UNIQUE1
You note this mapping in your database. A_UNIQUE1 is 9.95 payment from '
customer@email.address' buying 'your cool ebook'
Your website then presents the customer with the address A_UNIQUE1
Customer does a bitcoin transaction however they like for 9.95 to A_UNIQUE1
Your bitcoin payment system picks up this this transaction.
Your system sends 'cool ebook' to '
customer@email.address'
Bob comes to your shop.
Clicks on the 'buy audiobook button'
Fills our their delivery address on a web form.
You create a unique receiving address for this transaction: A_UNIQUE2
You note this mapping in your database.
Your website then presents the customer with the address A_UNIQUE2
Bob does a bitcoin transaction however they like for 9.95 to A_UNIQUE2
Your bitcoin payment system picks up this this transaction.
Your system sends 'audiobook' to '
bob@somewhere.else'
Is that clearer?
The advantages of doing things this way are that you have control over the information that the customer is sending you before they actually send it.
If you decide to sell tshirts and need to include a 'size' field you can easily add this on your web end.
If they're trying to buy something that is out of stock, or if they are below the legal age you can deny the transaction and not give them an address to send to.
PM me if you need any help implementing such a system.