I've been heavily modding a cubecart installation and noticed a funny thing (2 infact):
The inventory field has both a image and cat_id field, however this isn't where cubecart actually stores the category: it stores it, in addition, in a cat_idx table, which has the productId and catId, meaning that all the data is 100% duplicated.
The only realistic reason for this is so that products can belong to more than one category, however, there is no functionality for this in the admin - and in any case, why then have a cat_is field in the inventory table?
The same applies to the image field. While cubecart reads off of this field, the data is duplicated in the image_idx table in the same way, with no support for actually utilising this in the admin.
My assumption is that these were added as a framework for future versions for products to be in multiple categories and have multiple images, however it is a bit of a hack to then keep the fields in the inventory table as well.
Might not make much of a difference if you only have a thousand products, but when you are doing external imports of 5000 odd products, it means twice as many imports and data processing.
Another field I don't understand the reasoning behind is the "noProducts" field. Is it simply for cubecart to grab for aesthetic purposes ({category} (#noProducts)) or is it actually used in a constructive way? If so, does the noProducts for a field have to include the noProducts for the daughter categories?
I am only asking for the same reason as above, that it takes a conciderable amount of server time to calculate - I can't even use Sir Williams script, it times out even after an hours churning. A OO script I've made seems to be able to get through it in a reasonable amount of time, but again, it all adds up for each import.
Sorry if I seem a little gruff to people who have donated their time to what is absolutly the best shopping cart to work with - it just feels so out of place in what in the rest of the cart is one of the most well laid out and most intuitive to work with and modify that I have ever found.
