Home
Wiki
Home
Wiki
  1. 3. Reusables
  • Back to home
  • 1. Themes
  • Vs Code
    • Getting Started
  • Kitchenware
    • Layout
      • New Layout
      • Legacy Layout
    • Components
      • Announcement
      • Banner Carousel
      • Banner With Products Carousel
      • Blog Category List
      • Blog List
      • Brand List
      • Brands Carousel
      • Breadcrumb
      • Call To Action
      • Cart
      • Categories List
      • Change Password
      • Checkout
      • Cookie Manager
      • Filter list
      • Footer
      • Forgot Password
      • Form
      • Hero Carousel
      • Icon Block
      • Invitation
      • Last Visited Products
      • Layout
      • Login
      • Map
      • Nav Bar
      • Offer
      • Product Attachments
      • Product Attributes
      • Product Documentation
      • Product Expected
      • Product Modal
      • Products Block
      • Products Carousel
      • Product Single
      • Profile
      • Quote
      • Register
      • Related Products
      • Search
      • Stores
      • Subscribe Newsletter
      • Text with Image
      • Top Bar
      • Video
    • Reusables
      • Getting Started
    • Assets
      • Getting Started
    • SDK
      • Products
        • _findProductsByCategory
        • _findProductsByIds
        • _findProductsByTitle
        • _findProductsByFilter
        • _findProductsByCriteria
        • _findProductsAndCalculate
        • _findProductsThenCalculate
        • _getProductAttributeSet
        • _setLastVisited
      • Categories
        • _findCategoryTreeById
        • _findCategoriesByIds
        • _findCategoryByAlias
        • _findCategoryTreeByAlias
        • _getCategoryContent
      • Collections
        • _getCollectionContent
        • _findCollectionsByIds
        • _findCollectionsByIdsThenCalculate
      • Brands
        • _getBrandContent
        • _findBrandsByIds
      • Cart
        • _addToCartMulti
        • _addToCart
        • _setCart
        • _clearCart
        • _setCartListener
        • _removeFromCart
        • _calculateCart
      • Checkout
        • _startCheckout
        • _updateCheckout
        • _completeCheckout
      • Shopping Lists
        • _getShoppingLists
        • _updateShoppingList
        • _createShoppingList
        • _deleteShoppingList
        • _getShoppingListByAlias
      • Navigation
        • _getFooterMenu
        • _getHeaderMenu
      • Users
        • _getUserById
      • Utils
        • _calculateCurrency
        • _getCurrencySymbol
        • _getCulture
        • _subscribeToNewsletter
        • _findUnitsByIds
  • Noir
    • 0. Introduction
    • 6. FAQ
    • 1. Structure
      • _Overview
      • LayoutA.liquid
      • ComponentsList.liquid
      • Metas.liquid
      • CssVariables.liquid
      • Json.liquid
      • GoogleTagManager.liquid
      • StagingButton.liquid
    • 2. Components
      • _Overview
      • Announcement
      • BannerCarousel
      • BlogCategoryList
      • BlogList
      • BrandList
      • Breadcrumb
      • Cart
      • CategoriesList
      • ChangePassword
      • Checkout
      • CookieManager
      • FilterList
      • Footer
      • ForgotPassword
      • Form
      • IconBlock
      • Invitation
      • LastVisitedProducts
      • Login
      • Map
      • NavBar
      • Offer
      • ProductAttachments
      • ProductAttributes
      • ProductComparison
      • ProductDocumentation
      • ProductMixList
      • ProductsBlock
      • ProductsCarousel
      • ProductSingle
      • Profile
      • Quote
      • Register
      • RelatedProducts
      • SingleBlog
      • Stores
      • TextWithImage
      • ThankYouPage
      • TopBar
      • Wishlist
    • 3. Reusables
      • _Overview
      • Addresses
      • AddressForm
      • AnnouncementModal
      • BackToTop
      • BillingRetail
      • BlogPostingStructuredData
      • BrandListStructuredData
      • CollectionStructuredData
      • Company
      • General
      • Login
      • LoginModal
      • MonthlyTransactions
      • Offers
      • Orders
      • Payment
      • ProductAttachments
      • ProductAttributes
      • ProductComparisonButton
      • ProductComparisonFloatingButton
      • ProductGridItem
      • ProductGridItemClassic
      • ProductListItem
      • ProductModal
      • ProductStructuredData
      • ProfileInfo
      • PromptModal
      • Quotes
      • Register
      • Services
      • Shipping
      • ShoppingLists
      • ShoppingListsButton
      • ShoppingListsNavbar
      • StoresStructuredData
      • Toast
      • Transactions
      • Users
      • VariantContent
      • VariantContentClassic
      • WishlistButton
    • 4. Assets
      • Fonts
      • Images
      • Templates
      • Javascript
        • _Overview
        • theme.js
      • Css - Scss
        • _Overview
        • ThemeClasses
    • 5. SDK
      • _Overview
      • LiquidGlobals
      • ServicesSDK
  1. 3. Reusables

StoresStructuredData

Purpose#

StoresStructuredData emits Schema.org JSON-LD (ItemList of LocalBusiness) for the store-locator page, so search engines and AI agents can answer local/maps and "nearest store" queries.

Where it's rendered#

Rendered from Components/Stores/Default.liquid:
{% render 'Reusables\StoresStructuredData\Default', groups: stores, organizationName: organizationName %}

Inputs (Liquid render parameters)#

Named parameters:
groups
model.Settings.Groups: a list of store groups, each with a title and a stores array.
organizationName
Parent organization name; also used as a name fallback when a store has none.

Model shape (storefront example)#

[
  {
    "title": "Sample region",
    "stores": [
      {
        "name": "Sample store",
        "phone": "Sample text",
        "email": "sample@example.com",
        "url": "https://example.com/sample",
        "latitude": 37.9838,
        "longitude": 23.7275,
        "address": {
          "address1": "Sample street 1",
          "city": "Sample city",
          "state": "Sample state",
          "postalCode": "00000",
          "country": "Sample country"
        }
      }
    ]
  }
]

Template behavior (Liquid + Alpine)#

Renders nothing when there are no groups, or when the total store count across all groups is 0.
Iterates every group's stores, emitting one ListItem per store with a running position counter across all groups.
Store name falls back to organizationName, then to the group's title, in that order.
address (as PostalAddress) and geo (as GeoCoordinates) are included only when the corresponding source fields are present; each address sub-field (streetAddress, addressLocality, addressRegion, postalCode, addressCountry) is optional and independently guarded.

Data contract (JS runtime)#

No client-side runtime state; all data is read directly from the Liquid render parameters at render time.

JavaScript#

File: Reusables/StoresStructuredData/Default.js
Exposes: storesstructureddatareusabledefault (currently an empty object)
The JSON-LD block is fully server-rendered; the global only reserves a unique name in the concatenated componentscripts.js bundle.

Global Alpine stores#

None. This reusable does not read or update any Alpine store.

Services / API calls#

None. All data (store groups) is passed in as a render parameter; there are no client-side API calls.

Dependencies#

Liquid: Reusables/StoresStructuredData/Default.liquid
JS: Reusables/StoresStructuredData/Default.js
Translations: Reusables/StoresStructuredData/Default.json

Notes#

geo requires both latitude and longitude to be present; a store with only one of the two won't get a geo block.
Modified at 2026-07-24 07:43:52
Previous
ShoppingListsNavbar
Next
Toast
Built with