Last updated August 3, 2012. Created on October 25, 2008.
Edited by ultimateniks, mattkevan, TR, syndicateStorm. Log in to edit this page.

Please help maintain/edit this page if you have constructive input.

Ubercart Marketplace adds multiple seller support to the Ubercart module. It includes a series of modules that limit the access to Ubercart functions for sellers. Additional functionality is added to support this from both a marketplace seller's point of view and the store administrator's view. Sellers (with the proper access permissions) gain the ability to view their products, track and fulfill their orders, and monitor their sales reports. Store administrators can view seller reports based on seller order statuses and seller sales. Support is included for Paypal Mass Payments, with which an administrator can automatically pay his/her sellers for custom periods.

Important Links

Ubercart Marketplace - Features
Ubercart Marketplace - Project Page

For feature requests, bug reports, or support requests, please use the project issue queue or the forums at ubercart.org.

Installation Instructions

Ubercart Marketplace 6.x

  • Make necessary site backups
  • Extract Ubercart Marketplace in your sites/all/modules folder in Drupal directory
  • Place packingslip.itpl (included with Ubercart Marketplace) in your sites/all/modules/ubercart/uc_order/templates directory
  • Enable all modules you wish to use
  • Note: Ubercart Marketplace 6.x, unlike Ubercart Marketplace 5.x, does not require the patch described below in the "5.x Installation Instructions"

Ubercart Marketplace 5.x

  • Make necessary site backups.
  • Extract Ubercart Marketplace in your sites/all/modules folder in Drupal directory.
  • Place packingslip.itpl (included with Ubercart Marketplace) in your sites/all/modules/ubercart/uc_order/templates directory.
  • Patch uc_shipping module using included (non contextual) patch or adding the following two lines manually: hey!!!!!!
    At the very end of this function (approx. line 1228):
    /**
    * Save a package.
    */
    function uc_shipping_package_save($package) {

    place module_invoke_all('package', 'save', $package->package_id); like so

        db_query("UPDATE {uc_packages} SET ". implode(',', $types) ." WHERE package_id = %d", $values);
      }
      module_invoke_all('package', 'save', $package->package_id);
    }

    Do similar for uc_shipping_package_delete() in uc_shipping.module (approx. line 1237)

    /**
    * Delete a package.
    */
    function uc_shipping_package_delete($package_id) {
      db_query("DELETE FROM {uc_packages} WHERE package_id = %d", $package_id);
      db_query("DELETE FROM {uc_packaged_products} WHERE package_id = %d", $package_id);
      drupal_set_message(t('Package @id has been deleted.', array('@id' => $package_id)));
      module_invoke_all('package', 'delete', $package_id);
    }
  • Enable all modules you wish to use.

Setup

Ubercart Marketplace

  • Most settings can be found at admin/store/settings/seller. Carefully read inline directions for help.
  • File selling support settings can be found on the latter page. The CCK Filefield module is required and the field name you specify for the product node should be entered (without "field_") on the settings page.
  • Notification settings (if mp_notify enabled) can be found at admin/store/settings/notify/edit/seller (5.x). Notification settings for 6.x version are controlled through Conditional Actions and can be modified in the Ubercart Conditional Actions interface (note: mp_notify no longer exists as an independent module)
  • Many permissions have been added to control seller access. Create a "seller" role and give them the necessary permissions (i.e. those provided by Ubercart Marketplace and permissions such as "edit own product"). Do NOT give the "seller" role the permission "administer product features" or other permissions that Ubercart Marketplace may offer a similar but more restricted permission for.
  • To make use of the seller payment methods provided by Ubercart Marketplace, you should enable the uc_paypal module (even if Paypal is not an active payment gateway) and configure the Paypal Web Payments Pro (WPP) settings. It is not necessary to have an actual WPP Paypal account, but you should attain API credentials from Paypal (free) and fill in the necessary information on the Paypal settings pages in Ubercart configuration.

Enabling marketplace status for products (6.x)

  • Go to admin/store/products/marketplace-tools to enable marketplace status for your various product classes.
  • Click edit under 'Actions' to set commission per role for each product class if necessary. If you don't change this the default store commission will be used.

PayPal MassPay

  • Go to Test Accounts, select "Create Account: Preconfigured", Choose account type "Seller", use given data
  • Go to API Credentials, copy API Username, Password, and Signature to Drupal
  • Enable uc_paypal module
  • Setup PayPal Website Payment Pro settings at: "Store Administration >> Configuration >> Payment Settings >> Edit >> Payment Gateways" or directly via /admin/store/settings/payment/edit/gateways
  • Enable this payment gateway for use
  • API server: Sandbox
  • Now enter your API credentials
  • If IPN is setup you may now make payments at "Store administration >> reports >> Seller reports"

PayPal Instant Payment Notification (IPN)

  • Go to your Paypal sandbox account
  • Select "Test Accounts"
  • Select the radio button for the "Business" user who has the API Credentials you used for your Drupal site
  • Press the "Enter Sandbox Test Site" button
  • Login
  • From the "Profile" menu under the "My Account" tab, select "More Options"
  • Under "Selling Preferences" select "Instant Payment Notification"
  • Make sure "Message delivery" says "Enabled" and the "Notification URL" is correct
  • Perhaps I am too lazy and impatient but I couldn't get this working on my local computer so I used a live domain name for the "Notification URL". The URL I used was "www.yourwebsitename.com/masspay/ipn". I would imagine you could use something like IP-ADDRESS/masspay/ipn with some port forwarding magic or something on your local computer but... If someone figures this out or has done this before please post it. Otherwise I'll figure it out later when I'm more motivated.
  • IPN should be working now.
  • Don't forget you'll need to change your Paypal settings to the live servers to actually process transactions.

Shipping

File Features

  • Enable Marketplace File Downloads module
  • Go to "Content management >> Content types >> Edit product >> Manage fields"
  • Under "add" for the "field name" type "download" so that "field_" becomes "field_download"
  • A text label associated with this field can be set if desired
  • Set file as "Type of data to store."
  • Go to "Store administration >> Configuration >> Product settings >> Edit >> Product features" and make sure "Files path" is set in the "File download settings"
  • Allow users to commit files

Managing Seller Sales

Admin Point of View

  • To make payments go to: admin/store/reports/seller/custom. Enter a custom date range to make payments for, select the individuals you wish to pay, and select "make payments." If you have the Paypal settings configured correctly, Paypal Masspay will be utilized to send payments for completed orders to all sellers specified for order ranges specified.
    NOTE: In your Paypal account, you MUST set your IPN url to http://yoursiteaddress.com/masspay/ipn. This can be found in your Paypal profile >> Selling preferences >> Instant Payment Notification preferences on Paypal's site. Statuses will not be reported if this step is neglected.
  • Seller order statuses can be tracked here: admin/store/reports/seller/statuses.

Seller Point of View

  • Sellers can view their orders, products, and sales reports at user/*/selling.
  • Orders that contain shippable products must be fulfilled by the seller to move to completed status (and be eligible for payment). To do so, they can click the "fulfill orders" tab on selling page (user/*/selling) and follow onscreen instructions to first package and then ship orders (5.x) or simply indicate the product has been shipped (6.x).
  • It is important to note that only orders with status "payment received" or "completed" will show up for sellers (this is because it makes the most sense for sellers to only process orders where it has been confirmed that the buyer has paid). The store admin will only be able to pay sellers (via Masspay) once the seller has fulfilled the order and indicated so as per the instructions above (this is because it only makes sense to pay sellers when they have fulfilled the order).

Live Sites

Please do not create test accounts; these are live:

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

kiepersol’s picture

I have installed Ubercart_marketplace 6.x-1.x-dev. I have multiple sellers and when a seller goes to "fulfill orders" (as instructed below) there is no packaging and shipping instructions. Only a tick-box for "shipped". Nothing appears in the column labelled "Shipping". Please assist, what am I doing wrong?

Managing Seller Sales (seller point of view)

* Sellers can view their orders, products, and sales reports at user/*/selling.
* Orders that contain shippable products must be fulfilled by the seller to move to completed status (and be eligible for payment). To do so, they can click the "fulfill orders" tab on selling page (user/*/selling) and follow onscreen instructions to first package and then ship orders.

fehin’s picture

admin/store/settings/notify/edit/seller doesn't exist.

OlyN’s picture

admin/store/products/marketplace-tools doesn't exist, either (version 6.x-1.0-beta1).

pcambra’s picture

For new ubercart versions, the lines to patch are 434 and 444

paat’s picture

I'd like to set up a marketplace but without financial intermediation. Somewhy I cannot make use of the option:
Preferred payment method.
Registered user can enter custom payment instructions, but how to configure ubercart to display these instructions on checkout payment pane?

Diegen’s picture

Yes, I too am interested. I dont want to use paypal, and ideally it would be great if the seller can choose his own gateway, or give me the option of using another gateway instead ?

un11imig’s picture

I'm interested to if the seller can chose it's gateway. I don't want to be the intermediate.

Great module, thanks!

ifearthenight’s picture

Anyone able to set this up with payment channel set up by each user?

rafinskipg’s picture

I can't stand with this anymore.

AGH!!

admin/store/reports/seller/custom

Nothing here, 0 # of orders, 0 products sold. But the payments are doing correctly

Nothing in the "fulfill orders" page.

I configured the IPN to "mysite/masspay/ipn"
I tried to send test IPNs but nothing happens.

What I am doing wrong???¿??¿?¿

Seriously, is that so difficult???

rafinskipg’s picture

OK, just needed to verify the paypal account. (Now i can make masspay to sellers)

designate’s picture

Have not tested the module yet, but before I do is it possible to have multiple stores for the same "owner". I am looking for a replacement of a multisite set up. If an owner can have multiple [seperate] stores and manage these stores via one central system and can also see orders etc. within one place it would be great!

Designate web development
www.designate.nl
+31 (0)229 27 44 38

shunting’s picture

Is there no standard solution for a site that wants to be a platform where:

1. Each seller controls their own shipping address and preferred modes of payment, and

2. Payments are made DIRECTLY to sellers, without having the site owner as an intermediary and using PayPay's mass pay?

Perhaps this solution exists, but I haven't been able to find it.

nandt’s picture

hello i am new to marketplace module.
I am wondering if there is a possibility to have this option you mentioned above, for each user to have its own payment method without the need of the administrator to send the money to each seller.
So the seller even to have the option to install his own credit card payment method with his bank.
I would really appreciate anyones help upon that ..
thank you

netandtech.gr
web -ios -android- developer

shunting’s picture

http://www.ubercart.org/forum/development/16202/ubercart_marketplace_pat... [link fixed]

I'm testing this now, and so far no problems (the author is also using it). It's only PayPal, however.

The ability for the seller to set their own address exists:

http://drupal.org/node/973052#comment-4218196

And here's a tutorial on writing your own shipping module in ubercart 6 in case you can't coerce flat rate or weight into doing what you want:

http://tiger-fish.com/blog/tutorial-writing-drupal-6-ubercart-shipping-m...

And here's a tutorial on writing your own pane in ubercart 6 if you can't coerce the quote pane in the cart into doing what you want:

https://www.interworks.com/blogs/scorrales/2011/02/03/creating-checkout-...

Stomper’s picture

I am trying to set up the permissions for sellers/buyers for UCMP. I have created a role for this functionality (applies to buyers and sellers). There are heaps of options. Could someone please provide a list of the permissions I need to enable so that buyers and sellers can begin listing, buying, processing orders?

I only want to give "editing" permissions to a seller for their OWN orders.

A list is greatly appreciated.

shunting’s picture

I've actually made a sale, so the money's in PayPal, using the patches above. I just can't track anything, but I thought it was just me.

grahamdek’s picture

I'm new to Drupal, Ubercart and Marketplace so please forgive me if this is a silly question, but for the life of me I can't find where a user would sign up as a seller. Please could someone help me.
Thanks

bearstar’s picture

Are there any instructions for D7 installations?

omnia.ibrahim’s picture

what about the stable release for version 7, it will be released soon?

jsidigital’s picture

Description says:
File Features...
- Set file as "Type of data to store."

Sorry for my ignorance:

- Set file as "Type of data to store."

How do we get "store" as a field type? I dont have that option on my field types. I have "date, entity reference, file, image, link, text, etc.

Do we need another module to have the "Store" type as an option?

Im using Drupal 7.

Thanx.

naelhussein’s picture

Tried this module but haven't been useful... I need that each supplier receive an email that one of their products have been ordered... how is this done? Im using D7. Is a stable version for D7 be released soon?

jsidigital’s picture

We notice there is only setup instructions for 5x and 6x versions.

Is there documentation for 7x? How do we setup marketplace for 7x? I realize that 7x is still in development but how can we even test that with no directions? Has anyone using 7x been able to get it working? Can you guide us in the right direction since there are no directions here?

So far i applied what was possible using the 6x steps as a guide and have it mostly working. However i am not able to get the file downloads to work. That is where the 7x documentation might come in handy. How can a seller upload their own digital file for sale to the server and have it outside of "public_html" folder for added security?

Thanx.

JakeSpider’s picture

I need to decide if I should use Drupal 7 with Ubercart or some other solution like Commerce kickstart 2 with market place in the next 2-3 weeks. Is there a time when this module will port over the mp_file part as a developer version or can I hire someone to complete that part of the drupal 7 module.