# Theme Templates and Data

## Theme layout

All theme template files must extend `layout.twig` file, which include: `header` ,`footer` and `main_content` blocks.

```javascript
{% extends "layout.twig" %}
```

As an example: [layout.twig](/theme-templates-and-data/layout.twig.md)

## Theme data

In each page, there are specified data available for developers to consume, which will give the developer a large space to show and use their skills in building a theme.

### Available data across all theme template

* [session](/data-reference/session.md)
* [store](/data-reference/store.md)
* [customer](/data-reference/customer.md)
* [asset\_url](/data-reference/asset_url.md)
* [main menu](/data-reference/main-menu.md)
* [request](/data-reference/request.md)
* [header\_meta\_tags](/data-reference/header_meta_tags.md)
* [locals](/data-reference/locals.md)
* template (string with template name ex: home, products ..etc )
* [Zid API](/zid-api.md)

### Templates

#### **Home**

url: `/`

In `home.twig` display modules added by user by **home\_template\_modules** check [home template modules ](/home-template-modules.md)

```markup
�{% block main_content %}

    <div class="home">
        {{ home_template_modules }}
    </div>

{% endblock %}
```

#### **Products**

url: `/products`

file: `products.twig`&#x20;

data: [products list](/data-reference/products-list.md)

#### **Product**

url: `/products/{slug}`

file: `product.twig`&#x20;

data: [product](/data-reference/product.md)

templates: [template\_for\_product\_variants\_dropdown](/product-template.md), [template\_for\_product\_input\_fields](/product-template.md), [template\_for\_product\_option\_fields](/product-template.md)

#### **Categories**

url: `/categories`

file: `categories.twig`&#x20;

data: [categories list](/data-reference/categories-list.md)

#### **Category**

url: `/category/{id}/{slug}`

file: `category.twig`&#x20;

data: [category](/data-reference/category.md) and [products list](/data-reference/products-list.md)

#### **Cart**

url: `/cart/view`

file: `cart.twig`&#x20;

data: [cart](/data-reference/cart.md)

#### S**hipping and payment**

url: `/shipping-and-payment`

file: `shipping-and-payments.twig`&#x20;

data: [store payment methods](/data-reference/store-payment-methods.md) , [store shipping methods](/data-reference/store-shipping-methods.md) and [store banks](/data-reference/store-banks.md)

#### Faqs

url: `/faqs`

file: `faqs.twig`&#x20;

data: [faqs](/data-reference/faq.md)

#### Blogs

url: `/blogs`

file: `blog.twig`&#x20;

data: [blogs](/data-reference/blogs.md)

#### Blog

url: `/blogs/{slug}`

file: `blog.twig`&#x20;

data: [blog](/data-reference/blog.md)

#### Page

url: `/pages/{slug}`

slug: must be one of:

* terms-and-conditions
* privacy-policy
* refund-exchange-policy
* license
* complaints-and-suggestions

file: `page.twig` &#x20;

data: [page](/data-reference/page.md)

#### **Account profile**

url: `/account-profile`

file: `account-profile.twig`&#x20;

template : `account_profile_template_content`

#### **Account addresses**

url: `/account-addresses`

file: `account-addresses.twig`&#x20;

data: [addresses](/data-reference/addresses.md)

#### **Account orders**

url: `/account-orders`

file: `account-orders.twig`

data: [orders](/data-reference/orders.md)

#### **Account address**

(system template)

url: `/account-addresses/{id}/edit`

navigate customer to the url and system will display address content

use url: `/account-addresses/add`

to navigate customer to add new address

#### **Account order**

(system template)

url: `/orders/{orderCode}/invoice`

navigate customer to the url and system will display order content


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://themes.zid.dev/theme-templates-and-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
