Skip to main content

Migration from the old documentation

The previous documentation contained claims that did not match the actual implementation of Neuroon. This page lists those discrepancies and maps the old URLs to the new ones. We've published it as its own page so any integration based on the old docs can be corrected systematically.

What the old docs said → reality

TopicOld docsCurrent reality
Widget Token generationThe client signed the token with HMAC-SHA256 from its serverThe token is opaque, issued by Neuroon. TTL 24 h. See Widget Token
Widget distributionnpm install @neuroon/widgetCDN-only, versioned with SRI. The repo package is not published to the registry. See What's not supported
Global widget APIwindow.NeuroonWidget.init(), .search(), .destroy()Doesn't exist. Configuration only via data-* attributes
JS callbacksonSearch, onResultClick, onFilterChange, onError as extension pointsNot wired up. TypeScript types exist but there is no public extension point. Use DOM CustomEvents
Official SDKs"PHP SDK", "Python SDK", "Ruby SDK"No official SDKs. Any HTTP client + JSON
API versioning/v1/, /v2/No URL versioning. Compat by contract
Auth rate limit"JWT per request to /api/search"/api/widget/* uses X-Widget-Token, /api/plugin/* uses X-Shop-API-Key. JWT only on /api/search/* with OAuth2
Origin validationNot documentedYes, it exists: 403 Origin mismatch for browsers; "no Origin = allow" for server-to-server clients
Sync maximum"10,000 products per request"500 products per request. See ShopRequestDTO.java
FULL vs INCREMENTAL syncNot differentiatedINCREMENTAL (upsert by externalId, recommended) vs FULL (deletes the index + reinserts)
Indexing"Immediate after 200 OK"Eventual consistency: 2–5 seconds before the product is searchable
Widget languages"12 languages"9 (es, en, fr, de, it, pt, ca, eu, gl). es and en eager; rest lazy
ThemeDark onlyDual: dark + light, with 60+ --nrn-* CSS vars (RGB-triplet format, --nrn-primary: 6 182 212)

URL mapping

Old URLs that no longer exist. Each one redirects (or should redirect) to the new destination:

Old URLNew destinationStatus
/getting-started/get-started/quickstartActive redirect
/widget/install/widget/installation/script-tagActive redirect
/widget/advanced/javascript-api/get-started/whats-not-supported#global-widget-api-on-windowRemoved
/widget/callbacks/get-started/whats-not-supported#public-js-callbacksRemoved
/widget/hooks/get-started/whats-not-supported#public-js-callbacksRemoved
/api/auth/hmac/authentication/widget-tokenConcept removed (Token is opaque, not HMAC)
/api/sdks/php/get-started/whats-not-supported#official-sdksRemoved
/api/sdks/python/get-started/whats-not-supported#official-sdksRemoved
/api/webhooks/outbound/get-started/whats-not-supported#outbound-webhooksRemoved
/api/v1/*/api/*Renamed (no URL versioning)
/integrations/wordpress-pluginWordPressActive
/integrations/dnnDNN RecipeNew page

Anchors for redirects

These anchors exist in What's not supported specifically so that redirects from the old URLs land on a useful destination:

  • #widget-npm-package
  • #official-sdks
  • #outbound-webhooks
  • #global-widget-api-on-window
  • #public-js-callbacks
  • #http-api-versioning

Why did all of this change?

The previous documentation was built in parallel with prototypes that never reached production. As the product evolved, parts of the docs ended up describing aspirations instead of actual implementation. This version, tagged verified_at: 2026-05-06, has been verified against the source code: every technical claim links to the path:line that backs it.

If you find an additional discrepancy, open a ticket with Support and we'll fix it.

Further reading