What is Luigi's Box?
Luigi's Box is a product discovery suite for e-commerce. It provides tools, code and management utilities which let you build fast and relevant search, recommenders and product listings (think about category or brand listings). Luigi's Box relies on AI and most importantly on the feedback loops that the users create. A fundamental foundation of Luigi's Box is the analytics service which feeds the behavior of your users into the AI models which learn and self-tune themselves to how your users behave, search and navigate the products.
This documentation will help you understand the full scope of the integration and help you choose the best way to integrate for your use case.
For successful integration, you need to integrate several different processes. We list the most used options for each process here and discuss its pros and cons. We are available at support@luigisbox.com if you need a consultation or feel that you have a special use case that is not covered here.
To complete the integration you have to integrate 3 different aspects of the service, preferrably in the order that they are outlined here.
- Send analytics events for the feedback loop
- Deliver product data to Luigi's Box
- Deliver search, listings and recommendations to the end users
Analytics
Search analytics is the foundation of a successful integration. It provides data for the AI for all services (autocomplete, search, recommender, product listings) and on the other hand lets you see the impact that Luigi's Box has on your e-commerce store monetary performance. Analytics should be the first thing you integrate even before you start to integrate the actual product discovery services.
DataLayer-based analytics
The DataLayer-based collection method offers efficient tracking through integration with Google Analytics' ecommerce events, allowing Luigi’s Box to capture relevant data pushed to the dataLayer.
This approach is ideal for users already pushing ecommerce events to the dataLayer. For more details see DataLayer-based collector.
- Seamless integration with Google Analytics for enhanced ecommerce tracking.
- Flexibility in how events are pushed, with options for both gtag manager and native dataLayer.push.
- Reliable tracking of ecommerce interactions across multiple event types (e.g., search, recommendations, add to cart).
- Still in beta; requires initial support for setup and configuration.
Events API
The Events API is designed for more advanced use-cases such as mobile apps or for demanding websites which do not want to pull 3rd party script dependencies.
You can find more details in its separate documentation here: Events API
- Absolute control and customisation over what is being tracked.
- You depend on no 3rd party script, there's no extra weight added to your website or mobile app.
- Works for websites and mobile apps.
- Works reliably even after major redesigns and web/app changes.
- Usually requires more development than using the other options.
Analytics implemented by Luigi's Box team
For less demanding customers, or for customers without a dedicated development team, Luigi's Box team can implement the analytics tracking completely on our side, without any development effort on your side. The integration will depend on the specific HTML and CSS structure.
If you are interested in this option, contact us on support@luigisbox.com. The integration is usually done for free.
- Absolutely no development required on your side.
- Fast, you can start seeing results in analytics after 2 business days.
- Depends on the specific HTML structure, it can and will break after redesigns.
- You have to include a tracking script weighting around 30kB.
JSON+LD (deprecated)
By generating a simple descriptive standard JSON you will let Luigi's Box and other services understand the content on your website. In this JSON you will describe the search and/or recommendation results that your users see on the web.
You can find more details in its separate documentation here: JSON+LD Analytics (deprecated)
- Easy and fast to implement (based on the feedback from hundreds of customers)
- Information about search/recommendation are contained within a single logical structure that you can generate alongside the user-visible UI
- The generated JSON is resilient to changes in HTML and CSS. You can change the visuals and design and data collection will work reliably.
- You have to include a tracking script weighting around 18kB.
- JSON+LD can only be used for web tracking (no mobile apps).
Data synchronization
Luigi’s Box needs to have up-to-date data about products, categories, brands and (optionally) articles. You can use our platform connectors on supported ecommerce platforms, feeds or API to synchronize the data. To help you decide, here are the main differences.
Content Updates API
You will be pushing data to our servers. There is practically no delay in data synchronization. The communication is efficient, you are only sending updates to products when they change, there is a lot less data transfer between our systems.
Integrating via the API will probably take much more time on your side than generating the feeds. You’ll have to identify all the codepaths that trigger product change and react to them by updating the product in Luigi’s Box via API.
You can find more details in its separate documentation here: Content Updates API
- Real-time synchronization.
- Requires non-trivial development on your side.
Feeds
We will periodically pull data from your servers: we will download a file (XML or JSON) and make its contents searchable. If there is a change to the product, we will not know about it until the feed is processed next time.
We can schedule feed processing at arbitrary intervals: most of our clients use 3 hours intervals, we have some clients where we process the feeds every 30 minutes. More frequent processing = higher costs on our side = higher price for the client. Exact pricing depends on the volume of the data.
Keep in mind that it’s you who have to generate the feeds. If you ask for 30m processing, you will have to regenerate the feeds every 30 minutes and probably incur a higher cost on your side.
You can find more details in its separate documentation here: Feeds
- Relatively easy and fast to implement.
- Slow data synchronization, can lead to incorrect product data displayed in search.
Platform connectors
You can use a plugin developed for the platform which takes care of synchronizing the data with Luigi’s Box services. If your store is running on a supported platform, this is the best and recommended solution.
Supported platforms:
- Shopify
- Shoptet
- Shopware
- Commercetools
- WordPress/WooCommerce
- Prestashop
- Contentspeed
- BSShop
- Creativesites
- WPJ
Service integration
Backend integration
This option is usually very easy to implement, you only need to change the API call to Luigi’s Box API and update the filter rendering code.
- This method is relatively easy to implement. Nothing major in your rendering has to change, you are still working with the data structure as you have it stored in your database. You only change the API call to Luigi’s Box API and update the filters rendering.
- This integration allows you to handle different product pricing levels. Since you are loading the data from your database and you know which user is signed in, you can render the correct product pricing. You don’t have to send different product prices via feeds or API to Luigi’s Box. Luigi’s Box doesn’t even have to know about different prices.
- You have full control over all aspects of rendering
- Once you integrate the search results page rendering, you can use the same code to render category listings and get additional source of revenue.
- If we release a new feature that requires updates to the API calls, you have to take care of the implementation
Frontend integration
Integrated by yourself using Luigi’s Box frontend libraries:
- Autocomplete.js
- Search.js
- Recco.js
The libraries are:
- Designed for rapid development
- Integrate directly with Luigi’s Box APIs
- Support the latest API features
- Most of the advanced features that would have required development time are simply configurable.
- We provide upgrades of the service. If there’s a new feature released which requires updates to the integration, we can just turn this feature on.
- Libraries are written in vue.js and may not play nicely with web apps written in React
Hybrid integration
You can integrate on the frontend using Luigi's Box libraries and provide some parts of the data dynamicaly by calling your APIs which provide pricing or availability data.
Mixed integration
You can mix different integration types and integrate some services on your backend, and some on the frontend. The services integrated on the frontend can be managed by Luigi's Box team to save you development effort.
For example, you can integrate search and product listing on your backend because that is the fastet option for you to develop and you can integrate autocomplete on the frontend to get a performance boost and avoid proxying requests via your server.
Summary & recommendations
Service | Recommended integration type | Summary |
---|---|---|
Analytics | JSON+LD | Using the annotations is the most robust solution which will avoid analytics breakages in the future as you keep developing your frontend. |
Autocomplete | Frontend | We recommend integrating autocomplete on the frontend using our autocomplete.js library. It provides beautiful visual appearance out of the box and seamlessly integrates with all Luigi's Box features. |
Search | Backend | We recommend integrating search on your backend because that is usually the fastest way from the development perspective. You will get full control over the visual and features and most importantly, you will keep your search UI consistent with the rest of your ecommerce site. |
Product listing | Backend | We recommend integrating listings on your backend because that is usually the fastest way from the development perspective. You will get full control over the visual and features and most importantly, you will keep your listings UI consistent with the rest of your ecommerce site. |
Recommendations | Frontend | We recommend integrating recommenders on the frontend since that gives you most flexibility and has no impact on your performance and resilience. Recommenders are not critical for rendering and by offloading the rendering to frontend, you can allocate your server performace to other tasks. |