@NewMedia, it depends on you scenario. Take an example like this.
You have a travel company that sells boat tours, surfing trips, and volcano walks in a country like Hawaii, they are a full service operation that you can also book your flights through, as well as book the any of the 3 tours online.
The flight availability is held by the Airline, as well as the price of the flights, so you need a way to get that data, either by dealing with the single airline itself, or more commonly dealing with an API provider that already deals with all the airlines and stores all the information for you to access in their API.
In my example someone like Amadeus would hold all this information.
The tours themselves once you get to Hawaii may be operated by many third party companies, so lets say the surfing tours are operated by Company A, and the boat tours by company B.
You need a way to find the latest pricing as well as availability from each company, most of these companies may be smaller, self owned businesses and would not have their own APIs, however they would more than likely deal with a booking system, so lets say one uses Bookeo, another uses Rezdy, and a third uses Activitar.
Now the person who is booking through your website also needs a place to sleep while in Hawaii, so you may also sell accommodation at the same time, and again some accommodation could be a big hotel chain, and others may be a bed and breakfast, most of these companies would also not have their own APIs in place, however they would have some type of booking system, such as Siteminder with Booking Button or Nightsbridge. You again need their pricing and availability to make a booking.
Now on your own website, the person selects some dates to travel, they are presented some options, like do they want to do 1 tour only, or many tours, how many people are going, what are their ages, do they want to include flights, do they want to include accommodation.
If they chose your full service then you would need to pull the data from possibly 8 different API sources into a single source to pass to either PayPal or Stripe, and save all that data back to your database at the same time.
This is one example of where something like this can make your life far easier, not to even mention you could also add 2 more parameters to all this complexity, such as currency and language, there are just so many sources, that need to form a single transaction in the end of the day.
Example 2, which is less common, but there are instances I have found where a single company has more than one website, that both sell the same product, with slight variation, normally this is when one product is aimed at a local market, and the other is more international facing.
So if I were selling mobile phones in India, and that was my local country, I may be able to sell the handset as well as the data and airtime contract in a single package, but if I were selling the handset to a person in America, I could only sell the device itself and not the contract.
In such a case I would possibly have 2 websites.
The local website database would be the “Main” database, holding all the handset information and specifications as well as image links, this would also hold all the contract information needed.
The international site, does not need to replicate all the product data, it pulls it from the “Main” database, and ignores all the contractual tables, but uses it’s own local database to store it’s own data.
Both of these examples I have provided are real world examples that I have had to deal with on more than one occasion myself.