Skip to content

Developer notes

Item Value
Add-on id kv_theme_pulse
Theme kv_pulse (child of responsive), installed from var/themes_repository/kv_pulse
Built with Kavio theme kit 1.2 (kv-files.json in the theme lists every file with its hash and the kit version)
CSS prefix pu- (theme), kv- (kit)
Fonts Unbounded (display) and Onest (text), both SIL OFL, self-hosted with their licence files
  • design/themes/kv_pulse/css/kit/*.less (kit layer), css/skin/skin.less (Pulse), styles/data/<Scheme>.less (16 schemes; every Pulse tone is a LESS expression of the Theme editor colours).
  • Block templates: addons/banners/blocks/kv_pu_bento.tpl (bento hero + deal tile), kv_pu_stories.tpl (story circles), kv_pu_cells.tpl (info cells in a grid), kv_pu_promos.tpl; blocks/products/kv_pu_flashdeals.tpl, kv_pu_feed.tpl, kv_pu_shelf.tpl; blocks/categories/kv_pu_bubbles.tpl; blocks/static_templates/kv_pu_flash.tpl (flash bar); addons/blog/blocks/kv_pu_videos.tpl; blocks/vendor_list_templates/kv_pu_shops.tpl; plus the kit templates (kv_mega, kv_search, kv_icons, kv_phone, kv_gate).
  • Partials in templates/addons/kv_theme_pulse/partials/: kv_pu_card.tpl (product card), kv_pu_head.tpl, kv_pu_list.tpl, kv_pu_icon.tpl (own icon set).
  • Hook files in templates/addons/kv_theme_pulse/hooks/: index/html_tag.pre (data-pu tokens), index/scripts.pre (texts and settings for theme.js), products/product_multicolumns_list.override (grid cells render the Pulse card), products/main_info_title.pre (brand, flags, rating), products/main_price.post (savings pill and campaign strip), products/image_wrap.pre (gallery sticker and “Flash deal” flag), categories/view_description.override (category header and subcategory pills). Every hook renders the stock output (or nothing) unless the licensed theme is active.
  • js/addons/kv_theme_pulse/theme.js: flip-tile countdowns, bento slider, story player, Discover feed cells, deals pill, info cell tidy-up, buy bar countdown; kit components (bottom bar, buy bar, option chips, filter sheet, swipe gallery, back to top).
Hook Use
before_dispatch (storefront) assigns $kv_theme (theme, settings, data-kvt tokens) while the add-on is enabled, the storefront runs kv_pulse and the licence is active
dispatch_before_display admin: notice while a storefront uses the theme and the design is off, demo content import after activation; storefront: page data $pu (flash promotion, category header)
update_addon_status_post warning when the add-on is disabled while a storefront uses the theme
gather_additional_products_data_post card data $product.pu (brand, rating, colour dots from variation groups, new / top flags, low stock), kit kv_promo_end, kv_seller
get_banners_post (kit banner meta) $banner.kv_meta (eyebrow, lead, buttons, badge, paired product, promotion end, phone image)
init_templater_post registers the theme’s Smarty plugins (Smarty 4 and 5)

Every data hook returns at once unless the storefront runs the licensed theme; the data depends on the catalogue only. Full page cache (4.21): the theme prints nothing visitor-specific; countdown end dates are the same for every visitor and the cart, wish list and compare counters are read from the core blocks in the browser.

Use a child theme or the Theme editor’s custom CSS. Upgrades replace only theme files you have not changed. Design tokens are LESS variables (@kv_*, @pu_*) set by each scheme file.