Prestashop is one of the top open source eCommerce platforms; especially popular in European Union Countries
Recently a client from Paris awarded a complex jewelry ecommerce website development to TransPacific Software.
Most of the Jewelry eCommerce sites have “Build an Engagement Ring” feature but this one had multiple create your own jewellry options.
One of the toughest part of developing such a website is creating a seamless user experience.
Creating your jewelry is generally 3 step process . Except in earring which is a four step process as two identical diamonds need to be selected.
At no point of time a user making her jewelry be confused or get jumbled up in the process.
Session management forms the most critical part of “build your jewelry” process. A user may take multiple path to create her jewelry.
For example she may start by selecting a diamond than setting and but later decides that diamond needs to be changed.
Or a user may select a diamond and decides to make an earring . Adds that diamond in earring ; here the system will auto detect a matching pair diamond and gives an option to user to select the second pair
Or a user may select a diamond than a ring and decides to abandon the process and moves to create a pendent.
There could be umteen such possiblities and permutations ; to manage these user session management is criticle.At no point of time diamonds selected should mix up .
- Once user complete any one of above flow we push cookie data in php session variable for further use like when user wants to change product from cart page.
- When user clicks on add to cart we push cookie data to session and clear that cookie
- And when user clicks on change from cart page we push session data back to cookie to regain all flow steps, user selected filters and products.
To describe a product Prestashop uses two variables namely attributes and features. Attributes are variants of a product where as features are some more info on the product.
- Attributes are options available for customers to choose from when buying a product. For example, if Earring has different closure types such as alpha, stud then each closure is an attribute.
- Product features are characteristics of products that will be shown in the detail page when viewing a product in store. for eg. Ring has metal, style, compatible shapes etc. so all this values are stored as features. Some of this features are used for filtering results such as gender, metal and styles.
Jewelry has unusually high number of features eg. metal, style, gender etc. To speed up the query apart from storing these features in default Prestashop table a consolidated custom table was created wherein the features which were required in filters were saved. This avoids unnecessary left joins within tables making the system much faster and user friendly.
- We have removed some unwanted left join queries to improve speed (such as manufacturers suppliers which were not needed )
- As we have use features for data filtering querying features table for each filter adding heavy load on mysql server for this we have created temporary table for feature. So filter related query will go on product with temporary table.
- Also we have switched on the cache and template compilation from prestashop admin.
Check out the demo on : prestashop.transpacific-software.com/en/