Thomann Versandoptionen Hero

Guitars to Oslo or: The Art of Offering the Right Shipping Methods

Francesco, Fullstack Developer - Sep 7, 2020

As an international music mail order company, Thomann has customers all over the world. If you want, you can order a guitar from Oslo, a drum set from Brisbane or a piano from Geneva. So when it comes to ordering, our system has to master a whole array of challenges: For example, it has to assign the right package size, standardize address details or check whether express delivery is possible. In short, our customers have to be able to choose the right shipping service provider for each order. To cater to these complex needs, we have carefully optimized our system this year. So as a full-stack developer, I was kept busy.

Fullstack Developer Francesco Schrüffer

Let's say a customer wants to order a guitar from Thomann. They have various options for doing so: They can use the website, the mobile site or the app. They search for the right model, put it in the shopping cart, enter the payment method and postal address – the order is complete. It's all very simple, you might think. In fact, the order process is extremely convenient for Thomann customers. But for everything to run smoothly, a lot is happening behind the scenes, especially when the customer is based abroad. If the guitar is shipped to Oslo or the keyboard to London, this complicates the order process because different delivery conditions are present in each country. Our goal is to give our customers as many options as possible, no matter where they live. We want them to be able to choose which company will handle the delivery (the technical term is "carrier"). Plus, they should be able to see how much the delivery will cost, how long it will take and how the product will be transported – in real time, of course.

Eine erste Konzeptskizze

Major work on the system

To ensure the above, we had to make major changes to our system. Previously, there were no options to choose from when placing an order. Customers could only see the expected shipping costs. They didn't get any information about which carrier was transporting their package – whether it was DHL, UPS, Swiss Post or another provider. Customers often used the comment function to tell us their "preferred carrier". We then had to manually enter the carrier request into the system - which was of course very cumbersome. With our new system, we wanted to avoid this constant back and forth between the customer and our customer service. The order process should work more smoothly. We developed a new system and then tested it live environment.

First however, we had to determine the biggest areas needing improvement. One of these was the handling of address entries. Sometimes customers enter their shipping addresses in a way that neither we nor the carriers can process. These customers then cannot have their shipping costs calculated, which is of course a shame. If we or the carrier cannot determine freight costs, then we cannot offer shipping. After all, the customers should not be confronted with higher freight costs after the fact. Therefore, we only offer shipping options if we are 100% sure that it will work out.

Shipping to other countries can be tricky in particular. This is because each country has different conditions – on the one hand, certain carriers do and on the other hand, it’s often about address formats. The carriers need a precise address format for proper delivery. If certain parameters are missing, then the delivery company cannot accept the order because the address is not "carrier-compliant." To use UPS Express we need the complete address information - with street, city, postal code and so on. However, we know that customers' address information for certain countries often contain very specific sources of error. For example, Saudi Arabia has a very special postal system. The address format is as follows: Part 1 - hyphen - Part 2. If the customer leaves out the hyphen in the address, UPS Express will not accept it and we can't offer this option. The customer enters what appears to be the correct address, doesn't get the option and doesn't understand why. In the case of certain, frequently occurring format errors, we can help a little by formatting the address afterwards which doesn't always work tough. That was the first challenge.

Express shipping and freight forwarding as challenges

The second challenge was to optimize freight forwarding. We have some very large items that are shipped by forwarding companies, for example pianos or harps. We have a pool of shipping companies that work for us. Before shipping, we don't know which freight forwarder will eventually ship the item. Which forwarding company is used depends on many factors - in the end, the shipping control center decides. Because we didn't know this in advance, we could never display a shipping option in the customer interface. Instead, we displayed the standard shipping costs and a small note that the order would be shipped via freight forwarding. Customers were supposed to provide their phone number for any queries. That didn't work out so well. The third challenge was to improve express shipping. In general, it only makes sense to offer the "express shipping" option if the product to be dispatched is actually already available and not if it arrives at the warehouse in three days. So we had to be able to check availability during the order process.

Moreover, we wanted to improve our communication with customers. If an order option was not available at the time, this should be as transparent as possible for customers. The system should then display the error message that the respective carrier had provided us with. However, we tended to want to avoid customers receiving error messages at all. Of course, this presupposes that the system recognizes at an early stage if a delivery to a particular country is not possible for example. The system should then take action and correct the output.

In short, there was plenty to do. In September 2019, we began the preparation work for the system conversion. An important foundation of our shipping business is finding the optimal package sizes for Thomann products. After all, the product range is not only huge, but also highly differentiated: It ranges from plectrums to Fender guitars to grand pianos. However, we can't just tell a shipping company like UPS that we're shipping a Fender guitar: We have to tell them what size each package is. So the first big task was to "recreate" our shipping process. To determine average package sizes for specific product categories, we looked at Thomann's historical shipping data - going back to early 2004. Based on this data, we can now say which product is most likely to end up in which package size. However, it's not about packing mathematically perfectly - but realistically, i.e. with room to maneuver. The aim is to ensure that neither we nor the customer have to pay extra because the package was calculated too tightly.

30 different box sizes

At Thomann, there are 30 different cardboard box sizes - from small envelopes to huge packages. The shipping history provided us with interesting findings. We found that the package that is used most often is 100 centimeters wide, 100 centimeters high and 28 centimeters deep. In second place was a package with a minimally smaller volume and the dimensions 140cm x 44cm x 44cm. Once we had all the data, we integrated it into the system and started testing.

We chose a typical procedure, the A/B testing, also called "split testing". Basically, A/B testing is about testing two versions of a website or app against each other in order to decide which one is better received by users. This acceptance can be measured in the "conversion rate" for example – in this case, this is the proportion of users who actually make a purchase. Our A/B test ran from the beginning of October 2019 to mid-February 2020. During this period, there were a total of three test iterations in which we examined the new feature - i.e. the expanded order options. The basic question was: Is the feature accepted and perceived as a benefit, or does it confuse customers and lead to purchase cancellations? We wanted to know the following: How do users interact with the new version? Do they interact with it at all? And how does it affect conversions?

Three iterations

The first iteration of testing took place in October 2019. We had selected four countries for the A/B test: the USA, France, Sweden and Finland. 10% of all customers in these countries got to see the version with the new feature in our online store. The form with the shipping service provider selection was integrated into the order process by default. In this first iteration, we primarily wanted to find out how the feature was received. To do this, we measured the changes in various conversions, such as the purchase completion rate and the interactions with the shipping provider selection widget. This was a first test for normal operation. By the way, we programmed the new widget using React, a JavaScript software library.

The second iteration ran from October to December 2019, again with 10% of customers in the four countries mentioned above. However, the new feature was present in both Version A and Version B. The difference was: In A, the widget with the new feature was collapsed, whereas in B it was already expanded, hence much more visible. The two versions were evenly distributed. In this iteration, we collected feedback from customers and from various Thomann departments. Among other things, we were wondering how the logos of the DHL partners should be displayed, how the user interface should look like and whether we could extend the UPS Express offer to other countries. After each tweak, we measured a number of conversions: interactions with the widget, orders with the shipping provider changed and, of course, purchase completion. All of this was measured for the two test groups with the widget collapsed and expanded.

For the third iteration (December to February 2019) we added a few more countries – Mexico, Hong Kong, Australia and the United Arab Emirates. We now showed the new feature to 100% of all store visitors – again with the collapsed/expanded versions. In this last iteration, we also eagerly collected feedback to be able to fine-tune several details. These included the discount on UPS Express, more meaningful error messages, more accurate shipping times and more consistent communication throughout the store. Once more we measured interactions with the widget, orders with the shipping provider changed and purchase conversion rates.

Zwei Widget-Entwürfe im Vergleich

Fine-tuning is the way to success

Over the entire test period we were able to track very closely how the conversion rate was changing. For example, in the first iteration we noticed that conversions were declining, so we gradually improved the feature until the conversion curve went up. Since March 2019, the new system has been online for the whole world on all our platforms.

Of course, new challenges crop up all the time. During the Covid crisis for example, we were temporarily able to ship our products to France with very specific carriers only. Adding this into the system was quite straightforward: Our shipping team is in constant contact with all carriers and can change certain parameters (transit time, price, carrier) in the system via our internal tool within minutes. In fact, pricing in Covid times is also a particular challenge. Usually we have flat rates on a carrier-by-carrier basis – meaning we know what a standard UPS shipment to Israel costs, for example. But Covid has eliminated these standard shipping methods. At the moment, we can only ship to certain countries by express. It is all the more important that we communicate this to our customers. That was much easier with the new system too.

Conclusion: An order system should run smoothly and it should offer the most flexible shipping options possible. We were able to include both of these factors in our project. Which doesn't mean that we are done: We will continue to closely monitor and improve our order system.

Die finale Fassung des Widgets

The team

Many Thomann departments contributed to the success of the project, including in-house IT, the Hotline Team, Logistics and a team of export specialists. The Web Team including Full-Stack developers Francesco Schrüffer, Fabian Hesse, Sebastian Reuther and Heiko Terfloth, Project Manager Julia Manger and Agile Coach Dominic Burucker

Our offices

Remote. Distributed. Together.

Work from home or any of our offices. Our team is 100% remote and will stay this way. You need a stable internet connection and your laptop. Currently our way of work supports the EU.


Our Thomann headquarters. Just a few minutes’ drive outside of Bamberg. Come by to visit our shop or meet with colleagues outside of tech & data.


Our office in the heart of Berlin. Easily reachable at Rosenthaler Platz. Perfect for workshops and team building.


Our office in Nuremberg's metropolitan area. Just a few minutes by foot from Erlangen station. Nice, quiet location to do some deep work.

Our Blog

Apr 25, 2023 - Sascha Steinbrink

Be part of the tool gang

We are the Swiss Army Knife of, but the fun version of it! #s.toolgang

Feb 1, 2023 - Jöran Eitel & Dominic Burucker

10 years of Thomann in Berlin

It’s hard to believe, but we are celebrating our tenth anniversary. How does that feel?

Dec 19, 2022 - Basal John

Quality Engineering or Die Trying

Transforming software development through innovative quality assurance techniques

Nov 10, 2022 - Markus Melber

The right amount of spice makes our solutions tasty

The right amount of spice makes our solutions tasty

Sep 21, 2022 - Frederik Heins

Team Competency Matrix

Finding your next team member by mapping your team’s skills and visualizing what is currently lacking.

Jul 13, 2022 - Oliver Dolgener

Are you Appic enough to join us?

Developing the most appic Thomann App while hunting for 5-star reviews and perfect burndown charts!

Jun 30, 2022 - Heiko Terfloth

A day at the BK-nusprig drive-in

Bad jokes, burgers, and developers... Did someone call us?

May 13, 2022 - Ralph Cibis goes Cyberpunk

We went fully cyberpunk! Our branding community's last side and heart project.

Dec 8, 2021 - Nadine

Going fully responsive

Why we redesigned our shop - and why purple's the new blue.

Oct 18, 2021 - Julia Manger

Open Space 2021

Summer 2021 - Home office, lockdown, a fourth wave and: huh?! An Open Space!

Aug 6, 2021 - Stefan Stammler

Bits, Beats, Ops-Team

Someone needs to bring our shop online. This is our mission.

Jul 7, 2021 - Ralph Cibis

Hello, Webteam

We are the Thomann Web Team. We create and the Thomann App.

Jan 27, 2021 - Nadine

What Kan Kanban do

The idea behind moving cards - with a crispy epilogue.

Sep 7, 2020 - Francesco

Guitars to Oslo or: The Art of Offering the Right Shipping Methods

Our developer Francesco provides you with behind the scenes insights

Jul 14, 2020 - Thomas Tischner

How Thomann is mastering the move to Kubernetes

Our Sysadmin Thomas tells you from his day-to-day work

Nov 4, 2019 - Domi

Thomann Dev Camp 2k19

This year under the Slogan "ready for our collective take-off".

Severe case of I-wanna-work-with-you?

...or any questions for us? Give Anne a call!

Welcome to Treppendorf, welcome to Thomann Music

We're inspiring and enabling people to speak music, everywhere. 24/7.