A number of people have commented about the quality (or its lack) of Amazon's "this fits/doesn't fit your car" data. Let me explain a little about how that works:

In North America, this fitment data conforms to a popular (but not the only) schema called ACES (Aftermarket Catalog Exchange Standard). It's a long and pretty well-defined XML schema that specifies things like year, make, model, and all kinds of attributes like engine configuration, fuel type, wheelbase, etc., as well as brand name, part number, quantity, and so on. Fitment data providers create an XML document according to this schema and populate it based on the products they say fit particular vehicles.

For example, say you are the manufacturer of a FRAM oil filter (FRAM is a common aftermarket filter brand in the US). It has a part number A123. You know it fits the 2000-2010 Honda Accord with engine XYZ. You add to your fitment XML document an entry for this filter that specifies brand=FRAM, partnumber=A123, parttype=oil filter, years=2000-2010, make=Honda, model=Accord, engine=XYZ. Now, you (or some 3rd party you designate that specializes in turning your catalog of products into fitment data), sends this fitment document on to companies that care about fitment information because they are selling your FRAM oil filter and want to be sure their customers can tell if it will fit their car or not (Amazon, Ebay, Rock Auto, etc.).

They take that fitment data and join it against their product database and out pops the yes/no fitment data you see on their website.

Now scale it up: there is no requirement that only one company produce these fitment records. Anyone else can produce a fitment record that says all the above, but for the 2000-2010 Honda Civic. Maybe that's a mistake, but as a receiver of the fitment data, Amazon or Ebay can't know it's a mistake--they can only presume the fitment data they are given is valid.

Now, complicate it further by adding the human element: e.g. some fitment data providers have fitment data in Excel spreadsheets. Some poor human fat-fingered that data from the spreadsheet into XML and maybe they left off the leading 0 on all the part numbers (because that's Excel's default for number cells). Oops. Now none of those fitment records will match to any parts in the database of the companies that sell them. Or they're entering this data off a piece of paper and can't tell if that's a 0 (zero) or an O (oh). Oops.

Or, worse: the fitment provider gets the wrong vehicle ID (because the schema is all based on IDs, not human-readable names) and submits fitment data that says that FRAM filter fits a 2000-2010 Tesla Model S. Well, that's extremely unlikely, but the receiver of the fitment data is a machine and the machine doesn't know that is completely ridiculous.

Or equally bad: the fitment provider says it fits a 2000-2010 Honda Accord, but doesn't specify the engine type at all. Now, Amazon's machines see that and think "the customer only needs to tell me their year, make, and model". A smart human knows it also needs the engine configuration, but the machine can't easily know that because none of its data specifies an engine configuration is needed for fitment. So Amazon sends out the filter because its data says "it fits!" and the customer is unhappy.

So, in the end, the customer is displeased because Amazon shipped them an oil filter that can't possibly fit their car, even though it told them it would because they can only go on what the data tells them.

A closely related problem is that sometimes a seller will have a product that they know should require fitment data (like an oil filter), but there has been no fitment data submitted for it. In that case, the company can neither say it fits, nor it doesn't fit--it doesn't have enough data to make the determination. This is common as the new model-years start to hit the marketplace: the car exists; you can buy it; you can buy parts for it; however, the aftermarket fitment data hasn't caught up with the car's attributes yet. It also happens when Amazon has fitment data for some models but not for others, even if the part will fit those other models--without data saying so, there's no way to say "yes that will fit your new 2017".

To complicate it even further, if you're talking about this stuff outside of North America, there are other schemas and data providers with very little overlap of the NA offerings. This is visible in the very different fitment experience you see in most EU countries on Amazon (for example, try https://www.amazon.co.uk/auto and select a car).

The takeaway? Unhappy customers result when you have complex data quality problems, and sometimes it's no fault of the implementation at all.