Developer notes
| Item | Value |
|---|---|
| Add-on id | kv_theme_ridge (CS-Cart and Multi-Vendor) |
| Theme | kv_ridge (child of responsive), installed from var/themes_repository/kv_ridge |
| Built with | Kavio theme kit 1.2.1 (kv-files.json in the theme lists every file with its hash and the kit version); kit modules overlay shell, full-screen menu, chapters, rail, command search, docked cart (drawer only) |
| CSS prefix | ri- (theme), kv- (kit) |
design/themes/kv_ridge/css/kit/{fonts,base,features,addons,modules}.less(kit layer),css/skin/skin.less(Ridge),styles/data/{Dusk,Glacier,Desert,Forest}.less(styles).- Block templates:
addons/banners/blocks/kv_ri_chapters.tpl(chapters),blocks/products/kv_ri_gear.tpl(gear rail with condition chips),kv_ri_deals.tpl(deals band),kv_ri_mini.tpl(compact rows: cart drawer),blocks/categories/kv_ri_panels.tpl(sport panels),addons/blog/blocks/kv_ri_notes.tpl(field notes),blocks/static_templates/kv_ri_cathero.tpl(category scene header),kv_ri_store.tpl(vendor store header), and the kit templates (kv_overlay,kv_command,kv_icons,kv_dock,kv_gate,kv_chapter). - Partials
templates/addons/kv_theme_ridge/partials/:kv_ri_card.tpl(dusk-plate card),kv_ri_pcard.tpl(chapter price card),kv_ri_scene.tpl(scene image at its original size). - Hook files
templates/addons/kv_theme_ridge/hooks/products/:product_multicolumns_list.override(Ridge card in product grids),view_main_info.pre(product scene + breadcrumbs),image_wrap.post(callouts),main_info_title.pre(collection line),main_price.post(saving, deal line),product_detail_bottom.pre(stock and dispatch line, seller),product_tabs.pre(Built for). js/addons/kv_theme_ridge/theme.js: chapter progress, trust strip placement, parallax, heading accents, condition chips, sport panels, deals clock, dispatch countdown, cart button → drawer; kit components (tab bar, buy bar, size chips, filter sheet, swipe gallery).
| Hook | Use |
|---|---|
before_dispatch (storefront) |
kit: assigns $kv_theme while the add-on is enabled, the storefront runs kv_ridge and the licence is active |
get_banners_post |
kit 1.2.1 banner meta: $banner.kv_meta (texts, paired product with prices, promotion end, scene and phone image) |
gather_additional_products_data_post |
$product.ri_specs (header features: name, value), ri_conds (condition variants), ri_new; kit kv_chips, kv_promo_end, kv_seller |
get_categories_post |
sport panels (param ri_panels): ri_count (products in the subtree), ri_subs, scene fallback |
dispatch_before_display (static handler) |
$ri: home condition chips with counts and the condition filter, category scene header, product page facts (gauges, conditions, fit, scene, collection line, cutoff), vendor store header |
delete_banners |
kit: removes the chapter details of a deleted banner |
| Block cache | callable_handlers.kv_theme_ridge = licence and settings state; banners blocks follow products, prices, promotions and the chapter details table |
Every storefront handler 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 on storefront requests). Full page cache (4.21): the
theme prints nothing visitor-specific; cart counters and the drawer come from the core cart block; countdowns are
data-kv-end timestamps ticked in the browser.
Chapter details are stored in the table ?:kv_theme_ridge_bmeta (banner, language) and the image pairs of the object
type kv_bmeta (phone image); both are removed on uninstall.
Customising
Section titled “Customising”Use a child theme or the Theme editor’s custom CSS. Design tokens are LESS variables (@kv_*, @ri_*) set by each
style file, e.g. @ri_plate1 / @ri_plate2 / @ri_ridge (card plates), @ri_scr / @ri_scrm (scene shade),
@ri_hero / @ri_hero_ink (deals band), @ri_co* (checkout surface), @ri_scene_acc (accent on scenes).