Sector(s)
Team Members
Project Team
- Céline Kellner, User Experience Architect (unic)
- Corinne Sager, Digital Analyst & Requirements Engineer (unic)
- Andrea Malele, SEO Consultant (unic)
- Fabienne Hadek, Application Engineer (unic)
Visit the site
Visit the siteOrganizations Involved
Community contributions
As part of developing sapros.ch, we created patches and contributed to modules such as Drupal Commerce, Migrate, Paragraphs, and Facets.
Additionally, we presented insights from the project on two local Drupal meet-ups of the Zurich Drupal User Group Meetup and we will present the case study at DrupalCon Amsterdam 2019.
sapros.ch is an online marketplace for safety equipment and services operated by the Swiss insurance company Suva. On the marketplace, the products are not offered by Suva as the operator but by over 60 independent vendors who sell around 50'000 articles in 3 languages. Therefore, all commerce-related processes on the platform need to be adapted to support multiple vendors and at the same time satisfy the high quality requirements related to safety equipment.
In 2017, it became apparent that the former custom implementation of sapros.ch was not future-proof any more. Therefore, a relaunch project was initiated. After the assessment of different vendors, Unic's solution based on Drupal 8 and Drupal Commerce 2 was chosen as the basis for the new marketplace.
Unic is responsible for the concept, UX design, implementation, SEO, digital analytics, and hosting of sapros.ch.
About the project
With the web relaunch of sapros.ch, Suva wanted to enhance the experience of the marketplace's users, both vendors and sellers, on the platform. Additionally, the underlying custom implementation should be replaced with a modern framework and UI to enable efficient extension in the future.
The marketplace is operated by the insurance company Suva and accommodates over 60 vendors which sell over 50'000 articles to B2B and B2C customers with a focus on safety equipment. As accurate product information is crucial to the marketplace's operator, a customized product creation workflow had to be designed and implemented on top of a multi-vendor capable commerce platform. Additionally, specific rules and the ability of commenting in an approval workflow needed to be implemented so that the operator has the final control over the product quality on the platform.
Targets of the project
- Replacement of former custom implementation to increase adaptability by using a more flexible framework
- Creation of a multi-vendor capable marketplace
- Modern design
- Enhanced product management process with fewer faulty product information. This implied a step-by-step product creation process with simplified input forms, enhanced validation of fields and logical suggestion based on user's selection as well as a rule based approval process with commenting capabilities.
- Migration of old product and customer data
Why Drupal was chosen
- Combination of content and commerce functionality
- Ability to implement a flexible commerce multi-store marketplace
- High adaptability of the framework
- Enhanced styling possibilities compared to other commerce frameworks
- Open source and modern technology stack
- Existing functionality and modules can be leveraged compared to custom implementation
- Strong role concept and permission handling
Technical Specifications
Drupal version:
Key modules/theme/distribution used:
Commerce:
Drupal Commerce was used at the core of the marketplace to create different product types, specific checkout workflows, and the product displays. To enhance the existing functionality in the backend, we used custom views, and Commerce Extended Attributes to help admins to efficiently manage their products.
Search:
Multiple Solr search indices have been configured to enable on-site search as well as performant product listings on the website. Based on Drupal's Facets, we implemented custom widgets to enable enhanced filtering on the product lists.
Migrate:
Using Migrate, Migrate Files, and Migrate Commerce, all product data was migrated from the former application. Additionally, we migrated old orders, store, and customer data.
State machine:
We used State Machine to handle different product states, transitions, and corresponding actions regarding the custom product management process. Hereby, all transitions have been tight to new permissions to ensure following of the designed product management process. Additionally, statistics about the use of the process are collected and at certain checkpoints notifications to the admins are triggered.
Paragraphs:
Using Paragraphs, editors are able to create flexible content pages for non-product information. Additionally, we used a GraphQL view for a small decoupled feature that displays random logos and should not be cached.