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 ancestor | Context / reason |
|---|---|---|
storesynk-store | (none - root) | Provides storeContext. One per page/tree. |
storesynk-product | storesynk-store | Provides productContext. |
storesynk-cart | storesynk-store | Cart drawer shell. |
cart-line-list | storesynk-store | Template-clone container for lines. |
cart-line | cart-line-list | Provides cartLineContext. |
cart-discount-list, cart-order-discount-list | storesynk-store | Template-clone containers for discounts. |
cart-discount | cart-discount-list / cart-order-discount-list | Provides discountContext. |
storesynk-list | storesynk-store | Collection grid; template-clone container. |
search-result-list | storesynk-store | Search results; template-clone container. |
predictive-search | storesynk-store | Predictive dropdown; template-clone container. |
search-input | (none - store needs on page) | Drives a target list via for. |
search-result-item | search-result-list OR predictive-search | Styleable 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-product | Consume productContext. |
Media (show-image, show-media, show-thumbnail) | storesynk-product | Consume productContext. |
change-option | storesynk-product | Option selector. |
option-value | change-option | Styleable option value. |
show-option-title | option-value | Engine-written value name. |
show-option-swatch | option-value | Engine-filled swatch. |
show-option-label, show-active-option-title | storesynk-product (or change-option) | Option group name / selected value (dual-mode). |
change-purchase-option | storesynk-product | One-time vs subscribe toggle (NOT a clone container). |
purchase-option | change-purchase-option OR change-line-purchase-option | Styleable mode option (value="single" / "recurring"). |
change-selling-plan | storesynk-product | Subscription frequency selector; clones selling-plan-option. |
selling-plan-option | change-selling-plan OR change-line-selling-plan | Styleable purchase option (one per real selling plan). |
show-selling-plan-name, show-selling-plan-price | selling-plan-option | Engine-written plan name / price. |
show-metafield | storesynk-product | Metafield displayer; clones metafield-item for list.* types. |
metafield-wrapper | storesynk-product | Hides a label+value block when the metafield is absent. |
metafield-item | show-metafield | Styleable per-value template for a list.* metafield. |
change-quantity | storesynk-product | Quantity stepper container. |
increase-quantity, decrease-quantity, input-quantity | change-quantity | Stepper controls. |
add-to-cart, buy-now, product-link, show-sale-badge | storesynk-product | Product-scoped actions/badges. |
klaviyo-back-in-stock | storesynk-product | Back-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-line | Consume cartLineContext. |
change-line-purchase-option | cart-line | In-cart one-time vs subscribe toggle for THAT line (NOT a clone container). |
change-line-selling-plan | cart-line | In-cart frequency picker for THAT line; clones selling-plan-option. |
show-discount-amount | cart-discount | Consumes discountContext. |
show-cart-count, show-cart-total, show-cart-subtotal/-tax/-duties/-discount/-savings, show-discount-code, show-discount-error, checkout-link | storesynk-store | Store-level cart readouts. |
apply-discount, remove-discount, cart-note, clear-cart | storesynk-store | Cart-level controls (discount / note / clear). |
open-cart | (none - store + cart need on page) | Opens the drawer via global action. |
close-cart | storesynk-cart | Closes the nearest drawer. |
change-country, change-language | storesynk-store | Markets pickers; consume storeContext, dispatch sf:country-change / sf:language-change up (SSK-101). |
locale-value | change-country or change-language | Styleable pill template (template mode); engine-populated per country/language (SSK-108). |
show-locale-name | locale-value | Engine-written country name / language endonym. |
show-locale-currency | locale-value (in change-country) | Engine-written currency, e.g. “EUR €”. |
storesynk-collection | storesynk-store | Server-driven listing root; provides collectionContext. |
product-list, change-sort, change-price, change-filter, filter-list, active-filter-list, clear-filters, load-more, show-result-count | storesynk-collection | Consume collectionContext (SSK-110). |
filter-group | filter-list | Facet-group template. |
filter-value | filter-list OR change-filter | Facet-value template. |
active-filter-item | active-filter-list | Applied-filter chip template. |
show-filter-label, show-filter-title, show-filter-count, show-filter-swatch | a filter container (filter-list / change-filter / active-filter-list) | Engine-written facet label / value / count / swatch. |
storesynk-bundle | storesynk-product | Bundle widget (optional module); consumes productContext (SSK-102) + storeContext; template-clone container. |
bundle-offer | storesynk-bundle | Provides bundleContext; only the widget clones/feeds it (SSK-106). |
bundle-member-list | bundle-offer | Consumes bundleContext (SSK-105); template-clone container for member cards. |
(member card) storesynk-product in bundle-member-list | bundle-member-list | The 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-cart | bundle-offer | Consume bundleContext (SSK-105). |
show-member-quantity, show-member-subtotal | bundle-member-list (inside the member card) | Consume the per-clone bundleMemberContext (SSK-105). |
storesynk-volume-discount | storesynk-product | Volume-discount widget (optional module); consumes productContext (SSK-102) + storeContext; provides volumeDiscountContext; template-clone container. |
volume-tier-list | storesynk-volume-discount | Consumes volumeDiscountContext (SSK-105); ARIA radiogroup; template-clone container for tier rows. |
volume-tier | volume-tier-list | The radio row; only the list clones/drives it (SSK-106). |
show-volume-discount-title, add-volume-to-cart | storesynk-volume-discount | Consume volumeDiscountContext (SSK-105). |
show-tier-title, show-tier-label, show-tier-badge, show-tier-price, show-tier-original-price, show-tier-each-price | volume-tier-list (inside the tier-row template) | Consume the per-clone volumeTierContext (SSK-105). |
storesynk-mix-match | storesynk-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-offer | storesynk-mix-match | Provides mixMatchContext (entry/sections/selection/quote/complete); only the widget clones + feeds it (SSK-106). |
mix-match-section-list | mix-match-offer | Consumes mixMatchContext (SSK-105); template-clone container for sections; owns the accordion state. |
mix-match-section | mix-match-section-list | The section wrapper the list stamps ss-open/ss-met on (SSK-106). |
toggle-section | mix-match-section | Disclosure header; consumes the per-clone section context (SSK-105); dispatches sf:section-toggle up. |
mix-match-item-list | mix-match-section | Consumes 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-list | mix-match-item-list | The 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-progress | mix-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-quantity | mix-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-list | mix-match-offer | Consumes mixMatchContext (SSK-105); template-clone container for picked-item thumbnails (max caps them). |
show-pick-image, show-pick-quantity | mix-match-selection-list (inside the pick template) | Consume the per-clone pick context (SSK-105). |
show-selection-overflow | mix-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-cart | mix-match-offer | Consume mixMatchContext (SSK-105); the money leaves also read storeContext. |
storesynk-addons | storesynk-product | Product-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-list | storesynk-addons | Consume 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-list | addon-list | The third sanctioned storesynk-product nesting (exempt from SSK-103); fed via provideProduct(), no handle/product-id. |
select-addon, show-addon-price, show-addon-original-price | addon-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-link | storesynk-store | Consumes 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-name | storesynk-store | Consume storeContext.customer (SSK-101); hidden + [ss-empty] when anonymous. |
storesynk-customer-pricing | storesynk-product | Customer-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-note | storesynk-customer-pricing | Consume 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.