Skip to content
This repository has been archived by the owner on Jan 14, 2020. It is now read-only.

Remove conditional around commissions payout #427

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

jordajm
Copy link
Contributor

@jordajm jordajm commented Sep 8, 2018

Checklist:

  • Ensure all new and existing tests pass

Description:

I went through the commissions-related logic in origin-js and I think it's all there and it makes sense except for this one conditional that only allowed commissions to be paid to an affiliate if the buyer finalizes the transaction, but the commissions payment wouldn't happen if the seller finalizes the transaction.

The seller can only finalize the transaction if the dispute window has passed without a dispute being brought, so I think the affiliate should be paid in either case, whether the buyer or the seller finalizes the transaction.

Does that make sense to you @nick @tyleryasaka @micahalcorn @franckc @cuongdo ?

@jordajm jordajm requested a review from nick September 8, 2018 05:48
@nick
Copy link
Contributor

nick commented Sep 8, 2018

I think this needs input from @matthewliu as it's removing a key incentive for marketplace dapps to get buyers to finalize early. If a marketplace dapp will only get paid their commission if the buyer is the one to finalize then they will try hard to make that happen with reminders and notifications. If they get paid their commission regardless, that incentive wont be there which could lead to less buyers finalizing and more sellers having to either initiate a dispute or wait for the finalization window to pass, which could cause resentment and less willingness to use the platform.

Note that if the transaction goes to dispute then the arbitrator decides whether the commission is paid or not

@micahalcorn
Copy link
Member

@nick does an affiliate not deserve the earned commission if the seller is the one to finalize (in the case of an expired finalization window)? A transaction was still consummated and they brought the two parties together. Would you feel differently about this if we ended up going with shorter finalization windows? I think that @matthewliu and I would lean toward approving this PR. It's not particularly relevant for v1 if we're going with super long finalization windows, but it would be best to include the change now if we're going to want it in the future.

@nick
Copy link
Contributor

nick commented Sep 12, 2018

@micahalcorn the way I think of it, the commission is not only to incentivize partner dapps to find buyers, but also to get buyers to finalize. The buyer being the one to finalize is important for sellers to have a good experience with the platform. If sellers have to wait for a finalization windows to pass, or raise a dispute every time they sell something, they might decide it's not worth the effort to use our platform.

In order to incentivize third party dapps to get buyers to finalize, there needs to be a financial incentive. Financial incentives are the only way to ensure a certain type of desired behavior (ie buyer finalizing) actually happens. By leaving this incentive in, we're essentially saying to partner dapps "you only get paid your commission if you find a buyer and get them to finalize". If they only needed to do the first part, we'd probably never get a buyer finalizing as what's in it for them, apart from lost gas?

How the partner dapp actually gets the buyer to finalize is up to them. I can foresee them offering part of their commission back to the buyer as something akin to reward points. Or perhaps giving buyers a bad reputation if they don't finalize (kind of like how Airbnb shows a response rate to incentivize hosts to reply to messages).

For v1 I think this is a non-issue as, due to the long finalization window, the only way for sellers to get paid if the buyer doesn't finalize is to start a dispute and in that case the arbitrator decides whether to pay the commission or not. So for v1 the arbitrator can always decide to pay the commission.

Longer term, though, I think it's important to keep this incentive as is.

@matthewliu
Copy link
Member

matthewliu commented Sep 12, 2018 via email

@jordajm
Copy link
Contributor Author

jordajm commented Sep 12, 2018

I'm interested to understand what it is about a blockchain-based marketplace that makes it necessary for a buyer to do anything after they click the "buy" button when this is not necessary on traditional marketplace platforms like Amazon.

To me, this is a friction point that will need to be addressed either now or in the future because it makes it harder and more time consuming for a buyer to use an Origin platform than any centralized marketplace.

Sorry if I'm out of the loop on convos you all have been having, but I don't understand the reasoning behind these decisions:

  1. force buyers to manually finalize
  2. have a very long finalization window for v1

@nick
Copy link
Contributor

nick commented Sep 12, 2018

@matthewliu agree that partner dapps should use notifications and reminders to get buyers to finalize. But if there's no financial incentive, why would they want to bother their users with annoying reminders? If buyers are their bread and butter, partner dapps will want to keep them happy at all costs. They won't care if the buyer finalizes or not... which will be an issue for sellers as they won't get paid in a timely manner.

Getting the buyer to finalize is a pain, I agree. However, due to the nature of the blockchain and the fact that there are no refunds or chargebacks, it's important for the buyer to indicate "I'm happy with the transaction, I agree to no refunds" (aka finalizing) as after that there's no going back. This is fundamentally different to existing marketplaces when you can usually get a refund if you're not happy.

@jordajm there's nothing forcing buyers to finalize in the current contract... it's just good for the seller if they do. We need happy buyers and happy sellers for a well functioning marketplace. The long finalization window was discussed in #365, but the gist was that we'd just leave unpaid sellers as a problem for the arbitrator in v1. If we want to make the window shorter we can do so without changing the contracts, however.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants