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, ordata-*attribute was removed or renamed — the new section adds thehapi__products-frequently-orderedclass 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-heading | Frequently used by you | Von dir häufig genutzt | Vaak door jou gebruikt | Fréquemment utilisés par vous | Usados con frecuencia por ti | Usati spesso da te |
| products.details.frequently-ordered-description | Reorder 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-note | Some 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-channel | Frequently ordered | Häufig bestellt | Vaak besteld | Fréquemment commandé | Pedido con frecuencia | Ordinato spesso |
| basket.buy-it-again | Buy it again | Erneut buchen | Opnieuw bestellen | Commander à nouveau | Volver a pedir | Ordina di nuovo |