header image

Case study

Nationwide, multi-shop commerce

AdvantITge uses Vendure as the basis of a multi-shop e-commerce platform

Built by AdvantITge

food & drink Belgium b2c multi-channel
Tell us a little about yourselves and the project

We are AdvantITge, a Belgian team of web developers that provide fully customizable webshops for mid-to-large sized companies, including retail chains with a large networks of distributed, physical shops.

We have selected Vendure as the headless server for the development of a multi-shop e-commerce platform for a large Belgian food retail distribution chain. For this chain we have been able to deliver a fully customized front-end shop, with the power of Vendure as backend platform.

What factors made you decide to use Vendure?

For the typical single-shop e-commerce activities we mostly use Shopify. However, for this retail chain with a large number of local shops, we have chosen Vendure for three reasons:

The clean modular architecture enables us to provide plugins to serve hundreds of parallel shops, each with their own customized promotions.
Can you tell us about the process of building the project?

We started with a basic Vendure setup, and integrated Google Cloud Storage for assets. We had to adopt the Elasticsearch plugin as we needed to extend the search using the customMappings feature. Elasticsearch is performant but quite heavy, which is a bit a downside for both our development and cloud setup.

We containerized both the storefront and API, in order to run it in a Kubernetes cloud environment, adding an importer which uses Google Cloud Pub Sub to queue incoming requests for inserts/updates of products, collections and promotions.

We created a B2B gateway which is used by the IT department of the customer to fetch and update other data using a queue. The gateway gives us more control of which queries and fields of the Vendure API are accessible and transforms it to their needs.

How did you build the storefront?

We’ve chosen Angular as the framework for developing the storefront, as this is our main expertise building custom web based platforms. We combined this with Apollo Client for the GraphQL interaction.

The Vendure GraphQL schema in combination with the online docs makes it easy to integrate.
How did Vendure help you to meet the design challenges of the project?

We needed a lot of customization. Custom fields are a time saver for simple extensions, and the plugin system can handle quite complex extensions. For the most complex cases, contributions to the Vendure repository were needed. The adoption and support from the maintainers on this level gives a trustworthy feeling towards the project for us.