Skip to content

Developer notes

Item Value
Add-on id kv_theme_nordhaus
Theme kv_nordhaus (child of responsive), installed from var/themes_repository/kv_nordhaus
Built with Kavio theme kit 1.x (kv-files.json in the theme lists every file with its hash and the kit version)
CSS prefix nh- (theme), kv- (kit)
  • design/themes/kv_nordhaus/css/kit/{fonts,base,features,addons}.less (kit layer), css/skin/skin.less (Nordhaus), styles/data/{Linen,Walnut,Fjord,Terrazzo}.less (styles).
  • Block templates: blocks/categories/kv_nh_roombar.tpl (room bar + mega panels), kv_nh_rooms.tpl (shop by room), kv_nh_materials.tpl (material library), blocks/products/kv_nh_room.tpl (room scene with hotspots, room total and the “Add the room” form), kv_nh_grid.tpl (product section: grid, rail, tab), kv_nh_ribbon.tpl (sale ribbon), kv_nh_spot.tpl (spotlight with dimensions), and the kit templates (kv_icons, kv_mega, kv_gate).
  • Partials in templates/addons/kv_theme_nordhaus/partials/: kv_nh_card.tpl (card extras), kv_nh_scene.tpl (built-in room scenes as inline SVG, painted with CSS variables --nh-wall, --nh-walld, --nh-floor, --nh-skirt).
  • Hook files in templates/addons/kv_theme_nordhaus/hooks/: index/html_tag.pre (data-nh tokens: page type and settings), index/scripts.pre (texts for theme.js), products/product_multicolumns_list.pre (card extras), products/main_info_title.pre (room line and the buy-box extras theme.js moves into place: saving, monthly price, lead time with the delivery range, material images for the texture tiles), products/product_tabs.pre (Will it fit?), categories/view_description.post (product types of a room). Core and add-on templates are not overridden, so add-on hooks keep working.
  • js/addons/kv_theme_nordhaus/theme.js: hotspot placement and highlight, room scroller, rails, filter bar, product page extras and texture tiles, doorway check; kit components (floating tab bar, buy bar, option chips, filter sheet, swipe gallery).
Hook Use
before_dispatch (storefront) assigns $kv_theme (theme, settings, data-kvt tokens) while the add-on is enabled, the storefront runs kv_nordhaus 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
update_addon_status_post warning when the add-on is disabled while a storefront uses the theme
gather_additional_products_data_post $product.nh: swatches (sw: material name + texture image), first material, dimensions and text, lead time, delivery range in days, fast / made-to-order / from / new flags, saving and regular price; product page: fit drawing sizes and the material image map (kit: kv_promo_end, kv_seller)
get_product_data_post products.view: nh_root (room of the product for the room bar), nh_room (room / product type line)
get_category_data_post categories.view: nh_types (product types with image and count), nh_count
get_categories_post Nordhaus categories blocks only: second and third level, piece counts and the bestseller per room (room bar), counts (room tiles), materials with counts and links (material library)
Block cache callable_handlers.kv_theme_nordhaus = licence and settings state

Every data hook returns at once unless the storefront runs the licensed theme; the data depends on the catalogue only and is kept in request caches (nothing is written to a persistent cache on storefront requests). Full page cache (4.21): the theme prints nothing visitor-specific; cart and saved counters come from the core blocks in the browser, the delivery window is computed in the browser and the doorway check never leaves the page.

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_*, @nh_*) set by each style file, e.g. @nh_wall / @nh_wall_deep / @nh_floor / @nh_skirt (room and wells), @nh_hot (hotspots), @nh_frame / @nh_frame_bg (room mat), @nh_bar (room bar), @nh_ribbon (sale ribbon), @nh_band (services band), @nh_speckle (Terrazzo chips).