You can use stealth addresses to send the payment to a specific vendor with a stealth address, providing the extra data to recover the private key on a separate channel e.g. email. You can encrypt information like post address to the recipient using the ECDH shared secret and a symmetric key cipher.
So basically, the receiver posts
[recipient_email_address]&[stealth_address]
Sender sends this information to the receiver's e-mail address:
[shared_secret] (for encryption and recovery of private key)
then this other encrypted information in the e-mail:
[requested_items]
[txid_for_payment]
[where_to_ship_to]
Sender uses the derived pubkeyhash as an address and sends their funds there on BTC mainnet, receiver gets e-mail, decrypts all relevant information, recovers privkey for the address yet sent to.
I've been meaning to implement this (and indeed I've started a bit), but I've had other things to work on lately.