Let’s remind – OpenMarketplace by BitBag is the eCommerce marketplace solution for online shops with multiple independent vendors and virtual shopping malls with various independent departments. OpenMarketplace by BitBag was created because most of the currently available solutions are cloud-based and rather expensive. OpenMarketplace solution is an alternative for everyone who values digitalization and invents trends rather than following others.

More than half a year after the release of the first version of OpenMarketplace, we can say that the community widely appreciated the solution, and there are already very advanced projects on the market that use OpenMarketplace to build marketplaces.

OpenMarketplace 2.0 by BitBag – functionality overview

However, seeing the growing interest among the community and observing the market, we decided to release an improved version – OpenMarketplace 2.0 by BitBag. This version has a new architecture and a number of improvements. Below is the complete list of new components.

New architecture 

OpenMarketplace has received a new architecture – a modular monolith. In doing so, we have come very close to the architecture of Sylius itself. Based on the features implemented by OpenMarketplace, we were able to divide the whole into several components:

Messaging 

A component that aggregates code of conversation functions between the administrator and the seller.

Order 

A component for marketplace-related changes in the order placement process. It focuses mostly on checking out a cart, including products from multiple sellers. Placing an order from a basket containing products from N sellers will result in N orders created in the system, each visible for each seller. The additional function of the Order component is calculating the commission value for each order.

Product Listing 

Contains functionalities related to product listing and product draft management. It’s mostly focused on versioning changes applied by vendors (drafts) and converting product listings to Sylius products.

Product 

A technical component that cooperates with the Product Listing component in the context of conversion from product listing to Sylius product.

Vendor 

A component containing functions related to the seller. It covers the logic of profile update functionality and seller configuration of supported delivery methods.



Core component 

Additionally, there’s a Core component that, like in Sylius, serves to integrate functionality logic with the frameworks: Sylius and Symfony. All routes, grids, controllers, and form types are placed there. The Core component is divided into sub-components as follows:

Admin 

Configurations related to the administration panel. It contains configuration for functions like managing sellers, verifying product listings, and communication modules.

Shop 

Configuration related to the purchasing process from multiple sellers. There is also placed code on the seller’s page, on which you can find all available products from the specific seller.

Vendor 

Configuration related to everything we find in the seller’s panel: product listings editing, inventory and orders management. There’s also a code for updating the seller’s profile and communication module.

API 

Configuration and all the logic related to API handling. We currently support shop- and seller-related resources API. Continuing the Sylius approach, we also use API Platform for the API layer.

Common 

Configuration is common to contexts between all sub-components above. The best example of this is the communication module, as it takes part both in the Vendor and Admin sub-component.

Override component

Also noteworthy is the Override component, which contains overridden Sylius code. It will greatly facilitate the Sylius update process in the future. If you plan to override any Sylius service, it’s the best place to do it.

Testing, checking and fixing…

Additionally, I will mention that the refactoring was possible thanks to a rich set of tests that are our standard. For all applications we develop, we write:

  • Unit tests, which are written using PHPSpec.
  • Functional and End-To-End GUI tests, which are written with Behat.

Why Jump onto the OpenMarketplace 2.0 Bandwagon?

In this ever-changing arena, there’s a growing demand for a sturdy, scalable, and wallet-friendly eCommerce marketplace solution. OpenMarketplace 2.0 ticks all the boxes, crafted with love and precision. Plus, who can resist the charm and freedom of open-source?

Summary 

OpenMarketplace is now Marketplace Suite, one of the Sylius Plus modules. The functionality of the module has remained unchanged, and the solution is still used to create a marketplace platform. To learn more, visit our website or contact us to discuss cooperation opportunities. We can adapt the solution to your business ideas and needs, map it with existing tech possibilities, and deliver the solution with a qualified project development team.