Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[Development] Products Specifications


kymation

Recommended Posts

The comparison list uses $current_category_id to get the category to list. This value is set in application_top.php. I don't see how the code could even determine the parent category. I need to look at this one some more.

 

Manufacturer using a multi-pulldown seems to have a SQL bug. On the list.

 

Filters are individual actions. You can't change more than one of them at a time and expect it to work. This could be changed to submit all filters at once, but that causes a bunch of additional problems. Not to mention completely rewriting that part of the code. Are customers really going to want to change a bunch of filters all at one time?

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

Are customers really going to want to change a bunch of filters all at one time?

I think so, especially when there are more than one Multiple class filters. See this picture. Would you click the appropiate find-matching-products button after a change in each set? Or would you change a bunch of filters all at one time?

 

This problem could be solved by updating the filter result after each checkbox has been changed; either check or uncheck a particullar box will update the list of prducts. A filter button is no longer needed and the list of products shown is always matching the filter settings.

 

For each filtertype the following events may trigger the filter:

  • Pulldown: selecting particular row = as it is now
  • Radiobutton: selecting particular button = as it is now except from the second click
  • Listof links: selecting particular link = as it is now, (however, in my case, the filter ended with a "+" symbol, this appears to disturb the filtering)
  • Text box: when focus is lost from the textinput box. Though, this one could be tricky, I think hitting enter or a search button next to the input field could work.
  • Multi-pulldown: on every row select/unselect action
  • Check boxes: on every box select/unselect action
  • Images: selecting particular image = as it is now
  • Multi-images: on every image select/unselect action

Regards,

Jerome

Link to comment
Share on other sites

Forgot one question:

 

Is it possible, when a subcategory has the same filters, filter result will include the products of that subcategory? But products from that subcategory only, not the parent nor any sibbling categories; These can be searched from a higher category.

 

Regards,

Jerome

Link to comment
Share on other sites

For muti-selects, you would have to select each value, one at a time, and then wait for a refresh before adding the next one. This seems clumsy to me. The other way to do it is to have one Update button for all filters, to update all changes at once. I've seen this done, and it feels clumsy as well. I was trying to automate this to make it as easy as possible. Maybe this could be an option, so the store owner can choose how it will work with their setup. It's still going to take a lot of work to code this for a single update for all filters.

 

To answer your question: That's the way it is supposed to work. The output should be all of the products in the current category, excluding subcategories, that meet the filter constraints. Filters applied at the top level, with no category set, will include products from all categories and subcategories. This follows the category structure of osCommerce.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

Thanks for your reply.

 

For muti-selects, you would have to select each value, one at a time, and then wait for a refresh before adding the next one. This seems clumsy to me.

 

I know webstores which have filters like that, see the sites mentioned in post 26 for example. All depends on how fast the list can be refreshed. A long loading time (e.g. >1 sec) seems clumsy indeed. But much faster refreshing rates will work quite well.

 

The coding seems not to be too complicated, hopefully you will find it worth a try to see if this could work. However, if this doesn't work, I would not focus on code for a single update for all filters at this moment.

 

Regards,

Jerome

Edited by JvdP
Link to comment
Share on other sites

First off I want to say thanks for putting this great addon together. This is really going to change the way our site operates and hopefully bring in some extra orders!

 

I have a question about the filters. If I want to create a product filter for "Gender", would I need to create an additional "gender" field in the products table? Or is this handled in another way. I've successfully used the "Use existing database field" to create filters for price and a couple other test fields, but not any new fields.

 

Also, we have a couple hundred different manufacturers that products are assigned to. Does that mean that I need to create filters for each one of those products in a "Manufacturers" specification? Or am I not seeing how to have that filter list automatically populated.

 

Again, thanks for the fantastic work on this! Look forward to seeing it grow.

Link to comment
Share on other sites

You don't need to add any table fields, other than what the SQL file in the distribution adds. Just leave the Use existing database field set to none and edit/add products. There will be a field to fill in for each new Specification. One per language, actually.

 

You currently need to add Manufacturers to the filter by hand. I've been thinking about ways to automate this, or add an Import feature, but I haven't settled on anything yet. I will add that to the requested features list.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

Perfect, that worked exactly as I expected! Thanks for the quick reply.

 

What's the purpose of the specification_values table? I don't see anything in the code that does any REAL interaction with that table (other than in a copy operation).

 

One other thing, what is the "Enter filter as" field when adding/creating a specification? I've tried using the different options, but haven't seen yet where that is used.

 

Fantastic work, works great even in it's early stages!

Link to comment
Share on other sites

Those settings aren't used yet. When I get the code working, they will allow you to select values in the Add/Edit Product page (e.g. by a pulldown) rather than typing into a text field. It's intended to make the product data entry faster and more foolproof. Of course you will still be able to use text entry if you want to.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

Your In Stock is not correctly set up. You need a value other than 0, and probably more than one. That actually shouldn't even show, since you only have one value set up. Another bug.

 

Please tell me that's not a live store. This addon isn't safe to use yet.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

Your In Stock is not correctly set up. You need a value other than 0, and probably more than one. That actually shouldn't even show, since you only have one value set up. Another bug.

 

Please tell me that's not a live store. This addon isn't safe to use yet.

 

Regards

Jim

Yes it is a live store but everything has been tested and yes there is a bug or two but on the whole I am happy to use. I really need to so decided for the bug or two it was now worth it. In terms of the stock I have changed it to show if there is only 1. Your default SQL setting was a min of two. The way I did it was the only way I could get it to work.

Link to comment
Share on other sites

You can change the minimum in the Admin -> Configuration -> Products Specifications -> Minimum Spec Filter. Set it to 1 () will let you do what you want. The default is there for testing.

 

By "not safe to use" I mean it is not secure. You are leaving yourself open for hacking. Not advised, but that's your call.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

You can change the minimum in the Admin -> Configuration -> Products Specifications -> Minimum Spec Filter. Set it to 1 () will let you do what you want. The default is there for testing.

 

By "not safe to use" I mean it is not secure. You are leaving yourself open for hacking. Not advised, but that's your call.

 

Regards

Jim

Correct that is what I changed. I have found some bugs in the range filter which returns the wrong results so I have switched the filter off for now.

Link to comment
Share on other sites

Correct that is what I changed. I have found some bugs in the range filter which returns the wrong results so I have switched the filter off for now.

 

That's an odd way of testing alpha software.

Link to comment
Share on other sites

That's an odd way of testing alpha software.

Yes I agree with that but as most people were saying for the filter there were no bugs found I put it on a dev box first and at first didn't see any probs. After playing I found 1 or 2 but on the whole I really like it and it does (apart from the bugz) what I exactly need.

 

1 nice extra would be to search for something in the filter but dispay different text to the user.

Link to comment
Share on other sites

Not enough information. I can't do anything with vague summaries.

 

Regards

Jim

 

Hmm, I created a specification filter type "list of links" filterclass "Range". Than I defined the following filters: 1, 2, 3,4 and 10. Filled in 33 as product specification.

 

When filtering in the catalog this product is displayed in the following ranges: 3-4 and 10+. So it seems the filter is executed as text and as numeric ranges. 3.3 is displayed in the same ranges. 120 is displayed in the ranges 1-2 and 10+.

Link to comment
Share on other sites

Hmm, I created a specification filter type "list of links" filterclass "Range". Than I defined the following filters: 1, 2, 3,4 and 10. Filled in 33 as product specification.

 

When filtering in the catalog this product is displayed in the following ranges: 3-4 and 10+. So it seems the filter is executed as text and as numeric ranges. 3.3 is displayed in the same ranges. 120 is displayed in the ranges 1-2 and 10+.

That is were I was going with the problem, but also sometimes the results arn't returned.

Link to comment
Share on other sites

This is a major problem with PHP. It wants to treat everything as a number unless it's explicitly declared as a string. We need to treat some specifications as strings and others as numbers, but be able to detect the correct type automatically. Obviously I've failed at this. I'll try again.

 

Also, I'm working on getting a new release ready. Hopefully today.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

I've added a new release at the usual location. Changes include the following:

1. Added the option to select specifications via pulldown, etc. on the Admin Products page. You can also enter multiple values for a specification this way.

2. Fixed most known bugs. The remaining issues are listed in the bugs.txt file. However there are still some requested features that have not been added.

3. Changes in this release include one new file and another major database change. I'm hoping this is the last time this happens. No promises.

 

Questions or comments on this development are always welcome. I'm still taking suggestions for added features, although major additions to the code may get put off until I get a final release of version 1.0. I'd like to get that out sometime this year, and it'll never happen if I keep adding one more feature every release.

 

Regards

Jim

See my profile for a list of my addons and ways to get support.

Link to comment
Share on other sites

3. Changes in this release include one new file and another major database change. I'm hoping this is the last time this happens. No promises.

 

Hi Jim,

 

Importing the SQL script gave the following error:

 

Error

SQL query:

 

(NULL, 'Spec Combo Manufacturer', 'SPECIFICATIONS_COMBO_MFR', '0', 'Show the Manufacturer in a special combo box (0 = No, 1-9 = Sort Order)', 1610, 55, '2009-06-18 12:07:30', '2009-06-18 12:07:30', NULL, NULL), (NULL, 'Spec Combo Weight', 'SPECIFICATIONS_COMBO_WEIGHT', '0', 'Show the Weight in a special combo box (0 = No, 1-9 = Sort Order)', 1610, 60, '2009-06-18 12:07:30', '2009-06-18 12:07:30', NULL, NULL), (NULL, 'Spec Combo Price', 'SPECIFICATIONS_COMBO_PRICE', '0', 'Show the Price in a special combo box (0 = No, 1-9 = Sort Order)', 1610, 65, '2009-06-18 12:07:30', '2009-06-18 12:07:30', NULL, NULL), (NULL, 'Spec Combo Model', 'SPECIFICATIONS_COMBO_MODEL', '3', 'Show the Model number in a special combo box (0 = No, 1-9 = Sort Order)', 1610, 70, '2009-06-18 15:31:23', '2009-06-18 12:07:30', NULL, NULL), (NULL, 'Spec Combo Image', 'SPECIFICATIONS_COMBO_IMAGE', '1', 'Show the Image in a special combo box (0 = No, 1-9 = Sort Order)', 1610, 75, '2009-06-18 15:31:10', '2009-06-18 1[...]

 

MySQL said:

 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL, 'Spec Combo Manufacturer', 'SPECIFICATIONS_COMBO_MFR', '0', 'Show the Manu' at line 1

 

Regards,

Jerome

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...