> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarlabs-b2b-custom-pricing/show-final-prices-on/order-form.md).

# Order form

The order form is a single page where a buyer can search your catalog, set quantities against many products at once, and add the lot to their cart. It is how wholesale buyers actually want to order — nobody reordering 40 SKUs wants to visit 40 product pages.

Prices shown are the buyer's own, resolved from their customer tag exactly as everywhere else.

## Before you start

Configure your [pricing](/dollarlabs-b2b-custom-pricing/getting-started.md) first. The order form displays pricing; it does not create any.

## Adding it

1. In Shopify admin, create a page: **Online Store → Pages → Add page**. Call it something like *Order form*.
2. **Online Store → Themes → Customize**.
3. Navigate to that page, and create or select a template for it.
4. **Add block → Apps → Order Form**.
5. Configure, then **Save**.

Link the page from your main navigation, or from your wholesale customers' account area.

## Settings

<table><thead><tr><th width="300">Setting</th><th>What it does</th><th width="110">Default</th></tr></thead><tbody><tr><td><strong>Show products if customer is not logged in</strong></td><td>Whether logged-out visitors see the catalog at all.</td><td>on</td></tr><tr><td><strong>Show non-discounted products</strong></td><td>On, buyers see your whole catalog. Off, only products with pricing for their tag appear.</td><td>on</td></tr><tr><td><strong>Show compare at price</strong></td><td>Show the compare-at price alongside.</td><td>off</td></tr><tr><td><strong>Show volume tiers column</strong></td><td>A column exposing the tier ladder, so buyers can see the next break.</td><td>on</td></tr><tr><td><strong>Enable import/export buttons</strong></td><td>Let buyers export the form as CSV and re-import a filled-in one.</td><td>on</td></tr><tr><td><strong>Image header</strong></td><td>Column heading.</td><td><code>Image</code></td></tr><tr><td><strong>SKU header</strong></td><td>Column heading.</td><td><code>SKU</code></td></tr><tr><td><strong>Product name header</strong></td><td>Column heading.</td><td><code>Product name</code></td></tr><tr><td><strong>Price header</strong></td><td>Column heading.</td><td><code>Price per carton</code></td></tr><tr><td><strong>Single unit header</strong></td><td>Heading for the loose-unit column.</td><td><code>Single Unit</code></td></tr><tr><td><strong>Volume tiers header</strong></td><td>Heading for the tiers column.</td><td><code>Volume Tiers</code></td></tr><tr><td><strong>Customer not eligible message</strong></td><td>Shown when the visitor has no pricing available.</td><td>—</td></tr><tr><td><strong>CSS</strong></td><td>Your own CSS.</td><td>—</td></tr></tbody></table>

{% hint style="info" %}
The default price heading is **Price per carton**, which suits case-based selling. If you do not sell by the case, change it — buyers do read the column headings.
{% endhint %}

## Two decisions worth thinking about

**Show products to logged-out visitors?**\
Off means the order form is trade-only and a retail visitor sees nothing. On means it doubles as a catalog browser. If you gate prices with **Hide price without login** on the [product page block](/dollarlabs-b2b-custom-pricing/show-final-prices-on/product-page.md), keep this consistent — a form listing everything while the product page hides prices reads as broken.

**Show non-discounted products?**\
Off gives buyers a tight, purposeful list of exactly what they are entitled to. On lets them order anything, at retail where no wholesale price exists. Distributors with a defined range usually want it off; general trade accounts usually want it on.

## Buyer import/export

With import/export enabled, buyers can export the form as a CSV, fill in quantities offline, and re-import it.

This is the feature that wins over buyers who work from their own stock lists — they keep their spreadsheet, and it becomes an order. Leave it on unless you have a reason not to.

## Case quantities and tiers

The order form respects [case multiples](/dollarlabs-b2b-custom-pricing/getting-started/volume-tiers-and-case-multiples.md) and [loose unit pricing](/dollarlabs-b2b-custom-pricing/getting-started/progressive-case-multiples-and-loose-unit-pricing.md). Where loose pricing is configured, the **Single Unit** column shows that price alongside the case price.

The volume tiers column lets a buyer see they are one step from a better price — which is the entire point of tiers, and it is worth leaving on.

## Common problems

**The form is empty.**\
No pricing is configured, or **Show non-discounted products** is off and this customer's tag has no prices.

**A logged-out visitor sees nothing.**\
**Show products if customer is not logged in** is off. That is the intended behaviour for a trade-only form.

**Prices differ from the product page.**\
They should not. Confirm you are signed in as the same customer on both — this is usually two different browser sessions.
