Need tips on a big project

Author Message

Jorge estévez

Sunday 01 July 2007 3:59:56 am

Hi,

I have this big project in hands:

4 languages
4 designs
250 000 products

I will be doing lots of studies : Usability is the main issue and within usability comes findability, to be able to find products for different needs in the site products must be classified not only by their known keywords but also by color, manufacturer, family of products, design, material, etc. (metadata)

This will not only help me develop new ways to find products in the Web site but show different related products by different classification to the user.

As categories for objects could be quite a lot (multiple categorization for each object);

How do I develop the best solution to "activate" an object into several categories?

Which is the efficient way for administrators to classify products when creating and inserting their data? I will need a solution that will shorten the mouse-clicks and time to set the object into many categorizations.

250 000 products and their possible relations is not a joke at all, so please if someone out there has any hints in a project similar to this one I will appreciated any word of advice before I start, any guidelines, experience, list of do and do not, a must read, anything...

I can also be reached at yamiletms [at] cubarte [dot] cu

Thanks, Jorge

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Paul Borgermans

Sunday 01 July 2007 11:10:52 am

That's al lot of objects! You will need top notch hardware for this

For the user side: to set up an efficient way of finding, your best bet is actually to use a form of facetted navigation/search .... some major e-commerce sites use this. The user side may be implemented with the Solr search plugin as faceted navigation on meta-data is one of the main goodies it provides. It will be released soon now. If you want early access code, mail me. Another advantage of this plugin is that it stores the index outside of the eZ Publish DB.

For the administrators, you can use object relations or select fields, with a customised edit template for quickly adding the meta-data. Object relations are the way to go for meta-data like manufacturer, family of products, categories. For the others, maybe select fields are more appropriate.

In order to keep performance levels, use either manufacturer or categories as main nodes. The number of children you can have should not exceed a few (maybe tens of) thousands per subtree.

I hope this helps you a bit
Paul

eZ Publish, eZ Find, Solr expert consulting and training
http://twitter.com/paulborgermans

Xavier Dutoit

Monday 02 July 2007 3:07:07 am

Hi,

Good suggestions of Paul.

For the main node, I'd suggest to use the category, as it fits better the category/subcategory logic than the manufacturers (assuming you don't have sub manufacturers).

As for the edit of the template, I'd suggest to have some kind of ajax systems, as on one of my web sites with a long list of potential related content, it's becoming quite slow to fetch the list and display it with the checkboxes. Shouldn't be too complicated (I had a something that got stuck in a beta stage).

X+

http://www.sydesy.com

Betsy Gamrat

Thursday 12 July 2007 10:50:54 am

Hi,

This is a really interesting challenge.

I would consider the number of manufacturers, products, categories, families, designs, materials, etc. prior to choosing a navigation scheme.

For administration, I would probably organize the products under main nodes of manufacturers, then categories. For the site visitor view, I would offer the products under both category and manufacturers.

I would also consider dividing the system to make it more managable. 250 000 products is a huge number, and most site visitors would only access a subset of them. Based on the target market, it may be good to create a portal approach, where a top-level site offers access to a group of subdomains, which group related products. This would greatly reduce the size of the database needed to run the system, and improve performance. Development would not be significantly impacted, because the same code could manage all the subdomains.

Good luck!

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 21 2025 17:15:22
Script start
Timing: Jan 21 2025 17:15:22
Module start 'layout'
Timing: Jan 21 2025 17:15:22
Module start 'content'
Timing: Jan 21 2025 17:15:23
Module end 'content'
Timing: Jan 21 2025 17:15:23
Script end

Main resources:

Total runtime0.9113 sec
Peak memory usage4,096.0000 KB
Database Queries64

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0099 595.0469151.2109
Module start 'layout' 0.00990.0030 746.257836.6484
Module start 'content' 0.01290.8975 782.9063660.5313
Module end 'content' 0.91040.0009 1,443.437515.8516
Script end 0.9113  1,459.2891 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00300.3327160.0002
Check MTime0.00130.1408160.0001
Mysql Total
Database connection0.00090.096410.0009
Mysqli_queries0.855293.8475640.0134
Looping result0.00060.0700620.0000
Template Total0.878496.420.4392
Template load0.00180.199520.0009
Template processing0.876596.185120.4383
Template load and register function0.00020.026910.0002
states
state_id_array0.00100.107610.0010
state_identifier_array0.00070.072820.0003
Override
Cache load0.00140.1588400.0000
Sytem overhead
Fetch class attribute can translate value0.00080.092640.0002
Fetch class attribute name0.00090.098470.0001
XML
Image XML parsing0.00420.460140.0010
class_abstraction
Instantiating content class attribute0.00000.001370.0000
General
dbfile0.00510.5552290.0002
String conversion0.00000.000840.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
4content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
7content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
3content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
3content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 19
 Number of unique templates used: 6

Time used to render debug report: 0.0001 secs