Hi Solidus community <@U0ENVE2G1> <@U03P8V71Y>, i’...
# general
m
Hi Solidus community @kennyadsl @Jared Norman, i’m evaluating Solidus (and Spree or Vendure) to build a multi-merchant, multi-store and/or multi-channel ecommerce platform (alike Amazon or Shopify in terms of software), can you help shine some lights on the time and complexity to develop the following features on top of Solidus? 1. multi merchant support, where a. each merchant can have their own logins to manage product variants (price, stock, etc) b. each merchant can have their own storefront (like Amazon seller page to consumers) 2. multi store and/or multi channel support: where the whole system can have multi merchant, each merchant have multi store, each store may have multi channels (think about a chain wine store offline who also sells on Amazon and UberEat). The product variant needs to be per merchant, per store and/or per channel.
👍 2
j
I don't think Alberto is around right now. I don't have a huge amount of experience with multi-vendor sites, though we are building one right now. That said, the one I'm working on is not exactly the use case you're describing.
d
Yeah there are a few different business models for multi-vendor
@Edwin Cruz is the most up to date on spree_marketplace
maybe he can chime in
e
well, solidus_marketplace can take you half way down, it already provides an admin ui for each merchant where they can manage their products/inventories/orders, but that's it, you will have to develop everything else: merchant's frontend, multi-domain, etc There're some other solidus extensions as well that already integrate Solidus with some marketplaces like Amazon Marketplace, but all of them will have to be customized considering multi-merchants
m
thank you everyone for the help! seems spree_marketplace has some good enough progress
a
I think the business model that I have right now for my project is a bit similar to yours, albeit the product management is on the admin side to make sure the products are displayed and informed nicely. However, as a disclaimer, I am relatively new to Solidus (around 3 months of usage), but Solidus provides many built-in functions that you can pretty much reuse for multi-vendor support. And I can assure you, it cuts the development cost greatly as I think some complicated common features like order, cart, stock, and product management have been handled by Solidus. The time and complexity depends on your understanding of Rails and your business model, but I have managed to create a custom dashboard for the merchant without a big hassle (around a week just for the merchant to be able to withdraw money, add bank account information, displaying notification and order for their products, and change the order status). Since custom dashboard for merchant is possible, I do not think it is relatively hard as well to create the page for each merchant, so long that you already have the template or designs of the page you want it to look like. Overall, it is not that hard if you know Rails. But I think, it only needs better documentation. That is all
👍 2
❤️ 1
m
solidus_marketplace seems to be not compatible with latest Solidus 😞 after adding "gem 'solidus_marketplace' " to Gemfile and bundle install, got the follow error:
Copy code
bundle install
Fetching gem metadata from <https://rubygems.org/>............
Resolving dependencies...
Bundler could not find compatible versions for gem "solidus_core":
  In snapshot (Gemfile.lock):
    solidus_core (= 3.0.1)

  In Gemfile:
    solidus (~> 3.0) was resolved to 3.0.1, which depends on
      solidus_core (= 3.0.1)

    solidus_marketplace was resolved to 0.1.0, which depends on
      solidus_gateway was resolved to 0.9.0, which depends on
        solidus_core (~> 1.0.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
@Ahmad Ridwan Fauzi for your project, are you using
solidus_marketplace
gem? or you built the multi-vendor logic based on
solidus
itself ?
p
@Mingming you may have to use the gem from the master branch...
m
thanks @Peter Kordel it should be from the master branch, but
Copy code
solidus_marketplace was resolved to 0.1.0, which depends on
      solidus_gateway was resolved to 0.9.0, which depends on
        solidus_core (~> 1.0.0)
the
solidus_gateway
required by
solidus_marketplace
need solidus_core to be ~>1.0.0
p
I may be that solidus_gateway isn't ready for core 3. have you checked the master branch for solidus_gateway?
the gemspec file should say
nope, solidus_gateway is not compatible
m
yah...
message has been deleted
p
yeah
a
@Mingming Since the solution is quite straightforward, I do not use any gem for this. My approach is just to add a column at spree_products table where it stores the user_id that owns that product. Then based on this information, I can manipulate the data anything I want to create multi-vendor marketplace
m
Thanks @Ahmad Ridwan Fauzi that make sense, how complex or how much work is needed roughly to support each vendor can login and manage their own product, orders, etc...and each vendor can have their own consumer facing store front
did you happen to explore Vue Store front support too?
which is a ecommerce frontend (the head for headless ecommerce backend)
a
@Mingming Hmm….. You mean you are using REST API for your projects right? I was thinking to use REST API before, since I am also comfortable with ReactJS and stuffs (and also in my opinion it is best to create the frontend from scratch as the backend stuffs has been handled by Solidus). But since I need to deliver the MVP as soon as possible, (and also since I am working alone), I stick with the MVC. So at least I do not have to deal with the unnecessary complexities when using ReactJS
As for login, managing own products, orders, and stuffs. The login things, you can use Solidus functions. You dont need to modify some functions. But for managing products, orders, and e.g. notifications, you have to create your own functions to enable the users to do those operations. I have pretty much implemented the order status change, and product managing for the vendor so they can receive orders, manage orders, and their products as well. It is made using 100% functions provided by Solidus
m
good point, "deliver the MVP as soon as possible" is my constraint as well, thought if Vue Store front can provide the frontend, maybe less work is needed. But you are right, modify what's provided with Solidus would be faster (if Vue Store Front requires much time to do the integration)
nice, so for the vendor login, we most likely mainly need to restraint the access of products, orders, etc to the current vendor?
a
Yup2, you are right man. We have to put a lot of constraints if our resources are limited. After all, business is not just technical side. We have to really define what is enough and not. If there is no good reason to solve problems using asynchronous architecture (e.g. like chatting functions, and stuffs), and you are still not thinking to scale your business as soon as possible, I think stick with MVC architecture is the best choice
Yes, exactly. You got my point. You can restrict the access of products by just seeing if the product they are editing match with their user id since we already have the user id for each of the product
m
yup, totally agree
we could develop the product to be much advanced compared to business needs, but if the business doesn't develop well or runing out of money, an awesome tech product won't save it
we are an early stage startup so product development and business (or customer) development has to go hand in hand
a
Oh, interesting. Me as well. Early stage startup is all about delivering MVP as soon as possible to test the business hypothesis of whether the products are accepted in the market or not. If we already had the formula of success, then we can move on to scaling by implementing REST API imo (I worked for my own ex-company before for 2 years before leaving and starting up my own here as well, haha)
All the best for your project man!
m
Same to you Ahmad, thanks a lot for the help
🙌 1