PDA

View Full Version : API too closely linked to Client?


authcode
25-08-09, 23:02
I've been playing around with V3 for a week or so now and I've come across a few issues with the API not behaving as I'd expect. My expectation is based on commercial sites with similar functionality when it comes to refinebys.

I've posted about a few of these issues in other V3 forums but having taken a closer look at the data I'm getting back I've come to the conclusion that the API has been designed based on the functionality of the client (or ShopWindow.com) rather than the other way around.

For example, the refineby system on the face of it is designed to allow multiple values for each of the 4 groups. If it wasn't, we could do away with the complex objects within arrays within objects within arrays structure. The client software constructs links that only submit one value per refineby. I took this to be the simplest example possible to allow us to build upon. So I did. I created a site that allows multiple category refinebys (based on vertically linked categories). This is the norm with many a commercial shopping site and allows you to drill down into a category and "undo" the drill down if too few products are returned. However, despite the fact the API allows you to do this the data returned doesn't provide this functionality.

If I choose category A I might get 100 products.
If I choose category A1 I might get 50 products.
If I choose category A + A1 I would expect to get the least amount of results that satisfy both conditions - 50 (Since A1 is a subset of A, products in A1 could be considered to be in both).
Instead I get 100 results that satisfy either condition (100 + 50 de-duped I'm guessing).
So despite providing the means to drill down, the results I back don't reflect this.

Because this is very confusing for my users I now have to go back to using exclusive refinebys, which is, surprise, how the client works. And now we're back to square 1 where everybody's got the same site with the same functionality and there's an apparent lack of innovation.

I'd be happy for someone to tell me that this is a bug, but going on previous responses I don't think it is, I think it's by design, and I don't think anyone will consider changing it either, which would be a shame. The best I could say is that changing the backend to work this way would have no impact on the current client, but it would sure help those of us trying to innovate to do so.

The End.