> For the complete documentation index, see [llms.txt](https://docs-shpf.bsscommerce.com/b2b-wholesale-solution/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-shpf.bsscommerce.com/b2b-wholesale-solution/order-management/orders-custom-fields/how-to-enable-custom-notes-for-orders.md).

# How to Enable Custom Notes for Orders

Collect extra details such as a PO number on your cart page with the Orders Custom Fields app block. Values are saved on the order.

**Orders Custom Fields** lets customers add details or special instructions on the cart page: delivery preferences, packaging requests, PO numbers and more. Each filled field is saved on the order.

{% hint style="warning" %}
**The fields are set up in the Shopify theme editor, not in the app.** The app page only turns the module on and installs the app block. There is no field builder in the admin. Stores on Storefront v4 do not see this module in the admin.
{% endhint %}

## Before You Start

* The **B2B Solution** app embed is on in your live theme (see [Enable or Disable the App in Your Theme](/b2b-wholesale-solution/getting-started/enable-or-disable-the-app-in-your-theme.md)).
* Your theme supports app blocks on the cart page. Most Online Store 2.0 themes do; the app checks this for you in step 3.
* Decide which fields you need at checkout, for example **PO number** or **Delivery date**.

## 🔹 Step 1: Open the Module

From the Shopify admin, open the B2B Solution app and go to **B2B orders & discounts › Orders Custom Fields**. The page opens on **Storefront**.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-344e68c48be170cabed70ee681723a490659e561%2Fcms-on-storefront-01.png?alt=media" alt="Orders Custom Fields page"><figcaption><p>Orders Custom Fields page</p></figcaption></figure>

## 🔹 Step 2: Turn On the Module and the App Embed

1. In the **Storefront setup** card, click **Turn on module**.
2. If the card says **Turn on the app embed in your theme**, click **Open theme editor**, turn on the **B2B Solution** app embed, save the theme and click **Check again**.

{% hint style="warning" %}
The fields stay hidden on your storefront until the app embed is on.
{% endhint %}

## 🔹 Step 3: Add the App Block to Your Cart Page

1. In the **Order custom fields in your theme** row, click **Add app block**. Or, in the app block setup, choose your theme, click **Check compatibility**, then click **Enable button on cart page**.
2. The theme editor opens on your cart page with the **Orders Custom Fields** block. Add and edit fields there.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-d30dd577d5484b2bc4cdbb2b8e9128a58ffb677e%2Fcms-on-appblock-01.png?alt=media" alt="Install the app block"><figcaption><p>Install the app block</p></figcaption></figure>

If **Check compatibility** shows that your theme does not use app blocks, a **Manual installation** section appears. Open your cart template from the links (for example `sections/cart-template.liquid`, `templates/cart.liquid` or `sections/main-cart-items.liquid` for Dawn; for the mini cart `snippets/ajax-cart-template.liquid` or `snippets/cart-drawer.liquid`) and paste the snippet for **Text area**, **Radio button**, **Checkbox** or **Dropdown list** inside the cart form. Then edit `BSS_field_title`, `BSS_options`, `BSS_title_color` and `BSS_field_label` at the top of the snippet. Prefer not to edit code? Chat with us: our team sets it up on your theme for free.

## 🔹 Step 4: Configure the Field in the Theme Editor

| Setting         | Default                        | What it does                                                                                      |
| --------------- | ------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Field Type**  | Text field                     | **Text field**, **Radio button**, **Checkbox** or **Dropdown list**.                              |
| **Title**       | "Add a note to your order"     | The label shown above the field.                                                                  |
| **Options**     | `option 1, option 2, option 3` | Comma-separated choices for radio, checkbox and dropdown.                                         |
| **Title Color** | `#000`                         | Label text color.                                                                                 |
| **label**       | `bss-cart-note`                | The name the value is saved under on the order, so give it a meaningful name such as `po-number`. |

Save the theme. Add one block per field and give each block its own **label**.

{% hint style="info" %}
**Fields are optional** for customers: there is no required setting. Empty or whitespace-only text is skipped.
{% endhint %}

* Text fields each save under their own label. For choice fields, use at most one **Radio button**, one **Checkbox** and one **Dropdown list** block: radio buttons in different blocks act as one group, all ticked checkboxes are saved under the first checkbox block label, and only the first dropdown is saved.
* A dropdown has no empty choice, so its first option is selected and saved.

## 🔹 Step 5: Find the Values on the Order

When a customer fills a field and clicks a checkout button in the cart, B2B Solution creates the order through its checkout and saves each filled field as an **order attribute** named after the label, for example `po-number: PO-1042`. In Shopify admin, open the order and look under **Additional details**. They are also available to third-party apps and order printers.

{% hint style="warning" %}
Values are saved from the checkout button in the cart or cart drawer. **Buy it now**, express payment buttons and a direct `/checkout` link skip this, so those orders carry no custom field values.
{% endhint %}

{% hint style="info" %}
Custom fields and Shopify's own cart note are different. Custom fields land in **order attributes**; Shopify's cart note lands in the **order note**, which is also where Tax Exempt and Registration Form write their note blocks.
{% endhint %}

### 💡 Example

Customers who need special packaging or delivery timing can write "Please deliver between 9 AM – 11 AM" on the cart page, and your team sees it on the order without follow-up messages.

<div data-with-frame="true"><figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FTTba5MAKpJvVTHJVfYws%2Fimage.png?alt=media&amp;token=55fabdac-282d-40c3-92ec-5787f7e49710" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
If you need further assistance, please feel free to reach us at [**support@bss-b2b.solutions**](mailto:support@bss-b2b.solutions) or [**Live Chat**](https://go.crisp.chat/chat/embed/?website_id=9f64b5a9-1a02-4190-93b8-8ef56b19f740).
{% endhint %}
