For the complete documentation index, see llms.txt. This page is also available as Markdown.

Order form

A bulk-ordering table for trade buyers β€” search by SKU, set quantities across many lines, add everything to the cart at once.

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 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

Setting
What it does
Default

Show products if customer is not logged in

Whether logged-out visitors see the catalog at all.

on

Show non-discounted products

On, buyers see your whole catalog. Off, only products with pricing for their tag appear.

on

Show compare at price

Show the compare-at price alongside.

off

Show volume tiers column

A column exposing the tier ladder, so buyers can see the next break.

on

Enable import/export buttons

Let buyers export the form as CSV and re-import a filled-in one.

on

Image header

Column heading.

Image

SKU header

Column heading.

SKU

Product name header

Column heading.

Product name

Price header

Column heading.

Price per carton

Single unit header

Heading for the loose-unit column.

Single Unit

Volume tiers header

Heading for the tiers column.

Volume Tiers

Customer not eligible message

Shown when the visitor has no pricing available.

β€”

CSS

Your own CSS.

β€”

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.

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, 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 and loose unit pricing. 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.

Last updated