Restrict Buyers To Add Products To Cart From A Single Vendor At One Time

Hello,

I'm working on a multi-vendor marketplace, and one of my requirements is to restrict buyers to add products to cart from multiple vendor at one time.

Detailed requirement:

1. A user can add multiple products from one vendor, but only after the order for that vendor is completed or checked-out the user can add products from another vendor. At any point the cart should contain products only from one vendor. This check should be on the Add To Cart action.

2. If the user tries to add product(s) from another vendor in a non-empty cart then he should get a warning or info message that "The user cannot add products from multiple vendors in the cart, so he should checkout or delete the product(s) already present in the cart from the earlier vendor".

3. This is needed for simplifying the shipping and payments steps, as I have added some custom payment methods that is specific to my marketplace.

Please suggest how can I achieve this.

Thanks,

Sunil

The shipping methods should already be broken down by vendors with products in the cart.

Are you using Braintree or other payment methods that will only allow you to transfer funds to a single entity from a single CC transaction?

This could be done, but it would make a difficult and confusing customer experience and wouldn't model anything that customers might be used to seeing in other mult-vendor type marketplace environments.

We are working on a module that will allow you to pay multiple vendors after a single CC transaction (basically it's a secondary payment action for distributing funds while leaving the customer with a single CC transaction). This module is also being designed to mimic an "escrow" account by being able to delay payment to vendors for N days after an order reaches a certain order status. I.e. 10 days after it's shipped. Right now it works with Paypal Business Mass Pay but we're also looking at products like Dwolla, etc. that will do ACH transfers.

deleted

Use the check_add_to_cart_post hook in the fn_check_add_product_to_cart function (app/functions/fn.cart.php) to compare product vendor with other products in cart.

The shipping methods should already be broken down by vendors with products in the cart.

Are you using Braintree or other payment methods that will only allow you to transfer funds to a single entity from a single CC transaction?

This could be done, but it would make a difficult and confusing customer experience and wouldn't model anything that customers might be used to seeing in other mult-vendor type marketplace environments.

We are working on a module that will allow you to pay multiple vendors after a single CC transaction (basically it's a secondary payment action for distributing funds while leaving the customer with a single CC transaction). This module is also being designed to mimic an "escrow" account by being able to delay payment to vendors for N days after an order reaches a certain order status. I.e. 10 days after it's shipped. Right now it works with Paypal Business Mass Pay but we're also looking at products like Dwolla, etc. that will do ACH transfers.

I agree that this requirement is different from what users are used to seeing in conventional multi-vendor marketplace types, but users of my wholesale marketplace will be comfortable with this requirement, as currently this is how it happens in the offline market.

In my marketplace payments by credit card(CC) is rare, so not keeping it as a payment type. Mostly the payments types are bank transfers or personal cheque payments or COD.

deleted

Hello Vivek,

I did not get want you are referring to, can you please elaborate.

Thanks,

Sunil

Then Ecom's approach would be one way to achieve this limitation.

Still not sure why you want to limit what a customer can purchase at one time versus forcing them to do a separate selection and checkout for each vendor's products. But I do understand there are many business rules that I'm not aware of. Reminder that in MVE there is actually a separate order generated for each Vendor that has products in the order. So I'm assuming there is some relationship to the check/cod/terms that a purchaser uses where you want that specific transaction related to only one vendor.

Please check pm