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
| Argument | Type | Required | Description |
|---|---|---|---|
first | Int | ❌ No | Number of results to return (forward pagination). Max: 100. |
after | String | ❌ No | Pagination cursor for forward navigation. Use with first. |
last | Int | ❌ No | Number of results for backward pagination. Max: 100. |
before | String | ❌ No | Pagination cursor for backward navigation. Use with last. |
type | String | ❌ No | Filter by customization type (e.g., footer_links, image_carousel, product_carousel, category_carousel, static_content). |
Possible Returns
| Field | Type | Description |
|---|---|---|
id | ID! | Unique theme customization API identifier. |
_id | Int! | Numeric customization ID. |
themeCode | String! | Theme code/identifier (e.g., 'default'). |
type | String! | Customization type (e.g., 'footer_links', 'image_carousel', 'product_carousel', 'category_carousel', 'static_content'). |
name | String! | Human-readable name of the customization. |
sortOrder | Int | Sort order for display. |
status | String | Status flag (0 = inactive, 1 = active). |
channelId | String | Associated channel ID. |
createdAt | DateTime! | Customization creation timestamp. |
updatedAt | DateTime! | Last update timestamp. |
translation | ThemeCustomizationTranslation! | Default locale translation. |
translation.id | ID! | Translation identifier. |
translation._id | Int! | Numeric translation ID. |
translation.themeCustomizationId | String! | Associated customization ID. |
translation.locale | String! | Language locale code (e.g., 'en', 'ar', 'fr'). |
translation.options | String! | JSON-formatted options/configuration for this translation. |
translations | ThemeCustomizationTranslationCollection! | All available translations. |
translations.edges | [Edge!]! | Translation edges with cursors. |
translations.pageInfo | PageInfo! | Pagination info for translations. |
translations.totalCount | Int! | Total translations for this customization. |
pageInfo | PageInfo! | Pagination information. |
pageInfo.hasNextPage | Boolean! | Whether more pages exist forward. |
pageInfo.hasPreviousPage | Boolean! | Whether more pages exist backward. |
pageInfo.startCursor | String | Cursor for first item in page. |
pageInfo.endCursor | String | Cursor for last item in page. |
totalCount | Int! | Total customizations matching filters. |
Common Customization Types
| Type | Description | Usage |
|---|---|---|
image_carousel | Image slider/carousel on home page | Homepage promotions and banners |
product_carousel | Product carousel display | Featured, new, or special products |
category_carousel | Category carousel display | Category promotions |
static_content | HTML/CSS static sections | Custom HTML blocks |
footer_links | Footer navigation links | Footer menu items |
services_content | Services information | Additional service blocks |
Use Cases
1. Home Page Sliders
Use the "Filtered by Type" example with type: "image_carousel" to fetch home page sliders.
2. Footer Links
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
- Use Type Filters - Always filter by type when you only need specific customizations
- Paginate Results - Use pagination for better performance with large datasets
- Request Only Needed Fields - Minimize data transfer by selecting only required fields
- Cache Translations - Theme customizations change infrequently, cache the full response
- Parse JSON Options - The
optionsfield contains JSON; parse it in your application - Check Status - Verify status is active before displaying in frontend
Related Resources
- Get Category - Query individual category details
- Get Categories - Query paginated categories
- Get Products - Query products for carousels
- Pagination Guide - Cursor pagination documentation
- Shop API Overview - Overview of Shop API resources

