Ubercart Marketplace: multiple seller support

Last modified: May 4, 2009 - 20:36

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
Features: http://www.ubercart.org/forum/development/5344/ubercart_marketplace_deve...
Project Page: http://drupal.org/project/ubercart_marketplace

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

Installation Instructions

  • 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:
    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.

Configuring 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.
  • 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.

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.

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.

Live Sites (please do not create test accounts; these are live)

 
 

Drupal is a registered trademark of Dries Buytaert.