Concessions
Concessions are dedicated sections or mini-stores within the main store that may have their own branding, layout, and content. This feature allows for creating specialized shopping experiences within a single e-commerce platform.
When the CONCESSIONS feature is enabled, customers can navigate to specific concession areas that have their own unique:
- Custom header and footer
- Dedicated homepage
- Distinct styling
- Filtered product catalog
How Concessions Work
When a customer visits a page or product that’s part of a concession (queryable with the Page.concession
field), they are considered to be “in” that concession until they navigate to a different page or product that’s not part of the concession. While in a concession:
- The site should display the concession’s custom header and footer (from
Concession.header
andConcession.footer
) - The site should be styled according to the concession’s branding (styling information is not available in the Horizon API)
- The homepage link should direct to the concession’s homepage (from
Concession.homepage
) - Search queries should include the concession’s code to filter results to only show products within that concession
Retrieving Concession Information
To retrieve information about a specific concession, use the concession
query with the concession code:
query GetConcession { concession(code: "beauty-brand-x") { concessionCode homepage { id title url } header { # Header configuration logo { url altText } navigation { # Navigation items } } footer { # Footer configuration links { # Footer links } socialLinks { # Social media links } } }}
Determining if a Page is Part of a Concession
When loading a page, you can check if it belongs to a concession by using the Page.concession
field:
query CheckPageConcession { page(url: "/beauty-brand-x/skincare") { id title url concession { concessionCode homepage { url } } }}
If the page is part of a concession, the concession
field will contain the concession information. If not, it will be null
.
Searching Within a Concession
When a customer is browsing within a concession, search queries should include the concession code to filter results:
query SearchWithinConcession { search( query: "moisturizer" concessionCode: "beauty-brand-x" settings: { currency: GBP, shippingDestination: GB } ) { products { items { sku title images { thumbnail } defaultVariant(options: { currency: GBP, shippingDestination: GB }) { listPrice { currency amount displayValue } } } total } }}
Implementation Best Practices
When implementing concessions on your site, consider the following best practices:
-
Clear Visual Distinction: Ensure that concession areas have a distinct visual style to help customers understand they’re in a specialized section.
-
Consistent Navigation: While concessions have their own header and footer, maintain consistent navigation patterns to avoid confusing users.
-
Breadcrumb Navigation: Include breadcrumbs that show the concession hierarchy to help users understand where they are within the site structure.
-
Concession Exit Points: Provide clear ways for users to exit the concession and return to the main store.
-
Search Context: Make it clear to users when search results are being filtered to a specific concession.
-
Mobile Responsiveness: Ensure concession-specific layouts and styling work well on mobile devices.
Feature Availability
The concessions feature is only available when the CONCESSIONS feature flag is enabled. All concession-related queries and fields are conditionally available based on this flag.