Extending Multi-vendor Marketplace features: Escrow+arbitration, and alternative mass payout options


#1

Hello,

Happy New Years and thanks to the team here for open sourcing this project.

I am looking to jump into a quick setup and need some help to understand if this is feasible, if so then to understand how difficult it would be to implement, and to get some tips from someone familiar with the source code how to do this the fastest way possible.

  1. I want to have an escrow+arbitration system where funds cannot be withdrawn by merchant until after buyer has agreed they received item. Buyer also can raise a dispute and claim they did not receive the item as described. In such case, the administrator (arbitrator) would settle the dispute. Buyers and sellers would be able to submit text (and ideally documents, not required immediately) evidence during the arbitration process.

This package says it is not even possible to keep the order processing: https://github.com/reactioncommerce/payments-cod so I will greatly appreciate some help how to do that.

  1. I want to add another option besides stripe connect for mass payouts. This should include a fee being deducted for the marketplace.

I would like to do this in a way where each modification is a plugin, so that when future versions of reaction commerce are released I can update without issues.


#2
  1. You can look at the tutorial on how to create a payment provider here. Although you can’t keep an order processing you can refund the order which I think is most akin to what you want to do (actually do a financial transaction after processing).

  2. The only processor that I know of that allows for distribution of payment is Braintree and our current implementation does not support that. That being said you could possibly extend the current Braintree plugin to use what they call Merchant accounts I believe. Note that you could need to create your own onboarding process for this unless you are manually onboarding them (getting them set up with their own account).

These could both be accomplished in the same payment provider plug-in I believe. It’s not a trivial amount of work but it should be doable.


#3

Dear Brent,

Thank you for the input, really helpful stuff.

Unfortunately, regarding point #1, the system we are using for mass payouts to our vendors does not support refunds. So if a seller receives their funds at the time when an order is marked as shipped, we cannot get that back from them. So we would ned an escrow process in this case.

So you think it would be impossible to do this via a plugin, we would have to modify the core software?

#2 seems doable as you said, if we can just get this escrow situation figured out.

Much obliged!