Tech Sheet

Our backend is designed to be distributed and scalable. Written in Clojure and running on the JVM, our API servers respond to most queries without accessing anything except RAM. There can be any number of API servers, each of them servicing any set of customers. Each API server can independently route requests to any other server. Data indexing and server/software upgrades are performed transparently, with spare servers providing continuous service. Servers, processing queues, and recommendation information are synchronized using Redis, while indexed search engine data can be stored either in S3 or on a shared filesystem.

We implemented two search engines: one is word-based, with unique graph-based typo correction and support for a morphological dictionary, and another which is n-gram-based, with our own unique ranking algorithm (based on the Smith-Waterman algorithm used for genetic sequence matching). The word-based engine performs better for inflected languages, while the n-gram engine is better for languages with simpler grammar and databases with many product codes.

We solved many hard problems in E-commerce search: result faceting, multi-valued attributes, product variants with price ranges, category trees, recommender systems with changing product databases, gathering feedback data, unified product feed format, and much more. As a result, we have extensive know-how in building product search, navigation and recommendation systems.

Implementation:
Shopimate™ implementation time depends on the level of cooperation from the store’s IT department. It’s possible to carry out the entire implementation in less than a week and the process can be summed up in three steps:

1) Preparing the OPFF or XML file with the products, attributes and other necessary data.
2) Customizing the search results page view.
3) Appending the HTML code of the shop or shops webpages with the JavaScript generated by Shopimate™.

After integration, the Shopimate™ JavaScript code handles the entire result navigation – only actually putting products into the basket by the shopper or viewing the product page engages the store’s code.

Sample code and a full-set of documentation, including a FAQ and quick start guide are also provided to every client during implementation.
 

API:
Shopimate™ relies on the product feed and works with the store’s frontend automatically. Alternative integration can be achieved via its API.
 
OPFF:

The Open Product Feed Format is a recommended data-exchange format for Shopimate™. It solves the problem of efficiently transferring product-related data across the web. It allows companies to depart from nonstandard and internally incompatible XML files in favor of JSON. It is a flexible and expandable open format – the full set of documentation is available online:

See OPFF specification [PL]
Back to top
This website uses cookies. By continuing to use this website you are giving consent to cookies being used. More.