User stories

Mitsubishi: Personalizing the online experience for new car purchases

Apr 03, 2024 by

Nicklas  avatar

Nicklas Gellner

Nicklas  avatar

Nicklas Gellner

Learn how Mitsubishi used Medusa to personalize a multi-touchpoint purchasing journey and built deep integrations with their own internal systems.

Mitsubishi: Personalizing the online experience for new car purchases - Featured image

When browsing for a new car, customers visit one of Mitsubishi’s over 60 dealerships in the Netherlands to experience the different models in person. But after customers choose their preferred model, the wide spectrum of customizations and add-ons is better showcased through an online shop.

For this, Mitsubishi Netherlands uses a Medusa-powered after-sales shop that is personalized based on the information gathered during a dealership visit to deliver an optimal customer experience. At the same time, the setup integrates deeply with Mitsubishi’s internal systems to automate supply chains and operations.

Despite the integrations with Mitsubishi’s internal systems, the implementation partner, Webbers, implemented the after-sales shop with Medusa in just a few weeks.

Personalizing a multi-touchpoint purchasing journey

One of the key challenges in Mitsubishi’s purchasing journey was to ensure a smooth transition across physical and online touchpoints. As the diagram below shows, a customer typically shifts between physical and online interactions when selecting and configuring their new Mitsubishi car.


The multi-step journey can be a friction point if orders are handled by multiple systems and information has to be re-entered every time a customer transitions between steps. Webbers saw this as an opportunity to create a more personalized experience where physical and online transitions would have minimal friction between them by:

  • Customizing the storefront: Handling each storefront session differently depending on the customer ID from the dealership, with elements like custom pricing.
  • Easing the checkout process: Ensuring all customer and car data, such as model, color selection, and vehicle ID, are pre-filled in the checkout based on dealership data.
  • Allowing pay-later checkout: Enabling customers to pay at the dealership during car pickup and instead include after-sales orders in the final down payment.
  • Setting up ERP sync: Synchronizing all orders with Mitsubishi’s existing Salesforce platform to ensure add-on purchases are always delivered to the dealership along with the final car.


Building personalizations and integrating with Medusa

Due to the custom requirements for the after-sales shop, Webbers recognized that they needed a commerce backend that would be highly flexible and make it possible for them to incorporate their own logic easily. Given Medusa’s modular and open architecture, they viewed it as the perfect match for the task.

With Medusa, it was very straightforward to make customizations to support a personalized storefront experience.

Pepijn van Vlaanderen


CTO at Webbers

Webbers solved the personalization challenge using URL tokens and adding a custom Medusa endpoint. After customers select their car at a dealership, they would receive a personalized email with a unique URL link with a personal access token. When the customer clicks the link, the storefront calls the Medusa endpoint, which decodes the token and fetches the customer information to personalize the storefront.

// mitsubishi/src/api/store/fetch-car.ts
export default async (req, res) => {
const cartService: CartService = req.scope.resolve("cartService")
const mitsubishiService: MitsubishiService = req.scope.resolve("mitsubishiService")
// fetch data from custom Mitsubishi backend using the URL token
const carData = await mitsubishiService.fetchCarData(req.body.token)
// update cart with personalized information
const updatedCart = await cartService.update(data.cartId, {
email: carData.customerDetails.email,
shipping_address: formatAddress(carData.customerDetails)
metadata: {
model_code: carData.modelCode,
type_code: carData.typeCode,
vehicle_id: carData.vehicleId,
color_code: carData.colorCode,
new_car_owner: true,
res.json({ cart: updatedCart })

The response from the custom endpoint contains information used to create the custom pricing, pre-fill all customer and car data, etc. After an order is created, the order data from Medusa is synchronized with Salesforce for order fulfillment.

Aside from the order synchronization, Medusa’s product data is also synched daily using CSV imports from Mitsubishi’s own backend triggered by Medusa cron jobs.


Ready backend setup in 2 weeks

As part of the project, Webbers had to migrate Mitsubishi’s existing WooCommerce setup to Medusa. In this process, Webbers noticed how Medusa’s modular and composable architecture made them more efficient in their migration and development than usual. The frontend team could easily redesign the storefront, while a backend engineer would focus on migrating and customizing Medusa’s modules to implement all required features.

This arrangement allowed them to complete the entire backend setup with only one backend engineer in two weeks, ultimately finishing the entire project in less than two months.

We are very happy with Medusa, it enables us to have a great developer experience and an efficient workflow. It is easy to build customizations and we can avoid the spaghetti code we end up having with other solutions.

Pepijn van Vlaanderen


CTO at Webbers

After this experience, Webbers sees the potential of adding mobile app support in the future. If Mitsubishi decides to sell its after-sales products via its My-Mitsubishi app, they could easily use the same Medusa backend as they do for web sales.

Share this post

Try Medusa

Spin up your environment in a few minutes.