Skip to content

Theme Customizations

About

The themeCustomizations query retrieves configurable theme data for the storefront. Use this query to:

  • Fetch home page sliders and carousels
  • Display footer links and static content sections
  • Retrieve category and product carousel configurations
  • Get theme-specific customization options
  • Access multi-language translations for theme content
  • Implement dynamic theme content based on type filters
  • Display theme customizations with complete metadata

This query supports pagination with cursor-based navigation and type-based filtering for retrieving specific customization categories.

Arguments

ArgumentTypeRequiredDescription
firstInt❌ NoNumber of results to return (forward pagination). Max: 100.
afterString❌ NoPagination cursor for forward navigation. Use with first.
lastInt❌ NoNumber of results for backward pagination. Max: 100.
beforeString❌ NoPagination cursor for backward navigation. Use with last.
typeString❌ NoFilter by customization type (e.g., footer_links, image_carousel, product_carousel, category_carousel, static_content).

Possible Returns

FieldTypeDescription
idID!Unique theme customization API identifier.
_idInt!Numeric customization ID.
themeCodeString!Theme code/identifier (e.g., 'default').
typeString!Customization type (e.g., 'footer_links', 'image_carousel', 'product_carousel', 'category_carousel', 'static_content').
nameString!Human-readable name of the customization.
sortOrderIntSort order for display.
statusStringStatus flag (0 = inactive, 1 = active).
channelIdStringAssociated channel ID.
createdAtDateTime!Customization creation timestamp.
updatedAtDateTime!Last update timestamp.
translationThemeCustomizationTranslation!Default locale translation.
translation.idID!Translation identifier.
translation._idInt!Numeric translation ID.
translation.themeCustomizationIdString!Associated customization ID.
translation.localeString!Language locale code (e.g., 'en', 'ar', 'fr').
translation.optionsString!JSON-formatted options/configuration for this translation.
translationsThemeCustomizationTranslationCollection!All available translations.
translations.edges[Edge!]!Translation edges with cursors.
translations.pageInfoPageInfo!Pagination info for translations.
translations.totalCountInt!Total translations for this customization.
pageInfoPageInfo!Pagination information.
pageInfo.hasNextPageBoolean!Whether more pages exist forward.
pageInfo.hasPreviousPageBoolean!Whether more pages exist backward.
pageInfo.startCursorStringCursor for first item in page.
pageInfo.endCursorStringCursor for last item in page.
totalCountInt!Total customizations matching filters.

Common Customization Types

TypeDescriptionUsage
image_carouselImage slider/carousel on home pageHomepage promotions and banners
product_carouselProduct carousel displayFeatured, new, or special products
category_carouselCategory carousel displayCategory promotions
static_contentHTML/CSS static sectionsCustom HTML blocks
footer_linksFooter navigation linksFooter menu items
services_contentServices informationAdditional service blocks

Use Cases

1. Home Page Sliders

Use the "Filtered by Type" example with type: "image_carousel" to fetch home page sliders.

Use the "Filtered by Type" example with type: "footer_links" to display footer links.

3. Product Carousels

Use the "Filtered by Type" example with type: "product_carousel" to display featured products.

4. Multi-Language Support

Use the "Complete Details" example to get all translations for any customization type.

5. Paginated List

Use the "Basic" example with pagination arguments to load customizations progressively.

Best Practices

  1. Use Type Filters - Always filter by type when you only need specific customizations
  2. Paginate Results - Use pagination for better performance with large datasets
  3. Request Only Needed Fields - Minimize data transfer by selecting only required fields
  4. Cache Translations - Theme customizations change infrequently, cache the full response
  5. Parse JSON Options - The options field contains JSON; parse it in your application
  6. Check Status - Verify status is active before displaying in frontend

Released under the MIT License.