VONQ
ChangelogVersion 4.8

See the channels you order most often

See the channels you order most often

Recruiters can now see the channels they use most often in a "Frequently used by you" section on the product landing, so a proven channel choice is one click to repeat instead of a decision to make again. It is aimed at high-volume recruiters and recurring hiring patterns.

What's new

  • "Frequently used by you" section on the product landing, listing the channels this user orders most often, most-ordered first. It only appears when there is something to show.
  • "Buy it again" is the call to action on these cards, instead of the usual "Add to Campaign". Removing a channel again still reads "Remove from Campaign".
  • Cards carry a "Frequently ordered" banner.
  • Your history, not the current search. These channels come from what you have ordered, so they are not filtered by the search filters you have set, and they are deliberately never marked "Recommended channel" — a recommendation is a suggestion for the vacancy you are working on, which is a different thing. For the same reason the section stays visible whichever sort order you choose.
  • The last 12 months by default. Shorter windows are available through the SDK (see below).
  • No broken cards. A channel you ordered before but can no longer order is omitted rather than shown as a card whose "Buy it again" button could not work. The section notes when channels have been hidden for this reason.

Using it from the SDK

The section loads itself, so no call is needed for the default behaviour. To load it yourself, or to use a shorter window:

// Defaults to the window in state (12 months).
await window.hapi.product.service.getFrequentlyOrderedProducts.run()

// Or ask for a specific look-back window.
await window.hapi.product.service.getFrequentlyOrderedProducts.run("1m")

The window accepts "1w", "1m", "6m" or "12m". Passing one also stores it, so a later call without an argument keeps using it rather than reverting to 12 months.

The results and the current window are readable on window.hapi.product.state:

window.hapi.product.state.frequentlyOrderedProducts.value // full product objects
window.hapi.product.state.frequentlyOrderedProductsAreLoading.value // boolean
window.hapi.product.state.frequentlyOrderedProductsWindow.value // "1w" | "1m" | "6m" | "12m"

The underlying request is also available directly on window.hapi.product.api.getFrequentlyOrderedProducts, which returns the paginated response as the API sends it — including channels that can no longer be ordered. The service function is the one that filters those out and writes the state the section renders from.

If you narrow the window, override the section's description text as well — the default copy names 12 months:

window.hapi.language.state.translations = {
	...window.hapi.language.state.translations.value,
	en: {
		...window.hapi.language.state.translations.value.en,
		"products.details.frequently-ordered-description":
			"Reorder the channels you order most. Your top picks in the last month.",
	},
}

Theming

The "Frequently ordered" banner takes its colours from two new global theme variables, so it follows your branding like the rest of the widgets:

window.hapi.theming.state.theme = {
	global: {
		frequentlyOrderedBadgeBackgroundColor: "#F1F2F4",
		frequentlyOrderedBadgeTextColor: "#566574",
	},
}

The values above are the defaults. They are separate variables rather than the existing faded / neutral pairs, neither of which reproduces the neutral grey of this banner.

Backwards compatibility

  • Purely additive. No SDK function, getter, setter, property, or event was removed or renamed.
  • No widget element id, class, or data-* attribute was removed or renamed — the new section adds the hapi__products-frequently-ordered class only.
  • No translation keys were removed. Cards outside this section are unchanged, including their "Add to Campaign" label.

I18n

The following i18n translations have been added:

Key"en" value"de" value"nl" value"fr" value"es" value"it" value
products.details.frequently-ordered-headingFrequently used by youVon dir häufig genutztVaak door jou gebruiktFréquemment utilisés par vousUsados con frecuencia por tiUsati spesso da te
products.details.frequently-ordered-descriptionReorder the channels you order most. Your top picks in the last 12 months.Buche die Kanäle erneut, die du am häufigsten bestellst. Deine Favoriten der letzten 12 Monate.Bestel de kanalen die je het meest gebruikt opnieuw. Jouw topkeuzes van de afgelopen 12 maanden.Recommandez les canaux que vous commandez le plus. Vos préférés des 12 derniers mois.Vuelve a contratar los canales que más pides. Tus preferidos de los últimos 12 meses.Riordina i canali che usi più spesso. Le tue scelte migliori degli ultimi 12 mesi.
products.details.frequently-ordered-unavailable-noteSome channels you ordered may no longer be available and are hidden.Einige von dir bestellte Kanäle sind möglicherweise nicht mehr verfügbar und werden ausgeblendet.Sommige kanalen die je hebt besteld zijn mogelijk niet langer beschikbaar en worden verborgen.Certains canaux que vous avez commandés ne sont peut-être plus disponibles et sont masqués.Algunos canales que has pedido pueden ya no estar disponibles y se ocultan.Alcuni canali che hai ordinato potrebbero non essere più disponibili e sono nascosti.
products.details.frequently-ordered-channelFrequently orderedHäufig bestelltVaak besteldFréquemment commandéPedido con frecuenciaOrdinato spesso
basket.buy-it-againBuy it againErneut buchenOpnieuw bestellenCommander à nouveauVolver a pedirOrdina di nuovo