Join

Build a Marketplace with MyListing and WooCommerce Product Vendors

  • Guides reflect how I’m currently using the solution for myself and my clients. 
  • If I don’t cover a specific feature, it implies I’m not using it.
  • If I don’t cover a specific setting, it implies the defaults are acceptable or the options are obvious.

This guide will show you how to quickly and easily turn your MyListing website into a multivendor marketplace, creating additional value for your Listing owners while generating another revenue stream for your website using the WooCommerce Product Vendors.

WooCommerce Product Vendors allows vendors to sell their products on your website. In return, you can take a commission on sales to help cover the costs of running and managing your website while you focus your efforts on building a community.

Note: WooCommerce Product Vendors is the only multivendor marketplace plugin officially supported and recommended by the official MyListing development team. However, this isn’t to say it’s the only solution that works.

PayPal Setup

You can use any WooCommerce Payment Gateway to accept payments on your website. However, payouts to vendors must be done with PayPal Payouts.

PayPal Business Account

If you haven’t already done so, you’ll start by creating a PayPal business account.

Once your account is in place, you’ll want to add some funds to your account, and the amount depends on factors like how many vendors you are starting with, the cost of their products, the commission rates, etc. In short, you want to ensure you have enough funds in your account to cover the launch of your marketplace to avoid being unable to make a payout.

Ideally, once your marketplace gets rolling, you’ll funnel your commission into your PayPal account, knowing it can always be withdrawn.

PayPal Developer Account

After your PayPal business account is ready, you’ll need to jump over to the PayPal Developer side and set that up. You start by creating a ‘Sandbox’ environment that will be used to test your transactions.

Once your ‘Sandbox’ environment works, you can set up the ‘Live’ environment. PayPal’s website provides the steps for setting up both environments, and you can use their support feature to fill in any gaps if needed.

WooCommerce Product Vendors Setup

Payments

  1. Install and activate the WooCommerce Product Vendors plugin.
  2. Browse to WooCommerce > Settings > Products > Vendors.
  3. Payout Schedule > Choose your desired payout schedule. (Note: I recommend starting with a Manual Payout Schedule as your marketplace gets off the ground.).
  4. PayPal Payouts Environment > Select the Sandbox environment.
  5. (Sandbox) PayPal Payouts API Client ID > From your PayPal Sandbox environment, copy the Client ID and paste it here.
  6. (Sandbox) PayPal Payouts API Secret > From your PayPal Sandbox environment, expose the secret, copy the Client ID, and paste it here.
  7. Save changes. (Note: Your environment should now be in Sandbox mode and ready to take test payments.).
  8. Repeat steps 4-7 for the Live environment.
  9. Default Commission > Optionally, choose a default commission amount, which is the amount you will pay a vendor for each sale by default. (Note: This is optional if you set a unique payout amount for each vendor.).
  10. Commission Type > Choose whether your default commission being paid out will be a percentage for a fixed amount.
  11. Save changes.

Display

WooCommerce > Settings > Products > Vendors > Display

This section boils down to whether you want to display the information and branding for each vendor in your marketplace. If you want to make it appear that everything is being sold under your brand, you can uncheck all the settings here and save your changes.

Shipping

WooCommerce > Settings > Shipping > Vendors Per Product Shipping

If your marketplace sells physical products that require shipping, this section may apply to you. Per-product shipping allows you to define different shipping costs for products per vendor based on customer location.

However, if your marketplace is strictly for digital goods, you can disable shipping and shipping calculations within WooCommerce by going to WooCommerce > Settings > General > Shipping location(s).

Vendor Registration

The store owner can manually add vendors, or the process can be automated by displaying a registration form on your website.

Registration Form

When you create the page where your form will be, you can use the default WordPress editor or Elementor Pro. I recommend using Elementor to create your vendor registration page; otherwise, the styling/formatting must be addressed with some CSS.

Anyone who uses the registration form will automatically be added as a pending vendor, so you may want to consider where this form is placed on your website and use Cloudflare Turnstile (Free) or one of the Club’s Anti-Spam partners to help prevent SPAM registrations.

  1. Create and publish a ‘Vendor Registration’ page.
  2. Edit your page with the default WordPress editor or Elementor.
  3. If you are using the default WordPress editor, add a shortcode block to the page; if you are using Elementor, add a shortcode widget.
  4. Place the [wcpv_registration] shortcode into the block or widget added in the previous step.
  5. Add links to your vendor registration page throughout your website so prospective vendors can apply to be a part of your marketplace.

Placing the Registration Form

There are several ways to approach this, but with MyListing websites, I would venture to bet that website owners would prefer to hide the registration form entirely from the front end or hide the form until someone has successfully logged in

My approach is to place the registration form in the main navigation (and hide it from those not logged in) and as part of a welcome page when new customers sign up to the website.

I first want people to come in through my website as ‘Listing Owners’  Otherwise, even users with good intentions (i.e., they want to be a Listing Owner) might sign up as a vendor and then be unsure what to do next.

Approving Vendors

As the website/store owner, you will be notified via email about any new registrations and will be able to approve vendors before they can sell within your marketplace.

After someone registers to become a vendor, they will show up as a Pending Vendor within the Users area of WordPress, and you can use the steps below to approve (or remove) vendors.

  1. Users > Pending Vendors.
  2. Click on the User account to edit it.
  3. Change the role to Vendor Admin, or you can set it to Vendor Manager if you wish for them to have fewer permissions.

Manual Registration

  1. WordPress Dashboard > Users > Add New
  2. Fill in the desired info, set the role to ‘Vendor Admin,’ and click the ‘Add New User’ button.
  3. Products > Vendors > Add the vendor’s name.
  4. Click the ‘Add New Vendor’ button.
  5. Edit the new vendor account.
  6. Vendor Admins > Specify the user from the previous steps.
  7. PayPal Email > Enter the email address your vendor would like to use for payouts.
  8. Time Zone > Choose the vendor’s closest city (i.e., Time Zone) so the sales records reflect their time zone correctly.
  9. Save changes.

Vendor Login

Vendors can log into their dashboard from the back end of your website using the traditional WordPress admin login URL (e.g., https://domain.com/wp-admin/). You need to place the link somewhere they can get to it, like your regular navigation menu, the MyListing Dashboard menu system (i.e., WooCommerce Endpoints), etc.

Another approach is to Completely Customize the MyListing Login / Registration Experience and then use the universal login page (e.g., https://domain.com/login/) that everyone can use to log into the website.

Vendor Dashboard Endpoint

To implement a ‘Vendor Dashboard’ endpoint, you must create a custom WooCommerce menu for your endpoints if you haven’t already done so.

WooCommerce Menu

  1. WordPress Dashboard > Appearance > Menus
  2. Click the ‘create a new menu’ link.
  3. Name the menu ‘WooCommerce’ or similar.
  4. Add all your desired endpoints (‘My Account,’ ‘My Listings,’ etc.).
  5. Check the ‘WooCommerce Menu’ box.
  6. Save changes.

Add the Vendor Dashboard Endpoint

  1. Add Menu Items > Expand ‘Custom Links.’
  2. URL > Enter ‘https://your-domain.com/wp-admin/‘ or ‘https://your-domain.com/login/,’ depending on your approach.
  3. Link Text > ‘Vendor Dashboard’.
  4. Click the ‘Add to Menu’ button.
  5. Drag the menu item to the desired location within the menu, ensuring that it is at least placed above the ‘Logout’ menu item.
  6. Optionally, go back and add an icon (e.g., [27-icon icon=”fa fa-store”] before the ‘Link Text’ using the MyListing Icon Shortcodes (Theme Tools > Shortcodes).
  7. Save changes.

Vendor Dashboard Endpoint Visibility

I recommend hiding the Vendor Dashboard endpoint from those not yet assigned the Vendor Admin or Vendor Manager roles. This helps prevent users from hitting your website’s admin URL (/wp-admin/) and keeps things cleaner overall for non-vendors.

Hiding the Vendor Dashboard Endpoint Using a Code Snippet

For those who like to keep their plugin use to a minimum, I recommend using the Show Content Based On Role code snippet.

Hiding the Vendor Dashboard Endpoint Using a Plugin

For those who want to go the plugin route, I recommend the Nav Menu Roles plugin (Free) 

Vendor Dashboard

Once a vendor is logged in, they can access their dashboard and have full transparency into all aspects, with website owners and vendors seeing the same information.

Much like WordPress’s WooCommerce Status dashboard view, the vendor dashboard has an excellent sales summary for multiple areas, including monthly net sales, commission, product stock, and more.

Orders

https://domain.com/wp-admin/admin.php?page=wcpv-vendor-orders

As mentioned, vendors have full transparency into any orders placed on the website for their products, knowing which were purchased, the order dates, and the commission information. For any physical products that involve shipping, vendors can use the orders area to mark their orders as FULFILLED.

Reports

https://domain.com/wp-admin/admin.php?page=wcpv-vendor-reports

Vendors can easily view and export sales reports and stock levels.

Media

https://domain.com/wp-admin/upload.php

In this area, vendors can add and manage their product images without gaining access to the entire media library or libraries of other vendors.

Note: I recommend implementing image governance on your website to prevent vendors from being able to upload massive image files.

Products

https://domain.com/wp-admin/edit.php?post_type=product

In this area, vendors can add and manage all of their products.

Vendor Product Flow

  1. Vendor Dashboard > Products > Add New
  2. Enter all of the product information.
  3. Click the ‘Submit for Review’ button.
  4. The website owner will get an email for the submitted product so they can review it before it gets published.

Educating Vendors

Categories

I recommend setting up Product Categories in WooCommerce for your vendors to use when submitting their products, as this will help keep their products out of your website’s main store. Educate vendors regarding assigning a proper category to their products.

Product Types

Just because vendors create a product of a particular type (Simple Product, Variable Product, etc.), that doesn’t guarantee it will be allowed in their Listing. A Listing Type’s ‘Products’ field defines the type of product allowed in Listings. Educate vendors regarding the product types that are allowed.

Store Settings

In this area, vendors can update their information, see their commission rate, and improve their profile by adding a logo, writing a vendor introduction, providing an introduction video, etc.

PayPal Email

https://domain.com/wp-admin/admin.php?page=wcpv-vendor-settings

This is where vendors must go after creating their account to specify their PayPal email address. Vendors must have a verified PayPal account to receive commission payments.

Support

https://domain.com/wp-admin/admin.php?page=wcpv-vendor-support

In this area, vendors can request support from the website owner by emailing them.

By default, any emails sent from this location will go to the website’s Administration Email Address (WordPress > Settings > General), so it’s essential to use an email address that will be regularly checked.

Suppose you want to change who the support emails go to. In that case, you can do so under the ‘Vendor Email Options’ (WordPress Dashboard > WooCommerce > Settings > Emails >Vendor Email Options > Vendor Support Email Address).

Styling the Vendor Dashboard

By default, WooCommerce Product Vendors does not provide the sexiest dashboard but does get the job done. If you want to enhance the design, you have options.

UiPress allows website owners to get a jumpstart on enhancing the design of the WordPress Dashboard, including the WooCommerce Product Vendors Dashboard. With the flip of a switch (WordPress Dashboard > Settings > uiSettings > Theme > Admin Theme > Enable), website owners can apply a more modern-looking dashboard!

WPCodeBox allows those versed in CSS to enhance the design of the WordPress Dashboard, including the WooCommerce Product Vendors Dashboard.

Single Listing Storefront

Since we are working with the MyListing theme, the primary focus is to allow vendors to display products within the Listings. However, this guide also covers other ways to display vendor storefronts to create additional monetization options.

Listing Type Configuration

Vendor Products Field

The following steps get your Listing Type ready to allow vendors to add their products to their Listing.

  1. Listing Types > Edit Listing Type > Fields
  2. Add the ‘Product Multiselect’ field.
  3. Select the types of products the vendors are allowed to upload.
  4. In the description field, let vendors know what products you allow them to add.
  5. If you are using Package Visibility, set it here to comply with the features displayed in your Listing packages.

Vendor Store Tab

The following steps prepare your Listing Type to allow vendors to display their products within their Listing.

  1. Listing Types > Edit Listing Type > Single Page > Content & Tabs
  2. Add the ‘Store’ tab.
  3. Give the tab a label (e.g., Store).
  4. Select the vendor products field you created above for the ‘Display products from field:’ dropdown.
  5. Toggle on the ‘Hide tab if there are no products’ setting.
  6. Save changes.

Adding Products to Single Listings

When vendors go to add their first Listing or edit existing Listings, they can add the products they’ve made available in their private Store.

An Important Note About Design

If you do not design shop templates with Elementor Pro or by hand with CSS, whenever someone clicks on a vendor’s ‘Sold By:’ link within their Listing, the user will be taken to your default shop page design/template. This is often highly undesirable, as the default shop template MyListing provides is very basic and does not look professional without some additional design.

In the next section, I will talk about how to apply custom designs quickly and easily.

Non-Listing Vendor Stores

Website owners might also want to display vendor stores outside the vendor Listings, which provides an excellent option for selling more expensive Listing Subscriptions and one-off product upsells. 

To display the vendor stores, you need to create a Vendor Shop Template using Elementor Pro for each vendor selling on your platform and use Elementor Display Conditions to assign the vendor’s template specifically to them. You can hide the header and footer areas to keep WooCommerce pages distraction-free (and light). This makes the breadcrumbs even more critical.

High-Level Implementation Steps

The steps below are for building your template from scratch. Another option is to start with one of the Club’s Vendor Page Templates.

  1. Create a Vendor Store Template using Elementor Pro and name it according to the vendor to which it will apply.
  2. Add a heading widget and the vendor’s name, followed by the word ‘Store’ (e.g., Starter Vendor’s Store).
  3. Optionally, add Elementor’s breadcrumb widget.
  4. Adjust the WooCommerce Products widget to display products from a specific vendor.
  5. From the Elementor settings panel, choose the ‘Elementor Canvas’ Page Layout, which will hide the heading and footer areas, providing more of a distraction-free shopping experience.
  6. Using Elementor’s Display Conditions, assign the template to a specific vendor.

That’s about it. Now, any time someone visits the vendor store directly or clicks on any of the vendor’s products within their Listing(s), they will be shown the vendor’s unique store.

Vendor Commission

Since we are manually paying out commissions for this guide, I’ll cover that process.

  1. WordPress Dashboard > Commission
  2. Select the unpaid commission and Pay Commission from the Bulk actions menu.
  3. Click Apply.

At this stage, you should see a message about the item(s) being processed and that the paid status will be updated in a few minutes. Once the commission payment goes through, the Commission Status will switch from UNPAID to PAID.

Email Notifications

Several emails are set up in Product Vendors for Vendors and the Store Owner.

  • Vendor Registration (Store Owner) – Sent when vendor submits registration form.
  • Vendor Registration (Vendor) – Sent to confirm that the registration form was submitted to the store owner with a link to set a new password.
  • Order Email (Vendor) – Notifies vendor of a new order.
  • Canceled Order Email (Vendor) – Sent to notify the vendor that the customer canceled.
  • Vendor Approval – Sent to vendors with a login link when registration is approved.
  • Product Added Notice – Sent to store owner to review when a vendor adds a product.
  • Order Note to Customer – Sent to the customer when vendor adds a note, e.g., Tracking number, personal thank you.

Video Tutorial

Youtube video