> For the complete documentation index, see [llms.txt](https://staylime.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://staylime.com/docs/avante-themes/features-and-advanced-setup/gift-wrapping.md).

# Gift wrapping

Set up gift wrapping in Avante: pick a wrap product, show a checkbox in the cart and cart drawer, keep its price out of the free shipping bar, and collect a gift message.

Gift wrapping turns an ordinary order into a present without the customer leaving the cart. You sell the wrap as a regular product, and Avante shows it as a single checkbox under the items — one tick and the wrap is in the order.

Everything is configured in **Theme settings → Gift wrapping**. No navigation menu, no extra template, no code.

### How it works

You pick one product in the theme settings — that product is your gift wrap. Avante renders a checkbox under the item list: on the cart page, in the cart drawer, or in both. The two places are independent, so you can offer wrapping in the drawer only, on the cart page only, or everywhere.

When the customer ticks the checkbox, the wrap product is added to the cart as an ordinary line item. When they untick it, the line is removed again.

The checkbox appears only when:

* a product is selected in **Theme settings → Gift wrapping → Product**, and
* that product is available — or it is already in the cart.

If the wrap product runs out while it is already in someone's cart, the checkbox stays visible so the customer can still untick it.

### Set it up

{% stepper %}
{% step %}

#### Create the gift wrap product

In **Shopify Admin → Products**, add a product for the wrap — a name, a price and an image are enough. Make sure it is active and available on the Online Store sales channel, otherwise the theme treats it as unavailable and the checkbox will not appear.

One variant is the simplest setup: ticking the checkbox adds it straight away. If you create several variants — different papers, ribbons or sizes — see *What the customer sees* below.
{% endstep %}

{% step %}

#### Turn the checkbox on

In the Theme Editor, open **Theme settings → Gift wrapping** and switch on **Enable on cart page**, **Enable on cart drawer**, or both. Both are off by default.
{% endstep %}

{% step %}

#### Choose the product

Still in **Theme settings → Gift wrapping**, use **Product** to select the product you created in step 1.
{% endstep %}

{% step %}

#### Write the label

**Label** is the text next to the checkbox. The default is:

`Make it a gift — add our signature wrapping for {{ price }}`

Put `{{ price }}` anywhere in the text and the theme replaces it with the wrap price — `{{price}}` without spaces works too. Leave the token out and no price is shown.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
If the wrap product has variants at different prices, the label shows the lowest one, prefixed with *From*. Whether the price carries a currency code depends on **Theme settings → Currency format → Show currency codes**, which is on by default.
{% endhint %}

### What the customer sees

The checkbox sits under the item list, above the subtotal.

**Ticking it.** If the wrap product has a single variant, it is added immediately with a quantity of 1. If it has several variants, Quick view opens for that product so the customer can choose the one they want and add it from there.

**In the cart.** The wrap is a normal line item with its own price and counts toward the subtotal like any other product. The plus and minus buttons and the quantity field on that line are locked, so the quantity stays as added.

**Removing it.** The customer can untick the checkbox or use the remove button on the line — both remove the wrap. Unticking also clears the gift message, if the message field is in use.

**If something goes wrong.** When the wrap cannot be added — it sold out a moment earlier, for example — the checkbox unticks itself and a short error message appears underneath it.

### Free shipping bar

A wrap fee should not help the customer reach free shipping, so Avante leaves it out of the calculation. When the free shipping bar is shown, the price of every gift wrap line in the cart is subtracted from the total compared against the threshold — any variant, the full quantity, with line discounts already applied.

This only happens when gift wrapping is actually set up: a product is selected, and at least one of **Enable on cart page** / **Enable on cart drawer** is on. If both toggles are off, the product is treated as an ordinary item and its price counts toward the threshold, even when it is sitting in the cart.

### Gift message

On top of the wrap itself, you can let customers type a short message. The field appears only once the wrap is in the cart, and it is set up separately for the drawer and the cart page.

**Cart drawer.** Go to **Theme settings → Cart drawer → Gift message** and switch on **Enable** — it is off by default. The **Heading**, **Label** and **Placeholder** are set there too, along with **Show as collapsible tab**.

**Cart page.** Here the field is a block rather than a setting. In the Theme Editor, open the Cart template, select the Cart section and add the **Gift message** block — it is not in the default template, and only one can be added. Its text is configured on the block: **Heading** (`Gift message`), **Label** (`Add a gift message to your order`) and **Placeholder** (`Write your gift message here`). **Show as collapsible tab** is on by default.

{% hint style="warning" %}
The message field is not a standalone feature. It shows up only when a wrap product is configured, gift wrapping is enabled and the wrap is in the cart. If the customer unticks the wrap, the field disappears and the text is cleared.
{% endhint %}

<details>

<summary>Where the message ends up</summary>

The text is saved with the order as a cart attribute named `Gift message`. It appears with the rest of the order details in **Shopify Admin → Orders**, and apps that read cart attributes — packing slips, order printers — can pull it from there.

</details>

### Best practices

* Keep the label short and concrete. Naming the price is what makes customers tick the box, which is why `{{ price }}` is in the default text.
* Offer wrapping in the drawer as well as on the cart page. Many customers check out straight from the drawer and never open the cart page.
* If you use variants, keep them few and clearly named — the customer meets them in Quick view, in the middle of checking out.
* Watch the wrap product's availability. An unavailable wrap product means no checkbox at all.

***

### Related

* [Cart](/docs/avante-themes/theme-settings/cart.md) — free shipping bar and cart behavior
* [Cart drawer](/docs/avante-themes/theme-settings/cart-drawer.md) — drawer content and gift message


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://staylime.com/docs/avante-themes/features-and-advanced-setup/gift-wrapping.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
