Commerce Store brings in first marketplace implementation to Drupal Commerce

First public version of Commerce Store, born from d.o. issue The path to Marketplace functionality, has finally seen the daylight.

First public version of Commerce Store module, born from d.o. issue The path to Marketplace functionality, has finally seen the daylight.

This package of 4 modules available under Commerce Marketplace package in module listing, contains:

  • Store - provides the commerce_store entity, with user-defined types (one type provided by default).

  • Store UI - exposes a default UI for commerce_store entities through edit forms and default views:

    • administrative Stores view displaying a global list of all stores for the site admin,
    • user profile merchant views:
      • Merchant Orders - listing all orders completed in any of the user's stores,
      • Merchant Stores - listing all user's stores,
      • Merchant Products - listing all products referencing any of the user's stores,
  • Store Reference - defines a Store Reference field and default display formatters. By default created on all commerce_product bundles and product bundle of commerce_order (this could be altered using hook_commerce_store_reference_referencing_entity_types_alter()). Hidden from display.

  • Commerce Overrides - provides overrides for default Drupal Commerce behaviors and workflows:

    • overrides default Add to cart form to create new orders for products coming from different stores,
    • adds new order property order_group for storing common ID of all orders made by one user within one transaction in different stores,
    • overrides Shopping cart view to add new column with store name next to product name,
    • overrides Shopping cart and Checkout views to display all user's active orders combined in one view (including totals) (allows multiple values (order IDs) in argument),
    • overrides all Shopping cart and Checkout forms with updated submit, back and cancel callbacks to update status of all active user's orders (instead of only the "current" one, with ID provided through URL),
    • overrides cart and checkout routers to use order_group instead of order_id in checkout paths,
    • overrides Billing information pane's submit to add provided billing information to all user's active orders.

To be continued.