Skip to content

Required-ancestor vocabulary

The nearest required ancestor is the provider (or container) a tag depends on. "needs

The nearest required ancestor is the provider (or container) a tag depends on. “needs on page” means the tag has no ancestor requirement but still needs that provider present somewhere in the document to do anything.

Component(s)Required ancestorContext / reason
storesynk-store(none - root)Provides storeContext. One per page/tree.
storesynk-productstoresynk-storeProvides productContext.
storesynk-cartstoresynk-storeCart drawer shell.
cart-line-liststoresynk-storeTemplate-clone container for lines.
cart-linecart-line-listProvides cartLineContext.
cart-discount-list, cart-order-discount-liststoresynk-storeTemplate-clone containers for discounts.
cart-discountcart-discount-list / cart-order-discount-listProvides discountContext.
storesynk-liststoresynk-storeCollection grid; template-clone container.
search-result-liststoresynk-storeSearch results; template-clone container.
predictive-searchstoresynk-storePredictive dropdown; template-clone container.
search-input(none - store needs on page)Drives a target list via for.
search-result-itemsearch-result-list OR predictive-searchStyleable result wrapper.
Product displayers (show-title, show-description, show-vendor, show-product-type, show-data, show-min-price, show-max-price, show-min-compare-price, show-max-compare-price, show-price, show-compare-price, show-sku, show-barcode, show-stock, show-weight, show-unit-price, show-quantity)storesynk-productConsume productContext.
Media (show-image, show-media, show-thumbnail)storesynk-productConsume productContext.
change-optionstoresynk-productOption selector.
option-valuechange-optionStyleable option value.
show-option-titleoption-valueEngine-written value name.
show-option-swatchoption-valueEngine-filled swatch.
show-option-label, show-active-option-titlestoresynk-product (or change-option)Option group name / selected value (dual-mode).
change-purchase-optionstoresynk-productOne-time vs subscribe toggle (NOT a clone container).
purchase-optionchange-purchase-option OR change-line-purchase-optionStyleable mode option (value="single" / "recurring").
change-selling-planstoresynk-productSubscription frequency selector; clones selling-plan-option.
selling-plan-optionchange-selling-plan OR change-line-selling-planStyleable purchase option (one per real selling plan).
show-selling-plan-name, show-selling-plan-priceselling-plan-optionEngine-written plan name / price.
show-metafieldstoresynk-productMetafield displayer; clones metafield-item for list.* types.
metafield-wrapperstoresynk-productHides a label+value block when the metafield is absent.
metafield-itemshow-metafieldStyleable per-value template for a list.* metafield.
change-quantitystoresynk-productQuantity stepper container.
increase-quantity, decrease-quantity, input-quantitychange-quantityStepper controls.
add-to-cart, buy-now, product-link, show-sale-badgestoresynk-productProduct-scoped actions/badges.
klaviyo-back-in-stockstoresynk-productBack-in-stock form for the selected variant (optional pixels module).
Cart-line parts (show-line-image/-title/-variant/-price/-quantity/-original-price/-discount/-selling-plan, increase-line-quantity, decrease-line-quantity, remove-cart-line)cart-lineConsume cartLineContext.
change-line-purchase-optioncart-lineIn-cart one-time vs subscribe toggle for THAT line (NOT a clone container).
change-line-selling-plancart-lineIn-cart frequency picker for THAT line; clones selling-plan-option.
show-discount-amountcart-discountConsumes discountContext.
show-cart-count, show-cart-total, show-cart-subtotal/-tax/-duties/-discount/-savings, show-discount-code, show-discount-error, checkout-linkstoresynk-storeStore-level cart readouts.
apply-discount, remove-discount, cart-note, clear-cartstoresynk-storeCart-level controls (discount / note / clear).
open-cart(none - store + cart need on page)Opens the drawer via global action.
close-cartstoresynk-cartCloses the nearest drawer.
change-country, change-languagestoresynk-storeMarkets pickers; consume storeContext, dispatch sf:country-change / sf:language-change up (SSK-101).
locale-valuechange-country or change-languageStyleable pill template (template mode); engine-populated per country/language (SSK-108).
show-locale-namelocale-valueEngine-written country name / language endonym.
show-locale-currencylocale-value (in change-country)Engine-written currency, e.g. “EUR €”.
storesynk-collectionstoresynk-storeServer-driven listing root; provides collectionContext.
product-list, change-sort, change-price, change-filter, filter-list, active-filter-list, clear-filters, load-more, show-result-countstoresynk-collectionConsume collectionContext (SSK-110).
filter-groupfilter-listFacet-group template.
filter-valuefilter-list OR change-filterFacet-value template.
active-filter-itemactive-filter-listApplied-filter chip template.
show-filter-label, show-filter-title, show-filter-count, show-filter-swatcha filter container (filter-list / change-filter / active-filter-list)Engine-written facet label / value / count / swatch.
storesynk-bundlestoresynk-productBundle widget (optional module); consumes productContext (SSK-102) + storeContext; template-clone container.
bundle-offerstoresynk-bundleProvides bundleContext; only the widget clones/feeds it (SSK-106).
bundle-member-listbundle-offerConsumes bundleContext (SSK-105); template-clone container for member cards.
(member card) storesynk-product in bundle-member-listbundle-member-listThe one sanctioned storesynk-product nesting (exempt from SSK-103); fed via provideProduct(), no handle/product-id.
show-bundle-title, show-bundle-total, show-bundle-original-total, show-bundle-savings, show-bundle-percentage, add-bundle-to-cartbundle-offerConsume bundleContext (SSK-105).
show-member-quantity, show-member-subtotalbundle-member-list (inside the member card)Consume the per-clone bundleMemberContext (SSK-105).
storesynk-volume-discountstoresynk-productVolume-discount widget (optional module); consumes productContext (SSK-102) + storeContext; provides volumeDiscountContext; template-clone container.
volume-tier-liststoresynk-volume-discountConsumes volumeDiscountContext (SSK-105); ARIA radiogroup; template-clone container for tier rows.
volume-tiervolume-tier-listThe radio row; only the list clones/drives it (SSK-106).
show-volume-discount-title, add-volume-to-cartstoresynk-volume-discountConsume volumeDiscountContext (SSK-105).
show-tier-title, show-tier-label, show-tier-badge, show-tier-price, show-tier-original-price, show-tier-each-pricevolume-tier-list (inside the tier-row template)Consume the per-clone volumeTierContext (SSK-105).
storesynk-mix-matchstoresynk-product - unless handle="…"Mix & match / build-your-own-box widget (optional module); consumes productContext (SSK-102) + storeContext; template-clone container. With handle it looks one bundle up directly and needs no product ancestor.
mix-match-offerstoresynk-mix-matchProvides mixMatchContext (entry/sections/selection/quote/complete); only the widget clones + feeds it (SSK-106).
mix-match-section-listmix-match-offerConsumes mixMatchContext (SSK-105); template-clone container for sections; owns the accordion state.
mix-match-sectionmix-match-section-listThe section wrapper the list stamps ss-open/ss-met on (SSK-106).
toggle-sectionmix-match-sectionDisclosure header; consumes the per-clone section context (SSK-105); dispatches sf:section-toggle up.
mix-match-item-listmix-match-sectionConsumes the section context + mixMatchContext (SSK-105); the accordion panel (engine-owned id + hidden); template-clone container for pool cards.
(pool card) storesynk-product in mix-match-item-listmix-match-item-listThe second sanctioned storesynk-product nesting (exempt from SSK-103); fed via provideProduct(), no handle/product-id.
show-section-title, show-section-image, show-section-requirement, show-section-count, show-section-progressmix-match-section (inside the section template)Consume the per-clone section context (SSK-105).
add-mix-match-item, increase-mix-match-item, decrease-mix-match-item, remove-mix-match-item, show-item-quantitymix-match-item-list (inside the pool-card template)Consume the per-card item context + the card’s productContext (SSK-105). The three steppers are icon-only - you name them (SSK-501).
mix-match-selection-listmix-match-offerConsumes mixMatchContext (SSK-105); template-clone container for picked-item thumbnails (max caps them).
show-pick-image, show-pick-quantitymix-match-selection-list (inside the pick template)Consume the per-clone pick context (SSK-105).
show-selection-overflowmix-match-selection-list (after the pick template)Consumes mixMatchContext + the list’s max (SSK-105).
show-mix-match-title, show-mix-match-total, show-mix-match-original-total, show-mix-match-savings, show-mix-match-tier-hint, show-mix-match-free-shipping, add-mix-match-to-cartmix-match-offerConsume mixMatchContext (SSK-105); the money leaves also read storeContext.
storesynk-addonsstoresynk-productProduct-addons widget (optional module); consumes productContext (SSK-102) + storeContext; provides addonsContext; template-clone container (cloned once for the overlap-rule winner).
show-addons-title, show-addons-subtitle, addon-liststoresynk-addonsConsume addonsContext (SSK-105); addon-list is the template-clone container for row cards and attaches the per-clone row context.
(row card) storesynk-product in addon-listaddon-listThe third sanctioned storesynk-product nesting (exempt from SSK-103); fed via provideProduct(), no handle/product-id.
select-addon, show-addon-price, show-addon-original-priceaddon-list (inside the row-card template)Consume the per-clone row context (SSK-105); the price leaves also read storeContext; select-addon reads the card’s productContext at click time.
log-in, log-out(none - a storesynk-store need on page)Customer-accounts module; global action verbs driving the store’s single session (SSK-101, no ancestor).
account-linkstoresynk-storeConsumes storeContext (SSK-101); links to the account destination (path sub-page optional).
show-customer-email, show-customer-first-name, show-customer-last-name, show-customer-namestoresynk-storeConsume storeContext.customer (SSK-101); hidden + [ss-empty] when anonymous.
storesynk-customer-pricingstoresynk-productCustomer-pricing widget (optional module); consumes productContext (SSK-102) + storeContext; provides customerPricingContext; template-clone container. Regular price displayers (show-price, show-compare-price, show-unit-price) must stay siblings of the widget, never descendants (SSK-111).
show-pricing-prompt, show-pricing-title, show-pricing-percentage, show-pricing-price, show-pricing-original-price, show-pricing-notestoresynk-customer-pricingConsume customerPricingContext (SSK-105); the price leaves also read storeContext for money.


Imported from the Storesynk skill v0.1.0 (references/structure-rules.md). To change this page, change it there.