Skip to content

Developer notes

Item Value
Add-on id kv_theme_grove
Theme kv_grove (child of responsive), installed from var/themes_repository/kv_grove
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 gr- (theme), kv- (kit)
  • design/themes/kv_grove/css/kit/{fonts,base,features,addons}.less (kit layer), css/skin/skin.less (Grove), styles/data/{Oat,Fern,Rosehip,Dusk}.less (styles), media/images/grove/*.svg (botanical illustrations of the seals).
  • Block templates: blocks/categories/kv_arches.tpl (ritual arches), blocks/products/kv_arch_grid.tpl (arch grid section), blocks/products/kv_ritual.tpl (ritual steps with one multi-product add-to-cart form, dispatch checkout.add), plus the kit’s blocks/menu/kv_mega.tpl, blocks/static_templates/kv_icons.tpl and blocks/wrappers/kv_gate.tpl.
  • Hook files in templates/addons/kv_theme_grove/hooks/: products/product_multicolumns_list.post (seal, size, Latin name, quick sizes), products/product_multicolumns_list_control.post (Add in grids that hide it, by re-capturing the stock add-to-cart block), products/main_info_title.post, products/image_wrap.post (ring seal), products/product_detail_bottom.pre (note, claims), products/product_tabs.pre (what is inside, how to use), categories/view_description.pre (wide arch), index/footer.post (wordmark), wrapper/mainbox_simple_title.override (*word* accent titles; the stock title for every other title). Partials in partials/kv_*.tpl. Core and add-on templates are not overridden.
Hook Use
before_dispatch (storefront) kit: assigns $kv_theme while the add-on is enabled, the storefront runs kv_grove and the licence is active
gather_additional_products_data_post $product.kv_gr (latin, bot, seal_img, size, claims, ring, step, step_time, inside, howto) from features with the codes KEY_INGREDIENT, SIZE, CLAIMS, RITUAL_STEP, INSIDE_1..3, HOW_TO_USE (one query per product list; variant image of a select KEY_INGREDIENT via fn_get_image_pairs(..., 'feature_variant'))
get_categories_post index only: kv_gr_lead (first sentence of the description) for the ritual arches
dispatch_before_display, update_addon_status_post kit: admin notice, demo content, status

Every data hook returns at once unless the storefront runs the licensed theme; the data depends on the catalogue only (block cache and full page cache safe). The ritual form and the quick size chips post the stock add-to-cart request.

Style contract for a subscription / refill add-on

Section titled “Style contract for a subscription / refill add-on”
<div class="gr-ptype" role="radiogroup">
<label class="gr-pt is-sel"><input type="radio" name="..."><i></i><span><b>Refill every 12 weeks</b>Save 10 %</span><em>$43.20</em></label>
</div>

.gr-pt is a radio card (surface, hairline, selected = ink ring + accent dot). It is styled but not printed by Grove.

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_*, @gr_*) set by each style file.