> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sitestorepro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Filtering, Live Search, and Events Calendar

> Enable faceted shop search filtering, embed live search across all content types, and manage a public events calendar with ticket booking in Site Store Pro.

Site Store Pro offers three distinct search and discovery features: an advanced filtering drawer on the shop page, a multi-content live search plugin you can embed anywhere, and a fully featured events calendar with ticket booking. Each works independently, and you can enable or embed them in any combination that fits your storefront.

## Advanced Shop Search Filtering Drawer

The advanced filtering drawer adds a slide-out panel to the `/shop` page that lets customers narrow results using multiple facets simultaneously. The drawer is **off by default** — you must enable it manually.

### Enabling the Filter Drawer

<Steps>
  <Step title="Open Shop Display Settings">
    Navigate to **Admin → Settings → Shop Display**.
  </Step>

  <Step title="Enable the Feature">
    Toggle **Enable Advanced Shop Search Filtering Panel** to on and save your settings.
  </Step>
</Steps>

Once enabled, a filter icon or panel trigger appears on the `/shop` page. Customers open the drawer to access:

<CardGroup cols={2}>
  <Card title="Brand Filter" icon="tag">
    Multi-select checkboxes listing all active brands. Customers can select one or more brands to filter results.
  </Card>

  <Card title="Category Tree" icon="sitemap">
    A hierarchical category and subcategory tree selector. Expanding a parent category reveals its children for granular filtering.
  </Card>

  <Card title="Price Range Slider" icon="dollar-sign">
    A dual-handle interactive slider that lets customers set a minimum and maximum price range.
  </Card>

  <Card title="Variant Attribute Accordions" icon="sliders">
    Dynamic accordions generated from your product variant JSON data — for example, Color, Size, and Material. Only attributes present in your active product catalogue appear.
  </Card>
</CardGroup>

<Info>
  Every selection in the filter drawer automatically synchronises to the page URL as query string parameters. This means customers can bookmark or share a filtered shop URL and return to the exact same filtered view.
</Info>

***

## Multi-Content Live Search

The live search plugin delivers instant, real-time results across six content types as the customer types. It calls the internal endpoint `/api/live-search-api?q=query` and returns matches from:

| Content Type            | URL Pattern          |
| ----------------------- | -------------------- |
| Categories              | `/section/{slug}`    |
| Brands                  | `/brands/{slug}`     |
| Products                | `/items/{slug}`      |
| CMS Pages               | `/{slug}`            |
| Knowledge Base Articles | `/kb/{slug}`         |
| Testimonials            | *(displayed inline)* |

### Embedding Live Search

Add the plugin to any CMS page or layout block using its shortcode. Typically you place a `mode=input` embed where you want the search bar to appear, and a `mode=results` embed where you want results to render — though both can coexist on the same page.

```text theme={null}
[plugin:live-search-2026 mode=input placeholder="Search the store..."]
[plugin:live-search-2026 mode=results layout=grid]
```

**Parameters:**

| Parameter     | Values               | Description                                                  |
| ------------- | -------------------- | ------------------------------------------------------------ |
| `mode`        | `input` \| `results` | Whether this embed renders the input bar or the results area |
| `placeholder` | string               | Placeholder text shown inside the search input field         |
| `layout`      | `list` \| `grid`     | Visual layout for the results display                        |

***

## Events Calendar

The events calendar plugin renders your upcoming events in a fully interactive view with built-in ticket booking. Event data is managed at the product variant level — each event is represented as a product variant with a date, time, and capacity.

### Embedding the Calendar

```text theme={null}
[plugin:events-calendar-2026]
[plugin:events-calendar-2026 layout=list category=workshops max=50]
```

### Layout Modes

<Tabs>
  <Tab title="Month Grid">
    A 7-column calendar grid showing the current month. Each date cell displays events scheduled for that day.

    ```text theme={null}
    [plugin:events-calendar-2026 layout=month]
    ```
  </Tab>

  <Tab title="Agenda List">
    A chronological list of upcoming events, ideal for pages where vertical scrolling is preferred over a calendar grid.

    ```text theme={null}
    [plugin:events-calendar-2026 layout=list]
    ```
  </Tab>

  <Tab title="Cards Grid">
    Events displayed as visual cards in a responsive grid layout, suitable for featured or promotional event listings.

    ```text theme={null}
    [plugin:events-calendar-2026 layout=grid]
    ```
  </Tab>
</Tabs>

### Parameters

| Parameter  | Values                      | Description                                  |
| ---------- | --------------------------- | -------------------------------------------- |
| `layout`   | `month` \| `list` \| `grid` | Display mode for the calendar                |
| `category` | slug string                 | Restrict events to a specific category slug  |
| `max`      | integer                     | Maximum number of events to load (e.g. `50`) |

### Booking Flow

When a customer clicks any event, a glassmorphism modal opens displaying the event details and a **Book Event Ticket** link that initiates the checkout flow for that event's product variant.

***

## Search Index Management

Site Store Pro automatically rebuilds the search index for products and CMS pages every time you save them. For most stores, no manual intervention is required.

### Locking Search Keywords

If you want to append custom search keywords to a product or CMS page without having them overwritten on the next save, enable the **Lock Search Keywords** option on that record. When locked, your manually entered keywords are preserved regardless of subsequent content changes.

<Warning>
  The Artisan command `php artisan search:rebuild-index` forces a full index rebuild across all content. This is a **developer-only** tool — run it in a staging environment first and only use it in production when directed by your development team.
</Warning>
