🚨

Critical Security Migration

The luigisbox.com domain is compromised. Immediate action is required.

1. Update API Base URLs

Replace the base URL for all API requests (Search, Recommendations, Analytics):

https://live.luigisbox.com
➡️ https://live.luigisbox.tech

2. Replace Frontend Script

The .com script is no longer safe. Replace it with the secure version immediately:

[OLD - Delete from site]
<script async src="https://scripts.luigisbox.com/LBX-123.js"></script>
[NEW - Secure Version]
<script async src="https://scripts.luigisbox.tech/LBX-123.js"></script>

3. Update CSP & Firewalls

If you use a Content Security Policy, whitelist the new domain to prevent the browser from blocking the connection.

script-src https://scripts.luigisbox.tech;
connect-src https://live.luigisbox.tech;
⚠️
Emergency Action: If you cannot update the code right now, remove the existing Luigi's Box script until the migration is complete to prevent unauthorized code execution.

Support: support@luigisbox.net MODIFIED: 12/17/2025

Category listing with search.js

Search.js can be used to render category listings. Category listing is a search, where the search input consists of only filters (to set filter for the category) and no query. If you wanted to list all products belonging to a category via API, you would send a request like /search?f[]=category:T-shirts. This request would return a list of all products for that category, sorted by Luigi's Box AI and respecting all merchandizig rules that you have set up.

There is almost nothing special about category listing from the initialization perspective. Follow the same setup as when initializating search including the loading placeholder for best UX.

IntentFilters: {
  category: 'T-shirts'
},

To set the filter for category, use a special-purpose IntentFilters configuration. Intent filters are designed to only persist for the duration of user's intent. Browsing the category listing is an intent and when the user decides to start searching, the intent changes, and the intent filters void. Note that the intent is an implicit concept inside search.js and there's no way to control it from outside.

If possible, use a more precise filtering by category ID, instead of its name.