Jump to content

Archived

This topic is now archived and is closed to further replies.

burt

Open discussion on Better Navigation and Categories

Recommended Posts

This thread is for an open discussion on Better Navigation and Categories. For an overview of the subject, please read http://uxdesign.smashingmagazine.com/2013/11/11/guidelines-navigation-categories-ecommerce-study/ (chapeau to @@mattjt83 for the link)

 

So, what can we do in osCommerce to make it more user-friendly in terms of this subject.


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

After reading the article Matt posted my thoughts immediately went to "work arounds" with the current OsC as I understand it's capabilities. So I did some searching in the add on sections and there were somethings there to work with.

 

But for a suggestion, specifically to the "put same sub-category in multiple main categories" note. The only way I know how to do this now is to create a similar sub category and place that in an appropriate category with the products being related to the original. That seems to suffice but perhaps the what the author outlined would be better?

 

Secondly, our OOB categories navigation menu is linear. The user has to work his/her way up and down more or less through the hierarchy hopefully finding what they like. The concept of a menu that would expand vertically and horizontally to show the customer his/her choices immediately would be better. Being able to visually scan the page for a wide choice selection seems better than being restricted to the linear approach.


I am not a professional webmaster or PHP coder by background or training but I will try to help as best I can.

I remember what it was like when I first started with osC. It can be overwhelming.

However, I strongly recommend considering hiring a professional for extensive site modifications, site cleaning, etc.

There are several good pros here on osCommerce. Look around, you'll figure out who they are.

Share this post


Link to post
Share on other sites

3. Consider Having A “What’s New” Category Or Filter.

 

The products of a category are displayed using the product_listing module. The code that the product_listing module needs is in index.php

 

index.php

 

Find (about line 160):

 

   if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {

 

Add BEFORE it:

 

   if (isset($HTTP_GET_VARS['new_only']) && !empty($HTTP_GET_VARS['new_only'])) {
     $listing_sql .= " AND p.products_date_added > date_sub(NOW( ), INTERVAL 1 MONTH)";
   }

 

Find:

 

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);

 

Add BEFORE it:

 

   echo '<div class="new30days"><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params('new_only') . 'new_only=true') . '">' . TEXT_LAST_30 . '</a></div>';

 

includes/languages/{english}/index.php

 

Add:

 

define('TEXT_LAST_30', 'Show New Arrivals');

 

 

Not particularly graceful code, but should do the job, can someone test it out...


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

I think what would be nice is to make suggestions to them based on their current cart contents if > 0. So for instance on the product_listing or product_info page instead of just "what others bought who bought this", make it smarter. If they are logged in the suggestions could be based on previous purchases and what is currently in their cart. Maybe even for logged in customers we have a "we picked these just for you" page of similar items to what they also purchased.

 

I also really like the idea of purchase addons. These would be items that enhance what you are currently buying. Let's say you are buying a lawn mower. You might also be interested in a fuel can, or oil, or spak plugs, etc... You could let them purchase them all together from the lawn mower product page. The customer is thinking wow that was easy.

 

Just ideas right now as I haven't had time to play with any code.


Matt

Share this post


Link to post
Share on other sites

3. Consider Having A “What’s New” Category Or Filter.

 

The products of a category are displayed using the product_listing module. The code that the product_listing module needs is in index.php

 

index.php

 

Find (about line 160):

 

if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {

 

Add BEFORE it:

 

if (isset($HTTP_GET_VARS['new_only']) && !empty($HTTP_GET_VARS['new_only'])) {
$listing_sql .= " AND p.products_date_added > date_sub(NOW( ), INTERVAL 1 MONTH)";
}

 

Find:

 

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);

 

Add BEFORE it:

 

echo '<div class="new30days"><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params('new_only') . 'new_only=true') . '">' . TEXT_LAST_30 . '</a></div>';

 

includes/languages/{english}/index.php

 

Add:

 

define('TEXT_LAST_30', 'Show New Arrivals');

 

 

Not particularly graceful code, but should do the job, can someone test it out...

Just tested 2.3.3.4 works fine had to change the code (INTERVAL 1 MONTH) to 1 DAY as most of the products have just been added this week -> here .

link at the top looks a bit funny ....../alice-hairbands-c-57_59.html?new_only=true&sort=2a but not so important


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

fyi - as a quick hack, I have my listings always sorted by products_id desc by default


KEEP CALM AND CARRY ON

I do not use the responsive bootstrap version since i coded my responsive version earlier, but i have bought every 28d of code package to support burts effort and keep this forum alive (albeit more like on life support).

So if you are still here ? What are you waiting for ?!

 

Find the most frequent unique errors to fix:

grep "PHP" php_error_log.txt | sed "s/^.* PHP/PHP/g" |grep "line" |sort | uniq -c | sort -r > counterrors.txt

Share this post


Link to post
Share on other sites

Some random thoughts:

 

1. General, for all visitors: What's New, New Products, Just In, Just Arrived, In Season, Back in Stock

  1. . Also, Specials [on sale], Have You Seen? [a random selection]. [Put time limits on all these things so that something that's been around for years doesn't show up, and make random picks if there are a lot of new products, not just the very newest. New product IDs automatically eligible, unless you flag one as ineligible because it's a trivial accessory, and can manually flag as eligible old products that are again available after an absence.] Featured Product, Product of the Month, Featured Category, Category of the Month [manually selected product or category of products for a limited time].

 

2. For a specific customer (based on their previous shopping record, both purchases and products looked at -- requires access to their purchase records AND tracking history): You might be interested in. [some people might be creeped out by your remembering what they've looked at... let them turn off that feature or clear the history. Requires the store to determine categorie(s) to look at based on customer record. Allow a customer to turn off a category they're not interested in.] Featured Product, etc. based on customer profile (interest area).

 

3. For a specific customer (based on the shopping of other customers): Others have bought, Others have looked at. [Requires a massive search of customer records, and should be from customers with a similar profile (purchases and browses).]

 

4. Once a product is in the cart: Other customers also purchased [search all customer records for purchases of this product], Some accessories you might need [manually build a list of suggested accessories -- not just categories but specific products that you know are needed or are at least compatible].

 

For searches of customer purchase and browse records, weight recent activity more heavily than older activity. Someone might not be interested in something they did 5 years ago. Eventually discard browse records of more than a certain age and discard or archive purchase records of more than a certain age. If you sell clothing, and it's November, you don't want to be promoting swimwear -- if someone purchased or browsed winter coats recently, you would want to weight that more heavily. Yet, you need a way come, say, April or May, to start weighting previous swimwear activity more heavily and stop suggesting winter coats (seasonal products need a multiplier or something to boost their weighting at the right time of year).

Share this post


Link to post
Share on other sites

So, what can we do in osCommerce to make it more user-friendly in terms of this subject.

 

I used this contribution in my old 2.2 shop - More Category Boxes. It was very useful in organizing categories/products. To see something similar check out - Fire Mountain Gems. I am going to try to adapt it to my new 2.3.x shop... hopefully! They also have a pretty decent category/search feature(s) implemented. Check it out.

 

This was another useful contribution that I am surprised did not become a "built-in" feature - Optional Related Products.

 

Besides our "What's New" feature I think a "Back in Stock" feature might be useful.

 

I also like the idea of a "Recently Viewed" feature and also think a "Compare Items" might be useful.

 

Thanks for the read Gary... very interesting. :thumbsup:


- :: Jim :: -

- My Toolbox ~ Adobe Web Bundle, XAMPP & WinMerge | Install ~ osC v2.3.3.4 -

Share this post


Link to post
Share on other sites

A great topic has been started but I bet it causes an argument. Everyone will have a different opinion.

 

For my ten peneth worth, what ever is decided must make a menu that is easy to modify and easy to add extra pages to, apart from categories. The menu must be something that can be altered to match a sites style easily without too much messing around. I do like the thought of oscommerce having what could be described as a horizontal megamenu type thing. There are, or were lots about, and having the ability to show customers all the categories and sub categories in one easy to find place seems like a good idea. There were some good ones around that worked withall sorts of hover effects. The more information you can get into a menu, the easier customers will find the product they require.

 

As to the other bit of the topic that has arisen is cross selling products. I have had this on my site for years and once its set up it does work well. I also like the option to have the customers also purchased box beneath the products, as this allows purchasers to see what others may have bought. There is also the option to have somethuing like this on the cart page as a reminder to the customer that other products are available. Being able to show additional products or cross sold products at a discount when purchased with another product will also be good. The easier these are to set up in admin will be better, and even if there is a dropdown list of all the available products on the create product page, that would be better than having to go to a seperate page to add cross sell items.

 

From a store owners point of view, I want my customers to be able to find products easily, and have a simple way of buying these products. After all that is what we are hear for, to sell stuff. If we can do something that will make the whole process easier for customers then I say lets sort something and do it.(well the coders do it)

 

Hope these thoughts help.


REMEMBER BACKUP, BACKUP AND BACKUP

Get the latest Responsive osCommerce CE (community edition) here

It's very easy to over complicate what are simple things in life

Share this post


Link to post
Share on other sites

I cannot see any addons that are presently at the addons area being a part of the osCommerce core code. Everything needs to be coded in a consistent manner that is useable within osCommerce. Some addons are very good, and work can be based on them; most addons are very poor and need to be avoided (other than the idea behind them).


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

For the "recently viewed" can we do something with the navigation class ?

Anyone got any thoughts on that?


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

@@burt

 

Not sure I understand - "do something with the navigation class", but I do like the idea of a recently viewed feature.

 

A few sites I have shopped at online implemented some nice ones. One site had an infobox style under the left categoies and showed a thumbnail and product name. Another had similar along the bottom of the page. Both of which were clickable to go to a full page which had a clickable checkbox to compare items side by side, kind of like having the different product info pages listed next to each other in columns. I thought that was an awesome feature.


- :: Jim :: -

- My Toolbox ~ Adobe Web Bundle, XAMPP & WinMerge | Install ~ osC v2.3.3.4 -

Share this post


Link to post
Share on other sites

My first thought would be there are two aspects to this

 

1: you recently viewed this = so we recommend this (cross sell) various products

 

2: still interested take a look at your recently viewed items = navigation help

 

Just looking at ebay how they do.

 

I think in larger shops it would be very helpful to store the recently viewed as back clicking and trying to find a product again can take time for a quick comparison and shoppers do not have time :rolleyes: .

 

The recently viewed should be present in my opinion most of the time to be effective which makes me think of a box module with scroller / slider .

 

Just a few first thoughts.

 

Maybe would be possible to code a link to appear on the right hand side of the breadcrumb RECENTLY VIEWED but a lot of shop owners do not use the breadcrumb I suppose though if the code existed it could be placed elsewhere??

 

Thinking out loud here I think I would prefer a complete recently viewed page where I see 5- 10 products that I have looked at the number of items adjustable from admin in the Configuration/ Maximum Values.

Getting greedy now why not a box module and a page :D


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

Recently viewed:

 

1. It should be easy to get back to products (and maybe categories) that you've looked at, including earlier sessions (don't hold on to too many or for too long).

 

2. One of the major reasons for wanting to go to Recently Viewed pages is to compare products. Being able to do a split screen (two or even three products side-by-side) to compare would be great. Maybe as frames or iframes (with scroll bars) and Responsive Design to allow them to fit the smaller space? Having reasonably consistent layouts makes comparisons easier. Perhaps you could have a "comparison" page layout that would lay out everything in a consistent manner, adapted for a narrower viewport? Don't forget to make it easy to take one of the products out of the cart and put another in (clearly mark which one(s), if any, are already in the cart).

 

3. The same thing could be done to allow comparisons of products already in the cart. Some people like to put a bunch of things in the cart and then compare them to decide what to keep and what to put back on some random shelf. Accommodate their desires and working methods as much as possible, not the other way around.

Share this post


Link to post
Share on other sites

I cannot see any addons that are presently at the addons area being a part of the osCommerce core code. Everything needs to be coded in a consistent manner that is useable within osCommerce. Some addons are very good, and work can be based on them; most addons are very poor and need to be avoided (other than the idea behind them).

 

Yet when on the main osc website, the 7000+ contributions are used as a selling point for osc... just saying...


Now running on a fully modded, Mobile Friendly 2.3.4 Store with the Excellent MTS installed - See my profile for the mods installed ..... So much thanks for all the help given along the way by forum members.

Share this post


Link to post
Share on other sites

as for a good menu to integrate in oscommerce, I personally like the ubermenu megamenu plugin for wordpress

http://wpmegamenu.com/

 

if you would have something along those lines in osCommerce with a control panel that I think would be very powerfull and flexible to meet a lot of peoples needs.


KEEP CALM AND CARRY ON

I do not use the responsive bootstrap version since i coded my responsive version earlier, but i have bought every 28d of code package to support burts effort and keep this forum alive (albeit more like on life support).

So if you are still here ? What are you waiting for ?!

 

Find the most frequent unique errors to fix:

grep "PHP" php_error_log.txt | sed "s/^.* PHP/PHP/g" |grep "line" |sort | uniq -c | sort -r > counterrors.txt

Share this post


Link to post
Share on other sites

4. Suggest both alternative and supplementary products on product pages

 

I believe the "also purchased" module is useless => why would I want to see that someone who bought X also bought Y.

 

We need to look at some highly integrated system to link products:

 

a. This product is "better" than the one you are looking at

b. This product is a "alternative" to the one you are looking at

c. This product does the same job but is "cheaper" than the one you are looking at

d. These products are also recommended when purchasing this product

 

This is already mostly coded, but needs more development time.


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

Prototype "recently viewed" box.

 

Very quickly coded, and untested!

 

Does it work ?

Seems to be adding the link twice but other than that is definitely following me -> here . going to have to click a bit more


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

Seems to be adding the link twice but other than that is definitely following me -> here . going to have to click a bit more

 

Just thinking did you add the second link extra to use as image link??


To improve is to change; to be perfect is to change often.

 

Share this post


Link to post
Share on other sites

@@joli1811 - I think it's something to do with the cPath and not cPath. So the link is twice (once with and once without). I'll need to take a look at it again.

 

 


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

Could someone mockup the perfect product info page (including other products, similar products, alternative products, and all the other stuff talked about. If store-owners can decide on an end result, code work can start on making it happen...


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

THIS CHANGE NOW INCLUDED IN THE DOWNLOAD - DISREGARD THIS POST

 

@@joli1811

 

includes/classes/navigation_history.php

 

ADD:

function filter_product_parameters($parameters) {
$clean = array();

if (is_array($parameters)) {
reset($parameters);
while (list($key, $value) = each($parameters)) {

if (strpos($key, 'products_id') !== FALSE) {
$clean[$key] = $value;
}
}
}
return $clean;
}

 

 

Same file:

 

Find:

 

if (basename($PHP_SELF == FILENAME_PRODUCT_INFO)) {
$this->products[] = array('page' => FILENAME_PRODUCT_INFO,
'mode' => $request_type,
'get' => $this->filter_parameters($HTTP_GET_VARS),
'post' => $this->filter_parameters($HTTP_POST_VARS));

}

 

Change to:

 

if (basename($PHP_SELF == FILENAME_PRODUCT_INFO)) {
$this->products[] = array('page' => FILENAME_PRODUCT_INFO,
'mode' => $request_type,
'get' => $this->filter_product_parameters($HTTP_GET_VARS),
'post' => $this->filter_parameters($HTTP_POST_VARS));

}

 

That -should- now only pass the products id into the _GET parameters. Meaning the infobox should now show only 1 link per product...could you test it. You might need to add this somewhere (maybe in header.php), then refresh a couple of times, then remove it:

 

$navigation->reset();

 

To reset the navigation so you can test the changes.


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

Latest full version of recently_viewed, attached to this post. This includes the fix as per the previous posts.

Please could someone other than @@joli1811 try it and report back.

 

Big thanks to John @@joli1811 for being the volunteer guinea pig :D

 

Latest Download:

http://forums.oscommerce.com/topic/395130-open-discussion-on-better-navigation-and-categories/page__st__20#entry1685468


Help shape the future of Phoenix; join the Phoenix Club

Share this post


Link to post
Share on other sites

Tested and works fine. Environment: osCommerce 2.3.3.4 on Apache/2.2.22, MySQL 5.5.34, PHP 5.4.6

 

Suggestions:

 

1. Limit the number of products shown. This list could get really long on a big store. Five is probably a good number, but I would make it configurable. You could also have a link to a page that shows the entire history if the customer wants to see more.

 

2. Add some space between product links so they don't all run together.

 

3. Most sites that have these include the product image. Maybe make that an option too.

 

4. A box in the center column allows you to show off more products with images. I prefer this for usability. Another option.

 

Regards

Jim


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

Share this post


Link to post
Share on other sites

×