Multivendor Marketplace

I will need to build a multivendor marketplace this year (work is going to start very soon).

After pondering how to build one with WP, I ended up understanding that I need Woo + a marketplace extension like Dokan or WC Vendors.

Has anyone attempted this with ClassicPress? Should I venture in some other direction? (can it be build with CPTs? probably yes but cumbersome?)

Eventually in the coming days I am going to test CC v2 with an extension for marketplace to see how it goes, however I am not prepared to dwell on the code to make it all work since such plugins needed are not an easy thing.

Could I circumvent the issue with a multisite and simple woocommerce?

My charity will open a company to employ women, specifically artisans who produce textile by hand. This means every artisan is going to need their shop on the main company site. That is why between marketplace and multisite I was leaning towards marketplace. Is there any other method that I do not have thought of to do this?

Thanks in advance for all the advices.

The CPT part could be in theory made easier by using ACF Pro .. but aside of that: A lot of add-ons for WooCommerce work almost hassle-free with CC v2, too.

Except those that exclusively rely on Gutenborg to drive everything. I had a few of those, but even then, they mostly worked hassle-free, as the backend doesnt rely that much on Gutenborg and “rearght” (react.js).

I’m gonna look into this in detail tomorrow, but in theory, if there was some more granular user access control. eg. using a membership plugin like Ultimate Member and the likes, one could indeed create a single-site marketplace without too much of breaking because of the Gutenborg clutter.

cu, w0lf.

I will start testing today, thanks for looking into this. I have seen some extensions for multivendor allow to have a mobile app too (like Dokan) - obviously paid. Since I am not very versed in mobile apps however I think this is not that important as of now, before the app it should come the site.

I will have more details about what this project entails on Sunday, that is why I am evaluating if there are options to do this and what they might be.

First test: CC latest and WC Vendors.

Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Utilities\OrderUtil" not found in /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/includes/class-functions.php:232 Stack trace: #0 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/admin/class-wcv-admin-orders.php(51): wcv_hpos_enabled() #1 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/admin/class-wcv-admin-orders.php(24): WCVendors_Admin_Orders->init_hooks() #2 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/class-wc-vendors-bootstrap.php(407): WCVendors_Admin_Orders->__construct() #3 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/class-wc-vendors-bootstrap.php(98): WC_Vendors_Bootstrap->include_core() #4 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/class-wc-vendors.php(169): WC_Vendors_Bootstrap->__construct() #5 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/class-wc-vendors.php(105): WC_Vendors->run() #6 /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/class-wc-vendors.php(217): WC_Vendors->__construct() #7 /data/vhosts/elica-webservices.it/httpdocs/wp-includes/class-wp-hook.php(308): run_wcvendors() #8 /data/vhosts/elica-webservices.it/httpdocs/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters() #9 /data/vhosts/elica-webservices.it/httpdocs/wp-includes/plugin.php(517): WP_Hook->do_action() #10 /data/vhosts/elica-webservices.it/httpdocs/wp-settings.php(504): do_action() #11 /data/vhosts/elica-webservices.it/httpdocs/wp-config.php(94): require_once('...') #12 /data/vhosts/elica-webservices.it/httpdocs/wp-load.php(50): require_once('...') #13 /data/vhosts/elica-webservices.it/httpdocs/wp-admin/admin.php(34): require_once('...') #14 /data/vhosts/elica-webservices.it/httpdocs/wp-admin/plugins.php(10): require_once('...') #15 {main} thrown in /data/vhosts/elica-webservices.it/httpdocs/wp-content/plugins/wc-vendors/classes/includes/class-functions.php on line 232

There has been a critical error on this website. Please check your site admin email inbox for instructions.

Learn more about troubleshooting ClassicPress.

I could try to see what is wrong, it’s means checking what is WC Vendors looking for that it does not find in CC (because I suspect it is that much, Woo and WC Vendors on WP works).

And I am still working on the CC diff that is really a thing I am doing practically file by file…

Will try several extensions for Woo to see which one works and eventually I might decide to disassemble the code to repair it in the end.

Dokan is marked as not compatible from the CP Dashboard but I suspect it could work…

Edited to add, WCFM Marketplace after installing it and its companion for front-end management prceeds with wizard, reaches a point where it stalls on a fatal. Something is missing from CC here too. And it needs the CC compatibility plugin to work so basically a function could be placed there to make it work… same solution could be applied to the aforementioned WC Vendors so that I do not have to amend CC code directly.

Mercado seems to work, but throws JQuery UI deprecations… this however could give me the time to understand if it is possible to convert all JQery UI to Vanilla JS before that time, and fork it to do just that. (it seems to group external libraries in a folder, JQuery UI included - it should be easy to modify this)

Superstore and Marketplace for WooCommerce work too. I like Superstore better even if it throws deprecation errors that Marketplace for WooCommerce does not have. (Marketplace just integrates fully with CC adding a Marketplace tab to the settings, I might test it extensively to see if it might be better than Superstore. Superstore offers a complete dashboard with stats for Admin, I have to see what sellers see however).

Just wanted to add that if you do need membership functionality, I’d recommend against Ultimate Member. It is actively hostile to making its code accessible (albeit that sometimes it is by chance), it’s very slow, and it doesn’t work well with other plugins. I’d recommend User Role Editor (my favorite) or Members instead.

1 Like

Also have you considered using something like Shopify, Gumroad, Payhip, or Sendowl instead. I’ve used Gumroad and Sendowl in the past, and they made things very easy and straightforward to integrate with a CP website.

@timkaye we are not planning on membership since there will only be sellers, shoppers and admin on site and the Marketplace for WooCommerce takes charge of allowing seller registration. The charity board decided to use ClassicPress. I also gave Joomla option because there it is a Joomla extension for marketplace that is promising however they feel that the project might be better built with it and want at all costs avoid WP and proprietary solutions - however they discarded Joomla because the charity main site is made with CP and the charity board is very happy with it. Their main concern has been that “what if something changes in how those platforms handle sensible data about the women involved in the projects?” - the charity deals with women victims of abuse and will have eventual connections with the services that enroll them in our program for evaluation and follow-up purposes since social workers will be involved.

In fact we are also debating on how to make the serve secure to avoid any leaks (more secure than a “normal” e-commerce marketplace I mean) since this is going to be basically a public service. Some public administration is suggesting we host it on a server owned and secured by public administration BUT in Italy those servers are known to be holey like colanders… so that is a no from my point of view.

From my tests Marketplace for WooCommerce for now is the best option in terms of simplicity and throws no errors at all. This plugin simply integrates with CC and adds a setting to it to allow users to register as vendors and has then the standard shopper registration - that for us would be ideal. I just need to pinpoint the process from start to finish (do we allow the seller to register themselves on their own or is it the social worker that follows them that helps them register and follows them up? do we have a way to have both social workers and charity to have follow ups with the person with that plugin? I suppose yes if I pinpoint a way to create an user that has capability to check some statistic data about how they are faring since CC should allow to have some reports available on orders and shipments and so on, I do not want to expose sensible data however - the follow ups would be only to certify that the person is gaining an economic independece from sales they make on the site).

I tested also Mercado, if I have time I will try to understand exactly which function is missing that it is looking for and what it does because it seems promising. If I find it I think I can add it to the CC compat plugin since the plugin needs it anyway. However, it uses JQuery UI while the other one mentioned above does not.

Also worth mentioning the site will allow sellers to post blogs on this specific instance, and we are evaluating the addition of a forum since the niche the shop will operate in is textile arts and crafts. that will allow the women to network and cooperate on projects and create a social net of support and knowledge sharing.

That is why that plugin integrating so smoothly with CC has my attention on it. It is not something “on top of CC” that adds unnecessary weight. it uses CC and adds to it only what is needed.

The Ultimate Member documentation is very useless and its indeed not the nicest to work with, but I can report that works solidly with WooCommerce and also CC (v2).

This is day-to-day experience from a long-term project I’ve been working on for a client since end of 2022.

cu, w0lf.

1 Like

As I said, I do not need it for this project. But it’s good to know.