# Variables

### 🗂 Template Files

| File Name            | Description                                                  |
| -------------------- | ------------------------------------------------------------ |
| `index.html`         | The main landing page of your webstore                       |
| `category.html`      | Displays categories, manages navigation, and product filters |
| `product.html`       | Displays detailed information for a specific product         |
| `cart.html`          | Shows the customer's current shopping cart                   |
| `complete.html`      | Confirms a successful purchase                               |
| `subscriptions.html` | Lists all active and canceled customer subscriptions         |

***

### 🌐 Global Variables

#### Common Across All Pages

| Variable Name          | Description                                                        |
| ---------------------- | ------------------------------------------------------------------ |
| `store`                | The currently active store                                         |
| `webstore`             | Information about the active hosted webstore                       |
| `cart`                 | The current customer's cart (NULL if not logged in)                |
| `navlinks`             | All enabled navigation links                                       |
| `tags`                 | All enabled tags in the store                                      |
| `customer`             | The logged-in customer (NULL if not logged in)                     |
| `request`              | Information about the current HTTP request                         |
| `notification`         | Active customer notification, if any                               |
| `currency`             | Preferred customer currency (defaults to `store.currency` if NULL) |
| `available_currencies` | Available currencies for currency conversion previews              |
| `modules`              | Pre-rendered HTML for all active modules                           |
| `favicon`              | URL of the favicon image for the webstore                          |

#### Page-Specific Variables

**`index.html`**

| Variable Name | Description                        |
| ------------- | ---------------------------------- |
| `products`    | An array of all available products |

**`category.html`**

| Variable Name   | Description                                    |
| --------------- | ---------------------------------------------- |
| `products`      | Products matching the active tag/category      |
| `activeTag`     | Currently active filtering tag                 |
| `activeTags`    | Array of active filtering tags                 |
| `activeNavlink` | Detailed object for the active navigation link |

**`product.html`**

| Variable Name           | Description                            |
| ----------------------- | -------------------------------------- |
| `product`               | Details of the selected product        |
| `available_gameservers` | Optional list of gameserver selections |

**`complete.html`**

| Variable Name | Description                           |
| ------------- | ------------------------------------- |
| `complete`    | Information about the completed order |

**`subscriptions.html`**

| Variable Name   | Description                          |
| --------------- | ------------------------------------ |
| `subscriptions` | List of the customer’s subscriptions |

***

### 📦 Object Definitions

#### Available Game Server Object

| Field  | Description              |
| ------ | ------------------------ |
| `id`   | Unique server identifier |
| `name` | Display name of server   |

***

#### Webstore Object

| Field                    | Description                     |
| ------------------------ | ------------------------------- |
| `id`                     | Unique webstore ID              |
| `slug`                   | Friendly URL slug               |
| `is_active`              | Webstore active status          |
| `custom_domain`          | Custom domain, if set           |
| `custom_domain_verified` | Domain verification status      |
| `current_template_id`    | Active template ID              |
| `custom_templates`       | Any associated custom templates |

***

#### Checkout Complete Object

| Field  | Description                       |
| ------ | --------------------------------- |
| `text` | Completion message or status text |

***

#### Notification Object

| Field     | Description                                |
| --------- | ------------------------------------------ |
| `message` | Notification message content               |
| `type`    | Type of notification (e.g., `error`, etc.) |

***

#### Request Details Object

| Field         | Description                                      |
| ------------- | ------------------------------------------------ |
| `url`         | Full current URL                                 |
| `path`        | URL path component                               |
| `query`       | Query parameters from the URL                    |
| `country`     | IP-based country code                            |
| `countryName` | Human-readable country name                      |
| `region`      | Geographical region of the user                  |
| `city`        | City of origin                                   |
| `isEUCountry` | Boolean indicating if the request is from the EU |

***

For further details on template syntax and filters, refer to the official Twig documentation.


---

# 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://docs.paynow.gg/hosted-webstores/variables.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.
