On the OpenCart payment plugin escrow system we did it like this: We setup an escrow account 2 of 3 signers for the amount to be paid to the store after say 30 days. 30 days the package to the customer is expected to arrive. If all goes as planed the 3rd party escrow agent never has to sign anything. The buyer at checkout sends a pre-signed time bound transaction to the store that has to also sign that transaction and wait for the 30 day time bound window before it can submit the transaction to the stellar network to be proccessed to get it's payment.
In the event the customer fails to get the product within 30 days then the customer can contact the store and see about getting an extension of the 30 day time bound payment or ask for a refund transaction from the store that the buyer can then also sign and get the money back. In the event the store refuses to respond to the customers contact or some kind of dispute the customer can then contact the 3rd party escrow agent that can then attempt to contact the store and collect the details from both the customer of the problem issue and the stores points. The 3rd party agent can then decide to release the funds to the store or refund the customer with a transaction that 3rd party signs and the customer or store also signs to close the issue.
The wallets setup to support these escrow transactions are my_wallet and a modified stargazer wallet. As complex as the above sounds it is all performed in the background in the wallet and at the store plugin. The user just scans a QRcode or clicks a wallet URL link, analyzes the transaction to take place on the wallet and hits the SEND button to finalize the transaction. On the store side the transaction is seen by the store admin much the same as a credit card transaction as pending or processed.
If this sounds like it might be modified for your use you can see the code for the OpenCart stellar payment plugin at: https://github.com/sacarlson/OpenCart_stellar_plugin. also more code in the store escrow transaction processor server is found here: https://github.com/sacarlson/OpenCart_escrow. My_wallet code: https://github.com/sacarlson/sacarlson.github.io/tree/master/my_wallet.
Disclaimer: I made this.
You can check out the new plugin on the now active test store using testnet fake money at: https://www.funtracker.site/test_store/ . To access fake money you can use funds from this wallet link: https://sacarlson.github.io/my_wallet/?json=%7B%22seed%22:%22SAYRX7D4XXTMBKNGDG7TV2WLVJ2UEJPNGS3JQTDADX4J4X66XAMVDGHT%22%7D. Now also works with our new branched version of Stargazer android wallet with added V3.0 QR-code support. Have fun.