Saleor-Multi-Vendor / saleor-multi-vendor

Multi Vendor Plugin for Saleor e-Commerce
GNU General Public License v3.0
123 stars 16 forks source link

Multivendor feature #40

Open shovan777 opened 3 years ago

shovan777 commented 3 years ago

What I'm trying to achieve

I want to add a multivendor feature in saleor. #1251 Currently, saleor is a feature rich single shop ecommerce platform which is perfect for small to large scale businesses. However, it does not support a multivendor/multishop marketplace type ecommerce. There are currently zero solutions in this space in the django ecosystem. There are several solutions both opensource and paid most notably in php like shopify, woocommerce and magento but none them support the modern featureset like graphql, PWA, headless architecture in saleor. Thus, a django based marketplace ecommerce will be a welcome addition to the opensource ecommerce space.

Describe a proposed solution

Most similar scenario for a single shop to multivendor transition can be found in Spree in the ruby ecosytem. The multivendor plugin seamlessly transforms spree into a marketplace platform. My first thought was to use the plugin feature similar in saleor however, the plugin in saleor doesn't support database modification as in the spree. The only reasonable method with as little overhead over the core saleor is to add a new app which will host all the tables and relations necessary for multivendor. The following tasks atleast must be done to add the feature:

  1. Make a multi-vendor app
  2. Add vendor relations to tables that need vendor access like orders, products, stocks, shipping, etc.
  3. Develop a payment workflow for directing payment from consumer to marketplace to individual vendors
  4. Add dashboard access to individual vendors

Other solutions I've tried and won't work

Spree can also become a out of the box marketplace but sadly it is not in the django ecosystem and doesn't support graphql currently. This repo has also discussed several important factors to consider for multivendor development in saleor. Most notably it proposes to use the warehouse table in saleor to connect to a vendor from which all other related tables can then be accessed.

Screenshots or mockups

sushilkhadka165 commented 3 years ago

Warehouse app

models contains Warehouse Stock Allocation

related models Warehouse -> ShippingZone, address Stock -> Warehouse, ProductVariant Allocation -> OrderLine, Stock


warehouse should have one ShippingZone if not there will be issue with automatically selecting stock for operation

vendor App

models contains Vendor (name, owner(User), user_manager(many to many User)) VendorWarehouse

related models Vendor -> User(owner) VendorWarehouse -> Vendor, Warehouse

shovan777 commented 2 years ago

created a vendor app as per the PR here

narayanan-ka commented 2 years ago

@shovan777 is this a saloer dashboard app or a plugin ? There are references in discussions that reference both.

shovan777 commented 2 years ago

@narayanan-ka this is not a plugin but saleor fork with multivendor features. Similar fork exists for the dashboard as well. We wanted to create a plugin but couldn't do it.

narayanan-ka commented 2 years ago

@shovan777 thank you for the clarification. Also , Thanks for contributing to creating this feature. Much needed. I'm looking at saleor as a marketplace to be integrated with my blogging app. But don't know if i should fork the multi vendor repo since there is still development pending.

https://github.com/saleor/saleor/discussions/10641

narayanan-ka commented 2 years ago

@shovan, any update on the progress ? Im thinking to fork this repo but the critical payments workflow is pending ?