> For the complete documentation index, see [llms.txt](https://orbit-b2b.gitbook.io/orbit-b2b-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://orbit-b2b.gitbook.io/orbit-b2b-docs/quick-order/create-form.md).

# Create a form

A form decides **who** can use Quick Order, **which products** they can order, the **quantity rules**, the text, and the look. Forms live in **Orders → Quick Order**.

> **Essential plan feature.** Essential includes 1 form, Advanced 3, Platinum unlimited. Inactive forms count toward the limit — delete a form to free its slot. Saving a new form past the limit shows an error and opens **Plans**.

***

## Create a form

1. Go to **Orders → Quick Order**
2. Click **Create form**
3. Fill in the **General** tab, then style the form on the **Design** tab
4. Click **Save** in the save bar

After the first save, the app opens the form's edit page — that's where per-language copy becomes available.

A new form starts out **Active**, open to **Customers with any wholesale tier tag**, covering **All products**, with quantity rules and pre-fill off.

***

## General tab

### Form details

| Setting       | What it does                                                                            |
| ------------- | --------------------------------------------------------------------------------------- |
| **Form name** | Internal name used to identify this form in the admin. Buyers never see it. Required    |
| **Status**    | Only active forms can appear on the storefront. Inactive forms are kept but never shown |

### Eligibility

**Who can use Quick Order** — pick one:

| Option                                    | Who matches                                                                                                                |
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| **Any logged-in customer**                | Every customer who is logged in                                                                                            |
| **Customers with any wholesale tier tag** | Any logged-in customer whose Shopify account has **at least one tag** — any tag, not only the tags of your customer groups |
| **Specific customer group**               | Members of the group you choose under **Customer group** (customers who carry that group's tag)                            |

> **Watch the wording of the middle option.** If your retail customers also carry tags — added by you, another app or a marketing tool — they match **Customers with any wholesale tier tag** too. To keep a form to your B2B buyers only, use **Specific customer group**.

With **Specific customer group**, choose the group. A form left on **— Pick a group —** matches nobody.

Guests never see Quick Order, whichever option you choose. When a buyer matches more than one form, the most specific one wins — see [Overview](/orbit-b2b-docs/quick-order/overview.md#when-more-than-one-form-matches).

### Products

**Which products can buyers search?**

| Option                   | Effect                                                                                                           |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **All products**         | Buyers can find any product published to your Online Store                                                       |
| **Specific products**    | Choose products with **Browse**. With pre-fill on, the form lists exactly these products                         |
| **Specific collections** | Choose collections with **Browse**. Search only returns products in those collections                            |
| **Products with tags**   | Type a product tag and click **Add**, once per tag. Search only returns products with at least one of those tags |

> **Specific products doesn't limit search.** A buyer who searches can still find other published products. To restrict what buyers can search, use **Specific collections** or **Products with tags**.

Products that aren't published to the Online Store never appear in the form. In the **Specific products** list they carry a **Not published** badge.

### Quantity rules (MOQ)

Turn on **Enforce MOQ on storefront (min, max, step)** to show these fields:

| Setting                          | What it does                                                                                                                                       |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Minimum qty**                  | The quantity each row starts at, and the lowest a buyer can order. **0** = rows start empty; only quantities raised to 1 or more are added to cart |
| **Maximum qty (blank = no max)** | The highest quantity per row                                                                                                                       |
| **Step (multiple of)**           | The pack size. Allowed quantities go up from the minimum in steps of this size                                                                     |
| **Quick-pick suggestions**       | Quantities shown as chips the buyer can click, separated by commas — e.g. `12, 24, 50, 100`. Each value 1–9999                                     |

**How min and step combine:** with Minimum 12 and Step 12 a buyer can order 12, 24, 36… With Minimum 10 and Step 12 it's 10, 22, 34… — so when you sell in packs, make the minimum a multiple of the step.

A quantity that doesn't fit is corrected to the nearest allowed quantity when the buyer leaves the box.

**Industry preset** — one click fills in a starting point, turns the rules on and clears the maximum:

| Preset                 | Minimum | Step | Quick picks       |
| ---------------------- | ------- | ---- | ----------------- |
| **Beverage**           | 12      | 12   | 12, 24, 48, 96    |
| **Apparel**            | 6       | 6    | 6, 12, 24, 48     |
| **Cosmetics**          | 12      | 6    | 12, 24, 36, 60    |
| **Electronics**        | 1       | 1    | 1, 5, 10, 20      |
| **Food**               | 24      | 12   | 24, 48, 96, 144   |
| **Books / Stationery** | 10      | 10   | 10, 25, 50, 100   |
| **Industrial parts**   | 50      | 50   | 50, 100, 250, 500 |
| **Furniture**          | 1       | 1    | 1, 2, 5, 10       |

Adjust any value after applying a preset.

> **Wholesale minimums still count.** A row can start above your minimum when a wholesale pricing rule gives this buyer a higher **Minimum order quantity (MOQ)** for that product — the row then uses the larger of the two.

### Copy

The text buyers see on the form:

| Field                        | Default                                                                                  |
| ---------------------------- | ---------------------------------------------------------------------------------------- |
| **Heading**                  | Quick Order                                                                              |
| **Description**              | Add products in bulk by SKU. Paste from your spreadsheet or search to add one at a time. |
| **Add-to-cart button label** | Add all to cart                                                                          |
| **Paste button label**       | Paste from spreadsheet                                                                   |
| **Empty row placeholder**    | Search SKU or product name                                                               |

#### Translate the copy

Available on a saved form, once your store publishes more than one language in Shopify (**Settings → Languages**). Just published a language and it isn't in the list? Click **Refresh languages** under **Settings → Translations** in the app.

1. Open the form. In **Copy**, pick a language from the dropdown
2. Type the translations. The primary-language text shows as a placeholder, and any field you leave empty falls back to it
3. Save

Only these five fields are per language. Eligibility, products, quantity rules and design apply to every language.

**Restore defaults for&#x20;*****language*** appears once that language has some text. It replaces the five fields with the app's built-in text for that language (English, Vietnamese, French, German, Spanish or Japanese); for any other language it empties them, so the primary-language copy shows. It takes effect at once and reloads the form — save your other changes first.

The rest of the form's text — column headers, **Subtotal**, **+ Add row**, stock badges and messages — comes with the app in the same six languages and can't be edited. A few newer messages are English-only for now.

Untranslated Quick Order copy is also listed under **Settings → Translations → Missing translations**, with an **Edit** link to the form.

***

## Design tab

The settings sit beside a **Storefront preview** that updates as you work. The preview uses sample rows (*"Numbers are fake"*) unless you chose **Specific products** — then it shows up to six of them.

### Colors

| Setting               | Default   |
| --------------------- | --------- |
| **Button background** | `#008060` |
| **Button text**       | `#ffffff` |
| **Text**              | `#202223` |
| **Subdued text**      | `#6d7175` |
| **Border**            | `#e1e3e5` |
| **Background**        | `#ffffff` |
| **Row hover**         | `#f6f6f7` |

### Typography & spacing

| Setting           | Default |
| ----------------- | ------- |
| **Font size**     | `14px`  |
| **Row padding**   | `12px`  |
| **Border radius** | `8px`   |

Enter CSS sizes, e.g. `16px`.

### Custom CSS (advanced)

Extra CSS for the form. It's added to the page as-is, so start every selector with `.orb2b-quick-order` to keep it inside the form:

```css
.orb2b-quick-order {
  max-width: 960px;
  margin: 0 auto;
}
```

### Display & pagination

| Setting                                         | Default                       | What it does                                                                                                                |
| ----------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Show heading + description**                  | On                            | Shows your Heading and Description above the form                                                                           |
| **Show product thumbnail in row**               | On                            | Shows the product image at the start of each row                                                                            |
| **Pre-fill eligible products (order-pad grid)** | Off                           | Off: the form starts with one empty row and buyers search or paste. On: every eligible product is listed as an editable row |
| **Pagination mode**                             | No pagination (show all rows) | How long forms are split up — see below                                                                                     |
| **Items per page**                              | 10                            | Rows per page, 1–50. Shown for the two paging modes                                                                         |

**What pre-fill lists**, by your **Products** choice:

| Products                 | Pre-filled rows                                            |
| ------------------------ | ---------------------------------------------------------- |
| **All products**         | Every product published to your Online Store (up to 5,000) |
| **Specific products**    | The products you chose                                     |
| **Specific collections** | The products in those collections (up to 5,000)            |
| **Products with tags**   | Not pre-filled — the form starts with one empty row        |

A product with several variants gets a header row (*"3 variants"*) with a collapse/expand toggle, and one row per variant underneath. If nothing is left to list, the form falls back to one empty row.

**Pagination mode** on the storefront:

| Mode                              | Buyer sees                                 |
| --------------------------------- | ------------------------------------------ |
| **No pagination (show all rows)** | All rows on one page                       |
| **Pagination (page numbers)**     | Previous / next arrows and *"Page 1 of 5"* |
| **Infinite scroll**               | A **Load 10 more** button under the table  |

> **Tips for pre-filled forms**
>
> * Every row starts at **Minimum qty**, and **Add all to cart** adds every row above 0. To let buyers fill in only what they want, turn on quantity rules and set **Minimum qty** to **0**.
> * Pre-filled products load one page at a time. Choose **Pagination** or **Infinite scroll** — with **No pagination** only the first page of products (10 by default) is loaded.

***

## Manage your forms

The list in **Orders → Quick Order** shows each form's **Name**, **Status**, **Apply Customers** (*All logged-in*, *Wholesale tag* or *Customer group*), **Apply Products**, **State** and **Updated** date.

* **Turn a form on or off** — flip its switch in the **Status** column. This applies straight away, with no Save.
* **Find a form** — use the **All** / **Active** / **Inactive** tabs, **Search form by name**, or the sort button (**Newest**, **Oldest**, **Recently updated**, **Name: A–Z**, **Name: Z–A**).
* **Edit** — click a row.
* **Delete** — tick one or more forms, click **Delete** and confirm; or open a form and click **Delete form**. Deleting is permanent.

Changes reach the storefront when you save.

***

## Next steps

* [Add Quick Order to your store](/orbit-b2b-docs/quick-order/add-to-store.md)
* [Quick Order overview](/orbit-b2b-docs/quick-order/overview.md)
* [Customer Groups](/orbit-b2b-docs/customer-groups/overview.md)
* [Billing & plan](/orbit-b2b-docs/settings/billing.md)
