eCommerce

Funny Bunny.

The customer.

The "Funny Bunny" toy stores are owned by the company LIMNIDIS SA, which is active in the Greek market and in the toy field since 1971 with specialized stores.

Today Funny Bunny operates in the largest cities of western Macedonia with organized stores of toys and Bebe items. Our goal is the best service and satisfaction of our customers and our little friends with quality and safe products.

The challenge.

The company asked Web Expert to create an online directory, where the user will be able to view the entire catalog of products online, add to their favorite products and be able to ask for information about them.

Web Expert has created a fully functional, dynamic, product catalog, with an excellent user experience and many features. A particular challenge was to achieve the maximum possible optimization in speed, due to the large volume of products, the daily synchronization with ERP and the peculiarities of WooCommerce.

The solution.

In the project we had three main challenges. Large data volume, speed and multiple ERP & CRM systems.

WooCommerce is a remarkable e-commerce system but it is quite limited due to the primary structure of WordPress. A large volume of data (> 50,000 products) with several properties and classifications, creates large tables (table wp_post_meta> 2GB) and long delay in executing queries. A simple search for a product based on title or SKU joins large panels (left join) and delays the response, resulting in answers in 4, 6, even 20sec. To solve the problem we created intermediate tables, where we gathered the most important information, and merged wp_posts with it.
Result; Find a product with SKU in 0.01sec. The same buffer rationale applies to WooCommerce 3.6, but we had to fix our problem in version 3.4 and 3.5.

Is it enough; No. Plugins do not work with the same logic we applied. So we hooked up several plugins (mostly ajax filters), modified WordPress functions and provided hand coded, basic information to reduce requests to the database. The result of all the above, combined with caching, amazing! We have a fast, convenient eshop with many products.

Another issue we had to deal with is WooCommerce synchronization, with multiple ERP & CRM systems. To solve it, we developed special WooCommerce & ERP interface bridges, where all WooCommerce is managed by ERP. The eshop synchronizes daily with all the information of the products, the categories of the catalog, the photos, etc. The clientele and the point system synchronize respectively with a corresponding bridge, while there are also combined routines.

Finally, the dynamic menu is a remarkable effort. The main menu is created with a mechanism, depending on the availability of products, dividing and organizing it into categories / subcategories. It is understood that the get_terms function was not simply used in each category, because we are talking about a large amount of information. A routine has been created, where it checks all the categories, subcategories and adds and removes nav_menu_items, without compromising the custom links or nav_menu_items introduced by the member area.

Technologies.

Feedback

Flawless in their work. Excellent cooperation without any problem. 100% recommended.

The solution

In the project we had three main challenges. Large data volume, speed and multiple ERP & CRM systems.

WooCommerce is a remarkable e-commerce system but it is quite limited due to the primary structure of WordPress. A large volume of data (> 50,000 products) with several properties and classifications, creates large tables (table wp_post_meta> 2GB) and long delay in executing queries. A simple search for a product based on title or SKU joins large panels (left join) and delays the response, resulting in answers in 4, 6, even 20sec. To solve the problem we created intermediate tables, where we gathered the most important information, and merged wp_posts with it.
Result; Find a product with SKU in 0.01sec. The same buffer rationale applies to WooCommerce 3.6, but we had to fix our problem in version 3.4 and 3.5.

Is it enough; No. Plugins do not work with the same logic we applied. So we hooked up several plugins (mostly ajax filters), modified WordPress functions and provided hand coded, basic information to reduce requests to the database. The result of all the above, combined with caching, amazing! We have a fast, convenient eshop with many products.

Another issue we had to deal with is WooCommerce synchronization, with multiple ERP & CRM systems. To solve it, we developed special WooCommerce & ERP interface bridges, where all WooCommerce is managed by ERP. The eshop synchronizes daily with all the information of the products, the categories of the catalog, the photos, etc. The clientele and the point system synchronize respectively with a corresponding bridge, while there are also combined routines.

Finally, the dynamic menu is a remarkable effort. The main menu is created with a mechanism, depending on the availability of products, dividing and organizing it into categories / subcategories. It is understood that the get_terms function was not simply used in each category, because we are talking about a large amount of information. A routine has been created, where it checks all the categories, subcategories and adds and removes nav_menu_items, without compromising the custom links or nav_menu_items introduced by the member area.