Manual control

📘

To wait until Findify is loaded push you callbacks into window.findifyCallbacks array.

window.findifyCallbacks = [
  (findify) => ...your code here
]

Findify' integration script exports to window.findify some API, which allows managing widgets, listen and trigger events and use analytics externally.

ElementDescription
findify.analyticsThe @findify/analytics instance. It allows triggering events from outside components and listens for them.
findify.configThe immutable configuration of your store. Use findify.config.toJS() to see it as normal Javascript object.
findify.emitEmit system events, such as 'show mobile facets'
findify.listenListen for system events
findify.invalidateInvalidates modules cache[only for Devtools]
findify.widgetsThe collection of methods to create/modify already injected widgets. Read more below

Manage widgets

Attach new widget

window.findify.widgets.attach(selector, type, config)

selectorCSS selector or DOM node where to attach the widget
typeThe type of widget - autocomplete, recommendation, search, smart-collection
configThe configuration which will extend the default configuration for this type of widget eq:{ appendTo: 'body', key: 'test' }

Remove exist widget

window.findify.widgets.detach(key)
The key is the unique name of the widget, you could provide it in HTML element by adding data-findify-key="test" or in config when attaching feature

Get widgets by key

window.findify.widgets.get(key)
You can get widget by its key. If it was not provided the increment number will be used.

Find widgets by type

window.findify.widgets.findByType(type)
Find all widgets with given type

Get list of widgets

window.findify.list()
This function will return an array of widgets on the page, so you can access their agents and send a request by your own.

window.findify.widgets
  .find(widget => widget.type === 'autocomplete').agent
  .set('q', 'test query')
  .on('suggestions', (list) => {
		console.log(list)
	})