> For the complete documentation index, see [llms.txt](https://help.sesami.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.sesami.co/apps-integrations/shopify/online-store/manual-install.md).

# Manual Install

If the booking button isn't appearing on your product page and Sesami is set up correctly, you may need a manual installation — especially with third-party or custom themes.

## When Manual Installation Is Needed

* Your theme is a third-party theme not available in the Shopify Theme Store
* Your theme is heavily customized
* Your theme is a legacy (pre-2.0) Shopify theme
* The Sesami app embed isn't compatible with your theme's structure

{% hint style="info" %}
**Before manual installation**, make sure you've completed the standard setup first. Most Shopify 2.0 themes work with the app embed without any code changes.
{% endhint %}

## Step 1: Generate Your Snippet

Start with the **Sesami Experience Configurator** to generate your booking snippet:

1. Go to [sesami.dev/docs/sesami-experience/configurator](https://sesami.dev/docs/sesami-experience/configurator/)
2. Configure your Shop ID, Service ID, experience version, and styling
3. Copy the generated `<sesami-experience>` snippet

## Step 2: Add to Your Theme

Place the snippet in your product page template where you want the booking button to appear.

### With Sesami Instant Booking

If the service uses Sesami Instant Booking, the snippet is self-contained — paste it and you're done. The full booking flow happens within the widget.

### With Shopify Checkout

If the service uses Shopify checkout (add to cart), you'll need to integrate the snippet with your theme's cart and checkout functionality. This includes connecting the add-to-cart action and ensuring booking data flows through to the order.

For detailed integration instructions, refer to the [Sesami Developer Docs](https://sesami.dev). The dev docs cover:

* Add-to-cart button integration
* Showing date and time on the cart page
* Disabling the add-to-cart button before a time is selected
* Customizing the Sesami button style
* Hiding the duration field from the product page
* Multi-language storefront integration

## Recommended Themes

We recommend using a Shopify theme from the official [Shopify Theme Store](https://themes.shopify.com/themes). These themes follow Shopify's standardized structure and are fully compatible with Sesami's app embed.

## Need Help?

* **Contact your theme developer** for theme-specific support
* **Hire a Shopify Expert**: [experts.shopify.com](https://experts.shopify.com/)
* **Sesami Professional Services**: [Professional Services](/get-started/onboarding/professional-services.md)
* **Sesami support**: <help@sesami.co>

## Related

* [Embed on Custom Pages](/apps-integrations/shopify/online-store/embed-on-custom-pages.md) — add booking buttons to homepage or other pages
* [Cart Verification Script](/apps-integrations/shopify/online-store/cart-verification-script.md) — validate bookings at checkout


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://help.sesami.co/apps-integrations/shopify/online-store/manual-install.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
